-/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
- * For licensing, see LICENSE.md or http://ckeditor.com/license\r
- */\r
-\r
-/**\r
- * This file was added automatically by CKEditor builder.\r
- * You may re-use it at any time to build CKEditor again.\r
- *\r
- * If you would like to build CKEditor online again\r
- * (for example to upgrade), visit one the following links:\r
- *\r
- * (1) http://ckeditor.com/builder\r
- * Visit online builder to build CKEditor from scratch.\r
- *\r
- * (2) http://ckeditor.com/builder/b1e1d617d24d65f0d8dbe476718f9ee1\r
- * Visit online builder to build CKEditor, starting with the same setup as before.\r
- *\r
- * (3) http://ckeditor.com/builder/download/b1e1d617d24d65f0d8dbe476718f9ee1\r
- * Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.\r
- *\r
- * NOTE:\r
- * This file is not used by CKEditor, you may remove it.\r
- * Changing this file will not change your CKEditor configuration.\r
- */\r
-\r
-var CKBUILDER_CONFIG = {\r
- skin: 'moono',\r
- preset: 'full',\r
- ignore: [\r
- '.bender',\r
- 'bender.js',\r
- 'bender-err.log',\r
- 'bender-out.log',\r
- 'dev',\r
- '.DS_Store',\r
- '.editorconfig',\r
- '.gitattributes',\r
- '.gitignore',\r
- 'gruntfile.js',\r
- '.idea',\r
- '.jscsrc',\r
- '.jshintignore',\r
- '.jshintrc',\r
- 'less',\r
- '.mailmap',\r
- 'node_modules',\r
- 'package.json',\r
- 'README.md',\r
- 'tests'\r
- ],\r
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * This file was added automatically by CKEditor builder.
+ * You may re-use it at any time to build CKEditor again.
+ *
+ * If you would like to build CKEditor online again
+ * (for example to upgrade), visit one the following links:
+ *
+ * (1) http://ckeditor.com/builder
+ * Visit online builder to build CKEditor from scratch.
+ *
+ * (2) http://ckeditor.com/builder/9323150a85589a6899021c19376669e6
+ * Visit online builder to build CKEditor, starting with the same setup as before.
+ *
+ * (3) http://ckeditor.com/builder/download/9323150a85589a6899021c19376669e6
+ * Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
+ *
+ * NOTE:
+ * This file is not used by CKEditor, you may remove it.
+ * Changing this file will not change your CKEditor configuration.
+ */
+
+var CKBUILDER_CONFIG = {
+ skin: 'moono',
+ preset: 'full',
+ ignore: [
+ '.DS_Store',
+ '.bender',
+ '.editorconfig',
+ '.gitattributes',
+ '.gitignore',
+ '.idea',
+ '.jscsrc',
+ '.jshintignore',
+ '.jshintrc',
+ '.mailmap',
+ '.travis.yml',
+ 'bender-err.log',
+ 'bender-out.log',
+ 'bender.ci.js',
+ 'bender.js',
+ 'dev',
+ 'gruntfile.js',
+ 'less',
+ 'node_modules',
+ 'package.json',
+ 'tests'
+ ],
plugins : {
+ 'Audio' : 1,
'a11yhelp' : 1,
'basicstyles' : 1,
'contextmenu' : 1,
'floatingspace' : 1,
'format' : 1,
'horizontalrule' : 1,
+ 'html5video' : 1,
'htmlwriter' : 1,
'iframe' : 1,
'image' : 1,
'liststyle' : 1,
'magicline' : 1,
'maximize' : 1,
+ 'oembed' : 1,
'removeformat' : 1,
'resize' : 1,
'showborders' : 1,
CKEditor 4 Changelog\r
====================\r
\r
+## CKEditor 4.7.3\r
+\r
+New Features:\r
+\r
+* [#568](https://github.com/ckeditor/ckeditor-dev/issues/568): Added possibility to adjust nested editables' filters using the [`CKEDITOR.filter.disallowedContent`](https://docs.ckeditor.com/#!/api/CKEDITOR.filter-property-disallowedContent) property.\r
+\r
+Fixed Issues:\r
+\r
+* [#554](https://github.com/ckeditor/ckeditor-dev/issues/554): Fixed: [`change`](https://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event not fired when typing the first character after pasting into the editor. Thanks to [Daniel Miller](https://github.com/millerdev)!\r
+* [#566](https://github.com/ckeditor/ckeditor-dev/issues/566): Fixed: The CSS `border` shorthand property with zero width (`border: 0px solid #000;`) causes the table to have the border attribute set to 1.\r
+* [#779](https://github.com/ckeditor/ckeditor-dev/issues/779): Fixed: The [Remove Format](https://ckeditor.com/addon/removeformat) plugin removes elements with language definition inserted by the [Language](https://ckeditor.com/addon/language) plugin.\r
+* [#423](https://github.com/ckeditor/ckeditor-dev/issues/423): Fixed: The [Paste from Word](https://ckeditor.com/addon/pastefromword) plugin pastes paragraphs into the editor even if [`CKEDITOR.config.enterMode`](https://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) is set to `CKEDITOR.ENTER_BR`.\r
+* [#719](https://github.com/ckeditor/ckeditor-dev/issues/719): Fixed: Image inserted using the [Enhanced Image](https://ckeditor.com/addon/image2) plugin can be resized when the editor is in [read-only mode](https://docs.ckeditor.com/#!/guide/dev_readonly).\r
+* [#577](https://github.com/ckeditor/ckeditor-dev/issues/577): Fixed: The "Delete Columns" command provided by the [Table Tools](https://ckeditor.com/addon/tabletools) plugin throws an error when trying to delete columns.\r
+* [#867](https://github.com/ckeditor/ckeditor-dev/issues/867): Fixed: Typing into a selected table throws an error.\r
+* [#817](https://github.com/ckeditor/ckeditor-dev/issues/817): Fixed: The [Save](https://ckeditor.com/addon/save) plugin does not work in [Source Mode](https://ckeditor.com/addon/sourcearea).\r
+\r
+Other Changes:\r
+\r
+* Updated the [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin:\r
+ * [#40](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/40): Fixed: IE10 throws an error when spell checking is started.\r
+* [#800](https://github.com/ckeditor/ckeditor-dev/issues/800): Added the [`CKEDITOR.dom.selection.isCollapsed`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-isCollapsed) method which is a simpler way to check if the selection is collapsed.\r
+* [#830](https://github.com/ckeditor/ckeditor-dev/issues/830): Added an option to define which dialog tab should be shown by default when creating [`CKEDITOR.dialogCommand`](https://docs.ckeditor.com/#!/api/CKEDITOR.dialogCommand).\r
+\r
+## CKEditor 4.7.2\r
+\r
+New Features:\r
+\r
+* [#455](https://github.com/ckeditor/ckeditor-dev/issues/455): Added [Advanced Content Filter](https://docs.ckeditor.com/#!/guide/dev_acf) integration with the [Justify](http://ckeditor.com/addon/justify) plugin.\r
+\r
+Fixed Issues:\r
+\r
+* [#663](https://github.com/ckeditor/ckeditor-dev/issues/663): [Chrome] Fixed: Clicking the scrollbar throws an `Uncaught TypeError: element.is is not a function` error.\r
+* [#694](https://github.com/ckeditor/ckeditor-dev/pull/694): Refactoring in the [Table Selection](http://ckeditor.com/addon/tableselection) plugin:\r
+ * [#520](https://github.com/ckeditor/ckeditor-dev/issues/520): Fixed: Widgets cannot be properly pasted into a table cell.\r
+ * [#460](https://github.com/ckeditor/ckeditor-dev/issues/460): Fixed: Editor gone after pasting into an editor within a table.\r
+* [#579](https://github.com/ckeditor/ckeditor-dev/issues/579): Fixed: Internal `cke_table-faked-selection-table` class is visible in the Stylesheet Classes field of the [Table Properties](http://ckeditor.com/addon/table) dialog.\r
+* [#545](https://github.com/ckeditor/ckeditor-dev/issues/545): [Edge] Fixed: Error thrown when pressing the [Select All](https://ckeditor.com/addon/selectall) button in [Source Mode](http://ckeditor.com/addon/sourcearea).\r
+* [#582](https://github.com/ckeditor/ckeditor-dev/issues/582): Fixed: Double slash in the path to stylesheet needed by the [Table Selection](http://ckeditor.com/addon/tableselection) plugin. Thanks to [Marius Dumitru Florea](https://github.com/mflorea)!\r
+* [#491](https://github.com/ckeditor/ckeditor-dev/issues/491): Fixed: Unnecessary dependency on the [Editor Toolbar](http://ckeditor.com/addon/toolbar) plugin inside the [Notification](http://ckeditor.com/addon/notification) plugin.\r
+* [#646](https://github.com/ckeditor/ckeditor-dev/issues/646): Fixed: Error thrown into the browser console after opening the [Styles Combo](http://ckeditor.com/addon/stylescombo) plugin menu in the editor without any selection.\r
+* [#501](https://github.com/ckeditor/ckeditor-dev/issues/501): Fixed: Double click does not open the dialog for modifying anchors inserted via the [Link](http://ckeditor.com/addon/link) plugin.\r
+* [#9780](https://dev.ckeditor.com/ticket/9780): [IE8-9] Fixed: Clicking inside an empty [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) editor throws an error.\r
+* [#16820](https://dev.ckeditor.com/ticket/16820): [IE10] Fixed: Clicking below a single horizontal rule throws an error.\r
+* [#426](https://github.com/ckeditor/ckeditor-dev/issues/426): Fixed: The [`range.cloneContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents) method selects the whole element when the selection starts at the beginning of that element.\r
+* [#644](https://github.com/ckeditor/ckeditor-dev/issues/644): Fixed: The [`range.extractContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-extractContents) method returns an incorrect result when multiple nodes are selected.\r
+* [#684](https://github.com/ckeditor/ckeditor-dev/issues/684): Fixed: The [`elementPath.contains`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.elementPath-method-contains) method incorrectly excludes the last element instead of root when the `fromTop` parameter is set to `true`.\r
+\r
+Other Changes:\r
+\r
+* Updated the [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) plugin:\r
+ * [#148](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/148): Fixed: SCAYT leaves underlined word after the CKEditor Replace dialog corrects it.\r
+* [#751](https://github.com/ckeditor/ckeditor-dev/issues/751): Added the [`CKEDITOR.dom.nodeList.toArray`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList-method-toArray) method which returns an array representation of a [node list](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList).\r
+\r
+## CKEditor 4.7.1\r
+\r
+New Features:\r
+\r
+* Added a new Mexican Spanish localization. Thanks to [David Alexandro Rodriguez](https://www.transifex.com/user/profile/darsco16/)!\r
+* [#413](https://github.com/ckeditor/ckeditor-dev/issues/413): Added Paste as Plain Text keyboard shortcut to the [Accessibility Help](http://ckeditor.com/addon/a11yhelp) instructions.\r
+\r
+Fixed Issues:\r
+\r
+* [#515](https://github.com/ckeditor/ckeditor-dev/issues/515): [Chrome] Fixed: Mouse actions on CKEditor scrollbar throw an exception when the [Table Selection](http://ckeditor.com/addon/tableselection) plugin is loaded.\r
+* [#493](https://github.com/ckeditor/ckeditor-dev/issues/493): Fixed: Selection started from a nested table causes an error in the browser while scrolling down.\r
+* [#415](https://github.com/ckeditor/ckeditor-dev/issues/415): [Firefox] Fixed: <kbd>Enter</kbd> key breaks the table structure when pressed in a table selection.\r
+* [#457](https://github.com/ckeditor/ckeditor-dev/issues/457): Fixed: Error thrown when deleting content from the editor with no selection.\r
+* [#478](https://github.com/ckeditor/ckeditor-dev/issues/478): [Chrome] Fixed: Error thrown by the [Enter Key](http://ckeditor.com/addon/enterkey) plugin when pressing <kbd>Enter</kbd> with no selection.\r
+* [#424](https://github.com/ckeditor/ckeditor-dev/issues/424): Fixed: Error thrown by [Tab Key Handling](http://ckeditor.com/addon/tab) and [Indent List](http://ckeditor.com/addon/indentlist) plugins when pressing <kbd>Tab</kbd> with no selection in inline editor.\r
+* [#476](https://github.com/ckeditor/ckeditor-dev/issues/476): Fixed: Anchors inserted with the [Link](http://ckeditor.com/addon/link) plugin on collapsed selection cannot be edited.\r
+* [#417](https://github.com/ckeditor/ckeditor-dev/issues/417): Fixed: The [Table Resize](http://ckeditor.com/addon/tableresize) plugin throws an error when used with a table with only header or footer rows.\r
+* [#523](https://github.com/ckeditor/ckeditor-dev/issues/523): Fixed: The [`editor.getCommandKeystroke`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getCommandKeystroke) method does not obtain the correct keystroke.\r
+* [#534](https://github.com/ckeditor/ckeditor-dev/issues/534): [IE] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not work in Quirks Mode.\r
+* [#450](https://github.com/ckeditor/ckeditor-dev/issues/450): Fixed: [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter) incorrectly transforms the `margin` CSS property.\r
+\r
+## CKEditor 4.7\r
+\r
+**Important Notes:**\r
+\r
+* [#13793](http://dev.ckeditor.com/ticket/13793): The [`embed_provider`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-embed_provider) configuration option for the [Media Embed](http://ckeditor.com/addon/embed) and [Semantic Media Embed](http://ckeditor.com/addon/embedsemantic) plugins is no longer preset by default.\r
+* The [UI Color](http://ckeditor.com/addon/uicolor) plugin now uses a custom color picker instead of the `YUI 2.7.0` library which has some known vulnerabilities (it's a security precaution, there was no security issue in CKEditor due to the way it was used).\r
+\r
+New Features:\r
+\r
+* [#16755](http://dev.ckeditor.com/ticket/16755): Added the [Table Selection](http://ckeditor.com/addon/tableselection) plugin that lets you select and manipulate an arbitrary rectangular table fragment (a few cells, a row or a column).\r
+* [#16961](http://dev.ckeditor.com/ticket/16961): Added support for pasting from Microsoft Excel.\r
+* [#13381](http://dev.ckeditor.com/ticket/13381): Dynamic code evaluation call in [`CKEDITOR.template`](http://docs.ckeditor.com/#!/api/CKEDITOR.template) removed. CKEditor can now be used without the `unsafe-eval` Content Security Policy. Thanks to [Caridy Patiño](http://caridy.name)!\r
+* [#16971](http://dev.ckeditor.com/ticket/16971): Added support for color in the `background` property containing also other styles for table cells in the [Table Tools](http://ckeditor.com/addon/tabletools) plugin.\r
+* [#16847](http://dev.ckeditor.com/ticket/16847): Added support for parsing and inlining any formatting created using the Microsoft Word style system to the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.\r
+* [#16818](http://dev.ckeditor.com/ticket/16818): Added table cell height parsing in the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.\r
+* [#16850](http://dev.ckeditor.com/ticket/16850): Added a new [`config.enableContextMenu`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enableContextMenu) configuration option for enabling and disabling the [context menu](http://ckeditor.com/addon/contextmenu).\r
+* [#16937](http://dev.ckeditor.com/ticket/16937): The `command` parameter in [CKEDITOR.editor.getCommandKeystroke](http://docs.ckeditor.dev/#!/api/CKEDITOR.editor-method-getCommandKeystroke) now also accepts a command name as an argument.\r
+* [#17010](http://dev.ckeditor.com/ticket/17010): The [`CKEDITOR.dom.range.shrink`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-shrink) method now allows for skipping bogus `<br>` elements.\r
+\r
+Fixed Issues:\r
+\r
+* [#16935](http://dev.ckeditor.com/ticket/16935): [Chrome] Fixed: Blurring the editor in [Source Mode](http://ckeditor.com/addon/sourcearea) throws an error.\r
+* [#16825](http://dev.ckeditor.com/ticket/16825): [Chrome] Fixed: Error thrown when destroying a focused inline editor.\r
+* [#16857](http://dev.ckeditor.com/ticket/16857): Fixed: <kbd>Ctrl+Shift+V</kbd> blocked by [Copy Formatting](http://ckeditor.com/addon/copyformatting).\r
+* [#16845](https://dev.ckeditor.com/ticket/16845): [IE] Fixed: Cursor jumps to the top of the scrolled editor after focusing it when the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin is enabled.\r
+* [#16786](http://dev.ckeditor.com/ticket/16786): Fixed: Added missing translations for the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin.\r
+* [#14714](http://dev.ckeditor.com/ticket/14714): [WebKit/Blink] Fixed: Exception thrown on refocusing a blurred inline editor.\r
+* [#16913](http://dev.ckeditor.com/ticket/16913): [Firefox, IE] Fixed: [Paste as Plain Text](http://ckeditor.com/addon/pastetext) keystroke does not work.\r
+* [#16968](http://dev.ckeditor.com/ticket/16968): Fixed: [Safari] [Paste as Plain Text](http://ckeditor.com/addon/pastetext) is not handled by the editor.\r
+* [#16912](http://dev.ckeditor.com/ticket/16912): Fixed: Exception thrown when a single image is pasted using [Paste from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16821](http://dev.ckeditor.com/ticket/16821): Fixed: Extraneous `<span>` elements with `height` style stacked when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16866](http://dev.ckeditor.com/ticket/16866): [IE, Edge] Fixed: Whitespaces not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16860](http://dev.ckeditor.com/ticket/16860): Fixed: Paragraphs which only look like lists incorrectly transformed into them when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16817](http://dev.ckeditor.com/ticket/16817): Fixed: When [pasting from Word](http://ckeditor.com/addon/pastefromword), paragraphs are transformed into lists with some corrupted data.\r
+* [#16833](http://dev.ckeditor.com/ticket/16833): [IE11] Fixed: Malformed list with headers [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16826](http://dev.ckeditor.com/ticket/16826): [IE] Fixed: Superfluous paragraphs within lists [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#12465](http://dev.ckeditor.com/ticket/12465): Fixed: Cannot change the state of checkboxes or radio buttons if the properties dialog was invoked with a double-click.\r
+* [#13062](http://dev.ckeditor.com/ticket/13062): Fixed: Impossible to unlink when the caret is at the edge of the link.\r
+* [#13585](http://dev.ckeditor.com/ticket/13585): Fixed: Error when wrapping two adjacent `<div>` elements with a `<div>`.\r
+* [#16811](http://dev.ckeditor.com/ticket/16811): Fixed: Table alignment is not preserved by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.\r
+* [#16810](http://dev.ckeditor.com/ticket/16810): Fixed: Vertical align in tables is not supported by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.\r
+* [#11956](http://dev.ckeditor.com/ticket/11956): [Blink, IE] Fixed: [Link](http://ckeditor.com/addon/link) dialog does not open on a double click on the second word of the link with a background color or other styles.\r
+* [#10472](http://dev.ckeditor.com/ticket/10472): Fixed: Unable to use [Table Resize](http://ckeditor.com/addon/tableresize) on table header and footer.\r
+* [#14762](http://dev.ckeditor.com/ticket/14762): Fixed: Hovering over an empty table (without rows or cells) throws an error when the [Table Resize](http://ckeditor.com/addon/tableresize) plugin is active.\r
+* [#16777](https://dev.ckeditor.com/ticket/16777): [Edge] Fixed: The [Clipboard](http://ckeditor.com/addon/clipboard) plugin does not allow to drop widgets into the editor.\r
+* [#14894](https://dev.ckeditor.com/ticket/14894): [Chrome] Fixed: The editor scrolls to the top after focusing or when a dialog is opened.\r
+* [#14769](https://dev.ckeditor.com/ticket/14769): Fixed: URLs with '-' in host are not detected by the [Auto Link](http://ckeditor.com/addon/autolink) plugin.\r
+* [#16804](https://dev.ckeditor.com/ticket/16804): Fixed: Focus is not on the first menu item when the user opens a context menu or a drop-down list from the editor toolbar.\r
+* [#14407](https://dev.ckeditor.com/ticket/14407): [IE] Fixed: Non-editable widgets can be edited.\r
+* [#16927](https://dev.ckeditor.com/ticket/16927): Fixed: An error thrown if a bundle containing the [Color Button](http://ckeditor.com/addon/colorbutton) plugin is run in ES5 strict mode. Thanks to [Igor Rubinovich](https://github.com/IgorRubinovich)!\r
+* [#16920](http://dev.ckeditor.com/ticket/16920): Fixed: Several plugins not using the [Dialog](http://ckeditor.com/addon/dialog) plugin as a direct dependency.\r
+* [PR#336](https://github.com/ckeditor/ckeditor-dev/pull/336): Fixed: Typo in [`CKEDITOR.getCss`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getCss) API documentation. Thanks to [knusperpixel](https://github.com/knusperpixel)!\r
+* [#17027](http://dev.ckeditor.com/ticket/17027): Fixed: Command event data should be initialized as an empty object.\r
+* Fixed the behavior of HTML parser when parsing `src`/`srcdoc` attributes of the `<iframe>` element in a CKEditor setup with ACF turned off and without the [Iframe Dialog](http://ckeditor.com/addon/iframe) plugin. The issue was originally reported as a security issue by [Sriramk21](https://twitter.com/sriramk21) from Pegasystems and was later downgraded by the security team into a normal issue due to the requirement of having ACF turned off. Disabling [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) is against [security best practices](http://docs.ckeditor.com/#!/guide/dev_best_practices-section-security), so the problem described above has not been considered a security issue as such.\r
+\r
+Other Changes:\r
+\r
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins:\r
+ * Fixed: DOM Exception after clicking "Remove Language" on a selected word with enabled [Language](http://ckeditor.com/addon/language) plugin in SCAYT.\r
+* [#16958](http://dev.ckeditor.com/ticket/16958): Switched the default MathJax CDN provider for the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin from `cdn.mathjax.org` to [cdnjs](https://cdnjs.com/), due to closing of `cdn.mathjax.org` scheduled for April 30, 2017.\r
+* [#16954](http://dev.ckeditor.com/ticket/16954): Removed the paste dialog.\r
+* [#16982](http://dev.ckeditor.com/ticket/16982): Latest Safari now supports enhanced Clipboard API introduced in CKEditor 4.5.0.\r
+* [#17025](http://dev.ckeditor.com/ticket/17025): Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.4.2.\r
+\r
+## CKEditor 4.6.2\r
+\r
+New Features:\r
+\r
+* [#16733](http://dev.ckeditor.com/ticket/16733): Added a new pastel color palette for the [Color Button](http://ckeditor.com/addon/colorbutton) plugin and a new [`config.colorButton_colorsPerRow`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-colorButton_colorsPerRow) configuration option for setting the number of rows in the color selector.\r
+* [#16752](http://dev.ckeditor.com/ticket/16752): Added a new Azerbaijani localization. Thanks to the [Azerbaijani language team](https://www.transifex.com/ckeditor/teams/11143/az/)!\r
+* [#13818](http://dev.ckeditor.com/ticket/13818): It is now possible to group [Widget](http://ckeditor.com/addon/widget) [style definitions](http://docs.ckeditor.com/#!/guide/dev_styles-section-widget-styles), so applying one style disables the other.\r
+\r
+Fixed Issues:\r
+\r
+* [#13446](http://dev.ckeditor.com/ticket/13446): [Chrome] Fixed: It is possible to type in an unfocused inline editor.\r
+* [#14856](http://dev.ckeditor.com/ticket/14856): Fixed: [Font size and font family](http://ckeditor.com/addon/font) reset each other when modified at certain positions.\r
+* [#16745](http://dev.ckeditor.com/ticket/16745): [Edge] Fixed: List items are lost when [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16682](http://dev.ckeditor.com/ticket/16682): [Edge] Fixed: A list gets [pasted from Word](http://ckeditor.com/addon/pastefromword) as a set of paragraphs. Added the [`config.pasteFromWord_heuristicsEdgeList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWord_heuristicsEdgeList) configuration option.\r
+* [#10373](http://dev.ckeditor.com/ticket/10373): Fixed: Context menu items can be dragged into the editor.\r
+* [#16728](http://dev.ckeditor.com/ticket/16728): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Quirks Mode.\r
+* [#16795](http://dev.ckeditor.com/ticket/16795): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Compatibility Mode.\r
+* [#16675](http://dev.ckeditor.com/ticket/16675): Fixed: Styles applied with [Copy Formatting](http://ckeditor.com/addon/copyformatting) to a single table cell are applied to the whole table.\r
+* [#16753](http://dev.ckeditor.com/ticket/16753): Fixed: [`element.setSize`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-setSize) sets incorrect editor dimensions if the border width is represented as a fraction of pixels.\r
+* [#16705](http://dev.ckeditor.com/ticket/16705): [Firefox] Fixed: Unable to paste images as Base64 strings when using [Clipboard](http://ckeditor.com/addon/clipboard).\r
+* [#14869](http://dev.ckeditor.com/ticket/14869): Fixed: JavaScript error is thrown when trying to use [Find](http://ckeditor.com/addon/find) in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).\r
+\r
+## CKEditor 4.6.1\r
+\r
+New Features:\r
+\r
+* [#16639](http://dev.ckeditor.com/ticket/16639): The `callback` parameter in the [CKEDITOR.ajax.post](http://docs.ckeditor.com/#!/api/CKEDITOR.ajax-method-post) method became optional.\r
+\r
+Fixed Issues:\r
+\r
+* [#11064](http://dev.ckeditor.com/ticket/11064): [Blink, WebKit] Fixed: Cannot select all editor content when a widget or a non-editable element is the first or last element of the content. Also fixes this issue in the [Select All](http://ckeditor.com/addon/selectall) plugin.\r
+* [#14755](http://dev.ckeditor.com/ticket/14755): [Blink, WebKit, IE8] Fixed: Browser hangs when a table is inserted in the place of a selected list with an empty last item.\r
+* [#16624](http://dev.ckeditor.com/ticket/16624): Fixed: Improved the [Color Button](http://ckeditor.com/addon/colorbutton) plugin which will now normalize the CSS `background` property if it only contains a color value. This fixes missing background colors when using [Paste from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16600](http://dev.ckeditor.com/ticket/16600): [Blink, WebKit] Fixed: Error thrown occasionally by an uninitialized editable for multiple CKEditor instances on the same page.\r
+\r
+## CKEditor 4.6\r
+\r
+New Features:\r
+\r
+* [#14569](http://dev.ckeditor.com/ticket/14569): Added a new, flat, default CKEditor skin called [Moono-Lisa](http://ckeditor.com/addon/moono-lisa). Refreshed default colors available in the [Color Button](http://ckeditor.com/addon/colorbutton) plugin ([Text Color and Background Color](http://docs.ckeditor.com/#!/guide/dev_colorbutton) feature).\r
+* [#14707](http://dev.ckeditor.com/ticket/14707): Added a new [Copy Formatting](http://ckeditor.com/addon/copyformatting) feature to enable easy copying of styles between your document parts.\r
+* Introduced the completely rewritten [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin:\r
+ * Backward incompatibility: The [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) option now defaults to `false`. This option will be deprecated in the future. Use [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_acf) to replicate the effect of setting it to `true`.\r
+ * Backward incompatibility: The [`config.pasteFromWordNumberedHeadingToList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordNumberedHeadingToList) and [`config.pasteFromWordRemoveStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveStyles) options were dropped and no longer have any effect on pasted content.\r
+ * Major improvements in preservation of list numbering, styling and indentation (nested lists with multiple levels).\r
+ * Major improvements in document structure parsing that fix plenty of issues with distorted or missing content after paste.\r
+* Added new translation: Occitan. Thanks to [Cédric Valmary](https://totenoc.eu/)!\r
+* [#10015](http://dev.ckeditor.com/ticket/10015): Keyboard shortcuts (relevant to the operating system in use) will now be displayed in tooltips and context menus.\r
+* [#13794](http://dev.ckeditor.com/ticket/13794): The [Upload Image](http://ckeditor.com/addon/uploadimage) feature now uses `uploaded.width/height` if set.\r
+* [#12541](http://dev.ckeditor.com/ticket/12541): Added the [Upload File](http://ckeditor.com/addon/uploadfile) plugin that lets you upload a file by drag&dropping it into the editor content.\r
+* [#14449](http://dev.ckeditor.com/ticket/14449): Introduced the [Balloon Panel](http://ckeditor.com/addon/balloonpanel) plugin that lets you create stylish floating UI elements for the editor.\r
+* [#12077](https://dev.ckeditor.com/ticket/12077): Added support for the HTML5 `download` attribute in link (`<a>`) elements. Selecting the "Force Download" checkbox in the [Link](http://ckeditor.com/addon/link) dialog will cause the linked file to be downloaded automatically. Thanks to [sbusse](https://github.com/sbusse)!\r
+* [#13518](http://dev.ckeditor.com/ticket/13518): Introduced the [`additionalRequestParameters`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition-property-additionalRequestParameters) property for file uploads to make it possible to send additional information about the uploaded file to the server.\r
+* [#14889](http://dev.ckeditor.com/ticket/14889): Added the [`config.image2_altRequired`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_altRequired) option for the [Enhanced Image](http://ckeditor.com/addon/image2) plugin to allow making alternative text a mandatory field. Thanks to [Andrey Fedoseev](https://github.com/andreyfedoseev)!\r
+\r
+Fixed Issues:\r
+\r
+* [#9991](http://dev.ckeditor.com/ticket/9991): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) should only normalize input data.\r
+* [#7209](http://dev.ckeditor.com/ticket/7209): Fixed: Lists with 3 levels not [pasted from Word](http://ckeditor.com/addon/pastefromword) correctly.\r
+* [#14335](http://dev.ckeditor.com/ticket/14335): Fixed: Pasting a numbered list starting with a value different from "1" from Microsoft Word does not work correctly.\r
+* [#14542](http://dev.ckeditor.com/ticket/14542): Fixed: Copying a numbered list from Microsoft Word does not preserve list formatting.\r
+* [#14544](http://dev.ckeditor.com/ticket/14544): Fixed: Copying a nested list from Microsoft Word results in an empty list.\r
+* [#14660](http://dev.ckeditor.com/ticket/14660): Fixed: [Pasting text from Word](http://ckeditor.com/addon/pastefromword) breaks the styling in some cases.\r
+* [#14867](http://dev.ckeditor.com/ticket/14867): [Firefox] Fixed: Text gets stripped when [pasting content from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#2507](http://dev.ckeditor.com/ticket/2507): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not detect pasting a part of a paragraph.\r
+* [#3336](http://dev.ckeditor.com/ticket/3336): Fixed: Extra blank row added on top of the content [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#6115](http://dev.ckeditor.com/ticket/6115): Fixed: When Right-to-Left text direction is applied to a table [pasted from Word](http://ckeditor.com/addon/pastefromword), borders are missing on one side.\r
+* [#6342](http://dev.ckeditor.com/ticket/6342): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) filters out a basic text style when it is [configured to use attributes](http://docs.ckeditor.com/#!/guide/dev_basicstyles-section-custom-basic-text-style-definition).\r
+* [#6457](http://dev.ckeditor.com/ticket/6457): [IE] Fixed: [Pasting from Word](http://ckeditor.com/addon/pastefromword) is extremely slow.\r
+* [#6789](http://dev.ckeditor.com/ticket/6789): Fixed: The `mso-list: ignore` style is not handled properly when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#7262](http://dev.ckeditor.com/ticket/7262): Fixed: Lists in preformatted body disappear when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#7662](http://dev.ckeditor.com/ticket/7662): [Opera] Fixed: Extra empty number/bullet shown in the editor body when editing a multi-level list [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#7807](http://dev.ckeditor.com/ticket/7807): Fixed: Last item in a list not converted to a `<li>` element after [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#7950](http://dev.ckeditor.com/ticket/7950): [IE] Fixed: Content [from Word pasted](http://ckeditor.com/addon/pastefromword) differently than in other browsers.\r
+* [#7982](http://dev.ckeditor.com/ticket/7982): Fixed: Multi-level lists get split into smaller ones when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#8231](http://dev.ckeditor.com/ticket/8231): [WebKit, Opera] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts empty paragraphs.\r
+* [#8266](http://dev.ckeditor.com/ticket/8266): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts a blank line at the top.\r
+* [#8341](http://dev.ckeditor.com/ticket/8341), [#7646](http://dev.ckeditor.com/ticket/7646): Fixed: Faulty removal of empty `<span>` elements in [Paste from Word](http://ckeditor.com/addon/pastefromword) content cleanup breaking content formatting.\r
+* [#8754](http://dev.ckeditor.com/ticket/8754): [Firefox] Fixed: Incorrect pasting of multiple nested lists in [Paste from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#8983](http://dev.ckeditor.com/ticket/8983): Fixed: Alignment lost when [pasting from Word](http://ckeditor.com/addon/pastefromword) with [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) set to [`CKEDITOR.ENTER_BR`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-ENTER_BR).\r
+* [#9331](http://dev.ckeditor.com/ticket/9331): [IE] Fixed: [Pasting text from Word](http://ckeditor.com/addon/pastefromword) creates a simple Caesar cipher.\r
+* [#9422](http://dev.ckeditor.com/ticket/9422): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) leaves an unwanted `color:windowtext` style.\r
+* [#10011](http://dev.ckeditor.com/ticket/10011): [IE9-10] Fixed: [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) is ignored under certain conditions.\r
+* [#10643](http://dev.ckeditor.com/ticket/10643): Fixed: Differences between using <kbd>Ctrl+V</kbd> and pasting from the [Paste from Word](http://ckeditor.com/addon/pastefromword) dialog.\r
+* [#10784](http://dev.ckeditor.com/ticket/10784): Fixed: Lines missing when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#11294](http://dev.ckeditor.com/ticket/11294): [IE10] Fixed: Font size is not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#11627](http://dev.ckeditor.com/ticket/11627): Fixed: Missing words when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#12784](http://dev.ckeditor.com/ticket/12784): Fixed: Bulleted list with custom bullets gets changed to a numbered list when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#13174](http://dev.ckeditor.com/ticket/13174): Fixed: Data loss after [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#13828](http://dev.ckeditor.com/ticket/13828): Fixed: Widget classes should be added to the wrapper rather than the widget element.\r
+* [#13829](http://dev.ckeditor.com/ticket/13829): Fixed: No class in [Widget](http://ckeditor.com/addon/widget) wrapper to identify the widget type.\r
+* [#13519](http://dev.ckeditor.com/ticket/13519): Server response received when uploading files should be more flexible.\r
+\r
+Other Changes:\r
+\r
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins:\r
+ * Support for the new default Moono-Lisa skin.\r
+ * [#121](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/121): Fixed: [Basic Styles](http://ckeditor.com/addon/basicstyles) do not work when SCAYT is enabled.\r
+ * [#125](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/125): Fixed: Inline styles are not continued when writing multiple lines of styled text with SCAYT enabled.\r
+ * [#127](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/127): Fixed: Uncaught TypeError after enabling SCAYT in the CKEditor `<div>` element.\r
+ * [#128](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/128): Fixed: Error thrown after enabling SCAYT caused by conflicts with RequireJS.\r
+\r
+## CKEditor 4.5.11\r
+\r
+**Security Updates:**\r
+\r
+* [Severity: minor] Fixed the `target="_blank"` vulnerability reported by James Gaskell.\r
+\r
+ Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL.\r
+\r
+ An upgrade is recommended.\r
+\r
+New Features:\r
+\r
+* [#14747](http://dev.ckeditor.com/ticket/14747): The [Enhanced Image](http://ckeditor.com/addon/image2) caption now supports the link `target` attribute.\r
+* [#7154](http://dev.ckeditor.com/ticket/7154): Added support for the "Display Text" field to the [Link](http://ckeditor.com/addon/link) dialog. Thanks to [Ryan Guill](https://github.com/ryanguill)!\r
+\r
+Fixed Issues:\r
+\r
+* [#13362](http://dev.ckeditor.com/ticket/13362): [Blink, WebKit] Fixed: Active widget element is not cached when it is losing focus and it is inside an editable element.\r
+* [#13755](http://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images does not work.\r
+* [#13548](http://dev.ckeditor.com/ticket/13548): [IE] Fixed: Clicking the [elements path](http://ckeditor.com/addon/elementspath) disables Cut and Copy icons.\r
+* [#13812](http://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left.\r
+* [#14659](http://dev.ckeditor.com/ticket/14659): [Blink] Fixed: Content scrolled to the top after closing the dialog in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).\r
+* [#14825](http://dev.ckeditor.com/ticket/14825): [Edge] Fixed: Focusing the editor causes unwanted scrolling due to dropped support for the `setActive` method.\r
+\r
+## CKEditor 4.5.10\r
+\r
+Fixed Issues:\r
+\r
+* [#10750](http://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names.\r
+* [#14413](http://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](http://ckeditor.com/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible.\r
+* [#14451](http://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)!\r
+* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!\r
+* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget.\r
+* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](http://ckeditor.com/addon/image2) and [Placeholder](http://ckeditor.com/addon/placeholder) widgets.\r
+* [#14667](http://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph.\r
+* [#14252](http://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line.\r
+* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically.\r
+\r
+## CKEditor 4.5.9\r
+\r
+Fixed Issues:\r
+\r
+* [#10685](http://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor-dev/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor-dev](https://github.com/ckeditor/ckeditor-dev) and [6c9189f4](https://github.com/ckeditor/ckeditor-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor-presets](https://github.com/ckeditor/ckeditor-presets).\r
+* [#14573](https://dev.ckeditor.com/ticket/14573): Fixed: Missing [Widget](http://ckeditor.com/addon/widget) drag handler CSS when there are multiple editor instances.\r
+* [#14620](https://dev.ckeditor.com/ticket/14620): Fixed: Setting both the `min-height` style for the `<body>` element and the `height` style for the `<html>` element breaks the [Auto Grow](http://ckeditor.com/addon/autogrow) plugin.\r
+* [#14538](http://dev.ckeditor.com/ticket/14538): Fixed: Keyboard focus goes into an embedded `<iframe>` element.\r
+* [#14602](http://dev.ckeditor.com/ticket/14602): Fixed: The [`dom.element.removeAttribute()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeAttribute) method does not remove all attributes if no parameter is given.\r
+* [#8679](http://dev.ckeditor.com/ticket/8679): Fixed: Better focus indication and ability to style the selected color in the [color picker dialog](http://ckeditor.com/addon/colordialog).\r
+* [#11697](http://dev.ckeditor.com/ticket/11697): Fixed: Content is replaced ignoring the letter case setting in the [Find and Replace](http://ckeditor.com/addon/find) dialog window.\r
+* [#13886](http://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) instance with the `styles` property by [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).\r
+* [#14535](http://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)!\r
+\r
## CKEditor 4.5.8\r
\r
New Features:\r
* Notification system:\r
* [#11580](http://dev.ckeditor.com/ticket/11580): Introduced the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification).\r
* [#12810](http://dev.ckeditor.com/ticket/12810): Introduced a [notification aggregator](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notificationAggregator) for the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification) which simplifies displaying progress of many concurrent tasks.\r
-* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it — [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.deleteSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml).\r
+* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it — [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.extractSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-extractSelectedHtml).\r
* [#12416](http://dev.ckeditor.com/ticket/12416): Added the [`widget.definition.upcastPriority`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-upcastPriority) property which gives more control over widget upcasting order to the widget author.\r
* [#12036](http://dev.ckeditor.com/ticket/12036): Initialize the editor in [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) mode when the `<textarea>` element has a `readonly` attribute.\r
* [#11905](http://dev.ckeditor.com/ticket/11905): The [`resize` event](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-resize) passes the current dimensions in its data.\r
==========================\r
\r
CKEditor - The text editor for Internet - http://ckeditor.com\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
\r
Licensed under the terms of any of the following licenses at your\r
choice:\r
\r
The following libraries are included in CKEditor under the MIT license (see Appendix D):\r
\r
-* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2016, CKSource - Frederico Knabben.\r
+* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2017, CKSource - Frederico Knabben.\r
* PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca.\r
* CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others.\r
\r
CKEditor 4
==========
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
http://ckeditor.com - See LICENSE.md for license information.
CKEditor is a text editor to be used inside web pages. It's not a replacement
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},
/*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"G2VC",version:"4.5.8",revision:"c1fc9a9",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var k=c[d].src.match(a);if(k){b=k[1];break}}-1==b.indexOf(":/")&&"//"!=b.slice(0,2)&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+
+(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"H8DA",version:"4.7.3",revision:"dee99e2",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var k=c[d].src.match(a);if(k){b=k[1];break}}-1==b.indexOf(":/")&&"//"!=b.slice(0,2)&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+
b:location.href.match(/^[^\?]*\/(?:)/)[0]+b);if(!b)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return b}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&"/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a)&&(a+=(0<=a.indexOf("?")?"\x26":"?")+"t\x3d"+this.timestamp);return a},domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",
-a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(c){}}function b(){for(var a;a=c.shift();)a()}var c=[];return function(b){function d(){try{document.documentElement.doScroll("left")}catch(f){setTimeout(d,1);return}a()}c.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",
-a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(w){}document.documentElement.doScroll&&b&&d()}}}()},b=window.CKEDITOR_GETURL;if(b){var c=d.getUrl;d.getUrl=function(a){return b.call(d,a)||c.call(d,a)}}return d}());
+a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(c){}}function b(){for(var a;a=c.shift();)a()}var c=[];return function(b){function n(){try{document.documentElement.doScroll("left")}catch(f){setTimeout(n,1);return}a()}c.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",
+a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(q){}document.documentElement.doScroll&&b&&n()}}}()},b=window.CKEDITOR_GETURL;if(b){var c=d.getUrl;d.getUrl=function(a){return b.call(d,a)||c.call(d,a)}}return d}());
CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(a){var d=CKEDITOR.event.prototype,b;for(b in d)null==a[b]&&(a[b]=d[b])},CKEDITOR.event.prototype=function(){function a(a){var e=d(this);return e[a]||(e[a]=new b(a))}var d=function(a){a=a.getPrivate&&a.getPrivate()||a._||(a._={});return a.events||(a.events={})},b=function(a){this.name=a;this.listeners=[]};b.prototype={getListenerIndex:function(a){for(var b=0,d=this.listeners;b<d.length;b++)if(d[b].fn==a)return b;return-1}};
-return{define:function(b,d){var g=a.call(this,b);CKEDITOR.tools.extend(g,d,!0)},on:function(b,d,g,l,k){function n(a,f,x,k){a={name:b,sender:this,editor:a,data:f,listenerData:l,stop:x,cancel:k,removeListener:w};return!1===d.call(g,a)?!1:a.data}function w(){x.removeListener(b,d)}var f=a.call(this,b);if(0>f.getListenerIndex(d)){f=f.listeners;g||(g=this);isNaN(k)&&(k=10);var x=this;n.fn=d;n.priority=k;for(var A=f.length-1;0<=A;A--)if(f[A].priority<=k)return f.splice(A+1,0,n),{removeListener:w};f.unshift(n)}return{removeListener:w}},
-once:function(){var a=Array.prototype.slice.call(arguments),b=a[1];a[1]=function(a){a.removeListener();return b.apply(this,arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,b=function(){a=1},g=0,l=function(){g=1};return function(k,n,w){var f=d(this)[k];k=a;var x=g;a=g=0;if(f){var A=f.listeners;if(A.length)for(var A=A.slice(0),u,B=0;B<A.length;B++){if(f.errorProof)try{u=
-A[B].call(this,w,n,b,l)}catch(q){}else u=A[B].call(this,w,n,b,l);!1===u?g=1:"undefined"!=typeof u&&(n=u);if(a||g)break}}n=g?!1:"undefined"==typeof n?!0:n;a=k;g=x;return n}}(),fireOnce:function(a,b,g){b=this.fire(a,b,g);delete d(this)[a];return b},removeListener:function(a,b){var g=d(this)[a];if(g){var l=g.getListenerIndex(b);0<=l&&g.listeners.splice(l,1)}},removeAllListeners:function(){var a=d(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=d(this)[a])&&0<a.listeners.length}}}());
+return{define:function(b,d){var g=a.call(this,b);CKEDITOR.tools.extend(g,d,!0)},on:function(b,d,g,h,k){function n(a,f,D,k){a={name:b,sender:this,editor:a,data:f,listenerData:h,stop:D,cancel:k,removeListener:q};return!1===d.call(g,a)?!1:a.data}function q(){D.removeListener(b,d)}var f=a.call(this,b);if(0>f.getListenerIndex(d)){f=f.listeners;g||(g=this);isNaN(k)&&(k=10);var D=this;n.fn=d;n.priority=k;for(var w=f.length-1;0<=w;w--)if(f[w].priority<=k)return f.splice(w+1,0,n),{removeListener:q};f.unshift(n)}return{removeListener:q}},
+once:function(){var a=Array.prototype.slice.call(arguments),b=a[1];a[1]=function(a){a.removeListener();return b.apply(this,arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,b=function(){a=1},g=0,h=function(){g=1};return function(k,n,q){var f=d(this)[k];k=a;var D=g;a=g=0;if(f){var w=f.listeners;if(w.length)for(var w=w.slice(0),A,G=0;G<w.length;G++){if(f.errorProof)try{A=
+w[G].call(this,q,n,b,h)}catch(x){}else A=w[G].call(this,q,n,b,h);!1===A?g=1:"undefined"!=typeof A&&(n=A);if(a||g)break}}n=g?!1:"undefined"==typeof n?!0:n;a=k;g=D;return n}}(),fireOnce:function(a,b,g){b=this.fire(a,b,g);delete d(this)[a];return b},removeListener:function(a,b){var g=d(this)[a];if(g){var h=g.getListenerIndex(b);0<=h&&g.listeners.splice(h,1)}},removeAllListeners:function(){var a=d(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=d(this)[a])&&0<a.listeners.length}}}());
CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,d){a in{instanceReady:1,loaded:1}&&(this[a]=!0);return CKEDITOR.event.prototype.fire.call(this,a,d,this)},CKEDITOR.editor.prototype.fireOnce=function(a,d){a in{instanceReady:1,loaded:1}&&(this[a]=!0);return CKEDITOR.event.prototype.fireOnce.call(this,a,d,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));
CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),d=a.match(/edge[ \/](\d+.?\d*)/),b=-1<a.indexOf("trident/"),b=!(!d&&!b),b={ie:b,edge:!!d,webkit:!b&&-1<a.indexOf(" applewebkit/"),air:-1<a.indexOf(" adobeair/"),mac:-1<a.indexOf("macintosh"),quirks:"BackCompat"==document.compatMode&&(!document.documentMode||10>document.documentMode),mobile:-1<a.indexOf("mobile"),iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return!1;var a=document.domain,b=window.location.hostname;
return a!=b&&a!="["+b+"]"},secure:"https:"==location.protocol};b.gecko="Gecko"==navigator.product&&!b.webkit&&!b.ie;b.webkit&&(-1<a.indexOf("chrome")?b.chrome=!0:b.safari=!0);var c=0;b.ie&&(c=d?parseFloat(d[1]):b.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode,b.ie9Compat=9==c,b.ie8Compat=8==c,b.ie7Compat=7==c,b.ie6Compat=7>c||b.quirks);b.gecko&&(d=a.match(/rv:([\d\.]+)/))&&(d=d[1].split("."),c=1E4*d[0]+100*(d[1]||0)+1*(d[2]||0));b.air&&(c=parseFloat(a.match(/ adobeair\/(\d+)/)[1]));
CKEDITOR.loadFullCore,d=CKEDITOR.loadFullCoreTimeout;a&&(CKEDITOR.status="basic_ready",a&&a._load?a():d&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},1E3*d))})})();CKEDITOR.status="basic_loaded"}();"use strict";CKEDITOR.VERBOSITY_WARN=1;CKEDITOR.VERBOSITY_ERROR=2;CKEDITOR.verbosity=CKEDITOR.VERBOSITY_WARN|CKEDITOR.VERBOSITY_ERROR;CKEDITOR.warn=function(a,d){CKEDITOR.verbosity&CKEDITOR.VERBOSITY_WARN&&CKEDITOR.fire("log",{type:"warn",errorCode:a,additionalData:d})};
CKEDITOR.error=function(a,d){CKEDITOR.verbosity&CKEDITOR.VERBOSITY_ERROR&&CKEDITOR.fire("log",{type:"error",errorCode:a,additionalData:d})};
CKEDITOR.on("log",function(a){if(window.console&&window.console.log){var d=console[a.data.type]?a.data.type:"log",b=a.data.errorCode;if(a=a.data.additionalData)console[d]("[CKEDITOR] Error code: "+b+".",a);else console[d]("[CKEDITOR] Error code: "+b+".");console[d]("[CKEDITOR] For more information about this error go to http://docs.ckeditor.com/#!/guide/dev_errors-section-"+b)}},null,null,999);CKEDITOR.dom={};
-(function(){var a=[],d=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",b=/&/g,c=/>/g,e=/</g,g=/"/g,l=/&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,k={lt:"\x3c",gt:"\x3e",amp:"\x26",quot:'"',nbsp:" ",shy:""},n=function(a,f){return"#"==f[0]?String.fromCharCode(parseInt(f.slice(1),10)):k[f]};CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(a,f){if(!a&&!f)return!0;if(!a||!f||a.length!=f.length)return!1;for(var b=0;b<a.length;b++)if(a[b]!=f[b])return!1;
+(function(){var a=[],d=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",b=/&/g,c=/>/g,e=/</g,g=/"/g,h=/&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,k={lt:"\x3c",gt:"\x3e",amp:"\x26",quot:'"',nbsp:" ",shy:""},n=function(a,f){return"#"==f[0]?String.fromCharCode(parseInt(f.slice(1),10)):k[f]};CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(a,f){if(!a&&!f)return!0;if(!a||!f||a.length!=f.length)return!1;for(var b=0;b<a.length;b++)if(a[b]!=f[b])return!1;
return!0},getIndex:function(a,f){for(var b=0;b<a.length;++b)if(f(a[b]))return b;return-1},clone:function(a){var f;if(a&&a instanceof Array){f=[];for(var b=0;b<a.length;b++)f[b]=CKEDITOR.tools.clone(a[b]);return f}if(null===a||"object"!=typeof a||a instanceof String||a instanceof Number||a instanceof Boolean||a instanceof Date||a instanceof RegExp||a.nodeType||a.window===a)return a;f=new a.constructor;for(b in a)f[b]=CKEDITOR.tools.clone(a[b]);return f},capitalize:function(a,f){return a.charAt(0).toUpperCase()+
-(f?a.slice(1):a.slice(1).toLowerCase())},extend:function(a){var f=arguments.length,b,c;"boolean"==typeof(b=arguments[f-1])?f--:"boolean"==typeof(b=arguments[f-2])&&(c=arguments[f-1],f-=2);for(var k=1;k<f;k++){var d=arguments[k],q;for(q in d)if(!0===b||null==a[q])if(!c||q in c)a[q]=d[q]}return a},prototypedCopy:function(a){var f=function(){};f.prototype=a;return new f},copy:function(a){var f={},b;for(b in a)f[b]=a[b];return f},isArray:function(a){return"[object Array]"==Object.prototype.toString.call(a)},
+(f?a.slice(1):a.slice(1).toLowerCase())},extend:function(a){var f=arguments.length,b,c;"boolean"==typeof(b=arguments[f-1])?f--:"boolean"==typeof(b=arguments[f-2])&&(c=arguments[f-1],f-=2);for(var k=1;k<f;k++){var d=arguments[k],n;for(n in d)if(!0===b||null==a[n])if(!c||n in c)a[n]=d[n]}return a},prototypedCopy:function(a){var f=function(){};f.prototype=a;return new f},copy:function(a){var f={},b;for(b in a)f[b]=a[b];return f},isArray:function(a){return"[object Array]"==Object.prototype.toString.call(a)},
isEmpty:function(a){for(var f in a)if(a.hasOwnProperty(f))return!1;return!0},cssVendorPrefix:function(a,f,b){if(b)return d+a+":"+f+";"+a+":"+f;b={};b[a]=f;b[d+a]=f;return b},cssStyleToDomStyle:function(){var a=document.createElement("div").style,f="undefined"!=typeof a.cssFloat?"cssFloat":"undefined"!=typeof a.styleFloat?"styleFloat":"float";return function(a){return"float"==a?f:a.replace(/-./g,function(a){return a.substr(1).toUpperCase()})}}(),buildStyleHtml:function(a){a=[].concat(a);for(var f,
-b=[],c=0;c<a.length;c++)if(f=a[c])/@import|[{}]/.test(f)?b.push("\x3cstyle\x3e"+f+"\x3c/style\x3e"):b.push('\x3clink type\x3d"text/css" rel\x3dstylesheet href\x3d"'+f+'"\x3e');return b.join("")},htmlEncode:function(a){return void 0===a||null===a?"":String(a).replace(b,"\x26amp;").replace(c,"\x26gt;").replace(e,"\x26lt;")},htmlDecode:function(a){return a.replace(l,n)},htmlEncodeAttr:function(a){return CKEDITOR.tools.htmlEncode(a).replace(g,"\x26quot;")},htmlDecodeAttr:function(a){return CKEDITOR.tools.htmlDecode(a)},
-transformPlainTextToHtml:function(a,f){var b=f==CKEDITOR.ENTER_BR,c=this.htmlEncode(a.replace(/\r\n/g,"\n")),c=c.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;"),k=f==CKEDITOR.ENTER_P?"p":"div";if(!b){var d=/\n{2}/g;if(d.test(c))var q="\x3c"+k+"\x3e",n="\x3c/"+k+"\x3e",c=q+c.replace(d,function(){return n+q})+n}c=c.replace(/\n/g,"\x3cbr\x3e");b||(c=c.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/"+k+"\x3e)"),function(a){return CKEDITOR.tools.repeat(a,2)}));c=c.replace(/^ | $/g,"\x26nbsp;");return c=c.replace(/(>|\s) /g,
+b=[],c=0;c<a.length;c++)if(f=a[c])/@import|[{}]/.test(f)?b.push("\x3cstyle\x3e"+f+"\x3c/style\x3e"):b.push('\x3clink type\x3d"text/css" rel\x3dstylesheet href\x3d"'+f+'"\x3e');return b.join("")},htmlEncode:function(a){return void 0===a||null===a?"":String(a).replace(b,"\x26amp;").replace(c,"\x26gt;").replace(e,"\x26lt;")},htmlDecode:function(a){return a.replace(h,n)},htmlEncodeAttr:function(a){return CKEDITOR.tools.htmlEncode(a).replace(g,"\x26quot;")},htmlDecodeAttr:function(a){return CKEDITOR.tools.htmlDecode(a)},
+transformPlainTextToHtml:function(a,f){var b=f==CKEDITOR.ENTER_BR,c=this.htmlEncode(a.replace(/\r\n/g,"\n")),c=c.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;"),k=f==CKEDITOR.ENTER_P?"p":"div";if(!b){var d=/\n{2}/g;if(d.test(c))var n="\x3c"+k+"\x3e",m="\x3c/"+k+"\x3e",c=n+c.replace(d,function(){return m+n})+m}c=c.replace(/\n/g,"\x3cbr\x3e");b||(c=c.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/"+k+"\x3e)"),function(a){return CKEDITOR.tools.repeat(a,2)}));c=c.replace(/^ | $/g,"\x26nbsp;");return c=c.replace(/(>|\s) /g,
function(a,f){return f+"\x26nbsp;"}).replace(/ (?=<)/g,"\x26nbsp;")},getNextNumber:function(){var a=0;return function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},getUniqueId:function(){for(var a="e",f=0;8>f;f++)a+=Math.floor(65536*(1+Math.random())).toString(16).substring(1);return a},override:function(a,f){var b=f(a);b.prototype=a.prototype;return b},setTimeout:function(a,f,b,c,k){k||(k=window);b||(b=k);return k.setTimeout(function(){c?a.apply(b,[].concat(c)):a.apply(b)},
-f||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(f){return f.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(f){return f.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(f){return f.replace(a,"")}}(),indexOf:function(a,f){if("function"==typeof f)for(var b=0,c=a.length;b<c;b++){if(f(a[b]))return b}else{if(a.indexOf)return a.indexOf(f);b=0;for(c=a.length;b<c;b++)if(a[b]===f)return b}return-1},search:function(a,b){var c=CKEDITOR.tools.indexOf(a,
-b);return 0<=c?a[c]:null},bind:function(a,b){return function(){return a.apply(b,arguments)}},createClass:function(a){var b=a.$,c=a.base,k=a.privates||a._,d=a.proto;a=a.statics;!b&&(b=function(){c&&this.base.apply(this,arguments)});if(k)var n=b,b=function(){var a=this._||(this._={}),b;for(b in k){var f=k[b];a[b]="function"==typeof f?CKEDITOR.tools.bind(f,this):f}n.apply(this,arguments)};c&&(b.prototype=this.prototypedCopy(c.prototype),b.prototype.constructor=b,b.base=c,b.baseProto=c.prototype,b.prototype.base=
-function(){this.base=c.prototype.base;c.apply(this,arguments);this.base=arguments.callee});d&&this.extend(b.prototype,d,!0);a&&this.extend(b,a,!0);return b},addFunction:function(b,f){return a.push(function(){return b.apply(f||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var f=a[b];return f&&f.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,b;return function(c){b=CKEDITOR.tools.trim(c+"")+"px";return a.test(b)?
-b:c||""}}(),convertToPx:function(){var a;return function(b){a||(a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"\x3e\x3c/div\x3e',CKEDITOR.document),CKEDITOR.document.getBody().append(a));return/%$/.test(b)?b:(a.setStyle("width",b),a.$.clientWidth)}}(),repeat:function(a,b){return Array(b+1).join(a)},tryThese:function(){for(var a,b=0,c=arguments.length;b<c;b++){var k=arguments[b];try{a=k();break}catch(d){}}return a},
-genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(a){return function(){var b=arguments,c=this;window.setTimeout(function(){a.apply(c,b)},0)}},normalizeCssText:function(a,b){var c=[],k,d=CKEDITOR.tools.parseCssText(a,!0,b);for(k in d)c.push(k+":"+d[k]);c.sort();return c.length?c.join(";")+";":""},convertRgbToHex:function(a){return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(a,b,c,k){a=[b,c,k];for(b=0;3>b;b++)a[b]=("0"+parseInt(a[b],10).toString(16)).slice(-2);
-return"#"+a.join("")})},parseCssText:function(a,b,c){var k={};c&&(c=new CKEDITOR.dom.element("span"),c.setAttribute("style",a),a=CKEDITOR.tools.convertRgbToHex(c.getAttribute("style")||""));if(!a||";"==a)return k;a.replace(/"/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,d){b&&(c=c.toLowerCase(),"font-family"==c&&(d=d.toLowerCase().replace(/["']/g,"").replace(/\s*,\s*/g,",")),d=CKEDITOR.tools.trim(d));k[c]=d});return k},writeCssText:function(a,b){var c,k=[];for(c in a)k.push(c+
-":"+a[c]);b&&k.sort();return k.join("; ")},objectCompare:function(a,b,c){var k;if(!a&&!b)return!0;if(!a||!b)return!1;for(k in a)if(a[k]!=b[k])return!1;if(!c)for(k in b)if(a[k]!=b[k])return!1;return!0},objectKeys:function(a){var b=[],c;for(c in a)b.push(c);return b},convertArrayToObject:function(a,b){var c={};1==arguments.length&&(b=!0);for(var k=0,d=a.length;k<d;++k)c[a[k]]=b;return c},fixDomain:function(){for(var a;;)try{a=window.parent.document.domain;break}catch(b){a=a?a.replace(/.+?(?:\.|$)/,
-""):document.domain;if(!a)break;document.domain=a}return!!a},eventsBuffer:function(a,b,c){function k(){n=(new Date).getTime();d=!1;c?b.call(c):b()}var d,n=0;return{input:function(){if(!d){var b=(new Date).getTime()-n;b<a?d=setTimeout(k,a-b):k()}},reset:function(){d&&clearTimeout(d);d=n=0}}},enableHtml5Elements:function(a,b){for(var c="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),
-k=c.length,d;k--;)d=a.createElement(c[k]),b&&a.appendChild(d)},checkIfAnyArrayItemMatches:function(a,b){for(var c=0,k=a.length;c<k;++c)if(a[c].match(b))return!0;return!1},checkIfAnyObjectPropertyMatches:function(a,b){for(var c in a)if(c.match(b))return!0;return!1},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(a){a=a.toLowerCase();for(var b=document.cookie.split(";"),c,k,d=0;d<b.length;d++)if(c=b[d].split("\x3d"),
-k=decodeURIComponent(CKEDITOR.tools.trim(c[0]).toLowerCase()),k===a)return decodeURIComponent(1<c.length?c[1]:"");return null},setCookie:function(a,b){document.cookie=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)+";path\x3d/"},getCsrfToken:function(){var a=CKEDITOR.tools.getCookie("ckCsrfToken");if(!a||40!=a.length){var a=[],b="";if(window.crypto&&window.crypto.getRandomValues)a=new Uint8Array(40),window.crypto.getRandomValues(a);else for(var c=0;40>c;c++)a.push(Math.floor(256*Math.random()));
-for(c=0;c<a.length;c++)var k="abcdefghijklmnopqrstuvwxyz0123456789".charAt(a[c]%36),b=b+(.5<Math.random()?k.toUpperCase():k);a=b;CKEDITOR.tools.setCookie("ckCsrfToken",a)}return a}}})();
-CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,d=function(a,b){for(var c=CKEDITOR.tools.clone(a),k=1;k<arguments.length;k++){b=arguments[k];for(var d in b)delete c[d]}return c},b={},c={},e={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},g={command:1,link:1,meta:1,noscript:1,script:1,style:1},l={},k={"#":1},n={center:1,dir:1,noframes:1};
+f||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(f){return f.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(f){return f.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(f){return f.replace(a,"")}}(),indexOf:function(a,f){if("function"==typeof f)for(var b=0,c=a.length;b<c;b++){if(f(a[b]))return b}else{if(a.indexOf)return a.indexOf(f);b=0;for(c=a.length;b<c;b++)if(a[b]===f)return b}return-1},search:function(a,f){var b=CKEDITOR.tools.indexOf(a,
+f);return 0<=b?a[b]:null},bind:function(a,f){return function(){return a.apply(f,arguments)}},createClass:function(a){var f=a.$,b=a.base,c=a.privates||a._,k=a.proto;a=a.statics;!f&&(f=function(){b&&this.base.apply(this,arguments)});if(c)var d=f,f=function(){var a=this._||(this._={}),f;for(f in c){var b=c[f];a[f]="function"==typeof b?CKEDITOR.tools.bind(b,this):b}d.apply(this,arguments)};b&&(f.prototype=this.prototypedCopy(b.prototype),f.prototype.constructor=f,f.base=b,f.baseProto=b.prototype,f.prototype.base=
+function(){this.base=b.prototype.base;b.apply(this,arguments);this.base=arguments.callee});k&&this.extend(f.prototype,k,!0);a&&this.extend(f,a,!0);return f},addFunction:function(b,f){return a.push(function(){return b.apply(f||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var f=a[b];return f&&f.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,f;return function(b){f=CKEDITOR.tools.trim(b+"")+"px";return a.test(f)?
+f:b||""}}(),convertToPx:function(){var a;return function(f){a||(a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"\x3e\x3c/div\x3e',CKEDITOR.document),CKEDITOR.document.getBody().append(a));return/%$/.test(f)?f:(a.setStyle("width",f),a.$.clientWidth)}}(),repeat:function(a,f){return Array(f+1).join(a)},tryThese:function(){for(var a,f=0,b=arguments.length;f<b;f++){var c=arguments[f];try{a=c();break}catch(k){}}return a},
+genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(a){return function(){var f=arguments,b=this;window.setTimeout(function(){a.apply(b,f)},0)}},normalizeCssText:function(a,f){var b=[],c,k=CKEDITOR.tools.parseCssText(a,!0,f);for(c in k)b.push(c+":"+k[c]);b.sort();return b.length?b.join(";")+";":""},convertRgbToHex:function(a){return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(a,b,c,k){a=[b,c,k];for(b=0;3>b;b++)a[b]=("0"+parseInt(a[b],10).toString(16)).slice(-2);
+return"#"+a.join("")})},normalizeHex:function(a){return a.replace(/#(([0-9a-f]{3}){1,2})($|;|\s+)/gi,function(a,b,c,k){a=b.toLowerCase();3==a.length&&(a=a.split(""),a=[a[0],a[0],a[1],a[1],a[2],a[2]].join(""));return"#"+a+k})},parseCssText:function(a,f,b){var c={};b&&(a=(new CKEDITOR.dom.element("span")).setAttribute("style",a).getAttribute("style")||"");a&&(a=CKEDITOR.tools.normalizeHex(CKEDITOR.tools.convertRgbToHex(a)));if(!a||";"==a)return c;a.replace(/"/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,
+function(a,b,k){f&&(b=b.toLowerCase(),"font-family"==b&&(k=k.replace(/\s*,\s*/g,",")),k=CKEDITOR.tools.trim(k));c[b]=k});return c},writeCssText:function(a,f){var b,c=[];for(b in a)c.push(b+":"+a[b]);f&&c.sort();return c.join("; ")},objectCompare:function(a,f,b){var c;if(!a&&!f)return!0;if(!a||!f)return!1;for(c in a)if(a[c]!=f[c])return!1;if(!b)for(c in f)if(a[c]!=f[c])return!1;return!0},objectKeys:function(a){var f=[],b;for(b in a)f.push(b);return f},convertArrayToObject:function(a,f){var b={};1==
+arguments.length&&(f=!0);for(var c=0,k=a.length;c<k;++c)b[a[c]]=f;return b},fixDomain:function(){for(var a;;)try{a=window.parent.document.domain;break}catch(f){a=a?a.replace(/.+?(?:\.|$)/,""):document.domain;if(!a)break;document.domain=a}return!!a},eventsBuffer:function(a,f,b){function c(){d=(new Date).getTime();k=!1;b?f.call(b):f()}var k,d=0;return{input:function(){if(!k){var f=(new Date).getTime()-d;f<a?k=setTimeout(c,a-f):c()}},reset:function(){k&&clearTimeout(k);k=d=0}}},enableHtml5Elements:function(a,
+f){for(var b="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),c=b.length,k;c--;)k=a.createElement(b[c]),f&&a.appendChild(k)},checkIfAnyArrayItemMatches:function(a,f){for(var b=0,c=a.length;b<c;++b)if(a[b].match(f))return!0;return!1},checkIfAnyObjectPropertyMatches:function(a,f){for(var b in a)if(b.match(f))return!0;return!1},keystrokeToString:function(a,b){var c=b&16711680,k=
+b&65535,d=CKEDITOR.env.mac,n=[],e=[];c&CKEDITOR.CTRL&&(n.push(d?"⌘":a[17]),e.push(d?a[224]:a[17]));c&CKEDITOR.ALT&&(n.push(d?"⌥":a[18]),e.push(a[18]));c&CKEDITOR.SHIFT&&(n.push(d?"⇧":a[16]),e.push(a[16]));k&&(a[k]?(n.push(a[k]),e.push(a[k])):(n.push(String.fromCharCode(k)),e.push(String.fromCharCode(k))));return{display:n.join("+"),aria:e.join("+")}},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(a){a=a.toLowerCase();
+for(var b=document.cookie.split(";"),c,k,d=0;d<b.length;d++)if(c=b[d].split("\x3d"),k=decodeURIComponent(CKEDITOR.tools.trim(c[0]).toLowerCase()),k===a)return decodeURIComponent(1<c.length?c[1]:"");return null},setCookie:function(a,b){document.cookie=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)+";path\x3d/"},getCsrfToken:function(){var a=CKEDITOR.tools.getCookie("ckCsrfToken");if(!a||40!=a.length){var a=[],b="";if(window.crypto&&window.crypto.getRandomValues)a=new Uint8Array(40),window.crypto.getRandomValues(a);
+else for(var c=0;40>c;c++)a.push(Math.floor(256*Math.random()));for(c=0;c<a.length;c++)var k="abcdefghijklmnopqrstuvwxyz0123456789".charAt(a[c]%36),b=b+(.5<Math.random()?k.toUpperCase():k);a=b;CKEDITOR.tools.setCookie("ckCsrfToken",a)}return a},escapeCss:function(a){return a?window.CSS&&CSS.escape?CSS.escape(a):isNaN(parseInt(a.charAt(0),10))?a:"\\3"+a.charAt(0)+" "+a.substring(1,a.length):""},getMouseButton:function(a){var b=(a=a.data)&&a.$;return a&&b?CKEDITOR.env.ie&&9>CKEDITOR.env.version?4===
+b.button?CKEDITOR.MOUSE_BUTTON_MIDDLE:1===b.button?CKEDITOR.MOUSE_BUTTON_LEFT:CKEDITOR.MOUSE_BUTTON_RIGHT:b.button:!1},style:{parse:{_colors:{aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",
+crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",
+dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",green:"#008000",greenyellow:"#ADFF2F",grey:"#808080",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",
+lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",
+mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",
+red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"},
+_borderStyle:"none hidden dotted dashed solid double groove ridge inset outset".split(" "),_widthRegExp:/^(thin|medium|thick|[\+-]?\d+(\.\d+)?[a-z%]+|[\+-]?0+(\.0+)?|\.\d+[a-z%]+)$/,_rgbaRegExp:/rgba?\(\s*\d+%?\s*,\s*\d+%?\s*,\s*\d+%?\s*(?:,\s*[0-9.]+\s*)?\)/gi,_hslaRegExp:/hsla?\(\s*[0-9.]+\s*,\s*\d+%\s*,\s*\d+%\s*(?:,\s*[0-9.]+\s*)?\)/gi,background:function(a){var b={},c=this._findColor(a);c.length&&(b.color=c[0],CKEDITOR.tools.array.forEach(c,function(b){a=a.replace(b,"")}));if(a=CKEDITOR.tools.trim(a))b.unprocessed=
+a;return b},margin:function(a){function b(a){c.top=k[a[0]];c.right=k[a[1]];c.bottom=k[a[2]];c.left=k[a[3]]}var c={},k=a.match(/(?:\-?[\.\d]+(?:%|\w*)|auto|inherit|initial|unset)/g)||["0px"];switch(k.length){case 1:b([0,0,0,0]);break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}return c},border:function(a){var b={};a=a.split(/\s+/);CKEDITOR.tools.array.forEach(a,function(a){if(!b.color){var c=CKEDITOR.tools.style.parse._findColor(a);if(c.length){b.color=c[0];return}}b.style||
+-1===CKEDITOR.tools.indexOf(CKEDITOR.tools.style.parse._borderStyle,a)?!b.width&&CKEDITOR.tools.style.parse._widthRegExp.test(a)&&(b.width=a):b.style=a});return b},_findColor:function(a){var b=[],c=CKEDITOR.tools.array,b=b.concat(a.match(this._rgbaRegExp)||[]),b=b.concat(a.match(this._hslaRegExp)||[]);return b=b.concat(c.filter(a.split(/\s+/),function(a){return a.match(/^\#[a-f0-9]{3}(?:[a-f0-9]{3})?$/gi)?!0:a.toLowerCase()in CKEDITOR.tools.style.parse._colors}))}}},array:{filter:function(a,b,c){var k=
+[];this.forEach(a,function(d,n){b.call(c,d,n,a)&&k.push(d)});return k},forEach:function(a,b,c){var k=a.length,d;for(d=0;d<k;d++)b.call(c,a[d],d,a)},map:function(a,b,c){for(var k=[],d=0;d<a.length;d++)k.push(b.call(c,a[d],d,a));return k},reduce:function(a,b,c,k){for(var d=0;d<a.length;d++)c=b.call(k,c,a[d],d,a);return c}},object:{findKey:function(a,b){if("object"!==typeof a)return null;for(var c in a)if(a[c]===b)return c;return null}}};CKEDITOR.tools.array.indexOf=CKEDITOR.tools.indexOf;CKEDITOR.tools.array.isArray=
+CKEDITOR.tools.isArray;CKEDITOR.MOUSE_BUTTON_LEFT=0;CKEDITOR.MOUSE_BUTTON_MIDDLE=1;CKEDITOR.MOUSE_BUTTON_RIGHT=2})();
+CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,d=function(a,b){for(var c=CKEDITOR.tools.clone(a),k=1;k<arguments.length;k++){b=arguments[k];for(var d in b)delete c[d]}return c},b={},c={},e={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},g={command:1,link:1,meta:1,noscript:1,script:1,style:1},h={},k={"#":1},n={center:1,dir:1,noframes:1};
a(b,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},k,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});a(c,e,b,n);d={a:d(b,{a:1,button:1}),abbr:b,address:c,
-area:l,article:c,aside:c,audio:a({source:1,track:1},c),b:b,base:l,bdi:b,bdo:b,blockquote:c,body:c,br:l,button:d(b,{a:1,button:1}),canvas:b,caption:c,cite:b,code:b,col:l,colgroup:{col:1},command:l,datalist:a({option:1},b),dd:c,del:b,details:a({summary:1},c),dfn:b,div:c,dl:{dt:1,dd:1},dt:c,em:b,embed:l,fieldset:a({legend:1},c),figcaption:c,figure:a({figcaption:1},c),footer:c,form:c,h1:b,h2:b,h3:b,h4:b,h5:b,h6:b,head:a({title:1,base:1},g),header:c,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:l,html:a({head:1,
-body:1},c,g),i:b,iframe:k,img:l,input:l,ins:b,kbd:b,keygen:l,label:b,legend:b,li:c,link:l,main:c,map:c,mark:b,menu:a({li:1},c),meta:l,meter:d(b,{meter:1}),nav:c,noscript:a({link:1,meta:1,style:1},b),object:a({param:1},b),ol:{li:1},optgroup:{option:1},option:k,output:b,p:b,param:l,pre:b,progress:d(b,{progress:1}),q:b,rp:b,rt:b,ruby:a({rp:1,rt:1},b),s:b,samp:b,script:k,section:c,select:{optgroup:1,option:1},small:b,source:l,span:b,strong:b,style:k,sub:b,summary:a({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},b),
-sup:b,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:c,textarea:k,tfoot:{tr:1},th:c,thead:{tr:1},time:d(b,{time:1}),title:k,tr:{th:1,td:1},track:l,u:b,ul:{li:1},"var":b,video:a({source:1,track:1},c),wbr:l,acronym:b,applet:a({param:1},c),basefont:l,big:b,center:c,dialog:l,dir:{li:1},font:b,isindex:l,noframes:c,strike:b,tt:b};a(d,{$block:a({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},e,n),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,
+area:h,article:c,aside:c,audio:a({source:1,track:1},c),b:b,base:h,bdi:b,bdo:b,blockquote:c,body:c,br:h,button:d(b,{a:1,button:1}),canvas:b,caption:c,cite:b,code:b,col:h,colgroup:{col:1},command:h,datalist:a({option:1},b),dd:c,del:b,details:a({summary:1},c),dfn:b,div:c,dl:{dt:1,dd:1},dt:c,em:b,embed:h,fieldset:a({legend:1},c),figcaption:c,figure:a({figcaption:1},c),footer:c,form:c,h1:b,h2:b,h3:b,h4:b,h5:b,h6:b,head:a({title:1,base:1},g),header:c,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:h,html:a({head:1,
+body:1},c,g),i:b,iframe:k,img:h,input:h,ins:b,kbd:b,keygen:h,label:b,legend:b,li:c,link:h,main:c,map:c,mark:b,menu:a({li:1},c),meta:h,meter:d(b,{meter:1}),nav:c,noscript:a({link:1,meta:1,style:1},b),object:a({param:1},b),ol:{li:1},optgroup:{option:1},option:k,output:b,p:b,param:h,pre:b,progress:d(b,{progress:1}),q:b,rp:b,rt:b,ruby:a({rp:1,rt:1},b),s:b,samp:b,script:k,section:c,select:{optgroup:1,option:1},small:b,source:h,span:b,strong:b,style:k,sub:b,summary:a({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},b),
+sup:b,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:c,textarea:k,tfoot:{tr:1},th:c,thead:{tr:1},time:d(b,{time:1}),title:k,tr:{th:1,td:1},track:h,u:b,ul:{li:1},"var":b,video:a({source:1,track:1},c),wbr:h,acronym:b,applet:a({param:1},c),basefont:h,big:b,center:c,dialog:h,dir:{li:1},font:b,isindex:h,noframes:c,strike:b,tt:b};a(d,{$block:a({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},e,n),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,
fieldset:1,figcaption:1,figure:1,footer:1,form:1,header:1,hgroup:1,main:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,figcaption:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,main:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,
track:1,wbr:1},$inline:b,$list:{dl:1,ol:1,ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:a({body:1,head:1,html:1},d.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,
s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return d}();
a.body.scrollTop||0}},getFrame:function(){var a=this.$.frameElement;return a?new CKEDITOR.dom.element.get(a):null}});CKEDITOR.dom.document=function(a){CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject;
CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(a){if(this.$.createStyleSheet)this.$.createStyleSheet(a);else{var d=new CKEDITOR.dom.element("link");d.setAttributes({rel:"stylesheet",type:"text/css",href:a});this.getHead().append(d)}},appendStyleText:function(a){if(this.$.createStyleSheet){var d=this.$.createStyleSheet("");d.cssText=a}else{var b=new CKEDITOR.dom.element("style",this);b.append(new CKEDITOR.dom.text(a,this));this.getHead().append(b)}return d||
b.$.sheet},createElement:function(a,d){var b=new CKEDITOR.dom.element(a,this);d&&(d.attributes&&b.setAttributes(d.attributes),d.styles&&b.setStyles(d.styles));return b},createText:function(a){return new CKEDITOR.dom.text(a,this)},focus:function(){this.getWindow().focus()},getActive:function(){var a;try{a=this.$.activeElement}catch(d){return null}return new CKEDITOR.dom.element(a)},getById:function(a){return(a=this.$.getElementById(a))?new CKEDITOR.dom.element(a):null},getByAddress:function(a,d){for(var b=
-this.$.documentElement,c=0;b&&c<a.length;c++){var e=a[c];if(d)for(var g=-1,l=0;l<b.childNodes.length;l++){var k=b.childNodes[l];if(!0!==d||3!=k.nodeType||!k.previousSibling||3!=k.previousSibling.nodeType)if(g++,g==e){b=k;break}}else b=b.childNodes[e]}return b?new CKEDITOR.dom.node(b):null},getElementsByTag:function(a,d){CKEDITOR.env.ie&&8>=document.documentMode||!d||(a=d+":"+a);return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];
+this.$.documentElement,c=0;b&&c<a.length;c++){var e=a[c];if(d)for(var g=-1,h=0;h<b.childNodes.length;h++){var k=b.childNodes[h];if(!0!==d||3!=k.nodeType||!k.previousSibling||3!=k.previousSibling.nodeType)if(g++,g==e){b=k;break}}else b=b.childNodes[e]}return b?new CKEDITOR.dom.node(b):null},getElementsByTag:function(a,d){CKEDITOR.env.ie&&8>=document.documentMode||!d||(a=d+":"+a);return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];
return a=a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),!0)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*<!DOCTYPE[^>]*?>)|^/i,'$\x26\n\x3cscript data-cke-temp\x3d"1"\x3e('+
CKEDITOR.tools.fixDomain+")();\x3c/script\x3e"));this.$.write(a);this.$.close()},find:function(a){return new CKEDITOR.dom.nodeList(this.$.querySelectorAll(a))},findOne:function(a){return(a=this.$.querySelector(a))?new CKEDITOR.dom.element(a):null},_getHtml5ShivFrag:function(){var a=this.getCustomData("html5ShivFrag");a||(a=this.$.createDocumentFragment(),CKEDITOR.tools.enableHtml5Elements(a,!0),this.setCustomData("html5ShivFrag",a));return a}});CKEDITOR.dom.nodeList=function(a){this.$=a};
-CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(a){return 0>a||a>=this.$.length?null:(a=this.$[a])?new CKEDITOR.dom.node(a):null}};CKEDITOR.dom.element=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createElement(a));CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.element.get=function(a){return(a="string"==typeof a?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;
-CKEDITOR.dom.element.createFromHtml=function(a,d){var b=new CKEDITOR.dom.element("div",d);b.setHtml(a);return b.getFirst().remove()};CKEDITOR.dom.element.setMarker=function(a,d,b,c){var e=d.getCustomData("list_marker_id")||d.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),g=d.getCustomData("list_marker_names")||d.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");a[e]=d;g[b]=1;return d.setCustomData(b,c)};
-CKEDITOR.dom.element.clearAllMarkers=function(a){for(var d in a)CKEDITOR.dom.element.clearMarkers(a,a[d],1)};CKEDITOR.dom.element.clearMarkers=function(a,d,b){var c=d.getCustomData("list_marker_names"),e=d.getCustomData("list_marker_id"),g;for(g in c)d.removeCustomData(g);d.removeCustomData("list_marker_names");b&&(d.removeCustomData("list_marker_id"),delete a[e])};
-(function(){function a(a,b){return-1<(" "+a+" ").replace(g," ").indexOf(" "+b+" ")}function d(a){var b=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),b=!1);return function(){b||a.removeAttribute("id")}}function b(a,b){return"#"+a.$.id+" "+b.split(/,\s*/).join(", #"+a.$.id+" ")}function c(a){for(var b=0,c=0,f=l[a].length;c<f;c++)b+=parseInt(this.getComputedStyle(l[a][c])||0,10)||0;return b}var e=document.createElement("_").classList,e="undefined"!==typeof e&&null!==String(e.add).match(/\[Native code\]/gi),
-g=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:e?function(a){this.$.classList.add(a);return this}:function(b){var c=this.$.className;c&&(a(c,b)||(c+=" "+b));this.$.className=c||b;return this},removeClass:e?function(a){var b=this.$;b.classList.remove(a);b.className||b.removeAttribute("class");return this}:function(b){var c=this.getAttribute("class");c&&a(c,b)&&((c=c.replace(new RegExp("(?:^|\\s+)"+b+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",
-c):this.removeAttribute("class"));return this},hasClass:function(b){return a(this.$.className,b)},append:function(a,b){"string"==typeof a&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!=this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?
-this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,b){var c=new CKEDITOR.dom.range(this.getDocument());c.setStartAfter(this);c.setEndAfter(a);var f=c.extractContents(!1,b||!1);c.insertNode(this.remove());
-f.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(this.$.compareDocumentPosition(a.$)&16)}:function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):b!=a.$&&b.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(b){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,
-"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(!0));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);return a},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var b=this.$;if(this.getParent())return b.innerHTML=a;var c=this.getDocument()._getHtml5ShivFrag();c.appendChild(b);b.innerHTML=a;c.removeChild(b);return a}catch(f){this.$.innerHTML=
-"";b=new CKEDITOR.dom.element("body",this.getDocument());b.$.innerHTML=a;for(b=b.getChildren();b.count();)this.append(b.getItem(0));return a}}:function(a){return this.$.innerHTML=a},setText:function(){var a=document.createElement("p");a.innerHTML="x";a=a.textContent;return function(b){this.$[a?"textContent":"innerText"]=b}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case "class":a=
-"className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":return a=this.$.getAttribute(a,2),0!==a&&0===this.$.tabIndex&&(a=null),a;case "checked":return a=this.$.attributes.getNamedItem(a),(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):
-null}return this.$.getAttribute(a,2)}:a}(),getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:document.defaultView&&document.defaultView.getComputedStyle?function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""}:function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd=function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,
-getTabIndex:function(){var a=this.$.tabIndex;return 0!==a||CKEDITOR.dtd.$tabIndex[this.getName()]||0===parseInt(this.getAttribute("tabindex"),10)?a:-1},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase();if(CKEDITOR.env.ie&&8>=document.documentMode){var b=this.$.scopeName;"HTML"!=
-b&&(a=b.toLowerCase()+":"+a)}this.getName=function(){return a};return this.getName()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];
-for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return!0;return!1},isEditable:function(a){var b=this.getName();return this.isReadOnly()||"none"==this.getComputedStyle("display")||"hidden"==this.getComputedStyle("visibility")||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount()?!1:!1!==a?(a=CKEDITOR.dtd[b]||CKEDITOR.dtd.span,!(!a||!a["#"])):!0},isIdentical:function(a){var b=this.clone(0,1);a=a.clone(0,
-1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode)return b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText),a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText),b.$.isEqualNode(a.$);b=b.getOuterHtml();a=a.getOuterHtml();if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&this.is("a")){var c=this.getParent();
-c.type==CKEDITOR.NODE_ELEMENT&&(c=c.clone(),c.setHtml(b),b=c.getHtml(),c.setHtml(a),a=c.getHtml())}return b==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility"),b,c;a&&CKEDITOR.env.webkit&&(b=this.getWindow(),!b.equals(CKEDITOR.document.getWindow())&&(c=b.$.frameElement)&&(a=(new CKEDITOR.dom.element(c)).isVisible()));return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1;for(var a=this.getChildren(),
-b=0,c=a.count();b<c;b++){var f=a.getItem(b);if(f.type!=CKEDITOR.NODE_ELEMENT||!f.data("cke-bookmark"))if(f.type==CKEDITOR.NODE_ELEMENT&&!f.isEmptyInlineRemoveable()||f.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(f.getText()))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var c=a[b];switch(c.nodeName){case "class":if(this.getAttribute("class"))return!0;case "data-cke-expando":continue;default:if(c.specified)return!0}}return!1}:
-function(){var a=this.$.attributes,b=a.length,c={"data-cke-expando":1,_moz_dirty:1};return 0<b&&(2<b||!c[a[0].nodeName]||2==b&&!c[a[1].nodeName])},hasAttribute:function(){function a(b){var c=this.$.attributes.getNamedItem(b);if("input"==this.getName())switch(b){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":return b=this.getAttribute("type"),"checkbox"==b||"radio"==b?"on"!=this.$.value:!!this.$.value}return c?c.specified:!1}return CKEDITOR.env.ie?
-8>CKEDITOR.env.version?function(b){return"name"==b?!!this.$.name:a.call(this,b)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var c=this.$;a=a.$;if(c!=a){var f;if(b)for(;f=c.lastChild;)a.insertBefore(c.removeChild(f),a.firstChild);else for(;f=c.firstChild;)a.appendChild(c.removeChild(f))}},mergeSiblings:function(){function a(b,c,f){if(c&&c.type==CKEDITOR.NODE_ELEMENT){for(var d=[];c.data("cke-bookmark")||c.isEmptyInlineRemoveable();)if(d.push(c),
-c=f?c.getNext():c.getPrevious(),!c||c.type!=CKEDITOR.NODE_ELEMENT)return;if(b.isIdentical(c)){for(var k=f?b.getLast():b.getFirst();d.length;)d.shift().move(b,!f);c.moveChildren(b,!f);c.remove();k&&k.type==CKEDITOR.NODE_ELEMENT&&k.mergeSiblings()}}}return function(b){if(!1===b||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))a(this,this.getNext(),!0),a(this,this.getPrevious())}}(),show:function(){this.setStyles({display:"",visibility:""})},setAttribute:function(){var a=function(a,b){this.$.setAttribute(a,
-b);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(b,c){"class"==b?this.$.className=c:"style"==b?this.$.style.cssText=c:"tabindex"==b?this.$.tabIndex=c:"checked"==b?this.$.checked=c:"contenteditable"==b?a.call(this,"contentEditable",c):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,c){if("src"==b&&c.match(/^http:\/\//))try{a.apply(this,arguments)}catch(f){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,
-a[b]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=0;b<a.length;b++)this.removeAttribute(a[b]);else for(b in a)a.hasOwnProperty(b)&&this.removeAttribute(b)},
-removeStyle:function(a){var b=this.$.style;if(b.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)b.removeProperty?b.removeProperty(a):b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var c=["top","left","right","bottom"],f;"border"==a&&(f=["color","style","width"]);for(var b=[],d=0;d<c.length;d++)if(f)for(var e=0;e<f.length;e++)b.push([a,c[d],f[e]].join("-"));else b.push([a,c[d]].join("-"));for(a=0;a<b.length;a++)this.removeStyle(b[a])}},
-setStyle:function(a,b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){CKEDITOR.env.ie&&9>CKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",100<=a?"":"progid:DXImageTransform.Microsoft.Alpha(opacity\x3d"+a+")")):this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","none"));if(CKEDITOR.env.ie){this.setAttribute("unselectable",
-"on");for(var a,b=this.getElementsByTag("*"),c=0,f=b.count();c<f;c++)a=b.getItem(c),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,c=0,f=this.getDocument(),d=f.getBody(),e="BackCompat"==f.$.compatMode;if(document.documentElement.getBoundingClientRect){var u=this.$.getBoundingClientRect(),g=f.$.documentElement,q=g.clientTop||
-d.$.clientTop||0,y=g.clientLeft||d.$.clientLeft||0,l=!0;CKEDITOR.env.ie&&(l=f.getDocumentElement().contains(this),f=f.getBody().contains(this),l=e&&f||!e&&l);l&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(b=d.$.scrollLeft||g.scrollLeft,c=d.$.scrollTop||g.scrollTop):(c=e?d.$:g,b=c.scrollLeft,c=c.scrollTop),b=u.left+b-y,c=u.top+c-q)}else for(q=this,y=null;q&&"body"!=q.getName()&&"html"!=q.getName();){b+=q.$.offsetLeft-q.$.scrollLeft;c+=q.$.offsetTop-q.$.scrollTop;q.equals(this)||
-(b+=q.$.clientLeft||0,c+=q.$.clientTop||0);for(;y&&!y.equals(q);)b-=y.$.scrollLeft,c-=y.$.scrollTop,y=y.getParent();y=q;q=(u=q.$.offsetParent)?new CKEDITOR.dom.element(u):null}a&&(u=this.getWindow(),q=a.getWindow(),!u.equals(q)&&u.$.frameElement&&(a=(new CKEDITOR.dom.element(u.$.frameElement)).getDocumentPosition(a),b+=a.x,c+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||e||(b+=this.$.clientLeft?1:0,c+=this.$.clientTop?1:0);return{x:b,y:c}},scrollIntoView:function(a){var b=
-this.getParent();if(b){do if((b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1),b.is("html")){var c=b.getWindow();try{var f=c.$.frameElement;f&&(b=new CKEDITOR.dom.element(f))}catch(d){}}while(b=b.getParent())}},scrollIntoParent:function(a,b,c){var f,d,e,u;function g(b,c){/body|html/.test(a.getName())?a.getWindow().$.scrollBy(b,c):(a.$.scrollLeft+=b,a.$.scrollTop+=c)}function q(a,b){var c={x:0,y:0};if(!a.is(l?
-"body":"html")){var f=a.$.getBoundingClientRect();c.x=f.left;c.y=f.top}f=a.getWindow();f.equals(b)||(f=q(CKEDITOR.dom.element.get(f.$.frameElement),b),c.x+=f.x,c.y+=f.y);return c}function y(a,b){return parseInt(a.getComputedStyle("margin-"+b)||0,10)||0}!a&&(a=this.getWindow());e=a.getDocument();var l="BackCompat"==e.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=l?e.getBody():e.getDocumentElement());e=a.getWindow();d=q(this,e);var t=q(a,e),z=this.$.offsetHeight;f=this.$.offsetWidth;var h=a.$.clientHeight,
-p=a.$.clientWidth;e=d.x-y(this,"left")-t.x||0;u=d.y-y(this,"top")-t.y||0;f=d.x+f+y(this,"right")-(t.x+p)||0;d=d.y+z+y(this,"bottom")-(t.y+h)||0;(0>u||0<d)&&g(0,!0===b?u:!1===b?d:0>u?u:d);c&&(0>e||0<f)&&g(0>e?e:f,0)},setState:function(a,b,c){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+"_off");this.removeClass(b+"_disabled");c&&this.setAttribute("aria-pressed",!0);c&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+
-"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");c&&this.setAttribute("aria-disabled",!0);c&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off"),this.removeClass(b+"_on"),this.removeClass(b+"_disabled"),c&&this.removeAttribute("aria-pressed"),c&&this.removeAttribute("aria-disabled")}},getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,
-b){var c=this.$.attributes;b=b||{};for(var f=0;f<c.length;f++){var d=c[f],e=d.nodeName.toLowerCase(),u;if(!(e in b))if("checked"==e&&(u=this.getAttribute(e)))a.setAttribute(e,u);else if(!CKEDITOR.env.ie||this.hasAttribute(e))u=this.getAttribute(e),null===u&&(u=d.nodeValue),a.setAttribute(e,u)}""!==this.$.style.cssText&&(a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var b=this.getDocument();a=new CKEDITOR.dom.element(a,b);this.copyAttributes(a);this.moveChildren(a);
-this.getParent(!0)&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$;delete this.getName}},getChild:function(){function a(b,c){var f=b.childNodes;if(0<=c&&c<f.length)return f[c]}return function(b){var c=this.$;if(b.slice)for(b=b.slice();0<b.length&&c;)c=a(c,b.shift());else c=a(c,b);return c?new CKEDITOR.dom.node(c):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT&&
-b.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(b){b.data.getTarget().getAscendant(a,!0)||b.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(void 0===b)return this.getAttribute(a);!1===b?this.removeAttribute(a):this.setAttribute(a,b);return null},
-getEditor:function(){var a=CKEDITOR.instances,b,c;for(b in a)if(c=a[b],c.element.equals(this)&&c.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO)return c;return null},find:function(a){var c=d(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(b(this,a)));c();return a},findOne:function(a){var c=d(this);a=this.$.querySelector(b(this,a));c();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var f=a(this);if(!1!==f){c=this.getChildren();for(var d=0;d<c.count();d++)f=
-c.getItem(d),f.type==CKEDITOR.NODE_ELEMENT?f.forEach(a,b):b&&f.type!=b||a(f)}}});var l={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(a,b,d){"number"==typeof b&&(!d||CKEDITOR.env.ie&&CKEDITOR.env.quirks||(b-=c.call(this,a)),this.setStyle(a,b+"px"))};CKEDITOR.dom.element.prototype.getSize=function(a,b){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],
-this.$["client"+CKEDITOR.tools.capitalize(a)])||0;b&&(d-=c.call(this,a));return d}})();CKEDITOR.dom.documentFragment=function(a){a=a||CKEDITOR.document;this.$=a.type==CKEDITOR.NODE_DOCUMENT?a.$.createDocumentFragment():a};
+CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(a){return 0>a||a>=this.$.length?null:(a=this.$[a])?new CKEDITOR.dom.node(a):null},toArray:function(){return CKEDITOR.tools.array.map(this.$,function(a){return new CKEDITOR.dom.node(a)})}};CKEDITOR.dom.element=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createElement(a));CKEDITOR.dom.domObject.call(this,a)};
+CKEDITOR.dom.element.get=function(a){return(a="string"==typeof a?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;CKEDITOR.dom.element.createFromHtml=function(a,d){var b=new CKEDITOR.dom.element("div",d);b.setHtml(a);return b.getFirst().remove()};
+CKEDITOR.dom.element.setMarker=function(a,d,b,c){var e=d.getCustomData("list_marker_id")||d.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),g=d.getCustomData("list_marker_names")||d.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");a[e]=d;g[b]=1;return d.setCustomData(b,c)};CKEDITOR.dom.element.clearAllMarkers=function(a){for(var d in a)CKEDITOR.dom.element.clearMarkers(a,a[d],1)};
+CKEDITOR.dom.element.clearMarkers=function(a,d,b){var c=d.getCustomData("list_marker_names"),e=d.getCustomData("list_marker_id"),g;for(g in c)d.removeCustomData(g);d.removeCustomData("list_marker_names");b&&(d.removeCustomData("list_marker_id"),delete a[e])};
+(function(){function a(a,b){return-1<(" "+a+" ").replace(g," ").indexOf(" "+b+" ")}function d(a){var b=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),b=!1);return function(){b||a.removeAttribute("id")}}function b(a,b){var c=CKEDITOR.tools.escapeCss(a.$.id);return"#"+c+" "+b.split(/,\s*/).join(", #"+c+" ")}function c(a){for(var b=0,c=0,f=h[a].length;c<f;c++)b+=parseFloat(this.getComputedStyle(h[a][c])||0,10)||0;return b}var e=document.createElement("_").classList,e="undefined"!==typeof e&&
+null!==String(e.add).match(/\[Native code\]/gi),g=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:e?function(a){this.$.classList.add(a);return this}:function(b){var c=this.$.className;c&&(a(c,b)||(c+=" "+b));this.$.className=c||b;return this},removeClass:e?function(a){var b=this.$;b.classList.remove(a);b.className||b.removeAttribute("class");return this}:function(b){var c=this.getAttribute("class");c&&a(c,b)&&((c=c.replace(new RegExp("(?:^|\\s+)"+
+b+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",c):this.removeAttribute("class"));return this},hasClass:function(b){return a(this.$.className,b)},append:function(a,b){"string"==typeof a&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!=
+this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,b){var c=new CKEDITOR.dom.range(this.getDocument());c.setStartAfter(this);c.setEndAfter(a);
+var f=c.extractContents(!1,b||!1),d;c.insertNode(this.remove());if(CKEDITOR.env.ie&&!CKEDITOR.env.edge){for(c=new CKEDITOR.dom.element("div");d=f.getFirst();)d.$.style.backgroundColor&&(d.$.style.backgroundColor=d.$.style.backgroundColor),c.append(d);c.insertAfter(this);c.remove(!0)}else f.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(this.$.compareDocumentPosition(a.$)&16)}:function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):
+b!=a.$&&b.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(b){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(!0));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},
+this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);return a},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var b=this.$;if(this.getParent())return b.innerHTML=a;var c=this.getDocument()._getHtml5ShivFrag();c.appendChild(b);b.innerHTML=a;c.removeChild(b);return a}catch(f){this.$.innerHTML="";b=new CKEDITOR.dom.element("body",this.getDocument());b.$.innerHTML=a;for(b=b.getChildren();b.count();)this.append(b.getItem(0));return a}}:
+function(a){return this.$.innerHTML=a},setText:function(){var a=document.createElement("p");a.innerHTML="x";a=a.textContent;return function(b){this.$[a?"textContent":"innerText"]=b}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case "class":a="className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":return a=this.$.getAttribute(a,
+2),0!==a&&0===this.$.tabIndex&&(a=null),a;case "checked":return a=this.$.attributes.getNamedItem(a),(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getAttributes:function(a){var b={},c=this.$.attributes,f;a=CKEDITOR.tools.isArray(a)?
+a:[];for(f=0;f<c.length;f++)-1===CKEDITOR.tools.indexOf(a,c[f].name)&&(b[c[f].name]=c[f].value);return b},getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:document.defaultView&&document.defaultView.getComputedStyle?function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""}:function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd=
+function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,getTabIndex:function(){var a=this.$.tabIndex;return 0!==a||CKEDITOR.dtd.$tabIndex[this.getName()]||0===parseInt(this.getAttribute("tabindex"),10)?a:-1},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase();
+if(CKEDITOR.env.ie&&8>=document.documentMode){var b=this.$.scopeName;"HTML"!=b&&(a=b.toLowerCase()+":"+a)}this.getName=function(){return a};return this.getName()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},
+is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return!0;return!1},isEditable:function(a){var b=this.getName();return this.isReadOnly()||"none"==this.getComputedStyle("display")||"hidden"==this.getComputedStyle("visibility")||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount()?!1:!1!==a?(a=CKEDITOR.dtd[b]||
+CKEDITOR.dtd.span,!(!a||!a["#"])):!0},isIdentical:function(a){var b=this.clone(0,1);a=a.clone(0,1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode)return b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText),a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText),b.$.isEqualNode(a.$);b=b.getOuterHtml();a=
+a.getOuterHtml();if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&this.is("a")){var c=this.getParent();c.type==CKEDITOR.NODE_ELEMENT&&(c=c.clone(),c.setHtml(b),b=c.getHtml(),c.setHtml(a),a=c.getHtml())}return b==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility"),b,c;a&&CKEDITOR.env.webkit&&(b=this.getWindow(),!b.equals(CKEDITOR.document.getWindow())&&(c=b.$.frameElement)&&(a=(new CKEDITOR.dom.element(c)).isVisible()));return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1;
+for(var a=this.getChildren(),b=0,c=a.count();b<c;b++){var f=a.getItem(b);if(f.type!=CKEDITOR.NODE_ELEMENT||!f.data("cke-bookmark"))if(f.type==CKEDITOR.NODE_ELEMENT&&!f.isEmptyInlineRemoveable()||f.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(f.getText()))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var c=a[b];switch(c.nodeName){case "class":if(this.getAttribute("class"))return!0;case "data-cke-expando":continue;
+default:if(c.specified)return!0}}return!1}:function(){var a=this.$.attributes,b=a.length,c={"data-cke-expando":1,_moz_dirty:1};return 0<b&&(2<b||!c[a[0].nodeName]||2==b&&!c[a[1].nodeName])},hasAttribute:function(){function a(b){var c=this.$.attributes.getNamedItem(b);if("input"==this.getName())switch(b){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":return b=this.getAttribute("type"),"checkbox"==b||"radio"==b?"on"!=this.$.value:!!this.$.value}return c?
+c.specified:!1}return CKEDITOR.env.ie?8>CKEDITOR.env.version?function(b){return"name"==b?!!this.$.name:a.call(this,b)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var c=this.$;a=a.$;if(c!=a){var f;if(b)for(;f=c.lastChild;)a.insertBefore(c.removeChild(f),a.firstChild);else for(;f=c.firstChild;)a.appendChild(c.removeChild(f))}},mergeSiblings:function(){function a(b,c,f){if(c&&c.type==CKEDITOR.NODE_ELEMENT){for(var d=
+[];c.data("cke-bookmark")||c.isEmptyInlineRemoveable();)if(d.push(c),c=f?c.getNext():c.getPrevious(),!c||c.type!=CKEDITOR.NODE_ELEMENT)return;if(b.isIdentical(c)){for(var k=f?b.getLast():b.getFirst();d.length;)d.shift().move(b,!f);c.moveChildren(b,!f);c.remove();k&&k.type==CKEDITOR.NODE_ELEMENT&&k.mergeSiblings()}}}return function(b){if(!1===b||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))a(this,this.getNext(),!0),a(this,this.getPrevious())}}(),show:function(){this.setStyles({display:"",
+visibility:""})},setAttribute:function(){var a=function(a,b){this.$.setAttribute(a,b);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(b,c){"class"==b?this.$.className=c:"style"==b?this.$.style.cssText=c:"tabindex"==b?this.$.tabIndex=c:"checked"==b?this.$.checked=c:"contenteditable"==b?a.call(this,"contentEditable",c):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,c){if("src"==b&&c.match(/^http:\/\//))try{a.apply(this,
+arguments)}catch(f){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,a[b]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=
+0;b<a.length;b++)this.removeAttribute(a[b]);else for(b in a=a||this.getAttributes(),a)a.hasOwnProperty(b)&&this.removeAttribute(b)},removeStyle:function(a){var b=this.$.style;if(b.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)b.removeProperty?b.removeProperty(a):b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var c=["top","left","right","bottom"],f;"border"==a&&(f=["color","style","width"]);for(var b=[],d=0;d<c.length;d++)if(f)for(var w=
+0;w<f.length;w++)b.push([a,c[d],f[w]].join("-"));else b.push([a,c[d]].join("-"));for(a=0;a<b.length;a++)this.removeStyle(b[a])}},setStyle:function(a,b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){CKEDITOR.env.ie&&9>CKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",100<=a?"":"progid:DXImageTransform.Microsoft.Alpha(opacity\x3d"+a+")")):this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select",
+"none"));if(CKEDITOR.env.ie){this.setAttribute("unselectable","on");for(var a,b=this.getElementsByTag("*"),c=0,f=b.count();c<f;c++)a=b.getItem(c),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,c=0,f=this.getDocument(),d=f.getBody(),w="BackCompat"==f.$.compatMode;if(document.documentElement.getBoundingClientRect&&(CKEDITOR.env.ie?
+8!==CKEDITOR.env.version:1)){var e=this.$.getBoundingClientRect(),g=f.$.documentElement,x=g.clientTop||d.$.clientTop||0,m=g.clientLeft||d.$.clientLeft||0,h=!0;CKEDITOR.env.ie&&(h=f.getDocumentElement().contains(this),f=f.getBody().contains(this),h=w&&f||!w&&h);h&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(b=d.$.scrollLeft||g.scrollLeft,c=d.$.scrollTop||g.scrollTop):(c=w?d.$:g,b=c.scrollLeft,c=c.scrollTop),b=e.left+b-m,c=e.top+c-x)}else for(x=this,m=null;x&&"body"!=x.getName()&&
+"html"!=x.getName();){b+=x.$.offsetLeft-x.$.scrollLeft;c+=x.$.offsetTop-x.$.scrollTop;x.equals(this)||(b+=x.$.clientLeft||0,c+=x.$.clientTop||0);for(;m&&!m.equals(x);)b-=m.$.scrollLeft,c-=m.$.scrollTop,m=m.getParent();m=x;x=(e=x.$.offsetParent)?new CKEDITOR.dom.element(e):null}a&&(e=this.getWindow(),x=a.getWindow(),!e.equals(x)&&e.$.frameElement&&(a=(new CKEDITOR.dom.element(e.$.frameElement)).getDocumentPosition(a),b+=a.x,c+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||
+w||(b+=this.$.clientLeft?1:0,c+=this.$.clientTop?1:0);return{x:b,y:c}},scrollIntoView:function(a){var b=this.getParent();if(b){do if((b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1),b.is("html")){var c=b.getWindow();try{var f=c.$.frameElement;f&&(b=new CKEDITOR.dom.element(f))}catch(d){}}while(b=b.getParent())}},scrollIntoParent:function(a,b,c){var f,d,w,e;function g(b,c){/body|html/.test(a.getName())?
+a.getWindow().$.scrollBy(b,c):(a.$.scrollLeft+=b,a.$.scrollTop+=c)}function x(a,b){var c={x:0,y:0};if(!a.is(h?"body":"html")){var f=a.$.getBoundingClientRect();c.x=f.left;c.y=f.top}f=a.getWindow();f.equals(b)||(f=x(CKEDITOR.dom.element.get(f.$.frameElement),b),c.x+=f.x,c.y+=f.y);return c}function m(a,b){return parseInt(a.getComputedStyle("margin-"+b)||0,10)||0}!a&&(a=this.getWindow());w=a.getDocument();var h="BackCompat"==w.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=h?w.getBody():w.getDocumentElement());
+CKEDITOR.env.webkit&&(w=this.getEditor(!1))&&(w._.previousScrollTop=null);w=a.getWindow();d=x(this,w);var z=x(a,w),I=this.$.offsetHeight;f=this.$.offsetWidth;var l=a.$.clientHeight,r=a.$.clientWidth;w=d.x-m(this,"left")-z.x||0;e=d.y-m(this,"top")-z.y||0;f=d.x+f+m(this,"right")-(z.x+r)||0;d=d.y+I+m(this,"bottom")-(z.y+l)||0;(0>e||0<d)&&g(0,!0===b?e:!1===b?d:0>e?e:d);c&&(0>w||0<f)&&g(0>w?w:f,0)},setState:function(a,b,c){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+
+"_off");this.removeClass(b+"_disabled");c&&this.setAttribute("aria-pressed",!0);c&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");c&&this.setAttribute("aria-disabled",!0);c&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off"),this.removeClass(b+"_on"),this.removeClass(b+"_disabled"),c&&this.removeAttribute("aria-pressed"),c&&this.removeAttribute("aria-disabled")}},
+getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,b){var c=this.$.attributes;b=b||{};for(var f=0;f<c.length;f++){var d=c[f],w=d.nodeName.toLowerCase(),e;if(!(w in b))if("checked"==w&&(e=this.getAttribute(w)))a.setAttribute(w,e);else if(!CKEDITOR.env.ie||this.hasAttribute(w))e=this.getAttribute(w),null===e&&(e=d.nodeValue),a.setAttribute(w,e)}""!==this.$.style.cssText&&
+(a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var b=this.getDocument();a=new CKEDITOR.dom.element(a,b);this.copyAttributes(a);this.moveChildren(a);this.getParent(!0)&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$;delete this.getName}},getChild:function(){function a(b,c){var f=b.childNodes;if(0<=c&&c<f.length)return f[c]}return function(b){var c=this.$;if(b.slice)for(b=b.slice();0<b.length&&c;)c=a(c,
+b.shift());else c=a(c,b);return c?new CKEDITOR.dom.node(c):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT&&b.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(b){b.data.getTarget().getAscendant(a,!0)||b.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||
+"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(void 0===b)return this.getAttribute(a);!1===b?this.removeAttribute(a):this.setAttribute(a,b);return null},getEditor:function(a){var b=CKEDITOR.instances,c,f,d;a=a||void 0===a;for(c in b)if(f=b[c],f.element.equals(this)&&f.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||!a&&(d=f.editable())&&(d.equals(this)||d.contains(this)))return f;return null},find:function(a){var c=d(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(b(this,
+a)));c();return a},findOne:function(a){var c=d(this);a=this.$.querySelector(b(this,a));c();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var f=a(this);if(!1!==f){c=this.getChildren();for(var d=0;d<c.count();d++)f=c.getItem(d),f.type==CKEDITOR.NODE_ELEMENT?f.forEach(a,b):b&&f.type!=b||a(f)}}});var h={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};
+CKEDITOR.dom.element.prototype.setSize=function(a,b,d){"number"==typeof b&&(!d||CKEDITOR.env.ie&&CKEDITOR.env.quirks||(b-=c.call(this,a)),this.setStyle(a,b+"px"))};CKEDITOR.dom.element.prototype.getSize=function(a,b){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],this.$["client"+CKEDITOR.tools.capitalize(a)])||0;b&&(d-=c.call(this,a));return d}})();CKEDITOR.dom.documentFragment=function(a){a=a||CKEDITOR.document;this.$=a.type==CKEDITOR.NODE_DOCUMENT?a.$.createDocumentFragment():a};
CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,insertAfterNode:function(a){a=a.$;a.parentNode.insertBefore(this.$,a.nextSibling)},getHtml:function(){var a=new CKEDITOR.dom.element("div");this.clone(1,1).appendTo(a);return a.getHtml().replace(/\s*data-cke-expando=".*?"/g,"")}},!0,{append:1,appendBogus:1,clone:1,getFirst:1,getHtml:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1,
insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});
-(function(){function a(a,b){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed)return this.end(),null;c.optimize()}var f,d=c.startContainer;f=c.endContainer;var e=c.startOffset,x=c.endOffset,z,h=this.guard,p=this.type,m=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var C=f.type==CKEDITOR.NODE_ELEMENT?f:f.getParent(),r=f.type==CKEDITOR.NODE_ELEMENT?f.getChild(x):f.getNext();this._.guardLTR=function(a,b){return(!b||!C.equals(a))&&(!r||
-!a.equals(r))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}if(a&&!this._.guardRTL){var G=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),g=d.type==CKEDITOR.NODE_ELEMENT?e?d.getChild(e-1):null:d.getPrevious();this._.guardRTL=function(a,b){return(!b||!G.equals(a))&&(!g||!a.equals(g))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}var l=a?this._.guardRTL:this._.guardLTR;z=h?function(a,b){return!1===l(a,b)?!1:h(a,b)}:l;this.current?f=this.current[m](!1,p,z):(a?f.type==CKEDITOR.NODE_ELEMENT&&
-(f=0<x?f.getChild(x-1):!1===z(f,!0)?null:f.getPreviousSourceNode(!0,p,z)):(f=d,f.type==CKEDITOR.NODE_ELEMENT&&((f=f.getChild(e))||(f=!1===z(d,!0)?null:d.getNextSourceNode(!0,p,z)))),f&&!1===z(f)&&(f=null));for(;f&&!this._.end;){this.current=f;if(!this.evaluator||!1!==this.evaluator(f)){if(!b)return f}else if(b&&this.evaluator)return!1;f=f[m](!1,p,z)}this.end();return this.current=null}function d(b){for(var c,f=null;c=a.call(this,b);)f=c;return f}CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=
+(function(){function a(a,b){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed)return this.end(),null;c.optimize()}var f,d=c.startContainer;f=c.endContainer;var e=c.startOffset,D=c.endOffset,g,l=this.guard,r=this.type,J=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var H=f.type==CKEDITOR.NODE_ELEMENT?f:f.getParent(),k=f.type==CKEDITOR.NODE_ELEMENT?f.getChild(D):f.getNext();this._.guardLTR=function(a,b){return(!b||!H.equals(a))&&(!k||
+!a.equals(k))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}if(a&&!this._.guardRTL){var u=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),y=d.type==CKEDITOR.NODE_ELEMENT?e?d.getChild(e-1):null:d.getPrevious();this._.guardRTL=function(a,b){return(!b||!u.equals(a))&&(!y||!a.equals(y))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}var v=a?this._.guardRTL:this._.guardLTR;g=l?function(a,b){return!1===v(a,b)?!1:l(a,b)}:v;this.current?f=this.current[J](!1,r,g):(a?f.type==CKEDITOR.NODE_ELEMENT&&
+(f=0<D?f.getChild(D-1):!1===g(f,!0)?null:f.getPreviousSourceNode(!0,r,g)):(f=d,f.type==CKEDITOR.NODE_ELEMENT&&((f=f.getChild(e))||(f=!1===g(d,!0)?null:d.getNextSourceNode(!0,r,g)))),f&&!1===g(f)&&(f=null));for(;f&&!this._.end;){this.current=f;if(!this.evaluator||!1!==this.evaluator(f)){if(!b)return f}else if(b&&this.evaluator)return!1;f=f[J](!1,r,g)}this.end();return this.current=null}function d(b){for(var c,f=null;c=a.call(this,b);)f=c;return f}CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=
a;this._={}},proto:{end:function(){this._.end=1},next:function(){return a.call(this)},previous:function(){return a.call(this,1)},checkForward:function(){return!1!==a.call(this,0,1)},checkBackward:function(){return!1!==a.call(this,1,1)},lastForward:function(){return d.call(this)},lastBackward:function(){return d.call(this,1)},reset:function(){delete this.current;this._={}}}});var b={block:1,"list-item":1,table:1,"table-row-group":1,"table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1,
"table-column":1,"table-cell":1,"table-caption":1},c={absolute:1,fixed:1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(a){return"none"!=this.getComputedStyle("float")||this.getComputedStyle("position")in c||!b[this.getComputedStyle("display")]?!!(this.is(CKEDITOR.dtd.$block)||a&&this.is(a)):!0};CKEDITOR.dom.walker.blockBoundary=function(a){return function(b){return!(b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=function(){return this.blockBoundary({br:1})};
CKEDITOR.dom.walker.bookmark=function(a,b){function c(a){return a&&a.getName&&"span"==a.getName()&&a.data("cke-bookmark")}return function(f){var d,e;d=f&&f.type!=CKEDITOR.NODE_ELEMENT&&(e=f.getParent())&&c(e);d=a?d:d||c(f);return!!(b^d)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(b){var c;b&&b.type==CKEDITOR.NODE_TEXT&&(c=!CKEDITOR.tools.trim(b.getText())||CKEDITOR.env.webkit&&b.getText()==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE);return!!(a^c)}};CKEDITOR.dom.walker.invisible=
-function(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.env.webkit?1:0;return function(f){b(f)?f=1:(f.type==CKEDITOR.NODE_TEXT&&(f=f.getParent()),f=f.$.offsetWidth<=c);return!!(a^f)}};CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function b(a){return!g(a)&&!l(a)}return function(c){var f=CKEDITOR.env.needsBrFiller?c.is&&c.is("br"):c.getText&&e.test(c.getText());f&&(f=c.getParent(),c=c.getNext(b),f=f.isBlockBoundary()&&
-(!c||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()));return!!(a^f)}};CKEDITOR.dom.walker.temp=function(a){return function(b){b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b=b&&b.hasAttribute("data-cke-temp");return!!(a^b)}};var e=/^[\t\r\n ]*(?: |\xa0)$/,g=CKEDITOR.dom.walker.whitespaces(),l=CKEDITOR.dom.walker.bookmark(),k=CKEDITOR.dom.walker.temp(),n=function(a){return l(a)||g(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};CKEDITOR.dom.walker.ignored=
-function(a){return function(b){b=g(b)||l(b)||k(b);return!!(a^b)}};var w=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(a){return function(b){for(var c=0,f=b.getChildCount();c<f;++c)if(!w(b.getChild(c)))return!!a;return!a}};var f=CKEDITOR.dom.walker.empty(),x=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var b={},c;for(c in a)CKEDITOR.dtd[c]["#"]&&(b[c]=1);return b}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=function(a){return function(b){b=
-w(b)?!1:b.type==CKEDITOR.NODE_TEXT||b.type==CKEDITOR.NODE_ELEMENT&&(b.is(CKEDITOR.dtd.$inline)||b.is("hr")||"false"==b.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&b.is(x)&&f(b))?!0:!1;return!!(a^b)}};CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(n(a));return a&&(CKEDITOR.env.needsBrFiller?a.is&&a.is("br"):a.getText&&e.test(a.getText()))?a:!1}})();
+function(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.env.webkit?1:0;return function(f){b(f)?f=1:(f.type==CKEDITOR.NODE_TEXT&&(f=f.getParent()),f=f.$.offsetWidth<=c);return!!(a^f)}};CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function b(a){return!g(a)&&!h(a)}return function(c){var f=CKEDITOR.env.needsBrFiller?c.is&&c.is("br"):c.getText&&e.test(c.getText());f&&(f=c.getParent(),c=c.getNext(b),f=f.isBlockBoundary()&&
+(!c||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()));return!!(a^f)}};CKEDITOR.dom.walker.temp=function(a){return function(b){b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b=b&&b.hasAttribute("data-cke-temp");return!!(a^b)}};var e=/^[\t\r\n ]*(?: |\xa0)$/,g=CKEDITOR.dom.walker.whitespaces(),h=CKEDITOR.dom.walker.bookmark(),k=CKEDITOR.dom.walker.temp(),n=function(a){return h(a)||g(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};CKEDITOR.dom.walker.ignored=
+function(a){return function(b){b=g(b)||h(b)||k(b);return!!(a^b)}};var q=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(a){return function(b){for(var c=0,f=b.getChildCount();c<f;++c)if(!q(b.getChild(c)))return!!a;return!a}};var f=CKEDITOR.dom.walker.empty(),D=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var b={},c;for(c in a)CKEDITOR.dtd[c]["#"]&&(b[c]=1);return b}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=function(a){return function(b){b=
+q(b)?!1:b.type==CKEDITOR.NODE_TEXT||b.type==CKEDITOR.NODE_ELEMENT&&(b.is(CKEDITOR.dtd.$inline)||b.is("hr")||"false"==b.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&b.is(D)&&f(b))?!0:!1;return!!(a^b)}};CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(n(a));return a&&(CKEDITOR.env.needsBrFiller?a.is&&a.is("br"):a.getText&&e.test(a.getText()))?a:!1}})();
CKEDITOR.dom.range=function(a){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null;this.collapsed=!0;var d=a instanceof CKEDITOR.dom.document;this.document=d?a:a.getDocument();this.root=d?a.getBody():a};
-(function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function d(a,b,c,d,e){function q(a,b,c,f){var d=c?a.getPrevious():a.getNext();if(f&&k)return d;h||f?b.append(a.clone(!0,e),c):(a.remove(),z&&b.append(a));return d}function g(){var a,b,c,f=Math.min(v.length,D.length);for(a=0;a<f;a++)if(b=v[a],c=D[a],!b.equals(c))return a;return a-1}function l(){var b=I-1,c=w&&n&&!p.equals(m);b<E-1||b<L-1||c?(c?a.moveToPosition(m,
-CKEDITOR.POSITION_BEFORE_START):L==b+1&&H?a.moveToPosition(D[b],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(D[b+1],CKEDITOR.POSITION_BEFORE_START),d&&(b=v[b+1])&&b.type==CKEDITOR.NODE_ELEMENT&&(c=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',a.document),c.insertAfter(b),b.mergeSiblings(!1),a.moveToBookmark({startNode:c}))):a.collapse(!0)}a.optimizeBookmark();var k=0===b,z=1==b,h=2==b;b=h||z;var p=a.startContainer,m=a.endContainer,
-C=a.startOffset,r=a.endOffset,G,H,w,n,M,Q;if(h&&m.type==CKEDITOR.NODE_TEXT&&p.equals(m))p=a.document.createText(p.substring(C,r)),c.append(p);else{m.type==CKEDITOR.NODE_TEXT?h?Q=!0:m=m.split(r):0<m.getChildCount()?r>=m.getChildCount()?(m=m.getChild(r-1),H=!0):m=m.getChild(r):n=H=!0;p.type==CKEDITOR.NODE_TEXT?h?M=!0:p.split(C):0<p.getChildCount()?0===C?(p=p.getChild(C),G=!0):p=p.getChild(C-1):w=G=!0;for(var v=p.getParents(),D=m.getParents(),I=g(),E=v.length-1,L=D.length-1,J=c,ba,Z,V,fa=-1,O=I;O<=E;O++){Z=
-v[O];V=Z.getNext();for(O!=E||Z.equals(D[O])&&E<L?b&&(ba=J.append(Z.clone(0,e))):G?q(Z,J,!1,w):M&&J.append(a.document.createText(Z.substring(C)));V;){if(V.equals(D[O])){fa=O;break}V=q(V,J)}J=ba}J=c;for(O=I;O<=L;O++)if(c=D[O],V=c.getPrevious(),c.equals(v[O]))b&&(J=J.getChild(0));else{O!=L||c.equals(v[O])&&L<E?b&&(ba=J.append(c.clone(0,e))):H?q(c,J,!1,n):Q&&J.append(a.document.createText(c.substring(0,r)));if(O>fa)for(;V;)V=q(V,J,!0);J=ba}h||l()}}function b(){var a=!1,b=CKEDITOR.dom.walker.whitespaces(),
-c=CKEDITOR.dom.walker.bookmark(!0),d=CKEDITOR.dom.walker.bogus();return function(e){return c(e)||b(e)?!0:d(e)&&!a?a=!0:e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(g)?!1:!0}}function c(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(1);return function(d){return c(d)||b(d)?!0:!a&&l(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.is(CKEDITOR.dtd.$removeEmpty)}}function e(a){return function(){var b;return this[a?
-"getPreviousNode":"getNextNode"](function(a){!b&&w(a)&&(b=a);return n(a)&&!(l(a)&&a.equals(b))})}}var g={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},l=CKEDITOR.dom.walker.bogus(),k=/^[\t\r\n ]*(?: |\xa0)$/,n=CKEDITOR.dom.walker.editable(),w=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a=new CKEDITOR.dom.range(this.root);a._setStartContainer(this.startContainer);
-a.startOffset=this.startOffset;a._setEndContainer(this.endContainer);a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,2,b,!1,"undefined"==typeof a?!0:a);return b},deleteContents:function(a){this.collapsed||
-d(this,0,null,a)},extractContents:function(a,b){var c=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,1,c,a,"undefined"==typeof b?!0:b);return c},createBookmark:function(a){var b,c,d,e,q=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("\x26nbsp;");a&&(d="cke_bm_"+CKEDITOR.tools.getNextNumber(),b.setAttribute("id",d+(q?"C":"S")));q||(c=b.clone(),c.setHtml("\x26nbsp;"),a&&c.setAttribute("id",d+"E"),e=this.clone(),
-e.collapse(),e.insertNode(c));e=this.clone();e.collapse(!0);e.insertNode(b);c?(this.setStartAfter(b),this.setEndBefore(c)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?d+(q?"C":"S"):b,endNode:a?d+"E":c,serializable:a,collapsed:q}},createBookmark2:function(){function a(b){var f=b.container,d=b.offset,e;e=f;var g=d;e=e.type!=CKEDITOR.NODE_ELEMENT||0===g||g==e.getChildCount()?0:e.getChild(g-1).type==CKEDITOR.NODE_TEXT&&e.getChild(g).type==CKEDITOR.NODE_TEXT;e&&(f=f.getChild(d-
-1),d=f.getLength());if(f.type==CKEDITOR.NODE_ELEMENT&&0<d){a:{for(e=f;d--;)if(g=e.getChild(d).getIndex(!0),0<=g){d=g;break a}d=-1}d+=1}if(f.type==CKEDITOR.NODE_TEXT){e=f;for(g=0;(e=e.getPrevious())&&e.type==CKEDITOR.NODE_TEXT;)g+=e.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;e=g;f.getText()?d+=e:(g=f.getPrevious(c),e?(d=e,f=g?g.getNext():f.getParent().getFirst()):(f=f.getParent(),d=g?g.getIndex(!0)+1:0))}b.container=f;b.offset=d}function b(a,c){var f=c.getCustomData("cke-fillingChar");
-if(f){var d=a.container;f.equals(d)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=d.getIndex(),a.container=d.getParent()))}}var c=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,!0);return function(c){var d=this.collapsed,e={container:this.startContainer,offset:this.startOffset},g={container:this.endContainer,offset:this.endOffset};c&&(a(e),b(e,this.root),d||(a(g),b(g,this.root)));return{start:e.container.getAddress(c),end:d?null:g.container.getAddress(c),
-startOffset:e.offset,endOffset:g.offset,normalized:c,collapsed:d,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),c=a.startOffset,d=a.end&&this.document.getByAddress(a.end,a.normalized);a=a.endOffset;this.setStart(b,c);d?this.setEnd(d,a):this.collapse(!0)}else b=(c=a.serializable)?this.document.getById(a.startNode):a.startNode,a=c?this.document.getById(a.endNode):a.endNode,this.setStartBefore(b),b.remove(),a?(this.setEndBefore(a),a.remove()):
-this.collapse(!0)},getBoundaryNodes:function(){var a=this.startContainer,b=this.endContainer,c=this.startOffset,d=this.endOffset,e;if(a.type==CKEDITOR.NODE_ELEMENT)if(e=a.getChildCount(),e>c)a=a.getChild(c);else if(1>e)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}if(b.type==CKEDITOR.NODE_ELEMENT)if(e=b.getChildCount(),e>d)b=b.getChild(d).getPreviousSourceNode(!0);else if(1>e)b=b.getPreviousSourceNode();else{for(b=b.$;b.lastChild;)b=
-b.lastChild;b=new CKEDITOR.dom.node(b)}a.getPosition(b)&CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var c=this.startContainer,d=this.endContainer,c=c.equals(d)?a&&c.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?c.getChild(this.startOffset):c:c.getCommonAncestor(d);return b&&!c.is?c.getParent():c},optimize:function(){var a=this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setStartAfter(a):
-this.setStartBefore(a));a=this.endContainer;b=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&b.is&&b.is("span")&&b.data("cke-bookmark")&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},trim:function(a,b){var c=this.startContainer,d=this.startOffset,e=this.collapsed;if((!a||
-e)&&c&&c.type==CKEDITOR.NODE_TEXT){if(d)if(d>=c.getLength())d=c.getIndex()+1,c=c.getParent();else{var q=c.split(d),d=c.getIndex()+1,c=c.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(q,this.endOffset-this.startOffset):c.equals(this.endContainer)&&(this.endOffset+=1)}else d=c.getIndex(),c=c.getParent();this.setStart(c,d);if(e){this.collapse(!0);return}}c=this.endContainer;d=this.endOffset;b||e||!c||c.type!=CKEDITOR.NODE_TEXT||(d?(d>=c.getLength()||c.split(d),d=c.getIndex()+1):
-d=c.getIndex(),c=c.getParent(),this.setEnd(c,d))},enlarge:function(a,b){function c(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var d=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var q=function(a,b){var c=new CKEDITOR.dom.range(l);c.setStart(a,b);c.setEndAt(l,CKEDITOR.POSITION_BEFORE_END);var c=new CKEDITOR.dom.walker(c),f;for(c.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};f=
-c.next();){if(f.type!=CKEDITOR.NODE_TEXT)return!1;G=f!=a?f.getText():f.substring(b);if(d.test(G))return!1}return!0};if(this.collapsed)break;var g=this.getCommonAncestor(),l=this.root,k,z,h,p,m,C=!1,r,G;r=this.startContainer;var H=this.startOffset;r.type==CKEDITOR.NODE_TEXT?(H&&(r=!CKEDITOR.tools.trim(r.substring(0,H)).length&&r,C=!!r),r&&((p=r.getPrevious())||(h=r.getParent()))):(H&&(p=r.getChild(H-1)||r.getLast()),p||(h=r));for(h=c(h);h||p;){if(h&&!p){!m&&h.equals(g)&&(m=!0);if(e?h.isBlockBoundary():
-!l.contains(h))break;C&&"inline"==h.getComputedStyle("display")||(C=!1,m?k=h:this.setStartBefore(h));p=h.getPrevious()}for(;p;)if(r=!1,p.type==CKEDITOR.NODE_COMMENT)p=p.getPrevious();else{if(p.type==CKEDITOR.NODE_TEXT)G=p.getText(),d.test(G)&&(p=null),r=/[\s\ufeff]$/.test(G);else if((p.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||b&&p.is("br"))&&!p.data("cke-bookmark"))if(C&&CKEDITOR.dtd.$removeEmpty[p.getName()]){G=p.getText();if(d.test(G))p=null;else for(var H=p.$.getElementsByTagName("*"),w=0,n;n=
-H[w++];)if(!CKEDITOR.dtd.$removeEmpty[n.nodeName.toLowerCase()]){p=null;break}p&&(r=!!G.length)}else p=null;r&&(C?m?k=h:h&&this.setStartBefore(h):C=!0);if(p){r=p.getPrevious();if(!h&&!r){h=p;p=null;break}p=r}else h=null}h&&(h=c(h.getParent()))}r=this.endContainer;H=this.endOffset;h=p=null;m=C=!1;r.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(r.substring(H)).length?C=!0:(C=!r.getLength(),H==r.getLength()?(p=r.getNext())||(h=r.getParent()):q(r,H)&&(h=r.getParent())):(p=r.getChild(H))||(h=r);for(;h||
-p;){if(h&&!p){!m&&h.equals(g)&&(m=!0);if(e?h.isBlockBoundary():!l.contains(h))break;C&&"inline"==h.getComputedStyle("display")||(C=!1,m?z=h:h&&this.setEndAfter(h));p=h.getNext()}for(;p;){r=!1;if(p.type==CKEDITOR.NODE_TEXT)G=p.getText(),q(p,0)||(p=null),r=/^[\s\ufeff]/.test(G);else if(p.type==CKEDITOR.NODE_ELEMENT){if((0<p.$.offsetWidth||b&&p.is("br"))&&!p.data("cke-bookmark"))if(C&&CKEDITOR.dtd.$removeEmpty[p.getName()]){G=p.getText();if(d.test(G))p=null;else for(H=p.$.getElementsByTagName("*"),w=
-0;n=H[w++];)if(!CKEDITOR.dtd.$removeEmpty[n.nodeName.toLowerCase()]){p=null;break}p&&(r=!!G.length)}else p=null}else r=1;r&&C&&(m?z=h:this.setEndAfter(h));if(p){r=p.getNext();if(!h&&!r){h=p;p=null;break}p=r}else h=null}h&&(h=c(h.getParent()))}k&&z&&(g=k.contains(z)?z:k,this.setStartBefore(g),this.setEndAfter(g));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:h=new CKEDITOR.dom.range(this.root);l=this.root;h.setStartAt(l,CKEDITOR.POSITION_AFTER_START);h.setEnd(this.startContainer,
-this.startOffset);h=new CKEDITOR.dom.walker(h);var M,Q,v=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),D=null,I=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&"false"==a.getAttribute("contenteditable"))if(D){if(D.equals(a)){D=null;return}}else D=a;else if(D)return;var b=v(a);b||(M=a);return b},e=function(a){var b=I(a);!b&&a.is&&a.is("br")&&(Q=a);return b};h.guard=I;h=h.lastBackward();M=M||l;this.setStartAt(M,!M.is("br")&&(!h&&this.checkStartOfBlock()||h&&M.contains(h))?
-CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){h=this.clone();h=new CKEDITOR.dom.walker(h);var E=CKEDITOR.dom.walker.whitespaces(),L=CKEDITOR.dom.walker.bookmark();h.evaluator=function(a){return!E(a)&&!L(a)};if((h=h.previous())&&h.type==CKEDITOR.NODE_ELEMENT&&h.is("br"))break}h=this.clone();h.collapse();h.setEndAt(l,CKEDITOR.POSITION_BEFORE_END);h=new CKEDITOR.dom.walker(h);h.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?e:I;M=D=Q=null;h=h.lastForward();
-M=M||l;this.setEndAt(M,!h&&this.checkEndOfBlock()||h&&M.contains(h)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);Q&&this.setEndAfter(Q)}},shrink:function(a,b,c){if(!this.collapsed){a=a||CKEDITOR.SHRINK_TEXT;var d=this.clone(),e=this.startContainer,q=this.endContainer,g=this.startOffset,l=this.endOffset,k=1,z=1;e&&e.type==CKEDITOR.NODE_TEXT&&(g?g>=e.getLength()?d.setStartAfter(e):(d.setStartBefore(e),k=0):d.setStartBefore(e));q&&q.type==CKEDITOR.NODE_TEXT&&(l?l>=q.getLength()?d.setEndAfter(q):
-(d.setEndAfter(q),z=0):d.setEndBefore(q));var d=new CKEDITOR.dom.walker(d),h=CKEDITOR.dom.walker.bookmark();d.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var p;d.guard=function(b,d){if(h(b))return!0;if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||d&&b.equals(p)||!1===c&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("contenteditable"))return!1;d||b.type!=CKEDITOR.NODE_ELEMENT||
-(p=b);return!0};k&&(e=d[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(e,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);z&&(d.reset(),(d=d[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(d,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END));return!(!k&&!z)}},insertNode:function(a){this.optimizeBookmark();this.trim(!1,!0);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&
-this.endOffset++;this.setStartBefore(a)},moveToPosition:function(a,b){this.setStartAt(a,b);this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex(),b=b.getParent());this._setStartContainer(b);this.startOffset=
-c;this.endContainer||(this._setEndContainer(b),this.endOffset=c);a(this)},setEnd:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex()+1,b=b.getParent());this._setEndContainer(b);this.endOffset=c;this.startContainer||(this._setStartContainer(b),this.startOffset=c);a(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),
-a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setStart(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setStart(b,b.getLength()):this.setStart(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(b)}a(this)},setEndAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setEnd(b,
-0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setEnd(b,b.getLength()):this.setEnd(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(b)}a(this)},fixBlock:function(a,b){var c=this.createBookmark(),d=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(d);d.trim();this.insertNode(d);var e=d.getBogus();e&&e.remove();
-d.appendBogus();this.moveToBookmark(c);return d},splitBlock:function(a,b){var c=new CKEDITOR.dom.elementPath(this.startContainer,this.root),d=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=c.block,q=d.block,g=null;if(!c.blockLimit.equals(d.blockLimit))return null;"br"!=a&&(e||(e=this.fixBlock(!0,a),q=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),q||(q=this.fixBlock(!1,a)));c=e&&this.checkStartOfBlock();d=q&&this.checkEndOfBlock();this.deleteContents();e&&e.equals(q)&&
-(d?(g=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(q,CKEDITOR.POSITION_AFTER_END),q=null):c?(g=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(q=this.splitElement(e,b||!1),e.is("ul","ol")||e.appendBogus()));return{previousBlock:e,nextBlock:q,wasStartOfBlock:c,wasEndOfBlock:d,elementPath:g}},splitElement:function(a,b){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);
-var c=this.extractContents(!1,b||!1),d=a.clone(!1,b||!1);c.appendTo(d);d.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return d},removeEmptyBlocksAtEnd:function(){function a(d){return function(a){return b(a)||c(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||d.is("table")&&a.is("caption")?!1:!0}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!1);return function(b){for(var c=this.createBookmark(),d=this[b?"endPath":"startPath"](),e=d.block||
-d.blockLimit,g;e&&!e.equals(d.root)&&!e.getFirst(a(e));)g=e.getParent(),this[b?"setEndAt":"setStartAt"](e,CKEDITOR.POSITION_AFTER_END),e.remove(1),e=g;this.moveToBookmark(c)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,b){var d=b==CKEDITOR.START,e=this.clone();e.collapse(d);e[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:
-CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(e);e.evaluator=c(d);return e[d?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,c=this.startOffset;CKEDITOR.env.ie&&c&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,c)),k.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);c=this.clone();c.collapse(!0);c.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(c);
-a.evaluator=b();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,c=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(c)),k.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(!1);c.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();
-d.collapse(1);d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.previous()},getNextNode:function(a,b,c){var d=this.clone();d.collapse();d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.next()},checkReadOnly:function(){function a(b,c){for(;b;){if(b.type==CKEDITOR.NODE_ELEMENT){if("false"==b.getAttribute("contentEditable")&&!b.data("cke-editable"))return 0;if(b.is("html")||
-"true"==b.getAttribute("contentEditable")&&(b.contains(c)||b.equals(c)))break}b=b.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),!0;for(var c=0;a;){if(a.type==CKEDITOR.NODE_TEXT){b&&this.endContainer&&this.checkEndOfBlock()&&k.test(a.getText())?this.moveToPosition(a,
-CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);c=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),c=1;else if(b&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),this.setEndAfter(a),
-!0;var d=a,e=c,q=void 0;d.type==CKEDITOR.NODE_ELEMENT&&d.isEditable(!1)&&(q=d[b?"getLast":"getFirst"](w));e||q||(q=d[b?"getPrevious":"getNext"](w));a=q}return!!c},moveToClosestEditablePosition:function(a,b){var c,d=0,e,q,g=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(c=new CKEDITOR.dom.range(this.root),c.moveToPosition(a,g[b?0:1])):c=this.clone();if(a&&!a.is(CKEDITOR.dtd.$block))d=1;else if(e=c[b?"getNextEditableNode":"getPreviousEditableNode"]())d=1,(q=e.type==CKEDITOR.NODE_ELEMENT)&&
-e.is(CKEDITOR.dtd.$block)&&"false"==e.getAttribute("contenteditable")?(c.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),c.setEndAt(e,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&q&&e.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(c.setEnd(e,0),c.collapse()):c.moveToPosition(e,g[b?1:0]);d&&this.moveToRange(c);return!!d},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,!0)},getEnclosedNode:function(){var a=
-this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(!1,!0),c=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();a.reset();return d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=
-this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:e(),getPreviousEditableNode:e(1),scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",this.document),b,c,d,e=this.clone();e.optimize();(d=e.startContainer.type==CKEDITOR.NODE_TEXT)?(c=e.startContainer.getText(),b=e.startContainer.split(e.startOffset),a.insertAfter(e.startContainer)):e.insertNode(a);a.scrollIntoView();
-d&&(e.startContainer.setText(c),b.remove());a.remove()},_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a}}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;"use strict";
-(function(){function a(a){1>arguments.length||(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function d(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function b(a,c,e,g){a:{null==g&&(g=d(e));for(var l;l=g.shift();)if(l.getDtd().p){g={element:l,remaining:g};break a}g=null}if(!g)return 0;if((l=CKEDITOR.filter.instances[g.element.data("cke-filter")])&&!l.check(c))return b(a,
-c,e,g.remaining);c=new CKEDITOR.dom.range(g.element);c.selectNodeContents(g.element);c=c.createIterator();c.enlargeBr=a.enlargeBr;c.enforceRealBlocks=a.enforceRealBlocks;c.activeFilter=c.filter=l;a._.nestedEditable={element:g.element,container:e,remaining:g.remaining,iterator:c};return 1}function c(a,b,c){if(!b)return!1;a=a.clone();a.collapse(!c);return a.checkBoundaryOfElement(b,c?CKEDITOR.START:CKEDITOR.END)}var e=/^[\r\n\t ]+$/,g=CKEDITOR.dom.walker.bookmark(!1,!0),l=CKEDITOR.dom.walker.whitespaces(!0),
-k=function(a){return g(a)&&l(a)},n={dd:1,dt:1,li:1};a.prototype={getNextParagraph:function(a){var d,l,A,u,B;a=a||"p";if(this._.nestedEditable){if(d=this._.nestedEditable.iterator.getNextParagraph(a))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,d;this.activeFilter=this.filter;if(b(this,a,this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(a);this._.nestedEditable=
-null}if(!this.range.root.getDtd()[a])return null;if(!this._.started){var q=this.range.clone();l=q.startPath();var y=q.endPath(),F=!q.collapsed&&c(q,l.block),t=!q.collapsed&&c(q,y.block,1);q.shrink(CKEDITOR.SHRINK_ELEMENT,!0);F&&q.setStartAt(l.block,CKEDITOR.POSITION_BEFORE_END);t&&q.setEndAt(y.block,CKEDITOR.POSITION_AFTER_START);l=q.endContainer.hasAscendant("pre",!0)||q.startContainer.hasAscendant("pre",!0);q.enlarge(this.forceBrBreak&&!l||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);
-q.collapsed||(l=new CKEDITOR.dom.walker(q.clone()),y=CKEDITOR.dom.walker.bookmark(!0,!0),l.evaluator=y,this._.nextNode=l.next(),l=new CKEDITOR.dom.walker(q.clone()),l.evaluator=y,l=l.previous(),this._.lastNode=l.getNextSourceNode(!0,null,q.root),this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(y=this.range.clone(),y.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),y.checkEndOfBlock()&&
-(y=new CKEDITOR.dom.elementPath(y.endContainer,y.root),this._.lastNode=(y.block||y.blockLimit).getNextSourceNode(!0))),this._.lastNode&&q.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=q.document.createText(""),this._.lastNode.insertAfter(l)),q=null);this._.started=1;l=q}y=this._.nextNode;q=this._.lastNode;for(this._.nextNode=null;y;){var F=0,t=y.hasAscendant("pre"),z=y.type!=CKEDITOR.NODE_ELEMENT,h=0;if(z)y.type==CKEDITOR.NODE_TEXT&&e.test(y.getText())&&(z=0);else{var p=y.getName();
-if(CKEDITOR.dtd.$block[p]&&"false"==y.getAttribute("contenteditable")){d=y;b(this,a,d);break}else if(y.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){if("br"==p)z=1;else if(!l&&!y.getChildCount()&&"hr"!=p){d=y;A=y.equals(q);break}l&&(l.setEndAt(y,CKEDITOR.POSITION_BEFORE_START),"br"!=p&&(this._.nextNode=y));F=1}else{if(y.getFirst()){l||(l=this.range.clone(),l.setStartAt(y,CKEDITOR.POSITION_BEFORE_START));y=y.getFirst();continue}z=1}}z&&!l&&(l=this.range.clone(),l.setStartAt(y,CKEDITOR.POSITION_BEFORE_START));
-A=(!F||z)&&y.equals(q);if(l&&!F)for(;!y.getNext(k)&&!A;){p=y.getParent();if(p.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){F=1;z=0;A||p.equals(q);l.setEndAt(p,CKEDITOR.POSITION_BEFORE_END);break}y=p;z=1;A=y.equals(q);h=1}z&&l.setEndAt(y,CKEDITOR.POSITION_AFTER_END);y=this._getNextSourceNode(y,h,q);if((A=!y)||F&&l)break}if(!d){if(!l)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;d=new CKEDITOR.dom.elementPath(l.startContainer,l.root);y=d.blockLimit;F={div:1,th:1,td:1};
-d=d.block;!d&&y&&!this.enforceRealBlocks&&F[y.getName()]&&l.checkStartOfBlock()&&l.checkEndOfBlock()&&!y.equals(l.root)?d=y:!d||this.enforceRealBlocks&&d.is(n)?(d=this.range.document.createElement(a),l.extractContents().appendTo(d),d.trim(),l.insertNode(d),u=B=!0):"li"!=d.getName()?l.checkStartOfBlock()&&l.checkEndOfBlock()||(d=d.clone(!1),l.extractContents().appendTo(d),d.trim(),B=l.splitBlock(),u=!B.wasStartOfBlock,B=!B.wasEndOfBlock,l.insertNode(d)):A||(this._.nextNode=d.equals(q)?null:this._getNextSourceNode(l.getBoundaryNodes().endNode,
-1,q))}u&&(u=d.getPrevious())&&u.type==CKEDITOR.NODE_ELEMENT&&("br"==u.getName()?u.remove():u.getLast()&&"br"==u.getLast().$.nodeName.toLowerCase()&&u.getLast().remove());B&&(u=d.getLast())&&u.type==CKEDITOR.NODE_ELEMENT&&"br"==u.getName()&&(!CKEDITOR.env.needsBrFiller||u.getPrevious(g)||u.getNext(g))&&u.remove();this._.nextNode||(this._.nextNode=A||d.equals(q)||!q?null:this._getNextSourceNode(d,1,q));return d},_getNextSourceNode:function(a,b,c){function d(a){return!(a.equals(c)||a.equals(e))}var e=
+(function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function d(a,b,c,d,e){function g(a,b,c,f){var X=c?a.getPrevious():a.getNext();if(f&&h)return X;l||f?b.append(a.clone(!0,e),c):(a.remove(),q&&b.append(a,c));return X}function m(){var a,b,c,f=Math.min(O.length,p.length);for(a=0;a<f;a++)if(b=O[a],c=p[a],!b.equals(c))return a;return a-1}function k(){var b=C-1,c=v&&B&&!r.equals(J);b<t-1||b<F-1||c?(c?a.moveToPosition(J,
+CKEDITOR.POSITION_BEFORE_START):F==b+1&&y?a.moveToPosition(p[b],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(p[b+1],CKEDITOR.POSITION_BEFORE_START),d&&(b=O[b+1])&&b.type==CKEDITOR.NODE_ELEMENT&&(c=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',a.document),c.insertAfter(b),b.mergeSiblings(!1),a.moveToBookmark({startNode:c}))):a.collapse(!0)}a.optimizeBookmark();var h=0===b,q=1==b,l=2==b;b=l||q;var r=a.startContainer,J=a.endContainer,
+H=a.startOffset,E=a.endOffset,u,y,v,B,L,n;if(l&&J.type==CKEDITOR.NODE_TEXT&&(r.equals(J)||r.type===CKEDITOR.NODE_ELEMENT&&r.getFirst().equals(J)))c.append(a.document.createText(J.substring(H,E)));else{J.type==CKEDITOR.NODE_TEXT?l?n=!0:J=J.split(E):0<J.getChildCount()?E>=J.getChildCount()?(J=J.getChild(E-1),y=!0):J=J.getChild(E):B=y=!0;r.type==CKEDITOR.NODE_TEXT?l?L=!0:r.split(H):0<r.getChildCount()?0===H?(r=r.getChild(H),u=!0):r=r.getChild(H-1):v=u=!0;for(var O=r.getParents(),p=J.getParents(),C=m(),
+t=O.length-1,F=p.length-1,N=c,X,Y,U,ea=-1,P=C;P<=t;P++){Y=O[P];U=Y.getNext();for(P!=t||Y.equals(p[P])&&t<F?b&&(X=N.append(Y.clone(0,e))):u?g(Y,N,!1,v):L&&N.append(a.document.createText(Y.substring(H)));U;){if(U.equals(p[P])){ea=P;break}U=g(U,N)}N=X}N=c;for(P=C;P<=F;P++)if(c=p[P],U=c.getPrevious(),c.equals(O[P]))b&&(N=N.getChild(0));else{P!=F||c.equals(O[P])&&F<t?b&&(X=N.append(c.clone(0,e))):y?g(c,N,!1,B):n&&N.append(a.document.createText(c.substring(0,E)));if(P>ea)for(;U;)U=g(U,N,!0);N=X}l||k()}}
+function b(){var a=!1,b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!0),d=CKEDITOR.dom.walker.bogus();return function(e){return c(e)||b(e)?!0:d(e)&&!a?a=!0:e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(g)?!1:!0}}function c(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(1);return function(d){return c(d)||b(d)?!0:!a&&h(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.is(CKEDITOR.dtd.$removeEmpty)}}
+function e(a){return function(){var b;return this[a?"getPreviousNode":"getNextNode"](function(a){!b&&q(a)&&(b=a);return n(a)&&!(h(a)&&a.equals(b))})}}var g={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},h=CKEDITOR.dom.walker.bogus(),k=/^[\t\r\n ]*(?: |\xa0)$/,n=CKEDITOR.dom.walker.editable(),q=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a=
+new CKEDITOR.dom.range(this.root);a._setStartContainer(this.startContainer);a.startOffset=this.startOffset;a._setEndContainer(this.endContainer);a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||
+d(this,2,b,!1,"undefined"==typeof a?!0:a);return b},deleteContents:function(a){this.collapsed||d(this,0,null,a)},extractContents:function(a,b){var c=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,1,c,a,"undefined"==typeof b?!0:b);return c},createBookmark:function(a){var b,c,d,e,g=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("\x26nbsp;");a&&(d="cke_bm_"+CKEDITOR.tools.getNextNumber(),b.setAttribute("id",
+d+(g?"C":"S")));g||(c=b.clone(),c.setHtml("\x26nbsp;"),a&&c.setAttribute("id",d+"E"),e=this.clone(),e.collapse(),e.insertNode(c));e=this.clone();e.collapse(!0);e.insertNode(b);c?(this.setStartAfter(b),this.setEndBefore(c)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?d+(g?"C":"S"):b,endNode:a?d+"E":c,serializable:a,collapsed:g}},createBookmark2:function(){function a(b){var f=b.container,d=b.offset,e;e=f;var g=d;e=e.type!=CKEDITOR.NODE_ELEMENT||0===g||g==e.getChildCount()?
+0:e.getChild(g-1).type==CKEDITOR.NODE_TEXT&&e.getChild(g).type==CKEDITOR.NODE_TEXT;e&&(f=f.getChild(d-1),d=f.getLength());if(f.type==CKEDITOR.NODE_ELEMENT&&0<d){a:{for(e=f;d--;)if(g=e.getChild(d).getIndex(!0),0<=g){d=g;break a}d=-1}d+=1}if(f.type==CKEDITOR.NODE_TEXT){e=f;for(g=0;(e=e.getPrevious())&&e.type==CKEDITOR.NODE_TEXT;)g+=e.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;e=g;f.getText()?d+=e:(g=f.getPrevious(c),e?(d=e,f=g?g.getNext():f.getParent().getFirst()):(f=
+f.getParent(),d=g?g.getIndex(!0)+1:0))}b.container=f;b.offset=d}function b(a,c){var f=c.getCustomData("cke-fillingChar");if(f){var d=a.container;f.equals(d)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=d.getIndex(),a.container=d.getParent()))}}var c=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,!0);return function(c){var d=this.collapsed,e={container:this.startContainer,offset:this.startOffset},m={container:this.endContainer,offset:this.endOffset};c&&(a(e),
+b(e,this.root),d||(a(m),b(m,this.root)));return{start:e.container.getAddress(c),end:d?null:m.container.getAddress(c),startOffset:e.offset,endOffset:m.offset,normalized:c,collapsed:d,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),c=a.startOffset,d=a.end&&this.document.getByAddress(a.end,a.normalized);a=a.endOffset;this.setStart(b,c);d?this.setEnd(d,a):this.collapse(!0)}else b=(c=a.serializable)?this.document.getById(a.startNode):a.startNode,
+a=c?this.document.getById(a.endNode):a.endNode,this.setStartBefore(b),b.remove(),a?(this.setEndBefore(a),a.remove()):this.collapse(!0)},getBoundaryNodes:function(){var a=this.startContainer,b=this.endContainer,c=this.startOffset,d=this.endOffset,e;if(a.type==CKEDITOR.NODE_ELEMENT)if(e=a.getChildCount(),e>c)a=a.getChild(c);else if(1>e)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}if(b.type==CKEDITOR.NODE_ELEMENT)if(e=b.getChildCount(),
+e>d)b=b.getChild(d).getPreviousSourceNode(!0);else if(1>e)b=b.getPreviousSourceNode();else{for(b=b.$;b.lastChild;)b=b.lastChild;b=new CKEDITOR.dom.node(b)}a.getPosition(b)&CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var c=this.startContainer,d=this.endContainer,c=c.equals(d)?a&&c.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?c.getChild(this.startOffset):c:c.getCommonAncestor(d);return b&&!c.is?c.getParent():c},optimize:function(){var a=
+this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;b=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&b.is&&b.is("span")&&b.data("cke-bookmark")&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},
+trim:function(a,b){var c=this.startContainer,d=this.startOffset,e=this.collapsed;if((!a||e)&&c&&c.type==CKEDITOR.NODE_TEXT){if(d)if(d>=c.getLength())d=c.getIndex()+1,c=c.getParent();else{var g=c.split(d),d=c.getIndex()+1,c=c.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(g,this.endOffset-this.startOffset):c.equals(this.endContainer)&&(this.endOffset+=1)}else d=c.getIndex(),c=c.getParent();this.setStart(c,d);if(e){this.collapse(!0);return}}c=this.endContainer;d=this.endOffset;
+b||e||!c||c.type!=CKEDITOR.NODE_TEXT||(d?(d>=c.getLength()||c.split(d),d=c.getIndex()+1):d=c.getIndex(),c=c.getParent(),this.setEnd(c,d))},enlarge:function(a,b){function c(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var d=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var g=function(a,b){var c=new CKEDITOR.dom.range(k);c.setStart(a,b);c.setEndAt(k,CKEDITOR.POSITION_BEFORE_END);var c=new CKEDITOR.dom.walker(c),
+f;for(c.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};f=c.next();){if(f.type!=CKEDITOR.NODE_TEXT)return!1;u=f!=a?f.getText():f.substring(b);if(d.test(u))return!1}return!0};if(this.collapsed)break;var m=this.getCommonAncestor(),k=this.root,h,q,l,r,J,H=!1,E,u;E=this.startContainer;var y=this.startOffset;E.type==CKEDITOR.NODE_TEXT?(y&&(E=!CKEDITOR.tools.trim(E.substring(0,y)).length&&E,H=!!E),E&&((r=E.getPrevious())||(l=E.getParent()))):(y&&(r=E.getChild(y-1)||E.getLast()),
+r||(l=E));for(l=c(l);l||r;){if(l&&!r){!J&&l.equals(m)&&(J=!0);if(e?l.isBlockBoundary():!k.contains(l))break;H&&"inline"==l.getComputedStyle("display")||(H=!1,J?h=l:this.setStartBefore(l));r=l.getPrevious()}for(;r;)if(E=!1,r.type==CKEDITOR.NODE_COMMENT)r=r.getPrevious();else{if(r.type==CKEDITOR.NODE_TEXT)u=r.getText(),d.test(u)&&(r=null),E=/[\s\ufeff]$/.test(u);else if((r.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||b&&r.is("br"))&&!r.data("cke-bookmark"))if(H&&CKEDITOR.dtd.$removeEmpty[r.getName()]){u=
+r.getText();if(d.test(u))r=null;else for(var y=r.$.getElementsByTagName("*"),v=0,B;B=y[v++];)if(!CKEDITOR.dtd.$removeEmpty[B.nodeName.toLowerCase()]){r=null;break}r&&(E=!!u.length)}else r=null;E&&(H?J?h=l:l&&this.setStartBefore(l):H=!0);if(r){E=r.getPrevious();if(!l&&!E){l=r;r=null;break}r=E}else l=null}l&&(l=c(l.getParent()))}E=this.endContainer;y=this.endOffset;l=r=null;J=H=!1;E.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(E.substring(y)).length?H=!0:(H=!E.getLength(),y==E.getLength()?(r=E.getNext())||
+(l=E.getParent()):g(E,y)&&(l=E.getParent())):(r=E.getChild(y))||(l=E);for(;l||r;){if(l&&!r){!J&&l.equals(m)&&(J=!0);if(e?l.isBlockBoundary():!k.contains(l))break;H&&"inline"==l.getComputedStyle("display")||(H=!1,J?q=l:l&&this.setEndAfter(l));r=l.getNext()}for(;r;){E=!1;if(r.type==CKEDITOR.NODE_TEXT)u=r.getText(),g(r,0)||(r=null),E=/^[\s\ufeff]/.test(u);else if(r.type==CKEDITOR.NODE_ELEMENT){if((0<r.$.offsetWidth||b&&r.is("br"))&&!r.data("cke-bookmark"))if(H&&CKEDITOR.dtd.$removeEmpty[r.getName()]){u=
+r.getText();if(d.test(u))r=null;else for(y=r.$.getElementsByTagName("*"),v=0;B=y[v++];)if(!CKEDITOR.dtd.$removeEmpty[B.nodeName.toLowerCase()]){r=null;break}r&&(E=!!u.length)}else r=null}else E=1;E&&H&&(J?q=l:this.setEndAfter(l));if(r){E=r.getNext();if(!l&&!E){l=r;r=null;break}r=E}else l=null}l&&(l=c(l.getParent()))}h&&q&&(m=h.contains(q)?q:h,this.setStartBefore(m),this.setEndAfter(m));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:l=new CKEDITOR.dom.range(this.root);
+k=this.root;l.setStartAt(k,CKEDITOR.POSITION_AFTER_START);l.setEnd(this.startContainer,this.startOffset);l=new CKEDITOR.dom.walker(l);var L,n,O=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),p=null,C=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&"false"==a.getAttribute("contenteditable"))if(p){if(p.equals(a)){p=null;return}}else p=a;else if(p)return;var b=O(a);b||(L=a);return b},e=function(a){var b=C(a);!b&&a.is&&a.is("br")&&(n=a);return b};l.guard=C;l=l.lastBackward();
+L=L||k;this.setStartAt(L,!L.is("br")&&(!l&&this.checkStartOfBlock()||l&&L.contains(l))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){l=this.clone();l=new CKEDITOR.dom.walker(l);var t=CKEDITOR.dom.walker.whitespaces(),F=CKEDITOR.dom.walker.bookmark();l.evaluator=function(a){return!t(a)&&!F(a)};if((l=l.previous())&&l.type==CKEDITOR.NODE_ELEMENT&&l.is("br"))break}l=this.clone();l.collapse();l.setEndAt(k,CKEDITOR.POSITION_BEFORE_END);l=new CKEDITOR.dom.walker(l);
+l.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?e:C;L=p=n=null;l=l.lastForward();L=L||k;this.setEndAt(L,!l&&this.checkEndOfBlock()||l&&L.contains(l)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);n&&this.setEndAfter(n)}},shrink:function(a,b,c){var d="boolean"===typeof c?c:c&&"boolean"===typeof c.shrinkOnBlockBoundary?c.shrinkOnBlockBoundary:!0,e=c&&c.skipBogus;if(!this.collapsed){a=a||CKEDITOR.SHRINK_TEXT;var g=this.clone(),m=this.startContainer,k=this.endContainer,h=this.startOffset,
+q=this.endOffset,l=c=1;m&&m.type==CKEDITOR.NODE_TEXT&&(h?h>=m.getLength()?g.setStartAfter(m):(g.setStartBefore(m),c=0):g.setStartBefore(m));k&&k.type==CKEDITOR.NODE_TEXT&&(q?q>=k.getLength()?g.setEndAfter(k):(g.setEndAfter(k),l=0):g.setEndBefore(k));var g=new CKEDITOR.dom.walker(g),r=CKEDITOR.dom.walker.bookmark(),J=CKEDITOR.dom.walker.bogus();g.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var H;g.guard=function(b,c){if(e&&J(b)||r(b))return!0;
+if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||c&&b.equals(H)||!1===d&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("contenteditable"))return!1;c||b.type!=CKEDITOR.NODE_ELEMENT||(H=b);return!0};c&&(m=g[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(m,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);l&&(g.reset(),(g=g[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(g,b?CKEDITOR.POSITION_BEFORE_END:
+CKEDITOR.POSITION_AFTER_END));return!(!c&&!l)}},insertNode:function(a){this.optimizeBookmark();this.trim(!1,!0);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},moveToPosition:function(a,b){this.setStartAt(a,b);this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,
+0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex(),b=b.getParent());this._setStartContainer(b);this.startOffset=c;this.endContainer||(this._setEndContainer(b),this.endOffset=c);a(this)},setEnd:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex()+1,b=b.getParent());this._setEndContainer(b);this.endOffset=c;this.startContainer||
+(this._setStartContainer(b),this.startOffset=c);a(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setStart(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setStart(b,
+b.getLength()):this.setStart(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(b)}a(this)},setEndAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setEnd(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setEnd(b,b.getLength()):this.setEnd(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(b)}a(this)},
+fixBlock:function(a,b){var c=this.createBookmark(),d=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(d);d.trim();this.insertNode(d);var e=d.getBogus();e&&e.remove();d.appendBogus();this.moveToBookmark(c);return d},splitBlock:function(a,b){var c=new CKEDITOR.dom.elementPath(this.startContainer,this.root),d=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=c.block,g=d.block,m=null;if(!c.blockLimit.equals(d.blockLimit))return null;
+"br"!=a&&(e||(e=this.fixBlock(!0,a),g=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),g||(g=this.fixBlock(!1,a)));c=e&&this.checkStartOfBlock();d=g&&this.checkEndOfBlock();this.deleteContents();e&&e.equals(g)&&(d?(m=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(g,CKEDITOR.POSITION_AFTER_END),g=null):c?(m=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(g=this.splitElement(e,
+b||!1),e.is("ul","ol")||e.appendBogus()));return{previousBlock:e,nextBlock:g,wasStartOfBlock:c,wasEndOfBlock:d,elementPath:m}},splitElement:function(a,b){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var c=this.extractContents(!1,b||!1),d=a.clone(!1,b||!1);c.appendTo(d);d.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return d},removeEmptyBlocksAtEnd:function(){function a(d){return function(a){return b(a)||c(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||
+d.is("table")&&a.is("caption")?!1:!0}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!1);return function(b){for(var c=this.createBookmark(),d=this[b?"endPath":"startPath"](),e=d.block||d.blockLimit,g;e&&!e.equals(d.root)&&!e.getFirst(a(e));)g=e.getParent(),this[b?"setEndAt":"setStartAt"](e,CKEDITOR.POSITION_AFTER_END),e.remove(1),e=g;this.moveToBookmark(c)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,
+this.root)},checkBoundaryOfElement:function(a,b){var d=b==CKEDITOR.START,e=this.clone();e.collapse(d);e[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(e);e.evaluator=c(d);return e[d?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,c=this.startOffset;CKEDITOR.env.ie&&c&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,c)),k.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,
+this.root);c=this.clone();c.collapse(!0);c.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,c=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(c)),k.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(!1);c.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);
+a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();d.collapse(1);d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.previous()},getNextNode:function(a,b,c){var d=this.clone();d.collapse();d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.next()},checkReadOnly:function(){function a(b,c){for(;b;){if(b.type==
+CKEDITOR.NODE_ELEMENT){if("false"==b.getAttribute("contentEditable")&&!b.data("cke-editable"))return 0;if(b.is("html")||"true"==b.getAttribute("contentEditable")&&(b.contains(c)||b.equals(c)))break}b=b.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),
+!0;for(var c=0;a;){if(a.type==CKEDITOR.NODE_TEXT){b&&this.endContainer&&this.checkEndOfBlock()&&k.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);c=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),c=1;else if(b&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);
+else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),this.setEndAfter(a),!0;var d=a,e=c,g=void 0;d.type==CKEDITOR.NODE_ELEMENT&&d.isEditable(!1)&&(g=d[b?"getLast":"getFirst"](q));e||g||(g=d[b?"getPrevious":"getNext"](q));a=g}return!!c},moveToClosestEditablePosition:function(a,b){var c,d=0,e,g,m=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(c=new CKEDITOR.dom.range(this.root),c.moveToPosition(a,m[b?0:1])):c=this.clone();if(a&&
+!a.is(CKEDITOR.dtd.$block))d=1;else if(e=c[b?"getNextEditableNode":"getPreviousEditableNode"]())d=1,(g=e.type==CKEDITOR.NODE_ELEMENT)&&e.is(CKEDITOR.dtd.$block)&&"false"==e.getAttribute("contenteditable")?(c.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),c.setEndAt(e,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&g&&e.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(c.setEnd(e,0),c.collapse()):c.moveToPosition(e,m[b?1:0]);d&&this.moveToRange(c);return!!d},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},
+moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,!0)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(!1,!0),c=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();a.reset();return d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=this.startContainer;
+return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:e(),getPreviousEditableNode:e(1),_getTableElement:function(a){a=a||{td:1,th:1,tr:1,tbody:1,thead:1,tfoot:1,table:1};var b=this.startContainer,c=this.endContainer,d=b.getAscendant("table",!0),e=c.getAscendant("table",!0);return CKEDITOR.env.safari&&d&&c.equals(this.root)?
+b.getAscendant(a,!0):this.getEnclosedNode()?this.getEnclosedNode().getAscendant(a,!0):d&&e&&(d.equals(e)||d.contains(e)||e.contains(d))?b.getAscendant(a,!0):null},scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",this.document),b,c,d,e=this.clone();e.optimize();(d=e.startContainer.type==CKEDITOR.NODE_TEXT)?(c=e.startContainer.getText(),b=e.startContainer.split(e.startOffset),a.insertAfter(e.startContainer)):e.insertNode(a);a.scrollIntoView();
+d&&(e.startContainer.setText(c),b.remove());a.remove()},_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a},_find:function(a,b){var c=this.getCommonAncestor(),d=this.getBoundaryNodes(),e=[],g,m,k,h;if(c&&c.find)for(m=c.find(a),g=0;g<m.count();g++)if(c=m.getItem(g),b||!c.isReadOnly())k=c.getPosition(d.startNode)&CKEDITOR.POSITION_FOLLOWING||d.startNode.equals(c),h=c.getPosition(d.endNode)&CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IS_CONTAINED||
+d.endNode.equals(c),k&&h&&e.push(c);return e}};CKEDITOR.dom.range.mergeRanges=function(a){return CKEDITOR.tools.array.reduce(a,function(a,b){var c=a[a.length-1],d=!1;b=b.clone();b.enlarge(CKEDITOR.ENLARGE_ELEMENT);if(c){var e=new CKEDITOR.dom.range(b.root),d=new CKEDITOR.dom.walker(e),f=CKEDITOR.dom.walker.whitespaces();e.setStart(c.endContainer,c.endOffset);e.setEnd(b.startContainer,b.startOffset);for(e=d.next();f(e)||b.endContainer.equals(e);)e=d.next();d=!e}d?c.setEnd(b.endContainer,b.endOffset):
+a.push(b);return a},[])}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;"use strict";
+(function(){function a(a){1>arguments.length||(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function d(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function b(a,c,e,g){a:{null==g&&(g=d(e));for(var k;k=g.shift();)if(k.getDtd().p){g={element:k,remaining:g};break a}g=null}if(!g)return 0;if((k=CKEDITOR.filter.instances[g.element.data("cke-filter")])&&!k.check(c))return b(a,
+c,e,g.remaining);c=new CKEDITOR.dom.range(g.element);c.selectNodeContents(g.element);c=c.createIterator();c.enlargeBr=a.enlargeBr;c.enforceRealBlocks=a.enforceRealBlocks;c.activeFilter=c.filter=k;a._.nestedEditable={element:g.element,container:e,remaining:g.remaining,iterator:c};return 1}function c(a,b,c){if(!b)return!1;a=a.clone();a.collapse(!c);return a.checkBoundaryOfElement(b,c?CKEDITOR.START:CKEDITOR.END)}var e=/^[\r\n\t ]+$/,g=CKEDITOR.dom.walker.bookmark(!1,!0),h=CKEDITOR.dom.walker.whitespaces(!0),
+k=function(a){return g(a)&&h(a)},n={dd:1,dt:1,li:1};a.prototype={getNextParagraph:function(a){var d,h,w,A,G;a=a||"p";if(this._.nestedEditable){if(d=this._.nestedEditable.iterator.getNextParagraph(a))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,d;this.activeFilter=this.filter;if(b(this,a,this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(a);this._.nestedEditable=
+null}if(!this.range.root.getDtd()[a])return null;if(!this._.started){var x=this.range.clone();h=x.startPath();var m=x.endPath(),K=!x.collapsed&&c(x,h.block),z=!x.collapsed&&c(x,m.block,1);x.shrink(CKEDITOR.SHRINK_ELEMENT,!0);K&&x.setStartAt(h.block,CKEDITOR.POSITION_BEFORE_END);z&&x.setEndAt(m.block,CKEDITOR.POSITION_AFTER_START);h=x.endContainer.hasAscendant("pre",!0)||x.startContainer.hasAscendant("pre",!0);x.enlarge(this.forceBrBreak&&!h||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);
+x.collapsed||(h=new CKEDITOR.dom.walker(x.clone()),m=CKEDITOR.dom.walker.bookmark(!0,!0),h.evaluator=m,this._.nextNode=h.next(),h=new CKEDITOR.dom.walker(x.clone()),h.evaluator=m,h=h.previous(),this._.lastNode=h.getNextSourceNode(!0,null,x.root),this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(m=this.range.clone(),m.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),m.checkEndOfBlock()&&
+(m=new CKEDITOR.dom.elementPath(m.endContainer,m.root),this._.lastNode=(m.block||m.blockLimit).getNextSourceNode(!0))),this._.lastNode&&x.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=x.document.createText(""),this._.lastNode.insertAfter(h)),x=null);this._.started=1;h=x}m=this._.nextNode;x=this._.lastNode;for(this._.nextNode=null;m;){var K=0,z=m.hasAscendant("pre"),I=m.type!=CKEDITOR.NODE_ELEMENT,l=0;if(I)m.type==CKEDITOR.NODE_TEXT&&e.test(m.getText())&&(I=0);else{var r=m.getName();
+if(CKEDITOR.dtd.$block[r]&&"false"==m.getAttribute("contenteditable")){d=m;b(this,a,d);break}else if(m.isBlockBoundary(this.forceBrBreak&&!z&&{br:1})){if("br"==r)I=1;else if(!h&&!m.getChildCount()&&"hr"!=r){d=m;w=m.equals(x);break}h&&(h.setEndAt(m,CKEDITOR.POSITION_BEFORE_START),"br"!=r&&(this._.nextNode=m));K=1}else{if(m.getFirst()){h||(h=this.range.clone(),h.setStartAt(m,CKEDITOR.POSITION_BEFORE_START));m=m.getFirst();continue}I=1}}I&&!h&&(h=this.range.clone(),h.setStartAt(m,CKEDITOR.POSITION_BEFORE_START));
+w=(!K||I)&&m.equals(x);if(h&&!K)for(;!m.getNext(k)&&!w;){r=m.getParent();if(r.isBlockBoundary(this.forceBrBreak&&!z&&{br:1})){K=1;I=0;w||r.equals(x);h.setEndAt(r,CKEDITOR.POSITION_BEFORE_END);break}m=r;I=1;w=m.equals(x);l=1}I&&h.setEndAt(m,CKEDITOR.POSITION_AFTER_END);m=this._getNextSourceNode(m,l,x);if((w=!m)||K&&h)break}if(!d){if(!h)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;d=new CKEDITOR.dom.elementPath(h.startContainer,h.root);m=d.blockLimit;K={div:1,th:1,td:1};
+d=d.block;!d&&m&&!this.enforceRealBlocks&&K[m.getName()]&&h.checkStartOfBlock()&&h.checkEndOfBlock()&&!m.equals(h.root)?d=m:!d||this.enforceRealBlocks&&d.is(n)?(d=this.range.document.createElement(a),h.extractContents().appendTo(d),d.trim(),h.insertNode(d),A=G=!0):"li"!=d.getName()?h.checkStartOfBlock()&&h.checkEndOfBlock()||(d=d.clone(!1),h.extractContents().appendTo(d),d.trim(),G=h.splitBlock(),A=!G.wasStartOfBlock,G=!G.wasEndOfBlock,h.insertNode(d)):w||(this._.nextNode=d.equals(x)?null:this._getNextSourceNode(h.getBoundaryNodes().endNode,
+1,x))}A&&(A=d.getPrevious())&&A.type==CKEDITOR.NODE_ELEMENT&&("br"==A.getName()?A.remove():A.getLast()&&"br"==A.getLast().$.nodeName.toLowerCase()&&A.getLast().remove());G&&(A=d.getLast())&&A.type==CKEDITOR.NODE_ELEMENT&&"br"==A.getName()&&(!CKEDITOR.env.needsBrFiller||A.getPrevious(g)||A.getNext(g))&&A.remove();this._.nextNode||(this._.nextNode=w||d.equals(x)||!x?null:this._getNextSourceNode(d,1,x));return d},_getNextSourceNode:function(a,b,c){function d(a){return!(a.equals(c)||a.equals(e))}var e=
this.range.root;for(a=a.getNextSourceNode(b,null,d);!g(a);)a=a.getNextSourceNode(b,null,d);return a}};CKEDITOR.dom.range.prototype.createIterator=function(){return new a(this)}})();
CKEDITOR.command=function(a,d){this.uiItems=[];this.exec=function(b){if(this.state==CKEDITOR.TRISTATE_DISABLED||!this.checkAllowed())return!1;this.editorFocus&&a.focus();return!1===this.fire("exec")?!0:!1!==d.exec.call(this,a,b)};this.refresh=function(a,b){if(!this.readOnly&&a.readOnly)return!0;if(this.context&&!b.isContextFor(this.context)||!this.checkAllowed(!0))return this.disable(),!0;this.startDisabled||this.enable();this.modes&&!this.modes[a.mode]&&this.disable();return!1===this.fire("refresh",
{editor:a,path:b})?!0:d.refresh&&!1!==d.refresh.apply(this,arguments)};var b;this.checkAllowed=function(c){return c||"boolean"!=typeof b?b=a.activeFilter.checkFeature(this):b};CKEDITOR.tools.extend(this,d,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!d.context,state:CKEDITOR.TRISTATE_DISABLED});CKEDITOR.event.call(this)};
CKEDITOR.command.prototype={enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()&&this.setState(this.preserveState&&"undefined"!=typeof this.previousState?this.previousState:CKEDITOR.TRISTATE_OFF)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},setState:function(a){if(this.state==a||a!=CKEDITOR.TRISTATE_DISABLED&&!this.checkAllowed())return!1;this.previousState=this.state;this.state=a;this.fire("state");return!0},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF?
this.setState(CKEDITOR.TRISTATE_ON):this.state==CKEDITOR.TRISTATE_ON&&this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.event.implementOn(CKEDITOR.command.prototype);CKEDITOR.ENTER_P=1;CKEDITOR.ENTER_BR=2;CKEDITOR.ENTER_DIV=3;
CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"\x3c!DOCTYPE html\x3e",bodyId:"",bodyClass:"",fullPage:!1,height:200,contentsCss:CKEDITOR.getUrl("contents.css"),extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]};
-(function(){function a(a,b,c,d,e){var h,p;a=[];for(h in b){p=b[h];p="boolean"==typeof p?{}:"function"==typeof p?{match:p}:K(p);"$"!=h.charAt(0)&&(p.elements=h);c&&(p.featureName=c.toLowerCase());var m=p;m.elements=l(m.elements,/\s+/)||null;m.propertiesOnly=m.propertiesOnly||!0===m.elements;var r=/\s*,\s*/,q=void 0;for(q in Q){m[q]=l(m[q],r)||null;var f=m,E=v[q],z=l(m[v[q]],r),g=m[q],C=[],G=!0,L=void 0;z?G=!1:z={};for(L in g)"!"==L.charAt(0)&&(L=L.slice(1),C.push(L),z[L]=!0,G=!1);for(;L=C.pop();)g[L]=
-g["!"+L],delete g["!"+L];f[E]=(G?!1:z)||null}m.match=m.match||null;d.push(p);a.push(p)}b=e.elements;e=e.generic;var k;c=0;for(d=a.length;c<d;++c){h=K(a[c]);p=!0===h.classes||!0===h.styles||!0===h.attributes;m=h;q=E=r=void 0;for(r in Q)m[r]=F(m[r]);f=!0;for(q in v){r=v[q];E=m[r];z=[];g=void 0;for(g in E)-1<g.indexOf("*")?z.push(new RegExp("^"+g.replace(/\*/g,".*")+"$")):z.push(g);E=z;E.length&&(m[r]=E,f=!1)}m.nothingRequired=f;m.noProperties=!(m.attributes||m.classes||m.styles);if(!0===h.elements||
-null===h.elements)e[p?"unshift":"push"](h);else for(k in m=h.elements,delete h.elements,m)if(b[k])b[k][p?"unshift":"push"](h);else b[k]=[h]}}function d(a,c,d,h){if(!a.match||a.match(c))if(h||k(a,c))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=b(a.attributes,c.attributes,d.validAttributes)),d.allStyles||(d.allStyles=b(a.styles,c.styles,d.validStyles)),!d.allClasses){a=a.classes;c=c.classes;h=d.validClasses;if(a)if(!0===a)a=!0;else{for(var p=0,e=c.length,m;p<e;++p)m=c[p],h[m]||
-(h[m]=a(m));a=!1}else a=!1;d.allClasses=a}}function b(a,b,c){if(!a)return!1;if(!0===a)return!0;for(var d in b)c[d]||(c[d]=a(d));return!1}function c(a,b,c){if(!a.match||a.match(b)){if(a.noProperties)return!1;c.hadInvalidAttribute=e(a.attributes,b.attributes)||c.hadInvalidAttribute;c.hadInvalidStyle=e(a.styles,b.styles)||c.hadInvalidStyle;a=a.classes;b=b.classes;if(a){for(var d=!1,h=!0===a,p=b.length;p--;)if(h||a(b[p]))b.splice(p,1),d=!0;a=d}else a=!1;c.hadInvalidClass=a||c.hadInvalidClass}}function e(a,
-b){if(!a)return!1;var c=!1,d=!0===a,h;for(h in b)if(d||a(h))delete b[h],c=!0;return c}function g(a,b,c){if(a.disabled||a.customConfig&&!c||!b)return!1;a._.cachedChecks={};return!0}function l(a,b){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=R(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(b));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var c={},d=0,h;for(h in a)c[h]=a[h],d++;return d?c:!1}function k(a,b){if(a.nothingRequired)return!0;
-var c,d,h,p;if(h=a.requiredClasses)for(p=b.classes,c=0;c<h.length;++c)if(d=h[c],"string"==typeof d){if(-1==CKEDITOR.tools.indexOf(p,d))return!1}else if(!CKEDITOR.tools.checkIfAnyArrayItemMatches(p,d))return!1;return n(b.styles,a.requiredStyles)&&n(b.attributes,a.requiredAttributes)}function n(a,b){if(!b)return!0;for(var c=0,d;c<b.length;++c)if(d=b[c],"string"==typeof d){if(!(d in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,d))return!1;return!0}function w(a){if(!a)return{};
-a=a.split(/\s*,\s*/).sort();for(var b={};a.length;)b[a.shift()]="cke-test";return b}function f(a){var b,c,d,h,p={},e=1;for(a=R(a);b=a.match(D);)(c=b[2])?(d=x(c,"styles"),h=x(c,"attrs"),c=x(c,"classes")):d=h=c=null,p["$"+e++]={elements:b[1],classes:c,styles:d,attributes:h},a=a.slice(b[0].length);return p}function x(a,b){var c=a.match(I[b]);return c?R(c[1]):null}function A(a){var b=a.styleBackup=a.attributes.style,c=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(b||
-"",1));a.classes||(a.classes=c?c.split(/\s+/):[])}function u(a,b,h,e){var m=0,r;e.toHtml&&(b.name=b.name.replace(E,"$1"));if(e.doCallbacks&&a.elementCallbacks){a:{r=a.elementCallbacks;for(var g=0,f=r.length,z;g<f;++g)if(z=r[g](b)){r=z;break a}r=void 0}if(r)return r}if(e.doTransform&&(r=a._.transformations[b.name])){A(b);for(g=0;g<r.length;++g)p(a,b,r[g]);q(b)}if(e.doFilter){a:{g=b.name;f=a._;a=f.allowedRules.elements[g];r=f.allowedRules.generic;g=f.disallowedRules.elements[g];f=f.disallowedRules.generic;
-z=e.skipRequired;var C={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},v,l;if(a||r){A(b);if(g)for(v=0,l=g.length;v<l;++v)if(!1===c(g[v],b,C)){a=null;break a}if(f)for(v=0,l=f.length;v<l;++v)c(f[v],b,C);if(a)for(v=0,l=a.length;v<l;++v)d(a[v],b,C,z);if(r)for(v=0,l=r.length;v<l;++v)d(r[v],b,C,z);a=C}else a=null}if(!a||!a.valid)return h.push(b),1;l=a.validAttributes;var G=a.validStyles;
-r=a.validClasses;var g=b.attributes,k=b.styles,f=b.classes;z=b.classBackup;var I=b.styleBackup,D,H,J=[],C=[],n=/^data-cke-/;v=!1;delete g.style;delete g["class"];delete b.classBackup;delete b.styleBackup;if(!a.allAttributes)for(D in g)l[D]||(n.test(D)?D==(H=D.replace(/^data-cke-saved-/,""))||l[H]||(delete g[D],v=!0):(delete g[D],v=!0));if(!a.allStyles||a.hadInvalidStyle){for(D in k)a.allStyles||G[D]?J.push(D+":"+k[D]):v=!0;J.length&&(g.style=J.sort().join("; "))}else I&&(g.style=I);if(!a.allClasses||
-a.hadInvalidClass){for(D=0;D<f.length;++D)(a.allClasses||r[f[D]])&&C.push(f[D]);C.length&&(g["class"]=C.sort().join(" "));z&&C.length<z.split(/\s+/).length&&(v=!0)}else z&&(g["class"]=z);v&&(m=1);if(!e.skipFinalValidation&&!y(b))return h.push(b),1}e.toHtml&&(b.name=b.name.replace(L,"cke:$1"));return m}function B(a){var b=[],c;for(c in a)-1<c.indexOf("*")&&b.push(c.replace(/\*/g,".*"));return b.length?new RegExp("^(?:"+b.join("|")+")$"):null}function q(a){var b=a.attributes,c;delete b.style;delete b["class"];
-if(c=CKEDITOR.tools.writeCssText(a.styles,!0))b.style=c;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function y(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function F(a){if(!a)return!1;if(!0===a)return!0;var b=B(a);return function(c){return c in a||b&&c.match(b)}}function t(){return new CKEDITOR.htmlParser.element("br")}function z(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==
-a.name||H.$block[a.name])}function h(a,b,c){var d=a.name;if(H.$empty[d]||!a.children.length)"hr"==d&&"br"==b?a.replaceWith(t()):(a.parent&&c.push({check:"it",el:a.parent}),a.remove());else if(H.$block[d]||"tr"==d)if("br"==b)a.previous&&!z(a.previous)&&(b=t(),b.insertBefore(a)),a.next&&!z(a.next)&&(b=t(),b.insertAfter(a)),a.replaceWithChildren();else{var d=a.children,h;b:{h=H[b];for(var p=0,e=d.length,m;p<e;++p)if(m=d[p],m.type==CKEDITOR.NODE_ELEMENT&&!h[m.name]){h=!1;break b}h=!0}if(h)a.name=b,a.attributes=
-{},c.push({check:"parent-down",el:a});else{h=a.parent;for(var p=h.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==h.name,r,g,e=d.length;0<e;)m=d[--e],p&&(m.type==CKEDITOR.NODE_TEXT||m.type==CKEDITOR.NODE_ELEMENT&&H.$inline[m.name])?(r||(r=new CKEDITOR.htmlParser.element(b),r.insertAfter(a),c.push({check:"parent-down",el:r})),r.add(m,0)):(r=null,g=H[h.name]||H.span,m.insertAfter(a),h.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||m.type!=CKEDITOR.NODE_ELEMENT||g[m.name]||c.push({check:"el-up",el:m}));a.remove()}}else d in
-{style:1,script:1}?a.remove():(a.parent&&c.push({check:"it",el:a.parent}),a.replaceWithChildren())}function p(a,b,c){var d,h;for(d=0;d<c.length;++d)if(h=c[d],!(h.check&&!a.check(h.check,!1)||h.left&&!h.left(b))){h.right(b,J);break}}function m(a,b){var c=b.getDefinition(),d=c.attributes,h=c.styles,p,e,m,r;if(a.name!=c.element)return!1;for(p in d)if("class"==p)for(c=d[p].split(/\s+/),m=a.classes.join("|");r=c.pop();){if(-1==m.indexOf(r))return!1}else if(a.attributes[p]!=d[p])return!1;for(e in h)if(a.styles[e]!=
-h[e])return!1;return!0}function C(a,b){var c,d;"string"==typeof a?c=a:a instanceof CKEDITOR.style?d=a:(c=a[0],d=a[1]);return[{element:c,left:d,right:function(a,c){c.transform(a,b)}}]}function r(a){return function(b){return m(b,a)}}function G(a){return function(b,c){c[a](b)}}var H=CKEDITOR.dtd,K=CKEDITOR.tools.copy,R=CKEDITOR.tools.trim,M=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a){this.allowedContent=[];this.disallowedContent=[];this.elementCallbacks=null;this.disabled=
-!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{}};CKEDITOR.filter.instances[this.id]=this;if(a instanceof CKEDITOR.editor){a=this.editor=a;this.customConfig=!0;var b=a.config.allowedContent;!0===b?this.disabled=!0:(b||(this.customConfig=!1),this.allow(b,"config",1),this.allow(a.config.extraAllowedContent,"extra",1),this.allow(M[a.enterMode]+" "+M[a.shiftEnterMode],"default",
-1),this.disallow(a.config.disallowedContent))}else this.customConfig=!1,this.allow(a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(b,c,d){if(!g(this,b,d))return!1;var h,p;if("string"==typeof b)b=f(b);else if(b instanceof CKEDITOR.style){if(b.toAllowedContentRules)return this.allow(b.toAllowedContentRules(this.editor),c,d);h=b.getDefinition();b={};d=h.attributes;b[h.element]=h={styles:h.styles,requiredStyles:h.styles&&CKEDITOR.tools.objectKeys(h.styles)};d&&(d=
-K(d),h.classes=d["class"]?d["class"].split(/\s+/):null,h.requiredClasses=h.classes,delete d["class"],h.attributes=d,h.requiredAttributes=d&&CKEDITOR.tools.objectKeys(d))}else if(CKEDITOR.tools.isArray(b)){for(h=0;h<b.length;++h)p=this.allow(b[h],c,d);return p}a(this,b,c,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,b,c,d){if(this.disabled)return!1;var p=this,e=[],m=this.editor&&this.editor.config.protectedSource,r,g=!1,f={doFilter:!c,doTransform:!0,doCallbacks:!0,toHtml:b};
-a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if("off"==a.attributes["data-cke-filter"])return!1;if(!b||"span"!=a.name||!~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-cke-"))if(r=u(p,a,e,f),r&1)g=!0;else if(r&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var c;a:{var d=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));c=[];var h,q,z;if(m)for(q=0;q<m.length;++q)if((z=d.match(m[q]))&&z[0].length==d.length){c=!0;
-break a}d=CKEDITOR.htmlParser.fragment.fromHtml(d);1==d.children.length&&(h=d.children[0]).type==CKEDITOR.NODE_ELEMENT&&u(p,h,c,f);c=!c.length}c||e.push(a)}},null,!0);e.length&&(g=!0);var q;a=[];d=M[d||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var z;c=e.pop();)c.type==CKEDITOR.NODE_ELEMENT?h(c,d,a):c.remove();for(;q=a.pop();)if(c=q.el,c.parent)switch(z=H[c.parent.name]||H.span,q.check){case "it":H.$removeEmpty[c.name]&&!c.children.length?h(c,d,a):y(c)||h(c,d,a);break;case "el-up":c.parent.type==
-CKEDITOR.NODE_DOCUMENT_FRAGMENT||z[c.name]||h(c,d,a);break;case "parent-down":c.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||z[c.name]||h(c.parent,d,a)}return g},checkFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=!0},disallow:function(b){if(!g(this,b,!0))return!1;"string"==typeof b&&(b=f(b));a(this,b,null,this.disallowedContent,this._.disallowedRules);return!0},
-addContentForms:function(a){if(!this.disabled&&a){var b,c,d=[],h;for(b=0;b<a.length&&!h;++b)c=a[b],("string"==typeof c||c instanceof CKEDITOR.style)&&this.check(c)&&(h=c);if(h){for(b=0;b<a.length;++b)d.push(C(a[b],h));this.addTransformations(d)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);
-this.addContentForms(a.contentForms);return a.requiredContent&&(this.customConfig||this.disallowedContent.length)?this.check(a.requiredContent):!0},addTransformations:function(a){var b,c;if(!this.disabled&&a){var d=this._.transformations,h;for(h=0;h<a.length;++h){b=a[h];var p=void 0,e=void 0,m=void 0,g=void 0,q=void 0,f=void 0;c=[];for(e=0;e<b.length;++e)m=b[e],"string"==typeof m?(m=m.split(/\s*:\s*/),g=m[0],q=null,f=m[1]):(g=m.check,q=m.left,f=m.right),p||(p=m,p=p.element?p.element:g?g.match(/^([a-z0-9]+)/i)[0]:
-p.left.getDefinition().element),q instanceof CKEDITOR.style&&(q=r(q)),c.push({check:g==p?null:g,left:q,right:"string"==typeof f?G(f):f});b=p;d[b]||(d[b]=[]);d[b].push(c)}}},check:function(a,b,c){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var d=a.length;d--;)if(this.check(a[d],b,c))return!0;return!1}var h,e;if("string"==typeof a){e=a+"\x3c"+(!1===b?"0":"1")+(c?"1":"0")+"\x3e";if(e in this._.cachedChecks)return this._.cachedChecks[e];d=f(a).$1;h=d.styles;var m=d.classes;d.name=d.elements;
-d.classes=m=m?m.split(/\s*,\s*/):[];d.styles=w(h);d.attributes=w(d.attributes);d.children=[];m.length&&(d.attributes["class"]=m.join(" "));h&&(d.attributes.style=CKEDITOR.tools.writeCssText(d.styles));h=d}else d=a.getDefinition(),h=d.styles,m=d.attributes||{},h?(h=K(h),m.style=CKEDITOR.tools.writeCssText(h,!0)):h={},h={name:d.element,attributes:m,classes:m["class"]?m["class"].split(/\s+/):[],styles:h,children:[]};var m=CKEDITOR.tools.clone(h),r=[],g;if(!1!==b&&(g=this._.transformations[h.name])){for(d=
-0;d<g.length;++d)p(this,h,g[d]);q(h)}u(this,m,r,{doFilter:!0,doTransform:!1!==b,skipRequired:!c,skipFinalValidation:!c});b=0<r.length?!1:CKEDITOR.tools.objectCompare(h.attributes,m.attributes,!0)?!0:!1;"string"==typeof a&&(this._.cachedChecks[e]=b);return b},getAllowedEnterMode:function(){var a=["p","div","br"],b={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(c,d){var h=a.slice(),p;if(this.check(M[c]))return c;for(d||(h=h.reverse());p=h.pop();)if(this.check(p))return b[p];
-return CKEDITOR.ENTER_BR}}(),destroy:function(){delete CKEDITOR.filter.instances[this.id];delete this._;delete this.allowedContent;delete this.disallowedContent}};var Q={styles:1,attributes:1,classes:1},v={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},D=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,I={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},E=/^cke:(object|embed|param)$/,
-L=/^(object|embed|param)$/,J=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a,"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,c){c=c||b;if(!(c in a.styles)){var d=a.attributes[b];d&&(/^\d+$/.test(d)&&(d+="px"),a.styles[c]=d)}delete a.attributes[b]},lengthToAttribute:function(a,b,c){c=c||b;if(!(c in a.attributes)){var d=a.styles[b],h=d&&d.match(/^(\d+)(?:\.\d*)?px$/);
-h?a.attributes[c]=h[1]:"cke-test"==d&&(a.attributes[c]="cke-test")}delete a.styles[b]},alignmentToStyle:function(a){if(!("float"in a.styles)){var b=a.attributes.align;if("left"==b||"right"==b)a.styles["float"]=b}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var b=a.styles["float"];if("left"==b||"right"==b)a.attributes.align=b}delete a.styles["float"]},matchesStyle:m,transform:function(a,b){if("string"==typeof b)a.name=b;else{var c=b.getDefinition(),d=c.styles,
-h=c.attributes,p,m,e,r;a.name=c.element;for(p in h)if("class"==p)for(c=a.classes.join("|"),e=h[p].split(/\s+/);r=e.pop();)-1==c.indexOf(r)&&a.classes.push(r);else a.attributes[p]=h[p];for(m in d)a.styles[m]=d[m]}}}})();
+(function(){function a(a,b,c,d,e){var f,l;a=[];for(f in b){l=b[f];l="boolean"==typeof l?{}:"function"==typeof l?{match:l}:v(l);"$"!=f.charAt(0)&&(l.elements=f);c&&(l.featureName=c.toLowerCase());var t=l;t.elements=h(t.elements,/\s+/)||null;t.propertiesOnly=t.propertiesOnly||!0===t.elements;var u=/\s*,\s*/,g=void 0;for(g in V){t[g]=h(t[g],u)||null;var p=t,r=O[g],m=h(t[O[g]],u),F=t[g],y=[],B=!0,C=void 0;m?B=!1:m={};for(C in F)"!"==C.charAt(0)&&(C=C.slice(1),y.push(C),m[C]=!0,B=!1);for(;C=y.pop();)F[C]=
+F["!"+C],delete F["!"+C];p[r]=(B?!1:m)||null}t.match=t.match||null;d.push(l);a.push(l)}b=e.elements;e=e.generic;var k;c=0;for(d=a.length;c<d;++c){f=v(a[c]);l=!0===f.classes||!0===f.styles||!0===f.attributes;t=f;g=r=u=void 0;for(u in V)t[u]=K(t[u]);p=!0;for(g in O){u=O[g];r=t[u];m=[];F=void 0;for(F in r)-1<F.indexOf("*")?m.push(new RegExp("^"+F.replace(/\*/g,".*")+"$")):m.push(F);r=m;r.length&&(t[u]=r,p=!1)}t.nothingRequired=p;t.noProperties=!(t.attributes||t.classes||t.styles);if(!0===f.elements||
+null===f.elements)e[l?"unshift":"push"](f);else for(k in t=f.elements,delete f.elements,t)if(b[k])b[k][l?"unshift":"push"](f);else b[k]=[f]}}function d(a,c,d,e){if(!a.match||a.match(c))if(e||k(a,c))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=b(a.attributes,c.attributes,d.validAttributes)),d.allStyles||(d.allStyles=b(a.styles,c.styles,d.validStyles)),!d.allClasses){a=a.classes;c=c.classes;e=d.validClasses;if(a)if(!0===a)a=!0;else{for(var f=0,l=c.length,t;f<l;++f)t=c[f],e[t]||
+(e[t]=a(t));a=!1}else a=!1;d.allClasses=a}}function b(a,b,c){if(!a)return!1;if(!0===a)return!0;for(var d in b)c[d]||(c[d]=a(d));return!1}function c(a,b,c){if(!a.match||a.match(b)){if(a.noProperties)return!1;c.hadInvalidAttribute=e(a.attributes,b.attributes)||c.hadInvalidAttribute;c.hadInvalidStyle=e(a.styles,b.styles)||c.hadInvalidStyle;a=a.classes;b=b.classes;if(a){for(var d=!1,f=!0===a,t=b.length;t--;)if(f||a(b[t]))b.splice(t,1),d=!0;a=d}else a=!1;c.hadInvalidClass=a||c.hadInvalidClass}}function e(a,
+b){if(!a)return!1;var c=!1,d=!0===a,e;for(e in b)if(d||a(e))delete b[e],c=!0;return c}function g(a,b,c){if(a.disabled||a.customConfig&&!c||!b)return!1;a._.cachedChecks={};return!0}function h(a,b){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=B(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(b));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var c={},d=0,e;for(e in a)c[e]=a[e],d++;return d?c:!1}function k(a,b){if(a.nothingRequired)return!0;
+var c,d,e,f;if(e=a.requiredClasses)for(f=b.classes,c=0;c<e.length;++c)if(d=e[c],"string"==typeof d){if(-1==CKEDITOR.tools.indexOf(f,d))return!1}else if(!CKEDITOR.tools.checkIfAnyArrayItemMatches(f,d))return!1;return n(b.styles,a.requiredStyles)&&n(b.attributes,a.requiredAttributes)}function n(a,b){if(!b)return!0;for(var c=0,d;c<b.length;++c)if(d=b[c],"string"==typeof d){if(!(d in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,d))return!1;return!0}function q(a){if(!a)return{};
+a=a.split(/\s*,\s*/).sort();for(var b={};a.length;)b[a.shift()]="cke-test";return b}function f(a){var b,c,d,e,f={},t=1;for(a=B(a);b=a.match(p);)(c=b[2])?(d=D(c,"styles"),e=D(c,"attrs"),c=D(c,"classes")):d=e=c=null,f["$"+t++]={elements:b[1],classes:c,styles:d,attributes:e},a=a.slice(b[0].length);return f}function D(a,b){var c=a.match(C[b]);return c?B(c[1]):null}function w(a){var b=a.styleBackup=a.attributes.style,c=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(b||
+"",1));a.classes||(a.classes=c?c.split(/\s+/):[])}function A(a,b,e,f){var l=0,u;f.toHtml&&(b.name=b.name.replace(t,"$1"));if(f.doCallbacks&&a.elementCallbacks){a:{u=a.elementCallbacks;for(var v=0,g=u.length,p;v<g;++v)if(p=u[v](b)){u=p;break a}u=void 0}if(u)return u}if(f.doTransform&&(u=a._.transformations[b.name])){w(b);for(v=0;v<u.length;++v)r(a,b,u[v]);x(b)}if(f.doFilter){a:{v=b.name;g=a._;a=g.allowedRules.elements[v];u=g.allowedRules.generic;v=g.disallowedRules.elements[v];g=g.disallowedRules.generic;
+p=f.skipRequired;var y={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},B,C;if(a||u){w(b);if(v)for(B=0,C=v.length;B<C;++B)if(!1===c(v[B],b,y)){a=null;break a}if(g)for(B=0,C=g.length;B<C;++B)c(g[B],b,y);if(a)for(B=0,C=a.length;B<C;++B)d(a[B],b,y,p);if(u)for(B=0,C=u.length;B<C;++B)d(u[B],b,y,p);a=y}else a=null}if(!a||!a.valid)return e.push(b),1;C=a.validAttributes;var h=a.validStyles;
+u=a.validClasses;var v=b.attributes,k=b.styles,g=b.classes;p=b.classBackup;var J=b.styleBackup,H,N,E=[],y=[],O=/^data-cke-/;B=!1;delete v.style;delete v["class"];delete b.classBackup;delete b.styleBackup;if(!a.allAttributes)for(H in v)C[H]||(O.test(H)?H==(N=H.replace(/^data-cke-saved-/,""))||C[N]||(delete v[H],B=!0):(delete v[H],B=!0));if(!a.allStyles||a.hadInvalidStyle){for(H in k)a.allStyles||h[H]?E.push(H+":"+k[H]):B=!0;E.length&&(v.style=E.sort().join("; "))}else J&&(v.style=J);if(!a.allClasses||
+a.hadInvalidClass){for(H=0;H<g.length;++H)(a.allClasses||u[g[H]])&&y.push(g[H]);y.length&&(v["class"]=y.sort().join(" "));p&&y.length<p.split(/\s+/).length&&(B=!0)}else p&&(v["class"]=p);B&&(l=1);if(!f.skipFinalValidation&&!m(b))return e.push(b),1}f.toHtml&&(b.name=b.name.replace(F,"cke:$1"));return l}function G(a){var b=[],c;for(c in a)-1<c.indexOf("*")&&b.push(c.replace(/\*/g,".*"));return b.length?new RegExp("^(?:"+b.join("|")+")$"):null}function x(a){var b=a.attributes,c;delete b.style;delete b["class"];
+if(c=CKEDITOR.tools.writeCssText(a.styles,!0))b.style=c;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function m(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function K(a){if(!a)return!1;if(!0===a)return!0;var b=G(a);return function(c){return c in a||b&&c.match(b)}}function z(){return new CKEDITOR.htmlParser.element("br")}function I(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==
+a.name||y.$block[a.name])}function l(a,b,c){var d=a.name;if(y.$empty[d]||!a.children.length)"hr"==d&&"br"==b?a.replaceWith(z()):(a.parent&&c.push({check:"it",el:a.parent}),a.remove());else if(y.$block[d]||"tr"==d)if("br"==b)a.previous&&!I(a.previous)&&(b=z(),b.insertBefore(a)),a.next&&!I(a.next)&&(b=z(),b.insertAfter(a)),a.replaceWithChildren();else{var d=a.children,e;b:{e=y[b];for(var f=0,t=d.length,l;f<t;++f)if(l=d[f],l.type==CKEDITOR.NODE_ELEMENT&&!e[l.name]){e=!1;break b}e=!0}if(e)a.name=b,a.attributes=
+{},c.push({check:"parent-down",el:a});else{e=a.parent;for(var f=e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==e.name,v,u,t=d.length;0<t;)l=d[--t],f&&(l.type==CKEDITOR.NODE_TEXT||l.type==CKEDITOR.NODE_ELEMENT&&y.$inline[l.name])?(v||(v=new CKEDITOR.htmlParser.element(b),v.insertAfter(a),c.push({check:"parent-down",el:v})),v.add(l,0)):(v=null,u=y[e.name]||y.span,l.insertAfter(a),e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||l.type!=CKEDITOR.NODE_ELEMENT||u[l.name]||c.push({check:"el-up",el:l}));a.remove()}}else d in
+{style:1,script:1}?a.remove():(a.parent&&c.push({check:"it",el:a.parent}),a.replaceWithChildren())}function r(a,b,c){var d,e;for(d=0;d<c.length;++d)if(e=c[d],!(e.check&&!a.check(e.check,!1)||e.left&&!e.left(b))){e.right(b,N);break}}function J(a,b){var c=b.getDefinition(),d=c.attributes,e=c.styles,f,l,t,v;if(a.name!=c.element)return!1;for(f in d)if("class"==f)for(c=d[f].split(/\s+/),t=a.classes.join("|");v=c.pop();){if(-1==t.indexOf(v))return!1}else if(a.attributes[f]!=d[f])return!1;for(l in e)if(a.styles[l]!=
+e[l])return!1;return!0}function H(a,b){var c,d;"string"==typeof a?c=a:a instanceof CKEDITOR.style?d=a:(c=a[0],d=a[1]);return[{element:c,left:d,right:function(a,c){c.transform(a,b)}}]}function E(a){return function(b){return J(b,a)}}function u(a){return function(b,c){c[a](b)}}var y=CKEDITOR.dtd,v=CKEDITOR.tools.copy,B=CKEDITOR.tools.trim,L=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a){this.allowedContent=[];this.disallowedContent=[];this.elementCallbacks=null;this.disabled=
+!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{},cachedChecks:{}};CKEDITOR.filter.instances[this.id]=this;if(a instanceof CKEDITOR.editor){a=this.editor=a;this.customConfig=!0;var b=a.config.allowedContent;!0===b?this.disabled=!0:(b||(this.customConfig=!1),this.allow(b,"config",1),this.allow(a.config.extraAllowedContent,"extra",1),this.allow(L[a.enterMode]+" "+L[a.shiftEnterMode],
+"default",1),this.disallow(a.config.disallowedContent))}else this.customConfig=!1,this.allow(a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(b,c,d){if(!g(this,b,d))return!1;var e,l;if("string"==typeof b)b=f(b);else if(b instanceof CKEDITOR.style){if(b.toAllowedContentRules)return this.allow(b.toAllowedContentRules(this.editor),c,d);e=b.getDefinition();b={};d=e.attributes;b[e.element]=e={styles:e.styles,requiredStyles:e.styles&&CKEDITOR.tools.objectKeys(e.styles)};
+d&&(d=v(d),e.classes=d["class"]?d["class"].split(/\s+/):null,e.requiredClasses=e.classes,delete d["class"],e.attributes=d,e.requiredAttributes=d&&CKEDITOR.tools.objectKeys(d))}else if(CKEDITOR.tools.isArray(b)){for(e=0;e<b.length;++e)l=this.allow(b[e],c,d);return l}a(this,b,c,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,b,c,d){if(this.disabled)return!1;var e=this,f=[],t=this.editor&&this.editor.config.protectedSource,v,u=!1,g={doFilter:!c,doTransform:!0,doCallbacks:!0,toHtml:b};
+a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if("off"==a.attributes["data-cke-filter"])return!1;if(!b||"span"!=a.name||!~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-cke-"))if(v=A(e,a,f,g),v&1)u=!0;else if(v&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var c;a:{var d=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));c=[];var l,p,r;if(t)for(p=0;p<t.length;++p)if((r=d.match(t[p]))&&r[0].length==d.length){c=!0;
+break a}d=CKEDITOR.htmlParser.fragment.fromHtml(d);1==d.children.length&&(l=d.children[0]).type==CKEDITOR.NODE_ELEMENT&&A(e,l,c,g);c=!c.length}c||f.push(a)}},null,!0);f.length&&(u=!0);var p;a=[];d=L[d||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var r;c=f.pop();)c.type==CKEDITOR.NODE_ELEMENT?l(c,d,a):c.remove();for(;p=a.pop();)if(c=p.el,c.parent)switch(r=y[c.parent.name]||y.span,p.check){case "it":y.$removeEmpty[c.name]&&!c.children.length?l(c,d,a):m(c)||l(c,d,a);break;case "el-up":c.parent.type==
+CKEDITOR.NODE_DOCUMENT_FRAGMENT||r[c.name]||l(c,d,a);break;case "parent-down":c.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||r[c.name]||l(c.parent,d,a)}return u},checkFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=!0},disallow:function(b){if(!g(this,b,!0))return!1;"string"==typeof b&&(b=f(b));a(this,b,null,this.disallowedContent,this._.disallowedRules);return!0},
+addContentForms:function(a){if(!this.disabled&&a){var b,c,d=[],e;for(b=0;b<a.length&&!e;++b)c=a[b],("string"==typeof c||c instanceof CKEDITOR.style)&&this.check(c)&&(e=c);if(e){for(b=0;b<a.length;++b)d.push(H(a[b],e));this.addTransformations(d)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);
+this.addContentForms(a.contentForms);return a.requiredContent&&(this.customConfig||this.disallowedContent.length)?this.check(a.requiredContent):!0},addTransformations:function(a){var b,c;if(!this.disabled&&a){var d=this._.transformations,e;for(e=0;e<a.length;++e){b=a[e];var f=void 0,l=void 0,t=void 0,v=void 0,g=void 0,p=void 0;c=[];for(l=0;l<b.length;++l)t=b[l],"string"==typeof t?(t=t.split(/\s*:\s*/),v=t[0],g=null,p=t[1]):(v=t.check,g=t.left,p=t.right),f||(f=t,f=f.element?f.element:v?v.match(/^([a-z0-9]+)/i)[0]:
+f.left.getDefinition().element),g instanceof CKEDITOR.style&&(g=E(g)),c.push({check:v==f?null:v,left:g,right:"string"==typeof p?u(p):p});b=f;d[b]||(d[b]=[]);d[b].push(c)}}},check:function(a,b,c){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var d=a.length;d--;)if(this.check(a[d],b,c))return!0;return!1}var e,l;if("string"==typeof a){l=a+"\x3c"+(!1===b?"0":"1")+(c?"1":"0")+"\x3e";if(l in this._.cachedChecks)return this._.cachedChecks[l];d=f(a).$1;e=d.styles;var t=d.classes;d.name=d.elements;
+d.classes=t=t?t.split(/\s*,\s*/):[];d.styles=q(e);d.attributes=q(d.attributes);d.children=[];t.length&&(d.attributes["class"]=t.join(" "));e&&(d.attributes.style=CKEDITOR.tools.writeCssText(d.styles));e=d}else d=a.getDefinition(),e=d.styles,t=d.attributes||{},e&&!CKEDITOR.tools.isEmpty(e)?(e=v(e),t.style=CKEDITOR.tools.writeCssText(e,!0)):e={},e={name:d.element,attributes:t,classes:t["class"]?t["class"].split(/\s+/):[],styles:e,children:[]};var t=CKEDITOR.tools.clone(e),u=[],g;if(!1!==b&&(g=this._.transformations[e.name])){for(d=
+0;d<g.length;++d)r(this,e,g[d]);x(e)}A(this,t,u,{doFilter:!0,doTransform:!1!==b,skipRequired:!c,skipFinalValidation:!c});b=0<u.length?!1:CKEDITOR.tools.objectCompare(e.attributes,t.attributes,!0)?!0:!1;"string"==typeof a&&(this._.cachedChecks[l]=b);return b},getAllowedEnterMode:function(){var a=["p","div","br"],b={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(c,d){var e=a.slice(),f;if(this.check(L[c]))return c;for(d||(e=e.reverse());f=e.pop();)if(this.check(f))return b[f];
+return CKEDITOR.ENTER_BR}}(),clone:function(){var a=new CKEDITOR.filter,b=CKEDITOR.tools.clone;a.allowedContent=b(this.allowedContent);a._.allowedRules=b(this._.allowedRules);a.disallowedContent=b(this.disallowedContent);a._.disallowedRules=b(this._.disallowedRules);a._.transformations=b(this._.transformations);a.disabled=this.disabled;a.editor=this.editor;return a},destroy:function(){delete CKEDITOR.filter.instances[this.id];delete this._;delete this.allowedContent;delete this.disallowedContent}};
+var V={styles:1,attributes:1,classes:1},O={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},p=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,C={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},t=/^cke:(object|embed|param)$/,F=/^(object|embed|param)$/,N;N=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a,
+"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,c){c=c||b;if(!(c in a.styles)){var d=a.attributes[b];d&&(/^\d+$/.test(d)&&(d+="px"),a.styles[c]=d)}delete a.attributes[b]},lengthToAttribute:function(a,b,c){c=c||b;if(!(c in a.attributes)){var d=a.styles[b],e=d&&d.match(/^(\d+)(?:\.\d*)?px$/);e?a.attributes[c]=e[1]:"cke-test"==d&&(a.attributes[c]="cke-test")}delete a.styles[b]},alignmentToStyle:function(a){if(!("float"in a.styles)){var b=a.attributes.align;if("left"==b||"right"==
+b)a.styles["float"]=b}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var b=a.styles["float"];if("left"==b||"right"==b)a.attributes.align=b}delete a.styles["float"]},splitBorderShorthand:function(a){function b(d){a.styles["border-top-width"]=c[d[0]];a.styles["border-right-width"]=c[d[1]];a.styles["border-bottom-width"]=c[d[2]];a.styles["border-left-width"]=c[d[3]]}if(a.styles.border){var c=a.styles.border.match(/([\.\d]+\w+)/g)||["0px"];switch(c.length){case 1:a.styles["border-width"]=
+c[0];break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}a.styles["border-style"]=a.styles["border-style"]||(a.styles.border.match(/(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|initial|inherit)/)||[])[0];a.styles["border-style"]||delete a.styles["border-style"];delete a.styles.border}},listTypeToStyle:function(a){if(a.attributes.type)switch(a.attributes.type){case "a":a.styles["list-style-type"]="lower-alpha";break;case "A":a.styles["list-style-type"]=
+"upper-alpha";break;case "i":a.styles["list-style-type"]="lower-roman";break;case "I":a.styles["list-style-type"]="upper-roman";break;case "1":a.styles["list-style-type"]="decimal";break;default:a.styles["list-style-type"]=a.attributes.type}},splitMarginShorthand:function(a){function b(d){a.styles["margin-top"]=c[d[0]];a.styles["margin-right"]=c[d[1]];a.styles["margin-bottom"]=c[d[2]];a.styles["margin-left"]=c[d[3]]}if(a.styles.margin){var c=a.styles.margin.match(/(\-?[\.\d]+\w+)/g)||["0px"];switch(c.length){case 1:b([0,
+0,0,0]);break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}delete a.styles.margin}},matchesStyle:J,transform:function(a,b){if("string"==typeof b)a.name=b;else{var c=b.getDefinition(),d=c.styles,e=c.attributes,f,t,l,v;a.name=c.element;for(f in e)if("class"==f)for(c=a.classes.join("|"),l=e[f].split(/\s+/);v=l.pop();)-1==c.indexOf(v)&&a.classes.push(v);else a.attributes[f]=e[f];for(t in d)a.styles[t]=d[t]}}}})();
(function(){CKEDITOR.focusManager=function(a){if(a.focusManager)return a.focusManager;this.hasFocus=!1;this.currentActive=null;this._={editor:a};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(a){this._.timer&&clearTimeout(this._.timer);a&&(this.currentActive=a);this.hasFocus||this._.locked||((a=CKEDITOR.currentInstance)&&a.focusManager.blur(1),this.hasFocus=!0,(a=this._.editor.container)&&a.addClass("cke_focus"),this._.editor.fire("focus"))},lock:function(){this._.locked=
1},unlock:function(){delete this._.locked},blur:function(a){function d(){if(this.hasFocus){this.hasFocus=!1;var a=this._.editor.container;a&&a.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var b=CKEDITOR.focusManager._.blurDelay;a||!b?d.call(this):this._.timer=CKEDITOR.tools.setTimeout(function(){delete this._.timer;d.call(this)},b,this)}},add:function(a,d){var b=a.getCustomData("focusmanager");if(!b||b!=this){b&&b.remove(a);var b=
"focus",c="blur";d&&(CKEDITOR.env.ie?(b="focusin",c="focusout"):CKEDITOR.event.useCapture=1);var e={blur:function(){a.equals(this.currentActive)&&this.blur()},focus:function(){this.focus(a)}};a.on(b,e.focus,this);a.on(c,e.blur,this);d&&(CKEDITOR.event.useCapture=0);a.setCustomData("focusmanager",this);a.setCustomData("focusmanager_handlers",e)}},remove:function(a){a.removeCustomData("focusmanager");var d=a.removeCustomData("focusmanager_handlers");a.removeListener("blur",d.blur);a.removeListener("focus",
d.focus)}}})();CKEDITOR.keystrokeHandler=function(a){if(a.keystrokeHandler)return a.keystrokeHandler;this.keystrokes={};this.blockedKeystrokes={};this._={editor:a};return this};
-(function(){var a,d=function(b){b=b.data;var d=b.getKeystroke(),g=this.keystrokes[d],l=this._.editor;a=!1===l.fire("key",{keyCode:d,domEvent:b});a||(g&&(a=!1!==l.execCommand(g,{from:"keystrokeHandler"})),a||(a=!!this.blockedKeystrokes[d]));a&&b.preventDefault(!0);return!a},b=function(b){a&&(a=!1,b.data.preventDefault(!0))};CKEDITOR.keystrokeHandler.prototype={attach:function(a){a.on("keydown",d,this);if(CKEDITOR.env.gecko&&CKEDITOR.env.mac)a.on("keypress",b,this)}}})();
-(function(){CKEDITOR.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},rtl:{ar:1,fa:1,he:1,ku:1,ug:1},load:function(a,d,b){a&&CKEDITOR.lang.languages[a]||(a=
-this.detect(d,a));var c=this;d=function(){c[a].dir=c.rtl[a]?"rtl":"ltr";b(a,c[a])};this[a]?d():CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+a+".js"),d,this)},detect:function(a,d){var b=this.languages;d=d||navigator.userLanguage||navigator.language||a;var c=d.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),e=c[1],c=c[2];b[e+"-"+c]?e=e+"-"+c:b[e]||(e=null);CKEDITOR.lang.detect=e?function(){return e}:function(a){return a};return e||a}}})();
-CKEDITOR.scriptLoader=function(){var a={},d={};return{load:function(b,c,e,g){var l="string"==typeof b;l&&(b=[b]);e||(e=CKEDITOR);var k=b.length,n=[],w=[],f=function(a){c&&(l?c.call(e,a):c.call(e,n,w))};if(0===k)f(!0);else{var x=function(a,b){(b?n:w).push(a);0>=--k&&(g&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),f(b))},A=function(b,c){a[b]=1;var e=d[b];delete d[b];for(var g=0;g<e.length;g++)e[g](b,c)},u=function(b){if(a[b])x(b,!0);else{var e=d[b]||(d[b]=[]);e.push(x);if(!(1<e.length)){var g=
-new CKEDITOR.dom.element("script");g.setAttributes({type:"text/javascript",src:b});c&&(CKEDITOR.env.ie&&11>CKEDITOR.env.version?g.$.onreadystatechange=function(){if("loaded"==g.$.readyState||"complete"==g.$.readyState)g.$.onreadystatechange=null,A(b,!0)}:(g.$.onload=function(){setTimeout(function(){A(b,!0)},0)},g.$.onerror=function(){A(b,!1)}));g.appendTo(CKEDITOR.document.getHead())}}};g&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var B=0;B<k;B++)u(b[B])}},queue:function(){function a(){var b;
-(b=c[0])&&this.load(b.scriptUrl,b.callback,CKEDITOR,0)}var c=[];return function(d,g){var l=this;c.push({scriptUrl:d,callback:function(){g&&g.apply(this,arguments);c.shift();a.call(l)}});1==c.length&&a.call(this)}}()}}();CKEDITOR.resourceManager=function(a,d){this.basePath=a;this.fileName=d;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}};
+(function(){var a,d=function(b){b=b.data;var d=b.getKeystroke(),g=this.keystrokes[d],h=this._.editor;a=!1===h.fire("key",{keyCode:d,domEvent:b});a||(g&&(a=!1!==h.execCommand(g,{from:"keystrokeHandler"})),a||(a=!!this.blockedKeystrokes[d]));a&&b.preventDefault(!0);return!a},b=function(b){a&&(a=!1,b.data.preventDefault(!0))};CKEDITOR.keystrokeHandler.prototype={attach:function(a){a.on("keydown",d,this);if(CKEDITOR.env.gecko&&CKEDITOR.env.mac)a.on("keypress",b,this)}}})();
+(function(){CKEDITOR.lang={languages:{af:1,ar:1,az:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,oc:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},rtl:{ar:1,fa:1,he:1,ku:1,ug:1},load:function(a,d,b){a&&CKEDITOR.lang.languages[a]||
+(a=this.detect(d,a));var c=this;d=function(){c[a].dir=c.rtl[a]?"rtl":"ltr";b(a,c[a])};this[a]?d():CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+a+".js"),d,this)},detect:function(a,d){var b=this.languages;d=d||navigator.userLanguage||navigator.language||a;var c=d.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),e=c[1],c=c[2];b[e+"-"+c]?e=e+"-"+c:b[e]||(e=null);CKEDITOR.lang.detect=e?function(){return e}:function(a){return a};return e||a}}})();
+CKEDITOR.scriptLoader=function(){var a={},d={};return{load:function(b,c,e,g){var h="string"==typeof b;h&&(b=[b]);e||(e=CKEDITOR);var k=b.length,n=[],q=[],f=function(a){c&&(h?c.call(e,a):c.call(e,n,q))};if(0===k)f(!0);else{var D=function(a,b){(b?n:q).push(a);0>=--k&&(g&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),f(b))},w=function(b,c){a[b]=1;var e=d[b];delete d[b];for(var f=0;f<e.length;f++)e[f](b,c)},A=function(b){if(a[b])D(b,!0);else{var e=d[b]||(d[b]=[]);e.push(D);if(!(1<e.length)){var f=
+new CKEDITOR.dom.element("script");f.setAttributes({type:"text/javascript",src:b});c&&(CKEDITOR.env.ie&&(8>=CKEDITOR.env.version||CKEDITOR.env.ie9Compat)?f.$.onreadystatechange=function(){if("loaded"==f.$.readyState||"complete"==f.$.readyState)f.$.onreadystatechange=null,w(b,!0)}:(f.$.onload=function(){setTimeout(function(){w(b,!0)},0)},f.$.onerror=function(){w(b,!1)}));f.appendTo(CKEDITOR.document.getHead())}}};g&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var G=0;G<k;G++)A(b[G])}},
+queue:function(){function a(){var b;(b=c[0])&&this.load(b.scriptUrl,b.callback,CKEDITOR,0)}var c=[];return function(d,g){var h=this;c.push({scriptUrl:d,callback:function(){g&&g.apply(this,arguments);c.shift();a.call(h)}});1==c.length&&a.call(this)}}()}}();CKEDITOR.resourceManager=function(a,d){this.basePath=a;this.fileName=d;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}};
CKEDITOR.resourceManager.prototype={add:function(a,d){if(this.registered[a])throw Error('[CKEDITOR.resourceManager.add] The resource name "'+a+'" is already registered.');var b=this.registered[a]=d||{};b.name=a;b.path=this.getPath(a);CKEDITOR.fire(a+CKEDITOR.tools.capitalize(this.fileName)+"Ready",b);return this.get(a)},get:function(a){return this.registered[a]||null},getPath:function(a){var d=this.externals[a];return CKEDITOR.getUrl(d&&d.dir||this.basePath+a+"/")},getFilePath:function(a){var d=this.externals[a];
-return CKEDITOR.getUrl(this.getPath(a)+(d?d.file:this.fileName+".js"))},addExternal:function(a,d,b){a=a.split(",");for(var c=0;c<a.length;c++){var e=a[c];b||(d=d.replace(/[^\/]+$/,function(a){b=a;return""}));this.externals[e]={dir:d,file:b||this.fileName+".js"}}},load:function(a,d,b){CKEDITOR.tools.isArray(a)||(a=a?[a]:[]);for(var c=this.loaded,e=this.registered,g=[],l={},k={},n=0;n<a.length;n++){var w=a[n];if(w)if(c[w]||e[w])k[w]=this.get(w);else{var f=this.getFilePath(w);g.push(f);f in l||(l[f]=
-[]);l[f].push(w)}}CKEDITOR.scriptLoader.load(g,function(a,e){if(e.length)throw Error('[CKEDITOR.resourceManager.load] Resource name "'+l[e[0]].join(",")+'" was not found at "'+e[0]+'".');for(var g=0;g<a.length;g++)for(var f=l[a[g]],q=0;q<f.length;q++){var y=f[q];k[y]=this.get(y);c[y]=1}d.call(b,k)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");
-CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(a){var d={};return function(b,c,e){var g={},l=function(b){a.call(this,b,function(a){CKEDITOR.tools.extend(g,a);var b=[],f;for(f in a){var k=a[f],A=k&&k.requires;if(!d[f]){if(k.icons)for(var u=k.icons.split(","),B=u.length;B--;)CKEDITOR.skin.addIcon(u[B],k.path+"icons/"+(CKEDITOR.env.hidpi&&k.hidpi?"hidpi/":"")+u[B]+".png");d[f]=1}if(A)for(A.split&&(A=A.split(",")),k=0;k<A.length;k++)g[A[k]]||b.push(A[k])}if(b.length)l.call(this,
-b);else{for(f in g)k=g[f],k.onLoad&&!k.onLoad._called&&(!1===k.onLoad()&&delete g[f],k.onLoad._called=1);c&&c.call(e||window,g)}},this)};l.call(this,b)}});CKEDITOR.plugins.setLang=function(a,d,b){var c=this.get(a);a=c.langEntries||(c.langEntries={});c=c.lang||(c.lang=[]);c.split&&(c=c.split(","));-1==CKEDITOR.tools.indexOf(c,d)&&c.push(d);a[d]=b};CKEDITOR.ui=function(a){if(a.ui)return a.ui;this.items={};this.instances={};this.editor=a;this._={handlers:{}};return this};
+return CKEDITOR.getUrl(this.getPath(a)+(d?d.file:this.fileName+".js"))},addExternal:function(a,d,b){a=a.split(",");for(var c=0;c<a.length;c++){var e=a[c];b||(d=d.replace(/[^\/]+$/,function(a){b=a;return""}));this.externals[e]={dir:d,file:b||this.fileName+".js"}}},load:function(a,d,b){CKEDITOR.tools.isArray(a)||(a=a?[a]:[]);for(var c=this.loaded,e=this.registered,g=[],h={},k={},n=0;n<a.length;n++){var q=a[n];if(q)if(c[q]||e[q])k[q]=this.get(q);else{var f=this.getFilePath(q);g.push(f);f in h||(h[f]=
+[]);h[f].push(q)}}CKEDITOR.scriptLoader.load(g,function(a,e){if(e.length)throw Error('[CKEDITOR.resourceManager.load] Resource name "'+h[e[0]].join(",")+'" was not found at "'+e[0]+'".');for(var f=0;f<a.length;f++)for(var g=h[a[f]],n=0;n<g.length;n++){var m=g[n];k[m]=this.get(m);c[m]=1}d.call(b,k)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");
+CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(a){var d={};return function(b,c,e){var g={},h=function(b){a.call(this,b,function(a){CKEDITOR.tools.extend(g,a);var b=[],f;for(f in a){var k=a[f],w=k&&k.requires;if(!d[f]){if(k.icons)for(var A=k.icons.split(","),G=A.length;G--;)CKEDITOR.skin.addIcon(A[G],k.path+"icons/"+(CKEDITOR.env.hidpi&&k.hidpi?"hidpi/":"")+A[G]+".png");d[f]=1}if(w)for(w.split&&(w=w.split(",")),k=0;k<w.length;k++)g[w[k]]||b.push(w[k])}if(b.length)h.call(this,
+b);else{for(f in g)k=g[f],k.onLoad&&!k.onLoad._called&&(!1===k.onLoad()&&delete g[f],k.onLoad._called=1);c&&c.call(e||window,g)}},this)};h.call(this,b)}});CKEDITOR.plugins.setLang=function(a,d,b){var c=this.get(a);a=c.langEntries||(c.langEntries={});c=c.lang||(c.lang=[]);c.split&&(c=c.split(","));-1==CKEDITOR.tools.indexOf(c,d)&&c.push(d);a[d]=b};CKEDITOR.ui=function(a){if(a.ui)return a.ui;this.items={};this.instances={};this.editor=a;this._={handlers:{}};return this};
CKEDITOR.ui.prototype={add:function(a,d,b){b.name=a.toLowerCase();var c=this.items[a]={type:d,command:b.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(c,b)},get:function(a){return this.instances[a]},create:function(a){var d=this.items[a],b=d&&this._.handlers[d.type],c=d&&d.command&&this.editor.getCommand(d.command),b=b&&b.create.apply(this,d.args);this.instances[a]=b;c&&c.uiItems.push(b);b&&!b.type&&(b.type=d.type);return b},addHandler:function(a,d){this._.handlers[a]=
d},space:function(a){return CKEDITOR.document.getById(this.spaceId(a))},spaceId:function(a){return this.editor.id+"_"+a}};CKEDITOR.event.implementOn(CKEDITOR.ui);
(function(){function a(a,e,f){CKEDITOR.event.call(this);a=a&&CKEDITOR.tools.clone(a);if(void 0!==e){if(!(e instanceof CKEDITOR.dom.element))throw Error("Expect element of type CKEDITOR.dom.element.");if(!f)throw Error("One of the element modes must be specified.");if(CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f==CKEDITOR.ELEMENT_MODE_INLINE)throw Error("Inline element mode is not supported on IE quirks.");if(!b(e,f))throw Error('The specified element mode is not supported on element: "'+e.getName()+'".');
this.element=e;this.elementMode=f;this.name=this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO&&(e.getId()||e.getNameAtt())}else this.elementMode=CKEDITOR.ELEMENT_MODE_NONE;this._={};this.commands={};this.templates={};this.name=this.name||d();this.id=CKEDITOR.tools.getNextId();this.status="unloaded";this.config=CKEDITOR.tools.prototypedCopy(CKEDITOR.config);this.ui=new CKEDITOR.ui(this);this.focusManager=new CKEDITOR.focusManager(this);this.keystrokeHandler=new CKEDITOR.keystrokeHandler(this);this.on("readOnly",
-c);this.on("selectionChange",function(a){g(this,a.data.path)});this.on("activeFilterChange",function(){g(this,this.elementPath(),!0)});this.on("mode",c);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){"destroyed"!==this.status?k(this,a):CKEDITOR.warn("editor-incorrect-destroy")},0,this)}function d(){do var a="editor"+ ++u;while(CKEDITOR.instances[a]);return a}function b(a,
-b){return b==CKEDITOR.ELEMENT_MODE_INLINE?a.is(CKEDITOR.dtd.$editable)||a.is("textarea"):b==CKEDITOR.ELEMENT_MODE_REPLACE?!a.is(CKEDITOR.dtd.$nonBodyContent):1}function c(){var a=this.commands,b;for(b in a)e(this,a[b])}function e(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"disable":b.modes[a.mode]?"enable":"disable"]()}function g(a,b,c){if(b){var d,e,h=a.commands;for(e in h)d=h[e],(c||d.contextSensitive)&&d.refresh(a,b)}}function l(a){var b=a.config.customConfig;if(!b)return!1;var b=
-CKEDITOR.getUrl(b),c=B[b]||(B[b]={});c.fn?(c.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=b&&l(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(b,function(){c.fn=CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};l(a)});return!0}function k(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(var c in b.on)a.on(c,b.on[c]);CKEDITOR.tools.extend(a.config,b,!0);delete a.config.on}c=a.config;a.readOnly=c.readOnly?!0:a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?
+c);this.on("selectionChange",function(a){g(this,a.data.path)});this.on("activeFilterChange",function(){g(this,this.elementPath(),!0)});this.on("mode",c);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){"destroyed"!==this.status?k(this,a):CKEDITOR.warn("editor-incorrect-destroy")},0,this)}function d(){do var a="editor"+ ++G;while(CKEDITOR.instances[a]);return a}function b(a,
+b){return b==CKEDITOR.ELEMENT_MODE_INLINE?a.is(CKEDITOR.dtd.$editable)||a.is("textarea"):b==CKEDITOR.ELEMENT_MODE_REPLACE?!a.is(CKEDITOR.dtd.$nonBodyContent):1}function c(){var a=this.commands,b;for(b in a)e(this,a[b])}function e(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"disable":b.modes[a.mode]?"enable":"disable"]()}function g(a,b,c){if(b){var d,e,f=a.commands;for(e in f)d=f[e],(c||d.contextSensitive)&&d.refresh(a,b)}}function h(a){var b=a.config.customConfig;if(!b)return!1;var b=
+CKEDITOR.getUrl(b),c=x[b]||(x[b]={});c.fn?(c.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=b&&h(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(b,function(){c.fn=CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};h(a)});return!0}function k(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(var c in b.on)a.on(c,b.on[c]);CKEDITOR.tools.extend(a.config,b,!0);delete a.config.on}c=a.config;a.readOnly=c.readOnly?!0:a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?
a.element.is("textarea")?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):!1;a.blockless=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?!(a.element.is("textarea")||CKEDITOR.dtd[a.element.getName()].p):!1;a.tabIndex=c.tabIndex||a.element&&a.element.getAttribute("tabindex")||0;a.activeEnterMode=a.enterMode=a.blockless?CKEDITOR.ENTER_BR:c.enterMode;
-a.activeShiftEnterMode=a.shiftEnterMode=a.blockless?CKEDITOR.ENTER_BR:c.shiftEnterMode;c.skin&&(CKEDITOR.skinName=c.skin);a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=a.activeFilter=new CKEDITOR.filter(a);n(a)});b&&null!=b.customConfig&&(a.config.customConfig=b.customConfig);l(a)||a.fireOnce("customConfigLoaded")}function n(a){CKEDITOR.skin.loadPart("editor",function(){w(a)})}function w(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(b,
-c){var d=a.config.title;a.langCode=b;a.lang=CKEDITOR.tools.prototypedCopy(c);a.title="string"==typeof d||!1===d?d:[a.lang.editor,a.name].join(", ");a.config.contentsLangDirection||(a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir);a.fire("langLoaded");f(a)})}function f(a){a.getStylesSet(function(b){a.once("loaded",function(){a.fire("stylesSet",{styles:b})},null,null,1);x(a)})}function x(a){var b=a.config,c=b.plugins,d=b.extraPlugins,e=
-b.removePlugins;if(d)var h=new RegExp("(?:^|,)(?:"+d.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(h,""),c=c+(","+d);if(e)var p=new RegExp("(?:^|,)(?:"+e.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(p,"");CKEDITOR.env.air&&(c+=",adobeair");CKEDITOR.plugins.load(c.split(","),function(c){var d=[],h=[],e=[];a.plugins=c;for(var g in c){var f=c[g],z=f.lang,l=null,k=f.requires,v;CKEDITOR.tools.isArray(k)&&(k=k.join(","));if(k&&(v=k.match(p)))for(;k=v.pop();)CKEDITOR.error("editor-plugin-required",
-{plugin:k.replace(",",""),requiredBy:g});z&&!a.lang[g]&&(z.split&&(z=z.split(",")),0<=CKEDITOR.tools.indexOf(z,a.langCode)?l=a.langCode:(l=a.langCode.replace(/-.*/,""),l=l!=a.langCode&&0<=CKEDITOR.tools.indexOf(z,l)?l:0<=CKEDITOR.tools.indexOf(z,"en")?"en":z[0]),f.langEntries&&f.langEntries[l]?(a.lang[g]=f.langEntries[l],l=null):e.push(CKEDITOR.getUrl(f.path+"lang/"+l+".js")));h.push(l);d.push(f)}CKEDITOR.scriptLoader.load(e,function(){for(var c=["beforeInit","init","afterInit"],e=0;e<c.length;e++)for(var p=
-0;p<d.length;p++){var m=d[p];0===e&&h[p]&&m.lang&&m.langEntries&&(a.lang[m.name]=m.langEntries[h[p]]);if(m[c[e]])m[c[e]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(p=0;p<a.config.blockedKeystrokes.length;p++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[p]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function A(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();
-this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return!0}return!1}a.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=a;var u=0,B={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var c=new CKEDITOR.command(this,b);this.mode&&e(this,c);return this.commands[a]=c},_attachToForm:function(){function a(b){c.updateElement();c._.required&&!d.getValue()&&!1===c.fire("required")&&b.data.preventDefault()}
-function b(a){return!!(a&&a.call&&a.apply)}var c=this,d=c.element,e=new CKEDITOR.dom.element(d.$.form);d.is("textarea")&&e&&(e.on("submit",a),b(e.$.submit)&&(e.$.submit=CKEDITOR.tools.override(e.$.submit,function(b){return function(){a();b.apply?b.apply(this):b()}})),c.on("destroy",function(){e.removeListener("submit",a)}))},destroy:function(a){this.fire("beforeDestroy");!a&&A.call(this);this.editable(null);this.filter&&(this.filter.destroy(),delete this.filter);delete this.activeFilter;this.status=
-"destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){if(!a){a=this.getSelection();if(!a)return null;a=a.getStartElement()}return a?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,b){var c=this.getCommand(a),d={name:a,commandData:b,command:c};return c&&c.state!=CKEDITOR.TRISTATE_DISABLED&&
-!1!==this.fire("beforeCommandExec",d)&&(d.returnValue=c.exec(d.commandData),!c.async&&!1!==this.fire("afterCommandExec",d))?d.returnValue:!1},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var b=this._.data;"string"!=typeof b&&(b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():b.getHtml():"");b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");
-"string"!=typeof a&&(a=(a=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.is("textarea")?a.getValue():a.getHtml():"");return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,b,c){var d=!0,e=b;b&&"object"==typeof b&&(c=b.internal,e=b.callback,d=!b.noSnapshot);!c&&d&&this.fire("saveSnapshot");if(e||!c)this.once("dataReady",function(a){!c&&d&&this.fire("saveSnapshot");e&&e.call(a.editor)});a={dataValue:a};!c&&this.fire("setData",a);this._.data=a.dataValue;
-!c&&this.fire("afterSetData",a)},setReadOnly:function(a){a=null==a||a;this.readOnly!=a&&(this.readOnly=a,this.keystrokeHandler.blockedKeystrokes[8]=+a,this.editable().setReadOnly(a),this.fire("readOnly"))},insertHtml:function(a,b,c){this.fire("insertHtml",{dataValue:a,mode:b,range:c})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",a)},getSelectedHtml:function(a){var b=this.editable(),c=this.getSelection(),c=c&&c.getRanges();if(!b||!c||0===c.length)return null;
-for(var d=new CKEDITOR.dom.documentFragment,e,h,p,m=0;m<c.length;m++){var g=c[m],r=g.startContainer;r.getName&&"tr"==r.getName()?(e||(e=r.getAscendant("table").clone(),e.append(r.getAscendant("tbody").clone()),d.append(e),e=e.findOne("tbody")),h&&h.equals(r)||(h=r,p=r.clone(),e.append(p)),p.append(g.cloneContents())):d.append(g.cloneContents())}b=e?d:b.getHtmlFromRange(c[0]);return a?b.getHtml():b},extractSelectedHtml:function(a,b){var c=this.editable(),d=this.getSelection().getRanges();if(!c||0===
-d.length)return null;d=d[0];c=c.extractHtmlFromRange(d,b);b||this.getSelection().selectRanges([d]);return a?c.getHtml():c},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"==this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return A.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,
-0)],c,d,e=b.length;e--;)c=b[e],d=0,CKEDITOR.tools.isArray(c)&&(d=c[1],c=c[0]),d?a[c]=d:delete a[c]},addFeature:function(a){return this.filter.addFeature(a)},setActiveFilter:function(a){a||(a=this.filter);this.activeFilter!==a&&(this.activeFilter=a,this.fire("activeFilterChange"),a===this.filter?this.setActiveEnterMode(null,null):this.setActiveEnterMode(a.getAllowedEnterMode(this.enterMode),a.getAllowedEnterMode(this.shiftEnterMode,!0)))},setActiveEnterMode:function(a,b){a=a?this.blockless?CKEDITOR.ENTER_BR:
-a:this.enterMode;b=b?this.blockless?CKEDITOR.ENTER_BR:b:this.shiftEnterMode;if(this.activeEnterMode!=a||this.activeShiftEnterMode!=b)this.activeEnterMode=a,this.activeShiftEnterMode=b,this.fire("activeEnterModeChange")},showNotification:function(a){alert(a)}})})();CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)--\x3e)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g}};
-(function(){var a=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,d={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(b){for(var c,e,g=0,l;c=this._.htmlPartsRegex.exec(b);){e=c.index;if(e>g)if(g=b.substring(g,e),l)l.push(g);else this.onText(g);
-g=this._.htmlPartsRegex.lastIndex;if(e=c[1])if(e=e.toLowerCase(),l&&CKEDITOR.dtd.$cdata[e]&&(this.onCDATA(l.join("")),l=null),!l){this.onTagClose(e);continue}if(l)l.push(c[0]);else if(e=c[3]){if(e=e.toLowerCase(),!/="/.test(e)){var k={},n,w=c[4];c=!!c[5];if(w)for(;n=a.exec(w);){var f=n[1].toLowerCase();n=n[2]||n[3]||n[4]||"";k[f]=!n&&d[f]?f:CKEDITOR.tools.htmlDecodeAttr(n)}this.onTagOpen(e,k,c);!l&&CKEDITOR.dtd.$cdata[e]&&(l=[])}}else if(e=c[2])this.onComment(e)}if(b.length>g)this.onText(b.substring(g,
+a.activeShiftEnterMode=a.shiftEnterMode=a.blockless?CKEDITOR.ENTER_BR:c.shiftEnterMode;c.skin&&(CKEDITOR.skinName=c.skin);a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=a.activeFilter=new CKEDITOR.filter(a);n(a)});b&&null!=b.customConfig&&(a.config.customConfig=b.customConfig);h(a)||a.fireOnce("customConfigLoaded")}function n(a){CKEDITOR.skin.loadPart("editor",function(){q(a)})}function q(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(b,
+c){var d=a.config.title;a.langCode=b;a.lang=CKEDITOR.tools.prototypedCopy(c);a.title="string"==typeof d||!1===d?d:[a.lang.editor,a.name].join(", ");a.config.contentsLangDirection||(a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir);a.fire("langLoaded");f(a)})}function f(a){a.getStylesSet(function(b){a.once("loaded",function(){a.fire("stylesSet",{styles:b})},null,null,1);D(a)})}function D(a){var b=a.config,c=b.plugins,d=b.extraPlugins,e=
+b.removePlugins;if(d)var f=new RegExp("(?:^|,)(?:"+d.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(f,""),c=c+(","+d);if(e)var g=new RegExp("(?:^|,)(?:"+e.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(g,"");CKEDITOR.env.air&&(c+=",adobeair");CKEDITOR.plugins.load(c.split(","),function(c){var d=[],e=[],f=[];a.plugins=c;for(var l in c){var r=c[l],k=r.lang,h=null,O=r.requires,p;CKEDITOR.tools.isArray(O)&&(O=O.join(","));if(O&&(p=O.match(g)))for(;O=p.pop();)CKEDITOR.error("editor-plugin-required",
+{plugin:O.replace(",",""),requiredBy:l});k&&!a.lang[l]&&(k.split&&(k=k.split(",")),0<=CKEDITOR.tools.indexOf(k,a.langCode)?h=a.langCode:(h=a.langCode.replace(/-.*/,""),h=h!=a.langCode&&0<=CKEDITOR.tools.indexOf(k,h)?h:0<=CKEDITOR.tools.indexOf(k,"en")?"en":k[0]),r.langEntries&&r.langEntries[h]?(a.lang[l]=r.langEntries[h],h=null):f.push(CKEDITOR.getUrl(r.path+"lang/"+h+".js")));e.push(h);d.push(r)}CKEDITOR.scriptLoader.load(f,function(){for(var c=["beforeInit","init","afterInit"],f=0;f<c.length;f++)for(var l=
+0;l<d.length;l++){var v=d[l];0===f&&e[l]&&v.lang&&v.langEntries&&(a.lang[v.name]=v.langEntries[e[l]]);if(v[c[f]])v[c[f]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(l=0;l<a.config.blockedKeystrokes.length;l++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[l]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function w(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();
+this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return!0}return!1}function A(a,b){function c(a){var b=a.startContainer,d=a.endContainer;return b.is&&(b.is("tr")||b.is("td")&&b.equals(d)&&a.endOffset===b.getChildCount())?!0:!1}function d(a){var b=a.startContainer;return b.is("tr")?a.cloneContents():b.clone(!0)}for(var e=new CKEDITOR.dom.documentFragment,f,g,k,h=0;h<a.length;h++){var u=a[h],y=u.startContainer.getAscendant("tr",!0);c(u)?(f||
+(f=y.getAscendant("table").clone(),f.append(y.getAscendant({thead:1,tbody:1,tfoot:1}).clone()),e.append(f),f=f.findOne("thead, tbody, tfoot")),g&&g.equals(y)||(g=y,k=y.clone(),f.append(k)),k.append(d(u))):e.append(u.cloneContents())}return f?e:b.getHtmlFromRange(a[0])}a.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=a;var G=0,x={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var c=new CKEDITOR.command(this,b);this.mode&&e(this,c);return this.commands[a]=
+c},_attachToForm:function(){function a(b){c.updateElement();c._.required&&!d.getValue()&&!1===c.fire("required")&&b.data.preventDefault()}function b(a){return!!(a&&a.call&&a.apply)}var c=this,d=c.element,e=new CKEDITOR.dom.element(d.$.form);d.is("textarea")&&e&&(e.on("submit",a),b(e.$.submit)&&(e.$.submit=CKEDITOR.tools.override(e.$.submit,function(b){return function(){a();b.apply?b.apply(this):b()}})),c.on("destroy",function(){e.removeListener("submit",a)}))},destroy:function(a){this.fire("beforeDestroy");
+!a&&w.call(this);this.editable(null);this.filter&&(this.filter.destroy(),delete this.filter);delete this.activeFilter;this.status="destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){if(!a){a=this.getSelection();if(!a)return null;a=a.getStartElement()}return a?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,
+b){var c=this.getCommand(a),d={name:a,commandData:b||{},command:c};return c&&c.state!=CKEDITOR.TRISTATE_DISABLED&&!1!==this.fire("beforeCommandExec",d)&&(d.returnValue=c.exec(d.commandData),!c.async&&!1!==this.fire("afterCommandExec",d))?d.returnValue:!1},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var b=this._.data;"string"!=typeof b&&(b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():b.getHtml():
+"");b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");"string"!=typeof a&&(a=(a=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.is("textarea")?a.getValue():a.getHtml():"");return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,b,c){var d=!0,e=b;b&&"object"==typeof b&&(c=b.internal,e=b.callback,d=!b.noSnapshot);!c&&d&&this.fire("saveSnapshot");if(e||!c)this.once("dataReady",function(a){!c&&
+d&&this.fire("saveSnapshot");e&&e.call(a.editor)});a={dataValue:a};!c&&this.fire("setData",a);this._.data=a.dataValue;!c&&this.fire("afterSetData",a)},setReadOnly:function(a){a=null==a||a;this.readOnly!=a&&(this.readOnly=a,this.keystrokeHandler.blockedKeystrokes[8]=+a,this.editable().setReadOnly(a),this.fire("readOnly"))},insertHtml:function(a,b,c){this.fire("insertHtml",{dataValue:a,mode:b,range:c})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",
+a)},getSelectedHtml:function(a){var b=this.editable(),c=this.getSelection(),c=c&&c.getRanges();if(!b||!c||0===c.length)return null;b=A(c,b);return a?b.getHtml():b},extractSelectedHtml:function(a,b){var c=this.editable(),d=this.getSelection().getRanges(),e=new CKEDITOR.dom.documentFragment,f;if(!c||0===d.length)return null;for(f=0;f<d.length;f++)e.append(c.extractHtmlFromRange(d[f],b));b||this.getSelection().selectRanges([d[0]]);return a?e.getHtml():e},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"==
+this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return w.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,0)],c,d,e=b.length;e--;)c=b[e],d=0,CKEDITOR.tools.isArray(c)&&(d=c[1],c=c[0]),d?a[c]=d:delete a[c]},getCommandKeystroke:function(a){if(a="string"===typeof a?this.getCommand(a):a){var b=CKEDITOR.tools.object.findKey(this.commands,
+a),c=this.keystrokeHandler.keystrokes,d;if(a.fakeKeystroke)return a.fakeKeystroke;for(d in c)if(c.hasOwnProperty(d)&&c[d]==b)return d}return null},addFeature:function(a){return this.filter.addFeature(a)},setActiveFilter:function(a){a||(a=this.filter);this.activeFilter!==a&&(this.activeFilter=a,this.fire("activeFilterChange"),a===this.filter?this.setActiveEnterMode(null,null):this.setActiveEnterMode(a.getAllowedEnterMode(this.enterMode),a.getAllowedEnterMode(this.shiftEnterMode,!0)))},setActiveEnterMode:function(a,
+b){a=a?this.blockless?CKEDITOR.ENTER_BR:a:this.enterMode;b=b?this.blockless?CKEDITOR.ENTER_BR:b:this.shiftEnterMode;if(this.activeEnterMode!=a||this.activeShiftEnterMode!=b)this.activeEnterMode=a,this.activeShiftEnterMode=b,this.fire("activeEnterModeChange")},showNotification:function(a){alert(a)}})})();CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)--\x3e)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g}};
+(function(){var a=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,d={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(b){for(var c,e,g=0,h;c=this._.htmlPartsRegex.exec(b);){e=c.index;if(e>g)if(g=b.substring(g,e),h)h.push(g);else this.onText(g);
+g=this._.htmlPartsRegex.lastIndex;if(e=c[1])if(e=e.toLowerCase(),h&&CKEDITOR.dtd.$cdata[e]&&(this.onCDATA(h.join("")),h=null),!h){this.onTagClose(e);continue}if(h)h.push(c[0]);else if(e=c[3]){if(e=e.toLowerCase(),!/="/.test(e)){var k={},n,q=c[4];c=!!c[5];if(q)for(;n=a.exec(q);){var f=n[1].toLowerCase();n=n[2]||n[3]||n[4]||"";k[f]=!n&&d[f]?f:CKEDITOR.tools.htmlDecodeAttr(n)}this.onTagOpen(e,k,c);!h&&CKEDITOR.dtd.$cdata[e]&&(h=[])}}else if(e=c[2])this.onComment(e)}if(b.length>g)this.onText(b.substring(g,
b.length))}}})();
CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(a){this._.output.push("\x3c",a)},openTagClose:function(a,d){d?this._.output.push(" /\x3e"):this._.output.push("\x3e")},attribute:function(a,d){"string"==typeof d&&(d=CKEDITOR.tools.htmlEncodeAttr(d));this._.output.push(" ",a,'\x3d"',d,'"')},closeTag:function(a){this._.output.push("\x3c/",a,"\x3e")},text:function(a){this._.output.push(a)},comment:function(a){this._.output.push("\x3c!--",a,
"--\x3e")},write:function(a){this._.output.push(a)},reset:function(){this._.output=[];this._.indent=!1},getHtml:function(a){var d=this._.output.join("");a&&this.reset();return d}}});"use strict";
(function(){CKEDITOR.htmlParser.text=function(a){this.value=a;this._={isBlockLike:!1}};CKEDITOR.htmlParser.text.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(a,d){if(!(this.value=a.onText(d,this.value,this)))return this.remove(),!1},writeHtml:function(a,d){d&&this.filter(d);a.text(this.value)}})})();"use strict";
(function(){CKEDITOR.htmlParser.cdata=function(a){this.value=a};CKEDITOR.htmlParser.cdata.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(){},writeHtml:function(a){a.write(this.value)}})})();"use strict";CKEDITOR.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:!0,hasInlineStarted:!1}};
(function(){function a(a){return a.attributes["data-cke-survive"]?!1:"a"==a.name&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var d=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),b={ol:1,ul:1},c=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1}),e={ul:"li",ol:"li",dl:"dd",table:"tbody",tbody:"tr",thead:"tr",tfoot:"tr",tr:"td"};CKEDITOR.htmlParser.fragment.fromHtml=
-function(g,l,k){function n(a){var b;if(0<y.length)for(var c=0;c<y.length;c++){var d=y[c],h=d.name,e=CKEDITOR.dtd[h],g=t.name&&CKEDITOR.dtd[t.name];g&&!g[h]||a&&e&&!e[a]&&CKEDITOR.dtd[a]?h==t.name&&(x(t,t.parent,1),c--):(b||(w(),b=1),d=d.clone(),d.parent=t,t=d,y.splice(c,1),c--)}}function w(){for(;F.length;)x(F.shift(),t)}function f(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var b=a.children.length,c=a.children[b-1],d;c&&c.type==CKEDITOR.NODE_TEXT&&((d=CKEDITOR.tools.rtrim(c.value))?
-c.value=d:a.children.length=b-1)}}function x(b,c,d){c=c||t||q;var e=t;void 0===b.previous&&(A(c,b)&&(t=c,B.onTagOpen(k,{}),b.returnPoint=c=t),f(b),a(b)&&!b.children.length||c.add(b),"pre"==b.name&&(h=!1),"textarea"==b.name&&(z=!1));b.returnPoint?(t=b.returnPoint,delete b.returnPoint):t=d?c:e}function A(a,b){if((a==q||"body"==a.name)&&k&&(!a.name||CKEDITOR.dtd[a.name][k])){var c,d;return(c=b.attributes&&(d=b.attributes["data-cke-real-element-type"])?d:b.name)&&c in CKEDITOR.dtd.$inline&&!(c in CKEDITOR.dtd.head)&&
-!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function u(a,b){return a in CKEDITOR.dtd.$listItem||a in CKEDITOR.dtd.$tableContent?a==b||"dt"==a&&"dd"==b||"dd"==a&&"dt"==b:!1}var B=new CKEDITOR.htmlParser,q=l instanceof CKEDITOR.htmlParser.element?l:"string"==typeof l?new CKEDITOR.htmlParser.element(l):new CKEDITOR.htmlParser.fragment,y=[],F=[],t=q,z="textarea"==q.name,h="pre"==q.name;B.onTagOpen=function(e,m,g,f){m=new CKEDITOR.htmlParser.element(e,m);m.isUnknown&&g&&(m.isEmpty=!0);m.isOptionalClose=f;
-if(a(m))y.push(m);else{if("pre"==e)h=!0;else{if("br"==e&&h){t.add(new CKEDITOR.htmlParser.text("\n"));return}"textarea"==e&&(z=!0)}if("br"==e)F.push(m);else{for(;!(f=(g=t.name)?CKEDITOR.dtd[g]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c,m.isUnknown||t.isUnknown||f[e]);)if(t.isOptionalClose)B.onTagClose(g);else if(e in b&&g in b)g=t.children,(g=g[g.length-1])&&"li"==g.name||x(g=new CKEDITOR.htmlParser.element("li"),t),!m.returnPoint&&(m.returnPoint=t),t=g;else if(e in CKEDITOR.dtd.$listItem&&
-!u(e,g))B.onTagOpen("li"==e?"ul":"dl",{},0,1);else if(g in d&&!u(e,g))!m.returnPoint&&(m.returnPoint=t),t=t.parent;else if(g in CKEDITOR.dtd.$inline&&y.unshift(t),t.parent)x(t,t.parent,1);else{m.isOrphan=1;break}n(e);w();m.parent=t;m.isEmpty?x(m):t=m}}};B.onTagClose=function(a){for(var b=y.length-1;0<=b;b--)if(a==y[b].name){y.splice(b,1);return}for(var c=[],d=[],h=t;h!=q&&h.name!=a;)h._.isBlockLike||d.unshift(h),c.push(h),h=h.returnPoint||h.parent;if(h!=q){for(b=0;b<c.length;b++){var e=c[b];x(e,e.parent)}t=
-h;h._.isBlockLike&&w();x(h,h.parent);h==t&&(t=t.parent);y=y.concat(d)}"body"==a&&(k=!1)};B.onText=function(a){if(!(t._.hasInlineStarted&&!F.length||h||z)&&(a=CKEDITOR.tools.ltrim(a),0===a.length))return;var b=t.name,g=b?CKEDITOR.dtd[b]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c;if(!z&&!g["#"]&&b in d)B.onTagOpen(e[b]||""),B.onText(a);else{w();n();h||z||(a=a.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));a=new CKEDITOR.htmlParser.text(a);if(A(t,a))this.onTagOpen(k,{},0,1);t.add(a)}};B.onCDATA=
-function(a){t.add(new CKEDITOR.htmlParser.cdata(a))};B.onComment=function(a){w();n();t.add(new CKEDITOR.htmlParser.comment(a))};B.parse(g);for(w();t!=q;)x(t,t.parent,1);f(q);return q};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var c=0<b?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT&&(c.value=CKEDITOR.tools.rtrim(c.value),0===c.value.length)){this.children.pop();this.add(a);return}c.next=
+function(g,h,k){function n(a){var b;if(0<m.length)for(var c=0;c<m.length;c++){var d=m[c],e=d.name,f=CKEDITOR.dtd[e],l=z.name&&CKEDITOR.dtd[z.name];l&&!l[e]||a&&f&&!f[a]&&CKEDITOR.dtd[a]?e==z.name&&(D(z,z.parent,1),c--):(b||(q(),b=1),d=d.clone(),d.parent=z,z=d,m.splice(c,1),c--)}}function q(){for(;K.length;)D(K.shift(),z)}function f(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var b=a.children.length,c=a.children[b-1],d;c&&c.type==CKEDITOR.NODE_TEXT&&((d=CKEDITOR.tools.rtrim(c.value))?
+c.value=d:a.children.length=b-1)}}function D(b,c,d){c=c||z||x;var e=z;void 0===b.previous&&(w(c,b)&&(z=c,G.onTagOpen(k,{}),b.returnPoint=c=z),f(b),a(b)&&!b.children.length||c.add(b),"pre"==b.name&&(l=!1),"textarea"==b.name&&(I=!1));b.returnPoint?(z=b.returnPoint,delete b.returnPoint):z=d?c:e}function w(a,b){if((a==x||"body"==a.name)&&k&&(!a.name||CKEDITOR.dtd[a.name][k])){var c,d;return(c=b.attributes&&(d=b.attributes["data-cke-real-element-type"])?d:b.name)&&c in CKEDITOR.dtd.$inline&&!(c in CKEDITOR.dtd.head)&&
+!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function A(a,b){return a in CKEDITOR.dtd.$listItem||a in CKEDITOR.dtd.$tableContent?a==b||"dt"==a&&"dd"==b||"dd"==a&&"dt"==b:!1}var G=new CKEDITOR.htmlParser,x=h instanceof CKEDITOR.htmlParser.element?h:"string"==typeof h?new CKEDITOR.htmlParser.element(h):new CKEDITOR.htmlParser.fragment,m=[],K=[],z=x,I="textarea"==x.name,l="pre"==x.name;G.onTagOpen=function(e,f,g,k){f=new CKEDITOR.htmlParser.element(e,f);f.isUnknown&&g&&(f.isEmpty=!0);f.isOptionalClose=k;
+if(a(f))m.push(f);else{if("pre"==e)l=!0;else{if("br"==e&&l){z.add(new CKEDITOR.htmlParser.text("\n"));return}"textarea"==e&&(I=!0)}if("br"==e)K.push(f);else{for(;!(k=(g=z.name)?CKEDITOR.dtd[g]||(z._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c,f.isUnknown||z.isUnknown||k[e]);)if(z.isOptionalClose)G.onTagClose(g);else if(e in b&&g in b)g=z.children,(g=g[g.length-1])&&"li"==g.name||D(g=new CKEDITOR.htmlParser.element("li"),z),!f.returnPoint&&(f.returnPoint=z),z=g;else if(e in CKEDITOR.dtd.$listItem&&
+!A(e,g))G.onTagOpen("li"==e?"ul":"dl",{},0,1);else if(g in d&&!A(e,g))!f.returnPoint&&(f.returnPoint=z),z=z.parent;else if(g in CKEDITOR.dtd.$inline&&m.unshift(z),z.parent)D(z,z.parent,1);else{f.isOrphan=1;break}n(e);q();f.parent=z;f.isEmpty?D(f):z=f}}};G.onTagClose=function(a){for(var b=m.length-1;0<=b;b--)if(a==m[b].name){m.splice(b,1);return}for(var c=[],d=[],e=z;e!=x&&e.name!=a;)e._.isBlockLike||d.unshift(e),c.push(e),e=e.returnPoint||e.parent;if(e!=x){for(b=0;b<c.length;b++){var f=c[b];D(f,f.parent)}z=
+e;e._.isBlockLike&&q();D(e,e.parent);e==z&&(z=z.parent);m=m.concat(d)}"body"==a&&(k=!1)};G.onText=function(a){if(!(z._.hasInlineStarted&&!K.length||l||I)&&(a=CKEDITOR.tools.ltrim(a),0===a.length))return;var b=z.name,f=b?CKEDITOR.dtd[b]||(z._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c;if(!I&&!f["#"]&&b in d)G.onTagOpen(e[b]||""),G.onText(a);else{q();n();l||I||(a=a.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));a=new CKEDITOR.htmlParser.text(a);if(w(z,a))this.onTagOpen(k,{},0,1);z.add(a)}};G.onCDATA=
+function(a){z.add(new CKEDITOR.htmlParser.cdata(a))};G.onComment=function(a){q();n();z.add(new CKEDITOR.htmlParser.comment(a))};G.parse(g);for(q();z!=x;)D(z,z.parent,1);f(x);return x};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var c=0<b?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT&&(c.value=CKEDITOR.tools.rtrim(c.value),0===c.value.length)){this.children.pop();this.add(a);return}c.next=
a}a.previous=c;a.parent=this;this.children.splice(b,0,a);this._.hasInlineStarted||(this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike)},filter:function(a,b){b=this.getFilterContext(b);a.onRoot(b,this);this.filterChildren(a,!1,b)},filterChildren:function(a,b,c){if(this.childrenFilteredBy!=a.id){c=this.getFilterContext(c);if(b&&!this.parent)a.onRoot(c,this);this.childrenFilteredBy=a.id;for(b=0;b<this.children.length;b++)!1===this.children[b].filter(a,
c)&&b--}},writeHtml:function(a,b){b&&this.filter(b);this.writeChildrenHtml(a)},writeChildrenHtml:function(a,b,c){var d=this.getFilterContext();if(c&&!this.parent&&b)b.onRoot(d,this);b&&this.filterChildren(b,!1,d);b=0;c=this.children;for(d=c.length;b<d;b++)c[b].writeHtml(a)},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var d=a(this);if(!1!==d){c=this.children;for(var e=0;e<c.length;e++)d=c[e],d.type==CKEDITOR.NODE_ELEMENT?d.forEach(a,b):b&&d.type!=b||a(d)}},getFilterContext:function(a){return a||
{}}}})();"use strict";
-(function(){function a(){this.rules=[]}function d(b,c,d,g){var l,k;for(l in c)(k=b[l])||(k=b[l]=new a),k.add(c[l],d,g)}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(b){this.id=CKEDITOR.tools.getNextNumber();this.elementNameRules=new a;this.attributeNameRules=new a;this.elementsRules={};this.attributesRules={};this.textRules=new a;this.commentRules=new a;this.rootRules=new a;b&&this.addRules(b,10)},proto:{addRules:function(a,c){var e;"number"==typeof c?e=c:c&&"priority"in c&&(e=
+(function(){function a(){this.rules=[]}function d(b,c,d,g){var h,k;for(h in c)(k=b[h])||(k=b[h]=new a),k.add(c[h],d,g)}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(b){this.id=CKEDITOR.tools.getNextNumber();this.elementNameRules=new a;this.attributeNameRules=new a;this.elementsRules={};this.attributesRules={};this.textRules=new a;this.commentRules=new a;this.rootRules=new a;b&&this.addRules(b,10)},proto:{addRules:function(a,c){var e;"number"==typeof c?e=c:c&&"priority"in c&&(e=
c.priority);"number"!=typeof e&&(e=10);"object"!=typeof c&&(c={});a.elementNames&&this.elementNameRules.addMany(a.elementNames,e,c);a.attributeNames&&this.attributeNameRules.addMany(a.attributeNames,e,c);a.elements&&d(this.elementsRules,a.elements,e,c);a.attributes&&d(this.attributesRules,a.attributes,e,c);a.text&&this.textRules.add(a.text,e,c);a.comment&&this.commentRules.add(a.comment,e,c);a.root&&this.rootRules.add(a.root,e,c)},applyTo:function(a){a.filter(this)},onElementName:function(a,c){return this.elementNameRules.execOnName(a,
-c)},onAttributeName:function(a,c){return this.attributeNameRules.execOnName(a,c)},onText:function(a,c,d){return this.textRules.exec(a,c,d)},onComment:function(a,c,d){return this.commentRules.exec(a,c,d)},onRoot:function(a,c){return this.rootRules.exec(a,c)},onElement:function(a,c){for(var d=[this.elementsRules["^"],this.elementsRules[c.name],this.elementsRules.$],g,l=0;3>l;l++)if(g=d[l]){g=g.exec(a,c,this);if(!1===g)return null;if(g&&g!=c)return this.onNode(a,g);if(c.parent&&!c.name)break}return c},
+c)},onAttributeName:function(a,c){return this.attributeNameRules.execOnName(a,c)},onText:function(a,c,d){return this.textRules.exec(a,c,d)},onComment:function(a,c,d){return this.commentRules.exec(a,c,d)},onRoot:function(a,c){return this.rootRules.exec(a,c)},onElement:function(a,c){for(var d=[this.elementsRules["^"],this.elementsRules[c.name],this.elementsRules.$],g,h=0;3>h;h++)if(g=d[h]){g=g.exec(a,c,this);if(!1===g)return null;if(g&&g!=c)return this.onNode(a,g);if(c.parent&&!c.name)break}return c},
onNode:function(a,c){var d=c.type;return d==CKEDITOR.NODE_ELEMENT?this.onElement(a,c):d==CKEDITOR.NODE_TEXT?new CKEDITOR.htmlParser.text(this.onText(a,c.value)):d==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(a,c.value)):null},onAttribute:function(a,c,d,g){return(d=this.attributesRules[d])?d.exec(a,g,c,this):g}}});CKEDITOR.htmlParser.filterRulesGroup=a;a.prototype={add:function(a,c,d){this.rules.splice(this.findIndex(c),0,{value:a,priority:c,options:d})},addMany:function(a,
-c,d){for(var g=[this.findIndex(c),0],l=0,k=a.length;l<k;l++)g.push({value:a[l],priority:c,options:d});this.rules.splice.apply(this.rules,g)},findIndex:function(a){for(var c=this.rules,d=c.length-1;0<=d&&a<c[d].priority;)d--;return d+1},exec:function(a,c){var d=c instanceof CKEDITOR.htmlParser.node||c instanceof CKEDITOR.htmlParser.fragment,g=Array.prototype.slice.call(arguments,1),l=this.rules,k=l.length,n,w,f,x;for(x=0;x<k;x++)if(d&&(n=c.type,w=c.name),f=l[x],!(a.nonEditable&&!f.options.applyToAll||
-a.nestedEditable&&f.options.excludeNestedEditable)){f=f.value.apply(null,g);if(!1===f||d&&f&&(f.name!=w||f.type!=n))return f;null!=f&&(g[0]=c=f)}return c},execOnName:function(a,c){for(var d=0,g=this.rules,l=g.length,k;c&&d<l;d++)k=g[d],a.nonEditable&&!k.options.applyToAll||a.nestedEditable&&k.options.excludeNestedEditable||(c=c.replace(k.value[0],k.value[1]));return c}}})();
-(function(){function a(a,d){function m(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function p(a,d){return function(h){if(h.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var e=[],p=b(h),r,v;if(p)for(f(p,1)&&e.push(p);p;)g(p)&&(r=c(p))&&f(r)&&((v=c(r))&&!g(v)?e.push(r):(m(z).insertAfter(r),r.remove())),p=p.previous;for(p=0;p<e.length;p++)e[p].remove();if(e=!a||!1!==("function"==typeof d?d(h):d))z||CKEDITOR.env.needsBrFiller||
-h.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?z||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||h.name in CKEDITOR.dtd.tr||h.name in CKEDITOR.dtd.$listItem)?(e=b(h),e=!e||"form"==h.name&&"input"==e.name):e=!1:e=!1;e&&h.add(m(a))}}}function f(a,b){if((!z||CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&"br"==a.name&&!a.attributes["data-cke-eol"])return!0;var c;return a.type==CKEDITOR.NODE_TEXT&&(c=a.value.match(y))&&(c.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,c.index))).insertBefore(a),
-a.value=c[0]),!CKEDITOR.env.needsBrFiller&&z&&(!b||a.parent.name in v)||!z&&((c=a.previous)&&"br"==c.name||!c||g(c)))?!0:!1}var r={elements:{}},z="html"==d,v=CKEDITOR.tools.extend({},h),C;for(C in v)"#"in t[C]||delete v[C];for(C in v)r.elements[C]=p(z,a.config.fillEmptyBlocks);r.root=p(z,!1);r.elements.br=function(a){return function(b){if(b.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var d=b.attributes;if("data-cke-bogus"in d||"data-cke-eol"in d)delete d["data-cke-bogus"];else{for(d=b.next;d&&e(d);)d=
-d.next;var h=c(b);!d&&g(b.parent)?l(b.parent,m(a)):g(d)&&h&&!g(h)&&m(a).insertBefore(d)}}}}(z);return r}function d(a,b){return a!=CKEDITOR.ENTER_BR&&!1!==b?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function b(a){for(a=a.children[a.children.length-1];a&&e(a);)a=a.previous;return a}function c(a){for(a=a.previous;a&&e(a);)a=a.previous;return a}function e(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function g(a){return a&&
-(a.type==CKEDITOR.NODE_ELEMENT&&a.name in h||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function l(a,b){var c=a.children[a.children.length-1];a.children.push(b);b.parent=a;c&&(c.next=b,b.previous=c)}function k(a){a=a.attributes;"false"!=a.contenteditable&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function n(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function w(a){return a.replace(G,
-function(a,b,c){return"\x3c"+b+c.replace(H,function(a,b){return K.test(b)&&-1==c.indexOf("data-cke-saved-"+b)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function f(a,b){return a.replace(b,function(a,b,c){0===a.indexOf("\x3ctextarea")&&(a=b+u(c).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function x(a){return a.replace(Q,function(a,b){return decodeURIComponent(b)})}function A(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,
-function(a){return"\x3c!--"+F+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function u(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function B(a,b){var c=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function q(a,b){var c=[],d=b.config.protectedSource,h=b._.dataStore||(b._.dataStore=
-{id:1}),e=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,d=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(d);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(c.push(a)-1)+"--\x3e"});for(var p=0;p<d.length;p++)a=a.replace(d[p],function(a){a=a.replace(e,function(a,b,d){return c[d]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(c.push(a)-1)+"--\x3e"});a=a.replace(e,function(a,b,d){return"\x3c!--"+F+(b?"{C}":
-"")+encodeURIComponent(c[d]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){h[h.id]=decodeURIComponent(b);return"{cke_protected_"+h.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,c,d,h){return"\x3c"+c+d+"\x3e"+B(u(h),b)+"\x3c/"+c+"\x3e"})}CKEDITOR.htmlDataProcessor=function(b){var c,
-h,e=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=h=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(p);c.addRules(m,{applyToAll:!0});c.addRules(a(b,"data"),{applyToAll:!0});h.addRules(C);h.addRules(r,{applyToAll:!0});h.addRules(a(b,"html"),{applyToAll:!0});b.on("toHtml",function(a){a=a.data;var c=a.dataValue,h,c=q(c,b),c=f(c,M),c=w(c),c=f(c,R),c=c.replace(v,"$1cke:$2"),c=c.replace(I,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),
-c=c.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),c=c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");h=a.context||b.editable().getName();var e;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==h&&(h="div",c="\x3cpre\x3e"+c+"\x3c/pre\x3e",e=1);h=b.document.createElement(h);h.setHtml("a"+c);c=h.getHtml().substr(1);c=c.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");e&&(c=c.replace(/^<pre>|<\/pre>$/gi,""));c=c.replace(D,"$1$2");c=x(c);c=u(c);h=!1===a.fixForBody?!1:
-d(a.enterMode,b.config.autoParagraph);c=CKEDITOR.htmlParser.fragment.fromHtml(c,a.context,h);h&&(e=c,!e.children.length&&CKEDITOR.dtd[e.name][h]&&(h=new CKEDITOR.htmlParser.element(h),e.add(h)));a.dataValue=c},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,!0,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(e.dataFilter,!0)},null,null,10);b.on("toHtml",function(a){a=a.data;var b=a.dataValue,
-c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c);b=c.getHtml(!0);a.dataValue=A(b)},null,null,15);b.on("toDataFormat",function(a){var c=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(c=c.replace(/^<br *\/?>/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.data.context,d(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(e.htmlFilter,!0)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,
-!1,!0)},null,null,11);b.on("toDataFormat",function(a){var c=a.data.dataValue,d=e.writer;d.reset();c.writeChildrenHtml(d);c=d.getHtml(!0);c=u(c);c=B(c,b);a.data.dataValue=c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var h=this.editor,e,p,m,g;b&&"object"==typeof b?(e=b.context,c=b.fixForBody,d=b.dontFilter,p=b.filter,m=b.enterMode,g=b.protectedWhitespaces):e=b;e||null===e||(e=h.editable().getName());return h.fire("toHtml",{dataValue:a,context:e,fixForBody:c,dontFilter:d,
-filter:p||h.filter,enterMode:m||h.enterMode,protectedWhitespaces:g}).dataValue},toDataFormat:function(a,b){var c,d,h;b&&(c=b.context,d=b.filter,h=b.enterMode);c||null===c||(c=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:d||this.editor.filter,context:c,enterMode:h||this.editor.enterMode}).dataValue}};var y=/(?: |\xa0)$/,F="{cke_protected}",t=CKEDITOR.dtd,z="caption colgroup col thead tfoot tbody".split(" "),h=CKEDITOR.tools.extend({},t.$blockLimit,
-t.$block),p={elements:{input:k,textarea:k}},m={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},C={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var c=b.attributes.width,b=b.attributes.height;c&&(a.attributes.width=c);b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;if(!(a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]))return!1}}},r={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,
-""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var c=["name","href","src"],d,h=0;h<c.length;h++)d="data-cke-saved-"+c[h],d in b&&delete b[c[h]]}return a},table:function(a){a.children.slice(0).sort(function(a,b){var c,d;a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type&&(c=CKEDITOR.tools.indexOf(z,a.name),d=CKEDITOR.tools.indexOf(z,b.name));-1<c&&-1<d&&c!=d||(c=a.parent?a.getIndex():-1,d=b.parent?b.getIndex():-1);return c>d?
-1:-1})},param:function(a){a.children=[];a.isEmpty=!0;return a},span:function(a){"Apple-style-span"==a.attributes["class"]&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value));a.attributes.type||(a.attributes.type="text/css")},title:function(a){var b=a.children[0];!b&&l(a,b=new CKEDITOR.htmlParser.text);
-b.value=a.attributes["data-cke-title"]||""},input:n,textarea:n},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(r.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var G=/<(a|area|img|input|source)\b([^>]*)>/gi,H=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,K=/^(href|src|name)$/i,R=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,
-M=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,Q=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,v=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,D=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,I=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();"use strict";
-CKEDITOR.htmlParser.element=function(a,d){this.name=a;this.attributes=d||{};this.children=[];var b=a||"",c=b.match(/^cke:(.*)/);c&&(b=c[1]);b=!!(CKEDITOR.dtd.$nonBodyContent[b]||CKEDITOR.dtd.$block[b]||CKEDITOR.dtd.$listItem[b]||CKEDITOR.dtd.$tableContent[b]||CKEDITOR.dtd.$nonEditable[b]||"br"==b);this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}};
+c,d){for(var g=[this.findIndex(c),0],h=0,k=a.length;h<k;h++)g.push({value:a[h],priority:c,options:d});this.rules.splice.apply(this.rules,g)},findIndex:function(a){for(var c=this.rules,d=c.length-1;0<=d&&a<c[d].priority;)d--;return d+1},exec:function(a,c){var d=c instanceof CKEDITOR.htmlParser.node||c instanceof CKEDITOR.htmlParser.fragment,g=Array.prototype.slice.call(arguments,1),h=this.rules,k=h.length,n,q,f,D;for(D=0;D<k;D++)if(d&&(n=c.type,q=c.name),f=h[D],!(a.nonEditable&&!f.options.applyToAll||
+a.nestedEditable&&f.options.excludeNestedEditable)){f=f.value.apply(null,g);if(!1===f||d&&f&&(f.name!=q||f.type!=n))return f;null!=f&&(g[0]=c=f)}return c},execOnName:function(a,c){for(var d=0,g=this.rules,h=g.length,k;c&&d<h;d++)k=g[d],a.nonEditable&&!k.options.applyToAll||a.nestedEditable&&k.options.excludeNestedEditable||(c=c.replace(k.value[0],k.value[1]));return c}}})();
+(function(){function a(a,d){function f(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function v(a,d){return function(e){if(e.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var t=[],l=b(e),v,p;if(l)for(u(l,1)&&t.push(l);l;)g(l)&&(v=c(l))&&u(v)&&((p=c(v))&&!g(p)?t.push(v):(f(y).insertAfter(v),v.remove())),l=l.previous;for(l=0;l<t.length;l++)t[l].remove();if(t=!a||!1!==("function"==typeof d?d(e):d))y||CKEDITOR.env.needsBrFiller||
+e.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?y||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||e.name in CKEDITOR.dtd.tr||e.name in CKEDITOR.dtd.$listItem)?(t=b(e),t=!t||"form"==e.name&&"input"==t.name):t=!1:t=!1;t&&e.add(f(a))}}}function u(a,b){if((!y||CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&"br"==a.name&&!a.attributes["data-cke-eol"])return!0;var c;return a.type==CKEDITOR.NODE_TEXT&&(c=a.value.match(m))&&(c.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,c.index))).insertBefore(a),
+a.value=c[0]),!CKEDITOR.env.needsBrFiller&&y&&(!b||a.parent.name in B)||!y&&((c=a.previous)&&"br"==c.name||!c||g(c)))?!0:!1}var p={elements:{}},y="html"==d,B=CKEDITOR.tools.extend({},l),C;for(C in B)"#"in z[C]||delete B[C];for(C in B)p.elements[C]=v(y,a.config.fillEmptyBlocks);p.root=v(y,!1);p.elements.br=function(a){return function(b){if(b.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var d=b.attributes;if("data-cke-bogus"in d||"data-cke-eol"in d)delete d["data-cke-bogus"];else{for(d=b.next;d&&e(d);)d=
+d.next;var t=c(b);!d&&g(b.parent)?h(b.parent,f(a)):g(d)&&t&&!g(t)&&f(a).insertBefore(d)}}}}(y);return p}function d(a,b){return a!=CKEDITOR.ENTER_BR&&!1!==b?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function b(a){for(a=a.children[a.children.length-1];a&&e(a);)a=a.previous;return a}function c(a){for(a=a.previous;a&&e(a);)a=a.previous;return a}function e(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function g(a){return a&&
+(a.type==CKEDITOR.NODE_ELEMENT&&a.name in l||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function h(a,b){var c=a.children[a.children.length-1];a.children.push(b);b.parent=a;c&&(c.next=b,b.previous=c)}function k(a){a=a.attributes;"false"!=a.contenteditable&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function n(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function q(a){return a.replace(u,
+function(a,b,c){return"\x3c"+b+c.replace(y,function(a,b){return v.test(b)&&-1==c.indexOf("data-cke-saved-"+b)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function f(a,b){return a.replace(b,function(a,b,c){0===a.indexOf("\x3ctextarea")&&(a=b+A(c).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function D(a){return a.replace(V,function(a,b){return decodeURIComponent(b)})}function w(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,
+function(a){return"\x3c!--"+K+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function A(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function G(a,b){var c=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function x(a,b){var c=[],d=b.config.protectedSource,e=b._.dataStore||(b._.dataStore=
+{id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,d=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(d);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(c.push(a)-1)+"--\x3e"});for(var l=0;l<d.length;l++)a=a.replace(d[l],function(a){a=a.replace(f,function(a,b,d){return c[d]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(c.push(a)-1)+"--\x3e"});a=a.replace(f,function(a,b,d){return"\x3c!--"+K+(b?"{C}":
+"")+encodeURIComponent(c[d]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){e[e.id]=decodeURIComponent(b);return"{cke_protected_"+e.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,c,d,e){return"\x3c"+c+d+"\x3e"+G(A(e),b)+"\x3c/"+c+"\x3e"})}CKEDITOR.htmlDataProcessor=function(b){var c,
+e,l=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(r);c.addRules(J,{applyToAll:!0});c.addRules(a(b,"data"),{applyToAll:!0});e.addRules(H);e.addRules(E,{applyToAll:!0});e.addRules(a(b,"html"),{applyToAll:!0});b.on("toHtml",function(a){a=a.data;var c=a.dataValue,e,c=x(c,b),c=f(c,L),c=q(c),c=f(c,B),c=c.replace(O,"$1cke:$2"),c=c.replace(C,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),
+c=c.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),c=c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");e=a.context||b.editable().getName();var l;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==e&&(e="div",c="\x3cpre\x3e"+c+"\x3c/pre\x3e",l=1);e=b.document.createElement(e);e.setHtml("a"+c);c=e.getHtml().substr(1);c=c.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");l&&(c=c.replace(/^<pre>|<\/pre>$/gi,""));c=c.replace(p,"$1$2");c=D(c);c=A(c);e=!1===a.fixForBody?!1:
+d(a.enterMode,b.config.autoParagraph);c=CKEDITOR.htmlParser.fragment.fromHtml(c,a.context,e);e&&(l=c,!l.children.length&&CKEDITOR.dtd[l.name][e]&&(e=new CKEDITOR.htmlParser.element(e),l.add(e)));a.dataValue=c},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,!0,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(l.dataFilter,!0)},null,null,10);b.on("toHtml",function(a){a=a.data;var b=a.dataValue,
+c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c);b=c.getHtml(!0);a.dataValue=w(b)},null,null,15);b.on("toDataFormat",function(a){var c=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(c=c.replace(/^<br *\/?>/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.data.context,d(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(l.htmlFilter,!0)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,
+!1,!0)},null,null,11);b.on("toDataFormat",function(a){var c=a.data.dataValue,d=l.writer;d.reset();c.writeChildrenHtml(d);c=d.getHtml(!0);c=A(c);c=G(c,b);a.data.dataValue=c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var e=this.editor,f,l,v,g;b&&"object"==typeof b?(f=b.context,c=b.fixForBody,d=b.dontFilter,l=b.filter,v=b.enterMode,g=b.protectedWhitespaces):f=b;f||null===f||(f=e.editable().getName());return e.fire("toHtml",{dataValue:a,context:f,fixForBody:c,dontFilter:d,
+filter:l||e.filter,enterMode:v||e.enterMode,protectedWhitespaces:g}).dataValue},toDataFormat:function(a,b){var c,d,e;b&&(c=b.context,d=b.filter,e=b.enterMode);c||null===c||(c=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:d||this.editor.filter,context:c,enterMode:e||this.editor.enterMode}).dataValue}};var m=/(?: |\xa0)$/,K="{cke_protected}",z=CKEDITOR.dtd,I="caption colgroup col thead tfoot tbody".split(" "),l=CKEDITOR.tools.extend({},z.$blockLimit,
+z.$block),r={elements:{input:k,textarea:k}},J={attributeNames:[[/^on/,"data-cke-pa-on"],[/^srcdoc/,"data-cke-pa-srcdoc"],[/^data-cke-expando$/,""]],elements:{iframe:function(a){if(a.attributes&&a.attributes.src){var b=a.attributes.src.toLowerCase().replace(/[^a-z]/gi,"");if(0===b.indexOf("javascript")||0===b.indexOf("data"))a.attributes["data-cke-pa-src"]=a.attributes.src,delete a.attributes.src}}}},H={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var c=b.attributes.width,b=b.attributes.height;
+c&&(a.attributes.width=c);b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;if(!(a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]))return!1}}},E={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var c=["name","href","src"],d,e=0;e<c.length;e++)d="data-cke-saved-"+c[e],d in b&&delete b[c[e]]}return a},
+table:function(a){a.children.slice(0).sort(function(a,b){var c,d;a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type&&(c=CKEDITOR.tools.indexOf(I,a.name),d=CKEDITOR.tools.indexOf(I,b.name));-1<c&&-1<d&&c!=d||(c=a.parent?a.getIndex():-1,d=b.parent?b.getIndex():-1);return c>d?1:-1})},param:function(a){a.children=[];a.isEmpty=!0;return a},span:function(a){"Apple-style-span"==a.attributes["class"]&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;
+delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value));a.attributes.type||(a.attributes.type="text/css")},title:function(a){var b=a.children[0];!b&&h(a,b=new CKEDITOR.htmlParser.text);b.value=a.attributes["data-cke-title"]||""},input:n,textarea:n},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(E.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,
+function(a){return a.toLowerCase()})});var u=/<(a|area|img|input|source)\b([^>]*)>/gi,y=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,v=/^(href|src|name)$/i,B=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,L=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,V=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,O=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,p=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,C=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();
+"use strict";CKEDITOR.htmlParser.element=function(a,d){this.name=a;this.attributes=d||{};this.children=[];var b=a||"",c=b.match(/^cke:(.*)/);c&&(b=c[1]);b=!!(CKEDITOR.dtd.$nonBodyContent[b]||CKEDITOR.dtd.$block[b]||CKEDITOR.dtd.$listItem[b]||CKEDITOR.dtd.$tableContent[b]||CKEDITOR.dtd.$nonEditable[b]||"br"==b);this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}};
CKEDITOR.htmlParser.cssStyle=function(a){var d={};((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,e){"font-family"==c&&(e=e.replace(/["']/g,""));d[c.toLowerCase()]=e});return{rules:d,populate:function(a){var c=this.toString();c&&(a instanceof CKEDITOR.dom.element?a.setAttribute("style",c):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=c:a.style=c)},toString:function(){var a=[],c;
for(c in d)d[c]&&a.push(c,":",d[c],";");return a.join("")}}};
-(function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof a?b.name==a:b.name in a)}}var d=function(a,b){a=a[0];b=b[0];return a<b?-1:a>b?1:0},b=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:b.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var d=this,l,k;b=d.getFilterContext(b);if(b.off)return!0;
-if(!d.parent)a.onRoot(b,d);for(;;){l=d.name;if(!(k=a.onElementName(b,l)))return this.remove(),!1;d.name=k;if(!(d=a.onElement(b,d)))return this.remove(),!1;if(d!==this)return this.replaceWith(d),!1;if(d.name==l)break;if(d.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(d),!1;if(!d.name)return this.replaceWithChildren(),!1}l=d.attributes;var n,w;for(n in l){for(k=l[n];;)if(w=a.onAttributeName(b,n))if(w!=n)delete l[n],n=w;else break;else{delete l[n];break}w&&(!1===(k=a.onAttribute(b,d,w,k))?delete l[w]:
-l[w]=k)}d.isEmpty||this.filterChildren(a,!1,b);return!0},filterChildren:b.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var g=this.name,l=[],k=this.attributes,n,w;a.openTag(g,k);for(n in k)l.push([n,k[n]]);a.sortAttributes&&l.sort(d);n=0;for(w=l.length;n<w;n++)k=l[n],a.attribute(k[0],k[1]);a.openTagClose(g,this.isEmpty);this.writeChildrenHtml(a);this.isEmpty||a.closeTag(g)},writeChildrenHtml:b.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,b=a.length;b;)a[--b].insertAfter(this);
+(function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof a?b.name==a:b.name in a)}}var d=function(a,b){a=a[0];b=b[0];return a<b?-1:a>b?1:0},b=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:b.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var d=this,h,k;b=d.getFilterContext(b);if(b.off)return!0;
+if(!d.parent)a.onRoot(b,d);for(;;){h=d.name;if(!(k=a.onElementName(b,h)))return this.remove(),!1;d.name=k;if(!(d=a.onElement(b,d)))return this.remove(),!1;if(d!==this)return this.replaceWith(d),!1;if(d.name==h)break;if(d.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(d),!1;if(!d.name)return this.replaceWithChildren(),!1}h=d.attributes;var n,q;for(n in h){for(k=h[n];;)if(q=a.onAttributeName(b,n))if(q!=n)delete h[n],n=q;else break;else{delete h[n];break}q&&(!1===(k=a.onAttribute(b,d,q,k))?delete h[q]:
+h[q]=k)}d.isEmpty||this.filterChildren(a,!1,b);return!0},filterChildren:b.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var g=this.name,h=[],k=this.attributes,n,q;a.openTag(g,k);for(n in k)h.push([n,k[n]]);a.sortAttributes&&h.sort(d);n=0;for(q=h.length;n<q;n++)k=h[n],a.attribute(k[0],k[1]);a.openTagClose(g,this.isEmpty);this.writeChildrenHtml(a);this.isEmpty||a.closeTag(g)},writeChildrenHtml:b.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,b=a.length;b;)a[--b].insertAfter(this);
this.remove()},forEach:b.forEach,getFirst:function(b){if(!b)return this.children.length?this.children[0]:null;"function"!=typeof b&&(b=a(b));for(var d=0,g=this.children.length;d<g;++d)if(b(this.children[d]))return this.children[d];return null},getHtml:function(){var a=new CKEDITOR.htmlParser.basicWriter;this.writeChildrenHtml(a);return a.getHtml()},setHtml:function(a){a=this.children=CKEDITOR.htmlParser.fragment.fromHtml(a).children;for(var b=0,d=a.length;b<d;++b)a[b].parent=this},getOuterHtml:function(){var a=
-new CKEDITOR.htmlParser.basicWriter;this.writeHtml(a);return a.getHtml()},split:function(a){for(var b=this.children.splice(a,this.children.length-a),d=this.clone(),l=0;l<b.length;++l)b[l].parent=d;d.children=b;b[0]&&(b[0].previous=null);0<a&&(this.children[a-1].next=null);this.parent.add(d,this.getIndex()+1);return d},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+a}},removeClass:function(a){var b=this.attributes["class"];b&&((b=
-CKEDITOR.tools.trim(b.replace(new RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"])},hasClass:function(a){var b=this.attributes["class"];return b?(new RegExp("(?:^|\\s)"+a+"(?\x3d\\s|$)")).test(b):!1},getFilterContext:function(a){var b=[];a||(a={off:!1,nonEditable:!1,nestedEditable:!1});a.off||"off"!=this.attributes["data-cke-processor"]||b.push("off",!0);a.nonEditable||"false"!=this.attributes.contenteditable?a.nonEditable&&!a.nestedEditable&&
-"true"==this.attributes.contenteditable&&b.push("nestedEditable",!0):b.push("nonEditable",!0);if(b.length){a=CKEDITOR.tools.copy(a);for(var d=0;d<b.length;d+=2)a[b[d]]=b[d+1]}return a}},!0)})();
-(function(){var a={},d=/{([^}]+)}/g,b=/([\\'])/g,c=/\n/g,e=/\r/g;CKEDITOR.template=function(g){if(a[g])this.output=a[g];else{var l=g.replace(b,"\\$1").replace(c,"\\n").replace(e,"\\r").replace(d,function(a,b){return"',data['"+b+"']\x3d\x3dundefined?'{"+b+"}':data['"+b+"'],'"});this.output=a[g]=Function("data","buffer","return buffer?buffer.push('"+l+"'):['"+l+"'].join('');")}}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document);
+new CKEDITOR.htmlParser.basicWriter;this.writeHtml(a);return a.getHtml()},split:function(a){for(var b=this.children.splice(a,this.children.length-a),d=this.clone(),h=0;h<b.length;++h)b[h].parent=d;d.children=b;b[0]&&(b[0].previous=null);0<a&&(this.children[a-1].next=null);this.parent.add(d,this.getIndex()+1);return d},find:function(a,b){void 0===b&&(b=!1);var d=[],h;for(h=0;h<this.children.length;h++){var k=this.children[h];"function"==typeof a&&a(k)?d.push(k):"string"==typeof a&&k.name===a&&d.push(k);
+b&&k.find&&(d=d.concat(k.find(a,b)))}return d},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+a}},removeClass:function(a){var b=this.attributes["class"];b&&((b=CKEDITOR.tools.trim(b.replace(new RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"])},hasClass:function(a){var b=this.attributes["class"];return b?(new RegExp("(?:^|\\s)"+a+"(?\x3d\\s|$)")).test(b):!1},getFilterContext:function(a){var b=
+[];a||(a={off:!1,nonEditable:!1,nestedEditable:!1});a.off||"off"!=this.attributes["data-cke-processor"]||b.push("off",!0);a.nonEditable||"false"!=this.attributes.contenteditable?a.nonEditable&&!a.nestedEditable&&"true"==this.attributes.contenteditable&&b.push("nestedEditable",!0):b.push("nonEditable",!0);if(b.length){a=CKEDITOR.tools.copy(a);for(var d=0;d<b.length;d+=2)a[b[d]]=b[d+1]}return a}},!0)})();
+(function(){var a=/{([^}]+)}/g;CKEDITOR.template=function(a){this.source=String(a)};CKEDITOR.template.prototype.output=function(d,b){var c=this.source.replace(a,function(a,b){return void 0!==d[b]?d[b]:a});return b?b.push(c):c}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document);
CKEDITOR.add=function(a){CKEDITOR.instances[a.name]=a;a.on("focus",function(){CKEDITOR.currentInstance!=a&&(CKEDITOR.currentInstance=a,CKEDITOR.fire("currentInstance"))});a.on("blur",function(){CKEDITOR.currentInstance==a&&(CKEDITOR.currentInstance=null,CKEDITOR.fire("currentInstance"))});CKEDITOR.fire("instance",null,a)};CKEDITOR.remove=function(a){delete CKEDITOR.instances[a.name]};
(function(){var a={};CKEDITOR.addTemplate=function(d,b){var c=a[d];if(c)return c;c={name:d,source:b};CKEDITOR.fire("template",c);return a[d]=new CKEDITOR.template(c.source)};CKEDITOR.getTemplate=function(d){return a[d]}})();(function(){var a=[];CKEDITOR.addCss=function(d){a.push(d)};CKEDITOR.getCss=function(){return a.join("\n")}})();CKEDITOR.on("instanceDestroyed",function(){CKEDITOR.tools.isEmpty(this.instances)&&CKEDITOR.fire("reset")});CKEDITOR.TRISTATE_ON=1;CKEDITOR.TRISTATE_OFF=2;
CKEDITOR.TRISTATE_DISABLED=0;
(function(){CKEDITOR.inline=function(a,d){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var b=new CKEDITOR.editor(d,a,CKEDITOR.ELEMENT_MODE_INLINE),c=a.is("textarea")?a:null;c?(b.setData(c.getValue(),null,!0),a=CKEDITOR.dom.element.createFromHtml('\x3cdiv contenteditable\x3d"'+!!b.readOnly+'" class\x3d"cke_textarea_inline"\x3e'+c.getValue()+"\x3c/div\x3e",CKEDITOR.document),
a.insertAfter(c),c.hide(),c.$.form&&b._attachToForm()):b.setData(a.getHtml(),null,!0);b.on("loaded",function(){b.fire("uiReady");b.editable(a);b.container=a;b.ui.contentsElement=a;b.setData(b.getData(1));b.resetDirty();b.fire("contentDom");b.mode="wysiwyg";b.fire("mode");b.status="ready";b.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,b)},null,null,1E4);b.on("destroy",function(){c&&(b.container.clearCustomData(),b.container.remove(),c.show());b.element.clearCustomData();delete b.element});
return b};CKEDITOR.inlineAll=function(){var a,d,b;for(b in CKEDITOR.dtd.$editable)for(var c=CKEDITOR.document.getElementsByTag(b),e=0,g=c.count();e<g;e++)a=c.getItem(e),"true"==a.getAttribute("contenteditable")&&(d={element:a,config:{}},!1!==CKEDITOR.fire("inline",d)&&CKEDITOR.inline(a,d.config))};CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})})();CKEDITOR.replaceClass="ckeditor";
-(function(){function a(a,e,g,l){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var k=new CKEDITOR.editor(e,a,l);l==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.setStyle("visibility","hidden"),k._.required=a.hasAttribute("required"),a.removeAttribute("required"));g&&k.setData(g,null,!0);k.on("loaded",function(){b(k);l==CKEDITOR.ELEMENT_MODE_REPLACE&&k.config.autoUpdateElement&&
-a.$.form&&k._attachToForm();k.setMode(k.config.startupMode,function(){k.resetDirty();k.status="ready";k.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,k)})});k.on("destroy",d);return k}function d(){var a=this.container,b=this.element;a&&(a.clearCustomData(),a.remove());b&&(b.clearCustomData(),this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.show(),this._.required&&b.setAttribute("required","required")),delete this.element)}function b(a){var b=a.name,d=a.element,l=a.elementMode,k=
-a.fire("uiSpace",{space:"top",html:""}).html,n=a.fire("uiSpace",{space:"bottom",html:""}).html,w=new CKEDITOR.template('\x3c{outerEl} id\x3d"cke_{name}" class\x3d"{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"application"'+(a.title?' aria-labelledby\x3d"cke_{name}_arialbl"':"")+"\x3e"+(a.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':"")+'\x3c{outerEl} class\x3d"cke_inner cke_reset" role\x3d"presentation"\x3e{topHtml}\x3c{outerEl} id\x3d"{contentId}" class\x3d"cke_contents cke_reset" role\x3d"presentation"\x3e\x3c/{outerEl}\x3e{bottomHtml}\x3c/{outerEl}\x3e\x3c/{outerEl}\x3e'),
-b=CKEDITOR.dom.element.createFromHtml(w.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:k?'\x3cspan id\x3d"'+a.ui.spaceId("top")+'" class\x3d"cke_top cke_reset_all" role\x3d"presentation" style\x3d"height:auto"\x3e'+k+"\x3c/span\x3e":"",contentId:a.ui.spaceId("contents"),bottomHtml:n?'\x3cspan id\x3d"'+a.ui.spaceId("bottom")+'" class\x3d"cke_bottom cke_reset_all" role\x3d"presentation"\x3e'+n+"\x3c/span\x3e":"",outerEl:CKEDITOR.env.ie?"span":"div"}));l==CKEDITOR.ELEMENT_MODE_REPLACE?
-(d.hide(),b.insertAfter(d)):d.append(b);a.container=b;a.ui.contentsElement=a.ui.space("contents");k&&a.ui.space("top").unselectable();n&&a.ui.space("bottom").unselectable();d=a.config.width;l=a.config.height;d&&b.setStyle("width",CKEDITOR.tools.cssLength(d));l&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(l));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(b,d){return a(b,d,null,CKEDITOR.ELEMENT_MODE_REPLACE)};
-CKEDITOR.appendTo=function(b,d,g){return a(b,d,g,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b<a.length;b++){var d=null,l=a[b];if(l.name||l.id){if("string"==typeof arguments[0]){if(!(new RegExp("(?:^|\\s)"+arguments[0]+"(?:$|\\s)")).test(l.className))continue}else if("function"==typeof arguments[0]&&(d={},!1===arguments[0](l,d)))continue;this.replace(l,d)}}};CKEDITOR.editor.prototype.addMode=function(a,b){(this._.modes||(this._.modes=
-{}))[a]=b};CKEDITOR.editor.prototype.setMode=function(a,b){var d=this,l=this._.modes;if(a!=d.mode&&l&&l[a]){d.fire("beforeSetMode",a);if(d.mode){var k=d.checkDirty(),l=d._.previousModeData,n,w=0;d.fire("beforeModeUnload");d.editable(0);d._.previousMode=d.mode;d._.previousModeData=n=d.getData(1);"source"==d.mode&&l==n&&(d.fire("lockSnapshot",{forceUpdate:!0}),w=1);d.ui.space("contents").setHtml("");d.mode=""}else d._.previousModeData=d.getData(1);this._.modes[a](function(){d.mode=a;void 0!==k&&!k&&
-d.resetDirty();w?d.fire("unlockSnapshot"):"wysiwyg"==a&&d.fire("saveSnapshot");setTimeout(function(){d.fire("mode");b&&b.call(d)},0)})}};CKEDITOR.editor.prototype.resize=function(a,b,d,l){var k=this.container,n=this.ui.space("contents"),w=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement;l=l?this.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}):k;l.setSize("width",a,!0);w&&(w.style.width="1%");var f=(l.$.offsetHeight||0)-(n.$.clientHeight||
-0),k=Math.max(b-(d?0:f),0);b=d?b+f:b;n.setStyle("height",k+"px");w&&(w.style.width="100%");this.fire("resize",{outerHeight:b,contentsHeight:k,outerWidth:a||l.getSize("width")})};CKEDITOR.editor.prototype.getResizable=function(a){return a?this.ui.space("contents"):this.container};CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";
-(function(){function a(a){var b=a.editor,e=a.data.path,m=e.blockLimit,f=a.data.selection,r=f.getRanges()[0],g;if(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)if(f=d(f,e))f.appendBogus(),g=CKEDITOR.env.ie;l(b,e.block,m)&&r.collapsed&&!r.getCommonAncestor().isReadOnly()&&(e=r.clone(),e.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),m=new CKEDITOR.dom.walker(e),m.guard=function(a){return!c(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()},!m.checkForward()||e.checkStartOfBlock()&&e.checkEndOfBlock())&&
-(b=r.fixBlock(!0,b.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p"),CKEDITOR.env.needsBrFiller||(b=b.getFirst(c))&&b.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(b.getText()).match(/^(?: |\xa0)$/)&&b.remove(),g=1,a.cancel());g&&r.select()}function d(a,b){if(a.isFake)return 0;var d=b.block||b.blockLimit,e=d&&d.getLast(c);if(!(!d||!d.isBlockBoundary()||e&&e.type==CKEDITOR.NODE_ELEMENT&&e.isBlockBoundary()||d.is("pre")||d.getBogus()))return d}function b(a){var b=a.data.getTarget();b.is("input")&&
-(b=b.getAttribute("type"),"submit"!=b&&"reset"!=b||a.data.preventDefault())}function c(a){return f(a)&&x(a)}function e(a,b){return function(c){var d=c.data.$.toElement||c.data.$.fromElement||c.data.$.relatedTarget;(d=d&&d.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(d):null)&&(b.equals(d)||b.contains(d))||a.call(this,c)}}function g(a){function b(a){return function(b,h){h&&b.type==CKEDITOR.NODE_ELEMENT&&b.is(f)&&(d=b);if(!(h||!c(b)||a&&u(b)))return!1}}var d,e=a.getRanges()[0];a=a.root;
-var f={table:1,ul:1,ol:1,dl:1};if(e.startPath().contains(f)){var r=e.clone();r.collapse(1);r.setStartAt(a,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(r);a.guard=b();a.checkBackward();if(d)return r=e.clone(),r.collapse(),r.setEndAt(d,CKEDITOR.POSITION_AFTER_END),a=new CKEDITOR.dom.walker(r),a.guard=b(!0),d=!1,a.checkForward(),d}return null}function l(a,b,c){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(c)&&!b||b&&"true"==b.getAttribute("contenteditable"))}
-function k(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":!1}function n(a){var b=a.editor;b.getSelection().scrollIntoView();setTimeout(function(){b.fire("saveSnapshot")},0)}function w(a,b,c){var d=a.getCommonAncestor(b);for(b=a=c?b:a;(a=a.getParent())&&!d.equals(a)&&1==a.getChildCount();)b=a;b.remove()}CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,b){this.base(b.$||b);this.editor=a;
-this.status="unloaded";this.hasFocus=!1;this.setup()},proto:{focus:function(){var a;if(CKEDITOR.env.webkit&&!this.hasFocus&&(a=this.editor._.previousActive||this.getDocument().getActive(),this.contains(a))){a.focus();return}try{this.$[CKEDITOR.env.ie&&this.getDocument().equals(CKEDITOR.document)?"setActive":"focus"]()}catch(b){if(!CKEDITOR.env.ie)throw b;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,
-b){var c=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&/^focus|blur$/.exec(a)&&(a="focus"==a?"focusin":"focusout",b=e(b,this),c[0]=a,c[1]=b);return CKEDITOR.dom.element.prototype.on.apply(this,c)},attachListener:function(a){!this._.listeners&&(this._.listeners=[]);var b=Array.prototype.slice.call(arguments,1),b=a.on.apply(a,b);this._.listeners.push(b);return b},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=
-this._.attrChanges,b,c;for(c in a)a.hasOwnProperty(c)&&(b=a[c],null!==b?this.setAttribute(c,b):this.removeAttribute(c))},attachClass:function(a){var b=this.getCustomData("classes");this.hasClass(a)||(!b&&(b=[]),b.push(a),this.setCustomData("classes",b),this.addClass(a))},changeAttr:function(a,b){var c=this.getAttribute(a);b!==c&&(!this._.attrChanges&&(this._.attrChanges={}),a in this._.attrChanges||(this._.attrChanges[a]=c),this.setAttribute(a,b))},insertText:function(a){this.editor.focus();this.insertHtml(this.transformPlainTextToHtml(a),
-"text")},transformPlainTextToHtml:function(a){var b=this.editor.getSelection().getStartElement().hasAscendant("pre",!0)?CKEDITOR.ENTER_BR:this.editor.activeEnterMode;return CKEDITOR.tools.transformPlainTextToHtml(a,b)},insertHtml:function(a,b,c){var d=this.editor;d.focus();d.fire("saveSnapshot");c||(c=d.getSelection().getRanges()[0]);q(this,b||"html",a,c);c.select();n(this);this.editor.fire("afterInsertHtml",{})},insertHtmlIntoRange:function(a,b,c){q(this,c||"html",a,b);this.editor.fire("afterInsertHtml",
-{intoRange:b})},insertElement:function(a,b){var d=this.editor;d.focus();d.fire("saveSnapshot");var e=d.activeEnterMode,d=d.getSelection(),f=a.getName(),f=CKEDITOR.dtd.$block[f];b||(b=d.getRanges()[0]);this.insertElementIntoRange(a,b)&&(b.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),f&&((f=a.getNext(function(a){return c(a)&&!u(a)}))&&f.type==CKEDITOR.NODE_ELEMENT&&f.is(CKEDITOR.dtd.$block)?f.getDtd()["#"]?b.moveToElementEditStart(f):b.moveToElementEditEnd(a):f||e==CKEDITOR.ENTER_BR||(f=b.fixBlock(!0,
-e==CKEDITOR.ENTER_DIV?"div":"p"),b.moveToElementEditStart(f))));d.selectRanges([b]);n(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,b){var c=this.editor,d=c.config.enterMode,e=a.getName(),f=CKEDITOR.dtd.$block[e];if(b.checkReadOnly())return!1;b.deleteContents(1);b.startContainer.type==CKEDITOR.NODE_ELEMENT&&b.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})&&y(b);var g,l;if(f)for(;(g=b.getCommonAncestor(0,1))&&(l=CKEDITOR.dtd[g.getName()])&&
-(!l||!l[e]);)g.getName()in CKEDITOR.dtd.span?b.splitElement(g):b.checkStartOfBlock()&&b.checkEndOfBlock()?(b.setStartBefore(g),b.collapse(!0),g.remove()):b.splitBlock(d==CKEDITOR.ENTER_DIV?"div":"p",c.editable());b.insertNode(a);return!0},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.fixInitialSelection();"unloaded"==this.status&&(this.status="ready");this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));
-return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");this.status="detached";var a=this.editor;this._.detach();delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},fixInitialSelection:function(){function a(){var b=c.getDocument().$,d=b.getSelection(),h;a:if(d.anchorNode&&d.anchorNode==c.$)h=!0;else{if(CKEDITOR.env.webkit&&(h=c.getDocument().getActive())&&h.equals(c)&&!d.anchorNode){h=
-!0;break a}h=void 0}h&&(h=new CKEDITOR.dom.range(c),h.moveToElementEditStart(c),b=b.createRange(),b.setStart(h.startContainer.$,h.startOffset),b.collapse(!0),d.removeAllRanges(),d.addRange(b))}function b(){var a=c.getDocument().$,d=a.selection,h=c.getDocument().getActive();"None"==d.type&&h.equals(c)&&(d=new CKEDITOR.dom.range(c),a=a.body.createTextRange(),d.moveToElementEditStart(c),d=d.startContainer,d.type!=CKEDITOR.NODE_ELEMENT&&(d=d.getParent()),a.moveToElementText(d.$),a.collapse(!0),a.select())}
-var c=this;if(CKEDITOR.env.ie&&(9>CKEDITOR.env.version||CKEDITOR.env.quirks))this.hasFocus&&(this.focus(),b());else if(this.hasFocus)this.focus(),a();else this.once("focus",function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};F.eol.detect(a,this);F.bogus.exclude(a);F.cell.shrink(a);a.fragment=a.range.cloneContents();F.tree.rebuild(a,this);F.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},
-extractHtmlFromRange:function(a,b){var c=t,d={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.table.detectPurge(d);d.bookmark=a.createBookmark();delete d.range;var f=this.editor.createRange();f.moveToPosition(d.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);d.targetBookmark=f.createBookmark();c.list.detectMerge(d,this);c.table.detectRanges(d,this);c.block.detectMerge(d,this);d.tableContentsRanges?(c.table.deleteRanges(d),
-a.moveToBookmark(d.bookmark),d.range=a):(a.moveToBookmark(d.bookmark),d.range=a,a.extractContents(c.detectExtractMerge(d)));a.moveToBookmark(d.targetBookmark);a.optimize();c.fixUneditableRangePosition(a);c.list.merge(d,this);c.table.purge(d,this);c.block.merge(d,this);if(b){c=a.startPath();if(d=a.checkStartOfBlock()&&a.checkEndOfBlock()&&c.block&&!a.root.equals(c.block)){a:{var d=c.block.getElementsByTag("span"),f=0,g;if(d)for(;g=d.getItem(f++);)if(!x(g)){d=!0;break a}d=!1}d=!d}d&&(a.moveToPosition(c.block,
-CKEDITOR.POSITION_BEFORE_START),c.block.remove())}else c.autoParagraph(this.editor,a),A(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();return e},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(B,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,
-"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&"Control"==b.type||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",
-function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"):a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("cke_editable_themed");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(){this.hasFocus=
-!1},null,null,-1);this.on("focus",function(){this.hasFocus=!0},null,null,-1);a.focusManager.add(this);this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",function(){a.focusManager.focus(this)},this));this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var d=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var e=a.config.contentsLangDirection;this.getDirection(1)!=
-e&&this.changeAttr("dir",e);var m=CKEDITOR.getCss();m&&(e=d.getHead(),e.getCustomData("stylesheet")||(m=d.appendStyleText(m),m=new CKEDITOR.dom.element(m.ownerNode||m.owningElement),e.setCustomData("stylesheet",m),m.data("cke-temp",1)));e=d.getCustomData("stylesheet_ref")||0;d.setCustomData("stylesheet_ref",e+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){a=a.data;var b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");
-b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var l={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c=b.data.domEvent.getKey(),d;if(c in l){b=a.getSelection();var h,e=b.getRanges()[0],m=e.startPath(),p,v,k,c=8==c;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(h=b.getSelectedElement())||(h=g(b))?(a.fire("saveSnapshot"),e.moveToPosition(h,CKEDITOR.POSITION_BEFORE_START),h.remove(),e.select(),a.fire("saveSnapshot"),d=1):e.collapsed&&((p=m.block)&&(k=p[c?"getPrevious":
-"getNext"](f))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("table")&&e[c?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),e[c?"checkEndOfBlock":"checkStartOfBlock"]()&&p.remove(),e["moveToElementEdit"+(c?"End":"Start")](k),e.select(),a.fire("saveSnapshot"),d=1):m.blockLimit&&m.blockLimit.is("td")&&(v=m.blockLimit.getAscendant("table"))&&e.checkBoundaryOfElement(v,c?CKEDITOR.START:CKEDITOR.END)&&(k=v[c?"getPrevious":"getNext"](f))?(a.fire("saveSnapshot"),e["moveToElementEdit"+(c?"End":"Start")](k),
-e.checkStartOfBlock()&&e.checkEndOfBlock()?k.remove():e.select(),a.fire("saveSnapshot"),d=1):(v=m.contains(["td","th","caption"]))&&e.checkBoundaryOfElement(v,c?CKEDITOR.START:CKEDITOR.END)&&(d=1))}return!d});a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in l&&!this.getFirst(c)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return!1;
-b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,"click",b);CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",function(b){var c=b.data.getTarget();c.is("img","hr","input","textarea","select")&&!c.isReadOnly()&&(a.getSelection().selectElement(c),c.is("input","textarea","select")&&b.data.preventDefault())});CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)});
-CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&(b=b.data.getTarget(),!b.getOuterHtml().replace(B,""))){var c=a.createRange();c.moveToElementEditStart(b);c.select(!0)}});CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()}));CKEDITOR.env.webkit&&this.attachListener(a,
-"key",function(b){if(a.readOnly)return!0;b=b.data.domEvent.getKey();if(b in l){var c=8==b,d=a.getSelection().getRanges()[0];b=d.startPath();if(d.collapsed)a:{var h=b.block;if(h&&d[c?"checkStartOfBlock":"checkEndOfBlock"]()&&d.moveToClosestEditablePosition(h,!c)&&d.collapsed){if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var e=d.startContainer.getChild(d.startOffset-(c?1:0));if(e&&e.type==CKEDITOR.NODE_ELEMENT&&e.is("hr")){a.fire("saveSnapshot");e.remove();b=!0;break a}}d=d.startPath().block;if(!d||
-d&&d.contains(h))b=void 0;else{a.fire("saveSnapshot");var m;(m=(c?d:h).getBogus())&&m.remove();m=a.getSelection();e=m.createBookmarks();(c?h:d).moveChildren(c?d:h,!1);b.lastElement.mergeSiblings();w(h,d,!c);m.selectBookmarks(e);b=!0}}else b=!1}else c=d,m=b.block,d=c.endPath().block,m&&d&&!m.equals(d)?(a.fire("saveSnapshot"),(h=m.getBogus())&&h.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),d.getParent()&&(d.moveChildren(m,!1),b.lastElement.mergeSiblings(),w(m,d,!0)),c=a.getSelection().getRanges()[0],
-c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),c.select(),b=!0):b=!1;if(!b)return;a.getSelection().scrollIntoView();a.fire("saveSnapshot");return!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=
-a.getCustomData("stylesheet_ref");--c?a.setCustomData("stylesheet_ref",c):(a.removeCustomData("stylesheet_ref"),b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload");delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null));return b};CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",
-function(a){a=a.data;a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1"),a.setAttribute("contentEditable",!1))});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();d&&!d.isLocked&&(d=c.checkDirty(),c.fire("lockSnapshot"),a(b),c.fire("unlockSnapshot"),!d&&c.resetDirty())}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=
-b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label;if(d&&(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+e+'" class\x3d"cke_voice_label"\x3e'+d+"\x3c/span\x3e");c.append(d);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");
-var f=CKEDITOR.dom.walker.whitespaces(!0),x=CKEDITOR.dom.walker.bookmark(!1,!0),A=CKEDITOR.dom.walker.empty(),u=CKEDITOR.dom.walker.bogus(),B=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,q=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,m,f,p,g=[],l=d.range.startContainer;e=d.range.startPath();for(var l=q[l.getName()],r=0,k=c.getChildren(),C=k.count(),G=-1,n=-1,w=0,K=e.contains(q.$list);r<
-C;++r)e=k.getItem(r),a(e)?(f=e.getName(),K&&f in CKEDITOR.dtd.$list?g=g.concat(b(e,d)):(p=!!l[f],"br"!=f||!e.data("cke-eol")||r&&r!=C-1||(w=(m=r?g[r-1].node:k.getItem(r+1))&&(!a(m)||!m.is("br")),m=m&&a(m)&&q.$block[m.getName()]),-1!=G||p||(G=r),p||(n=r),g.push({isElement:1,isLineBreak:w,isBlock:e.isBlockBoundary(),hasBlockSibling:m,node:e,name:f,allowed:p}),m=w=0)):g.push({isElement:0,node:e,allowed:1});-1<G&&(g[G].firstNotAllowed=1);-1<n&&(g[n].lastNotAllowed=1);return g}function d(b,c){var e=[],
-h=b.getChildren(),m=h.count(),f,g=0,l=q[c],r=!b.is(q.$inline)||b.is("br");for(r&&e.push(" ");g<m;g++)f=h.getItem(g),a(f)&&!f.is(l)?e=e.concat(d(f,c)):e.push(f);r&&e.push(" ");return e}function e(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function f(b){return b&&a(b)&&(b.is(q.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function g(b,c,d,e){var h=b.clone(),m,f;h.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);(m=(new CKEDITOR.dom.walker(h)).next())&&a(m)&&n[m.getName()]&&
-(f=m.getPrevious())&&a(f)&&!f.getParent().equals(b.startContainer)&&d.contains(f)&&e.contains(m)&&m.isIdentical(f)&&(m.moveChildren(f),m.remove(),g(b,c,d,e))}function G(b,c){function d(b,c){if(c.isBlock&&c.isElement&&!c.node.is("br")&&a(b)&&b.is("br"))return b.remove(),1}var e=c.endContainer.getChild(c.endOffset),h=c.endContainer.getChild(c.endOffset-1);e&&d(e,b[b.length-1]);h&&d(h,b[0])&&(c.setEnd(c.endContainer,c.endOffset-1),c.collapse())}var q=CKEDITOR.dtd,n={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,
-h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},w={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},M=CKEDITOR.tools.extend({},q.$inline);delete M.br;return function(n,v,D,I){var E=n.editor,L=!1;"unfiltered_html"==v&&(v="html",L=!0);if(!I.checkReadOnly()){var J=(new CKEDITOR.dom.elementPath(I.startContainer,I.root)).blockLimit||I.root;n={type:v,dontFilter:L,editable:n,editor:E,range:I,blockLimit:J,mergeCandidates:[],zombies:[]};v=n.range;I=n.mergeCandidates;var K,u;"text"==n.type&&v.shrink(CKEDITOR.SHRINK_ELEMENT,
-!0,!1)&&(K=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",v.document),v.insertNode(K),v.setStartAfter(K));L=new CKEDITOR.dom.elementPath(v.startContainer);n.endPath=J=new CKEDITOR.dom.elementPath(v.endContainer);if(!v.collapsed){var E=J.block||J.blockLimit,y=v.getCommonAncestor();E&&!E.equals(y)&&!E.contains(y)&&v.checkEndOfBlock()&&n.zombies.push(E);v.deleteContents()}for(;(u=e(v))&&a(u)&&u.isBlockBoundary()&&L.contains(u);)v.moveToPosition(u,CKEDITOR.POSITION_BEFORE_END);
-g(v,n.blockLimit,L,J);K&&(v.setEndBefore(K),v.collapse(),K.remove());K=v.startPath();if(E=K.contains(f,!1,1))v.splitElement(E),n.inlineStylesRoot=E,n.inlineStylesPeak=K.lastElement;K=v.createBookmark();(E=K.startNode.getPrevious(c))&&a(E)&&f(E)&&I.push(E);(E=K.startNode.getNext(c))&&a(E)&&f(E)&&I.push(E);for(E=K.startNode;(E=E.getParent())&&f(E);)I.push(E);v.moveToBookmark(K);if(K=D){K=n.range;if("text"==n.type&&n.inlineStylesRoot){u=n.inlineStylesPeak;v=u.getDocument().createText("{cke-peak}");for(I=
-n.inlineStylesRoot.getParent();!u.equals(I);)v=v.appendTo(u.clone()),u=u.getParent();D=v.getOuterHtml().split("{cke-peak}").join(D)}u=n.blockLimit.getName();if(/^\s+|\s+$/.test(D)&&"span"in CKEDITOR.dtd[u]){var A='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';D=A+D+A}D=n.editor.dataProcessor.toHtml(D,{context:null,fixForBody:!1,protectedWhitespaces:!!A,dontFilter:n.dontFilter,filter:n.editor.activeFilter,enterMode:n.editor.activeEnterMode});u=K.document.createElement("body");u.setHtml(D);
-A&&(u.getFirst().remove(),u.getLast().remove());if((A=K.startPath().block)&&(1!=A.getChildCount()||!A.getBogus()))a:{var x;if(1==u.getChildCount()&&a(x=u.getFirst())&&x.is(w)&&!x.hasAttribute("contenteditable")){A=x.getElementsByTag("*");K=0;for(I=A.count();K<I;K++)if(v=A.getItem(K),!v.is(M))break a;x.moveChildren(x.getParent(1));x.remove()}}n.dataWrapper=u;K=D}if(K){x=n.range;K=x.document;var t;u=n.blockLimit;I=0;var B,A=[],N,T;D=E=0;var F,W;v=x.startContainer;var L=n.endPath.elements[0],X,J=L.getPosition(v),
-y=!!L.getCommonAncestor(v)&&J!=CKEDITOR.POSITION_IDENTICAL&&!(J&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);v=b(n.dataWrapper,n);for(G(v,x);I<v.length;I++){J=v[I];if(t=J.isLineBreak){t=x;F=u;var S=void 0,aa=void 0;J.hasBlockSibling?t=1:(S=t.startContainer.getAscendant(q.$block,1))&&S.is({div:1,p:1})?(aa=S.getPosition(F),aa==CKEDITOR.POSITION_IDENTICAL||aa==CKEDITOR.POSITION_CONTAINS?t=0:(F=t.splitElement(S),t.moveToPosition(F,CKEDITOR.POSITION_AFTER_START),t=1)):t=0}if(t)D=0<I;else{t=
-x.startPath();!J.isBlock&&l(n.editor,t.block,t.blockLimit)&&(T=k(n.editor))&&(T=K.createElement(T),T.appendBogus(),x.insertNode(T),CKEDITOR.env.needsBrFiller&&(B=T.getBogus())&&B.remove(),x.moveToPosition(T,CKEDITOR.POSITION_BEFORE_END));if((t=x.startPath().block)&&!t.equals(N)){if(B=t.getBogus())B.remove(),A.push(t);N=t}J.firstNotAllowed&&(E=1);if(E&&J.isElement){t=x.startContainer;for(F=null;t&&!q[t.getName()][J.name];){if(t.equals(u)){t=null;break}F=t;t=t.getParent()}if(t)F&&(W=x.splitElement(F),
-n.zombies.push(W),n.zombies.push(F));else{F=u.getName();X=!I;t=I==v.length-1;F=d(J.node,F);for(var S=[],aa=F.length,ca=0,ea=void 0,Y=0,U=-1;ca<aa;ca++)ea=F[ca]," "==ea?(Y||X&&!ca||(S.push(new CKEDITOR.dom.text(" ")),U=S.length),Y=1):(S.push(ea),Y=0);t&&U==S.length&&S.pop();X=S}}if(X){for(;t=X.pop();)x.insertNode(t);X=0}else x.insertNode(J.node);J.lastNotAllowed&&I<v.length-1&&((W=y?L:W)&&x.setEndAt(W,CKEDITOR.POSITION_AFTER_START),E=0);x.collapse()}}1!=v.length?B=!1:(B=v[0],B=B.isElement&&"false"==
-B.node.getAttribute("contenteditable"));B&&(D=!0,t=v[0].node,x.setStartAt(t,CKEDITOR.POSITION_BEFORE_START),x.setEndAt(t,CKEDITOR.POSITION_AFTER_END));n.dontMoveCaret=D;n.bogusNeededBlocks=A}B=n.range;var P;W=n.bogusNeededBlocks;for(X=B.createBookmark();N=n.zombies.pop();)N.getParent()&&(T=B.clone(),T.moveToElementEditStart(N),T.removeEmptyBlocksAtEnd());if(W)for(;N=W.pop();)CKEDITOR.env.needsBrFiller?N.appendBogus():N.append(B.document.createText(" "));for(;N=n.mergeCandidates.pop();)N.mergeSiblings();
-B.moveToBookmark(X);if(!n.dontMoveCaret){for(N=e(B);N&&a(N)&&!N.is(q.$empty);){if(N.isBlockBoundary())B.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END);else{if(f(N)&&N.getHtml().match(/(\s| )$/g)){P=null;break}P=B.clone();P.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END)}N=N.getLast(c)}P&&B.moveToRange(P)}}}}(),y=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};b.evaluator=function(a){return a.type==
-CKEDITOR.NODE_ELEMENT};return b}function b(a,c,d){c=a.getDocument().createElement(c);a.append(c,d);return c}function c(a){var b=a.count(),d;for(b;0<b--;)d=a.getItem(b),CKEDITOR.tools.trim(d.getHtml())||(d.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&d.getChildCount()&&d.getFirst().remove())}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=!1;c(f.getElementsByTag("td"));c(f.getElementsByTag("th"));f=d.clone();f.setStart(e,0);f=a(f).lastBackward();f||(f=d.clone(),f.setEndAt(e,
-CKEDITOR.POSITION_BEFORE_END),f=a(f).lastForward(),g=!0);f||(f=e);f.is("table")?(d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START),d.collapse(!0),f.remove()):(f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g)),f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th":"td",g)),(e=f.getBogus())&&e.remove(),d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}(),F={eol:{detect:function(a,b){var c=a.range,d=c.clone(),e=c.clone(),f=new CKEDITOR.dom.elementPath(c.startContainer,b),g=new CKEDITOR.dom.elementPath(c.endContainer,
-b);d.collapse(1);e.collapse();f.block&&d.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(c.setStartAfter(f.block),a.prependEolBr=1);g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(c.setEndBefore(g.block),a.appendEolBr=1)},fix:function(a,b){var c=b.getDocument(),d;a.appendEolBr&&(d=this.createEolBr(c),a.fragment.append(d));!a.prependEolBr||d&&!d.getPrevious()||a.fragment.append(this.createEolBr(c),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},
-bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),c=b.startNode,b=b.endNode;!b||!u(b)||c&&c.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var c=a.range,d=c.getCommonAncestor(),e=new CKEDITOR.dom.elementPath(d,b),f=new CKEDITOR.dom.elementPath(c.startContainer,b),c=new CKEDITOR.dom.elementPath(c.endContainer,b),g;d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent());if(e.blockLimit.is({tr:1,table:1})){var l=e.contains("table").getParent();g=function(a){return!a.equals(l)}}else if(e.block&&
-e.block.is(CKEDITOR.dtd.$listItem)&&(f=f.contains(CKEDITOR.dtd.$list),c=c.contains(CKEDITOR.dtd.$list),!f.equals(c))){var k=e.contains(CKEDITOR.dtd.$list).getParent();g=function(a){return!a.equals(k)}}g||(g=function(a){return!a.equals(e.block)&&!a.equals(e.blockLimit)});this.rebuildFragment(a,b,d,g)},rebuildFragment:function(a,b,c,d){for(var e;c&&!c.equals(b)&&d(c);)e=c.clone(0,1),a.fragment.appendTo(e),a.fragment=e,c=c.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,c=a.endContainer,
-d=a.startOffset,e=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(c)&&b.is("tr")&&++d==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}},t=function(){function a(b,c){var d=b.getParent();if(d.is(CKEDITOR.dtd.$inline))b[c?"insertBefore":"insertAfter"](d)}function b(c,d,e){a(d);a(e,1);for(var h;h=e.getNext();)h.insertAfter(d),d=h;A(c)&&c.remove()}function c(a,b){var d=new CKEDITOR.dom.range(a);d.setStartAfter(b.startNode);d.setEndBefore(b.endNode);return d}return{list:{detectMerge:function(a,b){var d=c(b,a.bookmark),
-e=d.startPath(),h=d.endPath(),f=e.contains(CKEDITOR.dtd.$list),g=h.contains(CKEDITOR.dtd.$list);a.mergeList=f&&g&&f.getParent().equals(g.getParent())&&!f.equals(g);a.mergeListItems=e.block&&h.block&&e.block.is(CKEDITOR.dtd.$listItem)&&h.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList||a.mergeListItems)d=d.clone(),d.setStartBefore(a.bookmark.startNode),d.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=d.createBookmark()},merge:function(a,c){if(a.mergeListBookmark){var d=a.mergeListBookmark.startNode,
-e=a.mergeListBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c);if(a.mergeList){var p=f.contains(CKEDITOR.dtd.$list),l=g.contains(CKEDITOR.dtd.$list);p.equals(l)||(l.moveChildren(p),l.remove())}a.mergeListItems&&(f=f.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$listItem),f.equals(g)||b(g,d,e));d.remove();e.remove()}}},block:{detectMerge:function(a,b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var c=new CKEDITOR.dom.range(b);c.setStartBefore(a.bookmark.startNode);
-c.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=c.createBookmark()}},merge:function(a,c){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var d=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c),f=f.block,g=g.block;f&&g&&!f.equals(g)&&b(g,d,e);d.remove();e.remove()}}},table:function(){function a(c){var e=[],h,f=new CKEDITOR.dom.walker(c),g=c.startPath().contains(d),m=c.endPath().contains(d),p={};f.guard=function(a,
-f){if(a.type==CKEDITOR.NODE_ELEMENT){var l="visited_"+(f?"out":"in");if(a.getCustomData(l))return;CKEDITOR.dom.element.setMarker(p,a,l,1)}if(f&&g&&a.equals(g))h=c.clone(),h.setEndAt(g,CKEDITOR.POSITION_BEFORE_END),e.push(h);else if(!f&&m&&a.equals(m))h=c.clone(),h.setStartAt(m,CKEDITOR.POSITION_AFTER_START),e.push(h);else{if(l=!f)l=a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&(!g||b(a,g))&&(!m||b(a,m));l&&(h=c.clone(),h.selectNodeContents(a),e.push(h))}};f.lastForward();CKEDITOR.dom.element.clearAllMarkers(p);
-return e}function b(a,c){var d=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,e=a.getPosition(c);return e===CKEDITOR.POSITION_IDENTICAL?!1:0===(e&d)}var d={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,c=b.clone();c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var c=new CKEDITOR.dom.walker(c),e=0;c.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&++e};c.checkForward();if(1<e){var c=b.startPath().contains("table"),h=b.endPath().contains("table");c&&h&&b.checkBoundaryOfElement(c,
-CKEDITOR.START)&&b.checkBoundaryOfElement(h,CKEDITOR.END)&&(b=a.range.clone(),b.setStartBefore(c),b.setEndAfter(h),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(e,h){var f=c(h,e.bookmark),g=f.clone(),l,k,v=f.getCommonAncestor();v.is(CKEDITOR.dtd.$tableContent)&&!v.is(d)&&(v=v.getAscendant("table",!0));k=v;v=new CKEDITOR.dom.elementPath(f.startContainer,k);k=new CKEDITOR.dom.elementPath(f.endContainer,k);v=v.contains("table");k=k.contains("table");if(v||k)v&&k&&b(v,k)?(e.tableSurroundingRange=
-g,g.setStartAt(v,CKEDITOR.POSITION_AFTER_END),g.setEndAt(k,CKEDITOR.POSITION_BEFORE_START),g=f.clone(),g.setEndAt(v,CKEDITOR.POSITION_AFTER_END),l=f.clone(),l.setStartAt(k,CKEDITOR.POSITION_BEFORE_START),l=a(g).concat(a(l))):v?k||(e.tableSurroundingRange=g,g.setStartAt(v,CKEDITOR.POSITION_AFTER_END),f.setEndAt(v,CKEDITOR.POSITION_AFTER_END)):(e.tableSurroundingRange=g,g.setEndAt(k,CKEDITOR.POSITION_BEFORE_START),f.setStartAt(k,CKEDITOR.POSITION_AFTER_START)),e.tableContentsRanges=l?l:a(f)},deleteRanges:function(a){for(var b;b=
-a.tableContentsRanges.pop();)b.extractContents(),A(b.startContainer)&&b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,c=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode);c.moveToBookmark(a.purgeTableBookmark);c.deleteContents();a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&
-a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var c=b.startPath(),d;l(a,c.block,c.blockLimit)&&(d=k(a))&&(d=b.document.createElement(d),d.appendBogus(),b.insertNode(d),b.moveToPosition(d,CKEDITOR.POSITION_AFTER_START))}}}()})();
-(function(){function a(){var a=this._.fakeSelection,b;a&&(b=this.getSelection(1),b&&b.isHidden()||(a.reset(),a=0));if(!a&&(a=b||this.getSelection(1),!a||a.getType()==CKEDITOR.SELECTION_NONE))return;this.fire("selectionCheck",a);b=this.elementPath();b.compare(this._.selectionPreviousPath)||(CKEDITOR.env.webkit&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=b,this.fire("selectionChange",{selection:a,path:b}))}function d(){A=!0;x||(b.call(this),x=CKEDITOR.tools.setTimeout(b,
-200,this))}function b(){x=null;A&&(CKEDITOR.tools.setTimeout(a,0,this),A=!1)}function c(a){return u(a)||a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function e(a){function b(c,d){return c&&c.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(d?"End":"Start")](c):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var d=a.startContainer,e=a.getPreviousNode(c,null,d),f=a.getNextNode(c,null,d);return b(e)||b(f,1)||!(e||f||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()&&
-d.getBogus())?!0:!1}function g(a){l(a,!1);var b=a.getDocument().createText(t);a.setCustomData("cke-fillingChar",b);return b}function l(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(!1!==b){var d=a.getDocument().getSelection().getNative(),e=d&&"None"!=d.type&&d.getRangeAt(0),f=t.length;if(c.getLength()>f&&e&&e.intersectsNode(c.$)){var g=[{node:d.anchorNode,offset:d.anchorOffset},{node:d.focusNode,offset:d.focusOffset}];d.anchorNode==c.$&&d.anchorOffset>f&&(g[0].offset-=f);d.focusNode==
-c.$&&d.focusOffset>f&&(g[1].offset-=f)}}c.setText(k(c.getText(),1));g&&(c=a.getDocument().$,d=c.getSelection(),c=c.createRange(),c.setStart(g[0].node,g[0].offset),c.collapse(!0),d.removeAllRanges(),d.addRange(c),d.extend(g[1].node,g[1].offset))}}function k(a,b){return b?a.replace(z,function(a,b){return b?" ":""}):a.replace(t,"")}function n(a){var b=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie?"display:none":"position:fixed;top:0;left:-1000px")+
-'"\x3e\x26nbsp;\x3c/div\x3e',a.document);a.fire("lockSnapshot");a.editable().append(b);var c=a.getSelection(1),d=a.createRange(),e=c.root.on("selectionchange",function(a){a.cancel()},null,null,0);d.setStartAt(b,CKEDITOR.POSITION_AFTER_START);d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);c.selectRanges([d]);e.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=b}function w(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),
-f=e[0];1==e.length&&f.collapsed&&(d=f[38>d?"getPreviousEditableNode":"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&"false"==d.getAttribute("contenteditable")&&(a.getSelection().fake(d),c.data.preventDefault(),c.cancel())}}}function f(a){for(var b=0;b<a.length;b++){var c=a[b];c.getCommonAncestor().isReadOnly()&&a.splice(b,1);if(!c.collapsed){if(c.startContainer.isReadOnly())for(var d=c.startContainer,e;d&&!((e=d.type==CKEDITOR.NODE_ELEMENT)&&d.is("body")||!d.isReadOnly());)e&&"false"==
-d.getAttribute("contentEditable")&&c.setStartAfter(d),d=d.getParent();d=c.startContainer;e=c.endContainer;var f=c.startOffset,g=c.endOffset,l=c.clone();d&&d.type==CKEDITOR.NODE_TEXT&&(f>=d.getLength()?l.setStartAfter(d):l.setStartBefore(d));e&&e.type==CKEDITOR.NODE_TEXT&&(g?l.setEndAfter(e):l.setEndBefore(e));d=new CKEDITOR.dom.walker(l);d.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone();c.setEndBefore(d);c.collapsed&&a.splice(b--,1);d.getPosition(l.endContainer)&
-CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(d),e.collapsed||a.splice(b+1,0,e));return!0}return!1};d.next()}}return a}var x,A,u=CKEDITOR.dom.walker.invisible(1),B=function(){function a(b){return function(a){var c=a.editor.createRange();c.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([c]);return!1}}function b(a){return function(b){var c=b.editor,d=c.createRange(),e;(e=d.moveToClosestEditablePosition(b.selected,a))||(e=d.moveToClosestEditablePosition(b.selected,!a));
-e&&c.getSelection().selectRanges([d]);c.fire("saveSnapshot");b.selected.remove();e||(d.moveToElementEditablePosition(c.editable()),c.getSelection().selectRanges([d]));c.fire("saveSnapshot");return!1}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(b){function c(){var a=e.getSelection();a&&a.removeAllRanges()}var e=b.editor;e.on("contentDom",function(){function b(){D=new CKEDITOR.dom.selection(e.getSelection());D.lock()}function c(){h.removeListener("mouseup",
-c);k.removeListener("mouseup",c);var a=CKEDITOR.document.$.selection,b=a.createRange();"None"!=a.type&&b.parentElement().ownerDocument==f.$&&b.select()}var f=e.document,h=CKEDITOR.document,g=e.editable(),p=f.getBody(),k=f.getDocumentElement(),n=g.isInline(),v,D;CKEDITOR.env.gecko&&g.attachListener(g,"focus",function(a){a.removeListener();0!==v&&(a=e.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==g.$&&(a=e.createRange(),a.moveToElementEditStart(g),a.select())},null,null,-2);g.attachListener(g,
-CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){v&&CKEDITOR.env.webkit&&(v=e._.previousActive&&e._.previousActive.equals(f.getActive()));e.unlockSelection(v);v=0},null,null,-1);g.attachListener(g,"mousedown",function(){v=0});if(CKEDITOR.env.ie||n)q?g.attachListener(g,"beforedeactivate",b,null,null,-1):g.attachListener(e,"selectionCheck",b,null,null,-1),g.attachListener(g,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){e.lockSelection(D);v=1},null,null,-1),g.attachListener(g,"mousedown",function(){v=
-0});if(CKEDITOR.env.ie&&!n){var I;g.attachListener(g,"mousedown",function(a){2==a.data.$.button&&((a=e.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(I=e.window.getScrollPosition()))});g.attachListener(g,"mouseup",function(a){2==a.data.$.button&&I&&(e.document.$.documentElement.scrollLeft=I.x,e.document.$.documentElement.scrollTop=I.y);I=null});if("BackCompat"!=f.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)k.on("mousedown",function(a){function b(a){a=a.data.$;
-if(d){var c=p.$.createTextRange();try{c.moveToPoint(a.clientX,a.clientY)}catch(e){}d.setEndPoint(0>f.compareEndPoints("StartToStart",c)?"EndToEnd":"StartToStart",c);d.select()}}function c(){k.removeListener("mousemove",b);h.removeListener("mouseup",c);k.removeListener("mouseup",c);d.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<k.$.clientHeight&&a.$.x<k.$.clientWidth){var d=p.$.createTextRange();try{d.moveToPoint(a.$.clientX,a.$.clientY)}catch(e){}var f=d.duplicate();k.on("mousemove",b);h.on("mouseup",
-c);k.on("mouseup",c)}});if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)k.on("mousedown",function(a){a.data.getTarget().is("html")&&(h.on("mouseup",c),k.on("mouseup",c))})}}g.attachListener(g,"selectionchange",a,e);g.attachListener(g,"keyup",d,e);g.attachListener(g,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){e.forceNextSelectionCheck();e.selectionChange(1)});if(n&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var E;g.attachListener(g,"mousedown",function(){E=1});g.attachListener(f.getDocumentElement(),
-"mouseup",function(){E&&d.call(e);E=0})}else g.attachListener(CKEDITOR.env.ie?g:f.getDocumentElement(),"mouseup",d,e);CKEDITOR.env.webkit&&g.attachListener(f,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:l(g)}},null,null,-1);g.attachListener(g,"keydown",w(e),null,null,-1)});e.on("setData",function(){e.unlockSelection();CKEDITOR.env.webkit&&c()});e.on("contentDomUnload",function(){e.unlockSelection()});if(CKEDITOR.env.ie9Compat)e.on("beforeDestroy",
-c,null,null,9);e.on("dataReady",function(){delete e._.fakeSelection;delete e._.hiddenSelectionContainer;e.selectionChange(1)});e.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=e.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&(b.remove(),CKEDITOR.env.gecko&&(a=e.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100);e.on("key",function(a){if("wysiwyg"==e.mode){var b=e.getSelection();if(b.isFake){var c=
-B[a.data.keyCode];if(c)return c({editor:e,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),c=a.getCustomData("cke-fillingChar");c&&(c.getCustomData("ready")?l(a):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){l(b.editable())},null,null,-1);b.on("getSnapshot",function(a){a.data&&(a.data=k(a.data))},b,null,20);b.on("toDataFormat",
-function(a){a.data.dataValue=k(a.data.dataValue)},null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(b){(b?a:d).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE?(!a.isLocked&&
-a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):!1};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():
-new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var q="function"!=typeof window.getSelection,y=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=a;a=a.root}var c=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:y++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=c?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b)return CKEDITOR.tools.extend(this._.cache,
-b._.cache),this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var d,e;if(a)if(a.getRangeAt)d=(e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}d=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}if(!d||d.type!=CKEDITOR.NODE_ELEMENT&&d.type!=CKEDITOR.NODE_TEXT||!this.root.equals(d)&&!this.root.contains(d))this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement=
-null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList;return this};var F={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1},t=CKEDITOR.tools.repeat("",7),z=new RegExp(t+"( )?","g");CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:k,_createFillingCharSequenceNode:g,FILLING_CHAR_SEQUENCE:t});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==
-this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=q?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:q?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;"Text"==d&&(b=CKEDITOR.SELECTION_TEXT);"Control"==d&&(b=CKEDITOR.SELECTION_ELEMENT);c.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=
-CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(1==c.rangeCount){var c=c.getRangeAt(0),d=c.startContainer;d==c.endContainer&&1==d.nodeType&&1==c.endOffset-c.startOffset&&F[d.childNodes[c.startOffset].nodeName.toLowerCase()]&&(b=CKEDITOR.SELECTION_ELEMENT)}return a.type=b},getRanges:function(){var a=q?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,
-offset:0};for(var e=d.children,f,g,h=b.duplicate(),l=0,v=e.length-1,k=-1,m,E;l<=v;)if(k=Math.floor((l+v)/2),f=e[k],h.moveToElementText(f),m=h.compareEndPoints("StartToStart",b),0<m)v=k-1;else if(0>m)l=k+1;else return{container:d,offset:a(f)};if(-1==k||k==e.length-1&&0>m){h.moveToElementText(d);h.setEndPoint("StartToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;e=d.childNodes;if(!h)return f=e[e.length-1],f.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:e.length}:{container:f,offset:f.nodeValue.length};
-for(d=e.length;0<h&&0<d;)g=e[--d],g.nodeType==CKEDITOR.NODE_TEXT&&(E=g,h-=g.nodeValue.length);return{container:E,offset:-h}}h.collapse(0<m?!0:!1);h.setEndPoint(0<m?"StartToStart":"EndToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!h)return{container:d,offset:a(f)+(0<m?0:1)};for(;0<h;)try{g=f[0<m?"previousSibling":"nextSibling"],g.nodeType==CKEDITOR.NODE_TEXT&&(h-=g.nodeValue.length,E=g),f=g}catch(n){return{container:d,offset:a(f)}}return{container:E,offset:0<m?-h:E.nodeValue.length+h}};
-return function(){var a=this.getNative(),c=a&&a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),d=b(c,!0),a.setStart(new CKEDITOR.dom.node(d.container),d.offset),d=b(c),a.setEnd(new CKEDITOR.dom.node(d.container),d.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e<c.length;e++){for(var f=
-c.item(e),h=f.parentNode,g=0,a=new CKEDITOR.dom.range(this.root);g<h.childNodes.length&&h.childNodes[g]!=f;g++);a.setStart(new CKEDITOR.dom.node(h),g);a.setEnd(new CKEDITOR.dom.node(h),g+1);d.push(a)}return d}return[]}}():function(){var a=[],b,c=this.getNative();if(!c)return a;for(var d=0;d<c.rangeCount;d++){var e=c.getRangeAt(d);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);b.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(b)}return a};
-return function(b){var c=this._.cache,d=c.ranges;d||(c.ranges=d=new CKEDITOR.dom.rangeList(a.call(this)));return b?f(new CKEDITOR.dom.rangeList(d.slice())):d}}(),getStartElement:function(){var a=this._.cache;if(void 0!==a.startElement)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var c=this.getRanges()[0];if(c){if(c.collapsed)b=c.startContainer,b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());else{for(c.optimize();b=
-c.startContainer,c.startOffset==(b.getChildCount?b.getChildCount():b.getLength())&&!b.isBlockBoundary();)c.setStartAfter(b);b=c.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();if((b=b.getChild(c.startOffset))&&b.type==CKEDITOR.NODE_ELEMENT)for(c=b.getFirst();c&&c.type==CKEDITOR.NODE_ELEMENT;)b=c,c=c.getFirst();else b=c.startContainer}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(void 0!==a.selectedElement)return a.selectedElement;
-var b=this,c=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)},function(){for(var a=b.getRanges()[0].clone(),c,d,e=2;e&&!((c=a.getEnclosedNode())&&c.type==CKEDITOR.NODE_ELEMENT&&F[c.getName()]&&(d=c));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return d&&d.$});return a.selectedElement=c?new CKEDITOR.dom.element(c):null},getSelectedText:function(){var a=this._.cache;if(void 0!==a.selectedText)return a.selectedText;var b=this.getNative(),b=q?"Control"==b.type?"":b.createRange().text:
-b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement();this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=1},unlock:function(a){if(this.isLocked){if(a)var b=this.getSelectedElement(),c=!b&&this.getRanges(),d=this.isFake;this.isLocked=0;this.reset();a&&(a=b||c[0]&&c[0].getCommonAncestor())&&a.getAscendant("body",1)&&(d?this.fake(b):b?this.selectElement(b):this.selectRanges(c))}},reset:function(){this._.cache={};this.isFake=
-0;var a=this.root.editor;if(a&&a._.fakeSelection)if(this.rev==a._.fakeSelection.rev){delete a._.fakeSelection;var b=a._.hiddenSelectionContainer;if(b){var c=a.checkDirty();a.fire("lockSnapshot");b.remove();a.fire("unlockSnapshot");!c&&a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=y++},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(a){var b=
-this.root.editor,b=b&&b._.hiddenSelectionContainer;this.reset();if(b)for(var b=this.root,c,d=0;d<a.length;++d)c=a[d],c.endContainer.equals(b)&&(c.endOffset=Math.min(c.endOffset,b.getChildCount()));if(a.length)if(this.isLocked){var f=CKEDITOR.document.getActive();this.unlock();this.selectRanges(a);this.lock();f&&!f.equals(this.root)&&f.focus()}else{var k;a:{var n,w;if(1==a.length&&!(w=a[0]).collapsed&&(k=w.getEnclosedNode())&&k.type==CKEDITOR.NODE_ELEMENT&&(w=w.clone(),w.shrink(CKEDITOR.SHRINK_ELEMENT,
-!0),(n=w.getEnclosedNode())&&n.type==CKEDITOR.NODE_ELEMENT&&(k=n),"false"==k.getAttribute("contenteditable")))break a;k=void 0}if(k)this.fake(k);else{if(q){w=CKEDITOR.dom.walker.whitespaces(!0);n=/\ufeff|\u00a0/;b={table:1,tbody:1,tr:1};1<a.length&&(k=a[a.length-1],a[0].setEnd(k.endContainer,k.endOffset));k=a[0];a=k.collapsed;var u,t,x;if((c=k.getEnclosedNode())&&c.type==CKEDITOR.NODE_ELEMENT&&c.getName()in F&&(!c.is("a")||!c.getText()))try{x=c.$.createControlRange();x.addElement(c.$);x.select();
-return}catch(v){}if(k.startContainer.type==CKEDITOR.NODE_ELEMENT&&k.startContainer.getName()in b||k.endContainer.type==CKEDITOR.NODE_ELEMENT&&k.endContainer.getName()in b)k.shrink(CKEDITOR.NODE_ELEMENT,!0),a=k.collapsed;x=k.createBookmark();b=x.startNode;a||(f=x.endNode);x=k.document.$.body.createTextRange();x.moveToElementText(b.$);x.moveStart("character",1);f?(n=k.document.$.body.createTextRange(),n.moveToElementText(f.$),x.setEndPoint("EndToEnd",n),x.moveEnd("character",-1)):(u=b.getNext(w),t=
-b.hasAscendant("pre"),u=!(u&&u.getText&&u.getText().match(n))&&(t||!b.hasPrevious()||b.getPrevious().is&&b.getPrevious().is("br")),t=k.document.createElement("span"),t.setHtml("\x26#65279;"),t.insertBefore(b),u&&k.document.createText("").insertBefore(b));k.setStartBefore(b);b.remove();a?(u?(x.moveStart("character",-1),x.select(),k.document.$.selection.clear()):x.select(),k.moveToPosition(t,CKEDITOR.POSITION_BEFORE_START),t.remove()):(k.setEndBefore(f),f.remove(),x.select())}else{f=this.getNative();
-if(!f)return;this.removeAllRanges();for(x=0;x<a.length;x++){if(x<a.length-1&&(u=a[x],t=a[x+1],n=u.clone(),n.setStart(u.endContainer,u.endOffset),n.setEnd(t.startContainer,t.startOffset),!n.collapsed&&(n.shrink(CKEDITOR.NODE_ELEMENT,!0),k=n.getCommonAncestor(),n=n.getEnclosedNode(),k.isReadOnly()||n&&n.isReadOnly()))){t.setStart(u.startContainer,u.startOffset);a.splice(x--,1);continue}k=a[x];t=this.document.$.createRange();k.collapsed&&CKEDITOR.env.webkit&&e(k)&&(n=g(this.root),k.insertNode(n),(u=
-n.getNext())&&!n.getPrevious()&&u.type==CKEDITOR.NODE_ELEMENT&&"br"==u.getName()?(l(this.root),k.moveToPosition(u,CKEDITOR.POSITION_BEFORE_START)):k.moveToPosition(n,CKEDITOR.POSITION_AFTER_END));t.setStart(k.startContainer.$,k.startOffset);try{t.setEnd(k.endContainer.$,k.endOffset)}catch(D){if(0<=D.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))k.collapse(1),t.setEnd(k.endContainer.$,k.endOffset);else throw D;}f.addRange(t)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a){var b=
-this.root.editor;this.reset();n(b);var c=this._.cache,d=new CKEDITOR.dom.range(this.root);d.setStartBefore(a);d.setEndAfter(a);c.ranges=new CKEDITOR.dom.rangeList(d);c.selectedElement=c.startElement=a;c.type=CKEDITOR.SELECTION_ELEMENT;c.selectedText=c.nativeSel=null;this.isFake=1;this.rev=y++;b._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},createBookmarks:function(a){a=
-this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(a){for(var b=[],c,d=0;d<a.length;d++){var e=new CKEDITOR.dom.range(this.root);e.moveToBookmark(a[d]);b.push(e)}a.isFake&&(c=b[0].getEnclosedNode(),c&&c.type==CKEDITOR.NODE_ELEMENT||(CKEDITOR.warn("selection-not-fake"),a.isFake=0));a.isFake?this.fake(c):this.selectRanges(b);return this},getCommonAncestor:function(){var a=
-this.getRanges();return a.length?a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer):null},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=this.getNative();try{a&&a[q?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}}})();"use strict";CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3;
-(function(){function a(a,b){for(var c,d;(a=a.getParent())&&!a.equals(b);)if(a.getAttribute("data-nostyle"))c=a;else if(!d){var e=a.getAttribute("contentEditable");"false"==e?c=a:"true"==e&&(d=1)}return c}function d(a,b,c,d){return(a.getPosition(b)|d)==d&&(!c.childRule||c.childRule(a))}function b(c){var f=c.document;if(c.collapsed)f=F(this,f),c.insertNode(f),c.moveToPosition(f,CKEDITOR.POSITION_BEFORE_END);else{var g=this.element,h=this._.definition,l,k=h.ignoreReadonly,m=k||h.includeReadonly;null==
-m&&(m=c.root.getCustomData("cke_includeReadonly"));var n=CKEDITOR.dtd[g];n||(l=!0,n=CKEDITOR.dtd.span);c.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.trim();var p=c.createBookmark(),q=p.startNode,w=p.endNode,r=q,u;if(!k){var x=c.getCommonAncestor(),k=a(q,x),x=a(w,x);k&&(r=k.getNextSourceNode(!0));x&&(w=x)}for(r.getPosition(w)==CKEDITOR.POSITION_FOLLOWING&&(r=0);r;){k=!1;if(r.equals(w))r=null,k=!0;else{var t=r.type==CKEDITOR.NODE_ELEMENT?r.getName():null,x=t&&"false"==r.getAttribute("contentEditable"),y=t&&
-r.getAttribute("data-nostyle");if(t&&r.data("cke-bookmark")){r=r.getNextSourceNode(!0);continue}if(x&&m&&CKEDITOR.dtd.$block[t])for(var A=r,z=e(A),C=void 0,G=z.length,H=0,A=G&&new CKEDITOR.dom.range(A.getDocument());H<G;++H){var C=z[H],R=CKEDITOR.filter.instances[C.data("cke-filter")];if(R?R.check(this):1)A.selectNodeContents(C),b.call(this,A)}z=t?!n[t]||y?0:x&&!m?0:d(r,w,h,M):1;if(z)if(C=r.getParent(),z=h,G=g,H=l,!C||!(C.getDtd()||CKEDITOR.dtd.span)[G]&&!H||z.parentRule&&!z.parentRule(C))k=!0;else{if(u||
-t&&CKEDITOR.dtd.$removeEmpty[t]&&(r.getPosition(w)|M)!=M||(u=c.clone(),u.setStartBefore(r)),t=r.type,t==CKEDITOR.NODE_TEXT||x||t==CKEDITOR.NODE_ELEMENT&&!r.getChildCount()){for(var t=r,Y;(k=!t.getNext(K))&&(Y=t.getParent(),n[Y.getName()])&&d(Y,q,h,Q);)t=Y;u.setEndAfter(t)}}else k=!0;r=r.getNextSourceNode(y||x)}if(k&&u&&!u.collapsed){for(var k=F(this,f),x=k.hasAttributes(),y=u.getCommonAncestor(),t={},z={},C={},G={},U,P,da;k&&y;){if(y.getName()==g){for(U in h.attributes)!G[U]&&(da=y.getAttribute(P))&&
-(k.getAttribute(U)==da?z[U]=1:G[U]=1);for(P in h.styles)!C[P]&&(da=y.getStyle(P))&&(k.getStyle(P)==da?t[P]=1:C[P]=1)}y=y.getParent()}for(U in z)k.removeAttribute(U);for(P in t)k.removeStyle(P);x&&!k.hasAttributes()&&(k=null);k?(u.extractContents().appendTo(k),u.insertNode(k),B.call(this,k),k.mergeSiblings(),CKEDITOR.env.ie||k.$.normalize()):(k=new CKEDITOR.dom.element("span"),u.extractContents().appendTo(k),u.insertNode(k),B.call(this,k),k.remove(!0));u=null}}c.moveToBookmark(p);c.shrink(CKEDITOR.SHRINK_TEXT);
-c.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function c(a){function b(){for(var a=new CKEDITOR.dom.elementPath(d.getParent()),c=new CKEDITOR.dom.elementPath(m.getParent()),e=null,f=null,g=0;g<a.elements.length;g++){var h=a.elements[g];if(h==a.block||h==a.blockLimit)break;n.checkElementRemovable(h,!0)&&(e=h)}for(g=0;g<c.elements.length;g++){h=c.elements[g];if(h==c.block||h==c.blockLimit)break;n.checkElementRemovable(h,!0)&&(f=h)}f&&m.breakParent(f);e&&d.breakParent(e)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var c=
-a.createBookmark(),d=c.startNode;if(a.collapsed){for(var e=new CKEDITOR.dom.elementPath(d.getParent(),a.root),f,g=0,k;g<e.elements.length&&(k=e.elements[g])&&k!=e.block&&k!=e.blockLimit;g++)if(this.checkElementRemovable(k)){var l;a.collapsed&&(a.checkBoundaryOfElement(k,CKEDITOR.END)||(l=a.checkBoundaryOfElement(k,CKEDITOR.START)))?(f=k,f.match=l?"start":"end"):(k.mergeSiblings(),k.is(this.element)?u.call(this,k):q(k,h(this)[k.getName()]))}if(f){k=d;for(g=0;;g++){l=e.elements[g];if(l.equals(f))break;
-else if(l.match)continue;else l=l.clone();l.append(k);k=l}k["start"==f.match?"insertBefore":"insertAfter"](f)}}else{var m=c.endNode,n=this;b();for(e=d;!e.equals(m);)f=e.getNextSourceNode(),e.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(e)&&(e.getName()==this.element?u.call(this,e):q(e,h(this)[e.getName()]),f.type==CKEDITOR.NODE_ELEMENT&&f.contains(d)&&(b(),f=d.getNext())),e=f}a.moveToBookmark(c);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function e(a){var b=[];a.forEach(function(a){if("true"==
-a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function g(a){var b=a.getEnclosedNode()||a.getCommonAncestor(!1,!0);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&t(a,this)}function l(a){var b=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1)){var b=this._.definition,c=b.attributes;if(c)for(var d in c)a.removeAttribute(d,c[d]);if(b.styles)for(var e in b.styles)b.styles.hasOwnProperty(e)&&
-a.removeStyle(e)}}function k(a){var b=a.createBookmark(!0),c=a.createIterator();c.enforceRealBlocks=!0;this._.enterMode&&(c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR);for(var d,e=a.document,f;d=c.getNextParagraph();)!d.isReadOnly()&&(c.activeFilter?c.activeFilter.check(this):1)&&(f=F(this,e,d),w(d,f));a.moveToBookmark(b)}function n(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=!0;c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var d,e;d=c.getNextParagraph();)this.checkElementRemovable(d)&&
-(d.is("pre")?((e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))&&d.copyAttributes(e),w(d,e)):u.call(this,d));a.moveToBookmark(b)}function w(a,b){var c=!b;c&&(b=a.getDocument().createElement("div"),a.copyAttributes(b));var d=b&&b.is("pre"),e=a.is("pre"),g=!d&&e;if(d&&!e){e=b;(g=a.getBogus())&&g.remove();g=a.getHtml();g=x(g,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");g=g.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");g=g.replace(/([ \t\n\r]+| )/g,
-" ");g=g.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");h.append(e);e.$.outerHTML="\x3cpre\x3e"+g+"\x3c/pre\x3e";e.copyAttributes(h.getFirst());e=h.getFirst().remove()}else e.setHtml(g);b=e}else g?b=A(c?[a.getHtml()]:f(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,k;(k=c.getPrevious(R))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(d=x(k.getHtml(),/\n$/,"")+"\n\n"+x(c.getHtml(),/^\n/,""),CKEDITOR.env.ie?c.$.outerHTML="\x3cpre\x3e"+d+"\x3c/pre\x3e":
-c.setHtml(d),k.remove())}else c&&y(b)}function f(a){var b=[];x(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"\x3c/pre\x3e"+c+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function x(a,b,c){var d="",e="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function A(a,b){var c;
-1<a.length&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var d=0;d<a.length;d++){var e=a[d],e=e.replace(/(\r\n|\r)/g,"\n"),e=x(e,/^[ \t]*\n/,""),e=x(e,/\n$/,""),e=x(e,/^[ \t]+|[ \t]+$/g,function(a,b){return 1==a.length?"\x26nbsp;":b?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),e=e.replace(/\n/g,"\x3cbr\x3e"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e);
-c.append(f)}else b.setHtml(e)}return c||b}function u(a,b){var c=this._.definition,d=c.attributes,c=c.styles,e=h(this)[a.getName()],f=CKEDITOR.tools.isEmpty(d)&&CKEDITOR.tools.isEmpty(c),g;for(g in d)if("class"!=g&&!this._.definition.fullMatch||a.getAttribute(g)==p(g,d[g]))b&&"data-"==g.slice(0,5)||(f=a.hasAttribute(g),a.removeAttribute(g));for(var k in c)this._.definition.fullMatch&&a.getStyle(k)!=p(k,c[k],!0)||(f=f||!!a.getStyle(k),a.removeStyle(k));q(a,e,C[a.getName()]);f&&(this._.definition.alwaysRemoveElement?
-y(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?y(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function B(a){for(var b=h(this),c=a.getElementsByTag(this.element),d,e=c.count();0<=--e;)d=c.getItem(e),d.isReadOnly()||u.call(this,d,!0);for(var f in b)if(f!=this.element)for(c=a.getElementsByTag(f),e=c.count()-1;0<=e;e--)d=c.getItem(e),d.isReadOnly()||q(d,b[f])}function q(a,b,c){if(b=b&&b.attributes)for(var d=0;d<b.length;d++){var e=b[d][0],
-f;if(f=a.getAttribute(e)){var g=b[d][1];(null===g||g.test&&g.test(f)||"string"==typeof g&&f==g)&&a.removeAttribute(e)}}c||y(a)}function y(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var c=a.getPrevious(R),d=a.getNext(R);!c||c.type!=CKEDITOR.NODE_TEXT&&c.isBlockBoundary({br:1})||a.append("br",1);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else c=a.getFirst(),d=a.getLast(),a.remove(!0),c&&(c.type==CKEDITOR.NODE_ELEMENT&&c.mergeSiblings(),
-d&&!c.equals(d)&&d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings())}function F(a,b,c){var d;d=a.element;"*"==d&&(d="span");d=new CKEDITOR.dom.element(d,b);c&&c.copyAttributes(d);d=t(d,a);b.getCustomData("doc_processing_style")&&d.hasAttribute("id")?d.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return d}function t(a,b){var c=b._.definition,d=c.attributes,c=CKEDITOR.style.getStyleText(c);if(d)for(var e in d)a.setAttribute(e,d[e]);c&&a.setAttribute("style",c);return a}function z(a,
-b){for(var c in a)a[c]=a[c].replace(H,function(a,c){return b[c]})}function h(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},c=a._.definition.overrides;if(c){CKEDITOR.tools.isArray(c)||(c=[c]);for(var d=0;d<c.length;d++){var e=c[d],f,g;"string"==typeof e?f=e.toLowerCase():(f=e.element?e.element.toLowerCase():a.element,g=e.attributes);e=b[f]||(b[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return b}function p(a,b,c){var d=new CKEDITOR.dom.element("span");
-d[c?"setStyle":"setAttribute"](a,b);return d[c?"getStyle":"getAttribute"](a)}function m(a,b,c){var d=a.document,e=a.getRanges();b=b?this.removeFromRange:this.applyToRange;for(var f,g=e.createIterator();f=g.getNextRange();)b.call(this,f,c);a.selectRanges(e);d.removeCustomData("doc_processing_style")}var C={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,
-details:1,datagrid:1,datalist:1},r={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},G=/\s*(?:;\s*|$)/,H=/#\((.+?)\)/g,K=CKEDITOR.dom.walker.bookmark(0,1),R=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);var c=a.attributes;c&&c.style&&(a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(c.style)),delete c.style);
-b&&(a=CKEDITOR.tools.clone(a),z(a.attributes,b),z(a.styles,b));c=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase():a.element:"*";this.type=a.type||(C[c]?CKEDITOR.STYLE_BLOCK:r[c]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof CKEDITOR.dom.document)return m.call(this,a.getSelection());if(this.checkApplicable(a.elementPath(),a)){var b=
-this._.enterMode;b||(this._.enterMode=a.activeEnterMode);m.call(this,a.getSelection(),0,a);this._.enterMode=b}},remove:function(a){if(a instanceof CKEDITOR.dom.document)return m.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);m.call(this,a.getSelection(),1,a);this._.enterMode=b}},applyToRange:function(a){this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?b:this.type==CKEDITOR.STYLE_BLOCK?k:this.type==CKEDITOR.STYLE_OBJECT?
-g:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==CKEDITOR.STYLE_BLOCK?n:this.type==CKEDITOR.STYLE_OBJECT?l:null;return this.removeFromRange(a)},applyToObject:function(a){t(a,this)},checkActive:function(a,b){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,b);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var c=a.elements,d=0,e;d<c.length;d++)if(e=c[d],
-this.type!=CKEDITOR.STYLE_INLINE||e!=a.block&&e!=a.blockLimit){if(this.type==CKEDITOR.STYLE_OBJECT){var f=e.getName();if(!("string"==typeof this.element?f==this.element:f in this.element))continue}if(this.checkElementRemovable(e,!0,b))return!0}}return!1},checkApplicable:function(a,b,c){b&&b instanceof CKEDITOR.filter&&(c=b);if(c&&!c.check(this))return!1;switch(this.type){case CKEDITOR.STYLE_OBJECT:return!!a.contains(this.element);case CKEDITOR.STYLE_BLOCK:return!!a.blockLimit.getDtd()[this.element]}return!0},
-checkElementMatch:function(a,b){var c=this._.definition;if(!a||!c.ignoreReadonly&&a.isReadOnly())return!1;var d=a.getName();if("string"==typeof this.element?d==this.element:d in this.element){if(!b&&!a.hasAttributes())return!0;if(d=c._AC)c=d;else{var d={},e=0,f=c.attributes;if(f)for(var g in f)e++,d[g]=f[g];if(g=CKEDITOR.style.getStyleText(c))d.style||e++,d.style=g;d._length=e;c=c._AC=d}if(c._length){for(var h in c)if("_length"!=h){e=a.getAttribute(h)||"";if("style"==h)a:{d=c[h];"string"==typeof d&&
-(d=CKEDITOR.tools.parseCssText(d));"string"==typeof e&&(e=CKEDITOR.tools.parseCssText(e,!0));g=void 0;for(g in d)if(!(g in e)||e[g]!=d[g]&&"inherit"!=d[g]&&"inherit"!=e[g]){d=!1;break a}d=!0}else d=c[h]==e;if(d){if(!b)return!0}else if(b)return!1}if(b)return!0}else return!0}return!1},checkElementRemovable:function(a,b,c){if(this.checkElementMatch(a,b,c))return!0;if(b=h(this)[a.getName()]){var d;if(!(b=b.attributes))return!0;for(c=0;c<b.length;c++)if(d=b[c][0],d=a.getAttribute(d)){var e=b[c][1];if(null===
-e)return!0;if("string"==typeof e){if(d==e)return!0}else if(e.test(d))return!0}}return!1},buildPreview:function(a){var b=this._.definition,c=[],d=b.element;"bdo"==d&&(d="span");var c=["\x3c",d],e=b.attributes;if(e)for(var f in e)c.push(" ",f,'\x3d"',e[f],'"');(e=CKEDITOR.style.getStyleText(b))&&c.push(' style\x3d"',e,'"');c.push("\x3e",a||b.name,"\x3c/",d,"\x3e");return c.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;
-var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(G,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(G,";");"inherit"==f?d+=g:c+=g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,!0));return a._ST=c+d};CKEDITOR.style.customHandlers={};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},
-a,!0);return this.customHandlers[a.type]=b};var M=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,Q=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();CKEDITOR.styleCommand=function(a,d){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,d,!0)};
+(function(){function a(a,e,g,h){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var k=new CKEDITOR.editor(e,a,h);h==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.setStyle("visibility","hidden"),k._.required=a.hasAttribute("required"),a.removeAttribute("required"));g&&k.setData(g,null,!0);k.on("loaded",function(){b(k);h==CKEDITOR.ELEMENT_MODE_REPLACE&&k.config.autoUpdateElement&&
+a.$.form&&k._attachToForm();k.setMode(k.config.startupMode,function(){k.resetDirty();k.status="ready";k.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,k)})});k.on("destroy",d);return k}function d(){var a=this.container,b=this.element;a&&(a.clearCustomData(),a.remove());b&&(b.clearCustomData(),this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.show(),this._.required&&b.setAttribute("required","required")),delete this.element)}function b(a){var b=a.name,d=a.element,h=a.elementMode,k=
+a.fire("uiSpace",{space:"top",html:""}).html,n=a.fire("uiSpace",{space:"bottom",html:""}).html,q=new CKEDITOR.template('\x3c{outerEl} id\x3d"cke_{name}" class\x3d"{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"application"'+(a.title?' aria-labelledby\x3d"cke_{name}_arialbl"':"")+"\x3e"+(a.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':"")+'\x3c{outerEl} class\x3d"cke_inner cke_reset" role\x3d"presentation"\x3e{topHtml}\x3c{outerEl} id\x3d"{contentId}" class\x3d"cke_contents cke_reset" role\x3d"presentation"\x3e\x3c/{outerEl}\x3e{bottomHtml}\x3c/{outerEl}\x3e\x3c/{outerEl}\x3e'),
+b=CKEDITOR.dom.element.createFromHtml(q.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:k?'\x3cspan id\x3d"'+a.ui.spaceId("top")+'" class\x3d"cke_top cke_reset_all" role\x3d"presentation" style\x3d"height:auto"\x3e'+k+"\x3c/span\x3e":"",contentId:a.ui.spaceId("contents"),bottomHtml:n?'\x3cspan id\x3d"'+a.ui.spaceId("bottom")+'" class\x3d"cke_bottom cke_reset_all" role\x3d"presentation"\x3e'+n+"\x3c/span\x3e":"",outerEl:CKEDITOR.env.ie?"span":"div"}));h==CKEDITOR.ELEMENT_MODE_REPLACE?
+(d.hide(),b.insertAfter(d)):d.append(b);a.container=b;a.ui.contentsElement=a.ui.space("contents");k&&a.ui.space("top").unselectable();n&&a.ui.space("bottom").unselectable();d=a.config.width;h=a.config.height;d&&b.setStyle("width",CKEDITOR.tools.cssLength(d));h&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(h));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(b,d){return a(b,d,null,CKEDITOR.ELEMENT_MODE_REPLACE)};
+CKEDITOR.appendTo=function(b,d,g){return a(b,d,g,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b<a.length;b++){var d=null,h=a[b];if(h.name||h.id){if("string"==typeof arguments[0]){if(!(new RegExp("(?:^|\\s)"+arguments[0]+"(?:$|\\s)")).test(h.className))continue}else if("function"==typeof arguments[0]&&(d={},!1===arguments[0](h,d)))continue;this.replace(h,d)}}};CKEDITOR.editor.prototype.addMode=function(a,b){(this._.modes||(this._.modes=
+{}))[a]=b};CKEDITOR.editor.prototype.setMode=function(a,b){var d=this,h=this._.modes;if(a!=d.mode&&h&&h[a]){d.fire("beforeSetMode",a);if(d.mode){var k=d.checkDirty(),h=d._.previousModeData,n,q=0;d.fire("beforeModeUnload");d.editable(0);d._.previousMode=d.mode;d._.previousModeData=n=d.getData(1);"source"==d.mode&&h==n&&(d.fire("lockSnapshot",{forceUpdate:!0}),q=1);d.ui.space("contents").setHtml("");d.mode=""}else d._.previousModeData=d.getData(1);this._.modes[a](function(){d.mode=a;void 0!==k&&!k&&
+d.resetDirty();q?d.fire("unlockSnapshot"):"wysiwyg"==a&&d.fire("saveSnapshot");setTimeout(function(){d.fire("mode");b&&b.call(d)},0)})}};CKEDITOR.editor.prototype.resize=function(a,b,d,h){var k=this.container,n=this.ui.space("contents"),q=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement;h=h?this.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}):k;h.setSize("width",a,!0);q&&(q.style.width="1%");var f=(h.$.offsetHeight||0)-(n.$.clientHeight||
+0),k=Math.max(b-(d?0:f),0);b=d?b+f:b;n.setStyle("height",k+"px");q&&(q.style.width="100%");this.fire("resize",{outerHeight:b,contentsHeight:k,outerWidth:a||h.getSize("width")})};CKEDITOR.editor.prototype.getResizable=function(a){return a?this.ui.space("contents"):this.container};CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";
+(function(){function a(a){var b=a.editor,e=a.data.path,f=e.blockLimit,g=a.data.selection,u=g.getRanges()[0],y;if(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)if(g=d(g,e))g.appendBogus(),y=CKEDITOR.env.ie;h(b,e.block,f)&&u.collapsed&&!u.getCommonAncestor().isReadOnly()&&(e=u.clone(),e.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),f=new CKEDITOR.dom.walker(e),f.guard=function(a){return!c(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()},!f.checkForward()||e.checkStartOfBlock()&&e.checkEndOfBlock())&&
+(b=u.fixBlock(!0,b.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p"),CKEDITOR.env.needsBrFiller||(b=b.getFirst(c))&&b.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(b.getText()).match(/^(?: |\xa0)$/)&&b.remove(),y=1,a.cancel());y&&u.select()}function d(a,b){if(a.isFake)return 0;var d=b.block||b.blockLimit,e=d&&d.getLast(c);if(!(!d||!d.isBlockBoundary()||e&&e.type==CKEDITOR.NODE_ELEMENT&&e.isBlockBoundary()||d.is("pre")||d.getBogus()))return d}function b(a){var b=a.data.getTarget();b.is("input")&&
+(b=b.getAttribute("type"),"submit"!=b&&"reset"!=b||a.data.preventDefault())}function c(a){return f(a)&&D(a)}function e(a,b){return function(c){var d=c.data.$.toElement||c.data.$.fromElement||c.data.$.relatedTarget;(d=d&&d.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(d):null)&&(b.equals(d)||b.contains(d))||a.call(this,c)}}function g(a){function b(a){return function(b,e){e&&b.type==CKEDITOR.NODE_ELEMENT&&b.is(f)&&(d=b);if(!(e||!c(b)||a&&A(b)))return!1}}var d,e=a.getRanges()[0];a=a.root;
+var f={table:1,ul:1,ol:1,dl:1};if(e.startPath().contains(f)){var u=e.clone();u.collapse(1);u.setStartAt(a,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(u);a.guard=b();a.checkBackward();if(d)return u=e.clone(),u.collapse(),u.setEndAt(d,CKEDITOR.POSITION_AFTER_END),a=new CKEDITOR.dom.walker(u),a.guard=b(!0),d=!1,a.checkForward(),d}return null}function h(a,b,c){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(c)&&!b||b&&"true"==b.getAttribute("contenteditable"))}
+function k(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":!1}function n(a){var b=a.editor;b.getSelection().scrollIntoView();setTimeout(function(){b.fire("saveSnapshot")},0)}function q(a,b,c){var d=a.getCommonAncestor(b);for(b=a=c?b:a;(a=a.getParent())&&!d.equals(a)&&1==a.getChildCount();)b=a;b.remove()}var f,D,w,A,G,x,m,K,z,I;CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,b){this.base(b.$||
+b);this.editor=a;this.status="unloaded";this.hasFocus=!1;this.setup()},proto:{focus:function(){var a;if(CKEDITOR.env.webkit&&!this.hasFocus&&(a=this.editor._.previousActive||this.getDocument().getActive(),this.contains(a))){a.focus();return}CKEDITOR.env.edge&&14<CKEDITOR.env.version&&!this.hasFocus&&this.getDocument().equals(CKEDITOR.document)&&(this.editor._.previousScrollTop=this.$.scrollTop);try{if(!CKEDITOR.env.ie||CKEDITOR.env.edge&&14<CKEDITOR.env.version||!this.getDocument().equals(CKEDITOR.document))if(CKEDITOR.env.chrome){var b=
+this.$.scrollTop;this.$.focus();this.$.scrollTop=b}else this.$.focus();else this.$.setActive()}catch(c){if(!CKEDITOR.env.ie)throw c;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,b){var c=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&/^focus|blur$/.exec(a)&&(a="focus"==a?"focusin":"focusout",b=e(b,this),c[0]=a,c[1]=b);return CKEDITOR.dom.element.prototype.on.apply(this,c)},attachListener:function(a){!this._.listeners&&
+(this._.listeners=[]);var b=Array.prototype.slice.call(arguments,1),b=a.on.apply(a,b);this._.listeners.push(b);return b},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=this._.attrChanges,b,c;for(c in a)a.hasOwnProperty(c)&&(b=a[c],null!==b?this.setAttribute(c,b):this.removeAttribute(c))},attachClass:function(a){var b=this.getCustomData("classes");this.hasClass(a)||(!b&&(b=[]),b.push(a),this.setCustomData("classes",
+b),this.addClass(a))},changeAttr:function(a,b){var c=this.getAttribute(a);b!==c&&(!this._.attrChanges&&(this._.attrChanges={}),a in this._.attrChanges||(this._.attrChanges[a]=c),this.setAttribute(a,b))},insertText:function(a){this.editor.focus();this.insertHtml(this.transformPlainTextToHtml(a),"text")},transformPlainTextToHtml:function(a){var b=this.editor.getSelection().getStartElement().hasAscendant("pre",!0)?CKEDITOR.ENTER_BR:this.editor.activeEnterMode;return CKEDITOR.tools.transformPlainTextToHtml(a,
+b)},insertHtml:function(a,b,c){var d=this.editor;d.focus();d.fire("saveSnapshot");c||(c=d.getSelection().getRanges()[0]);x(this,b||"html",a,c);c.select();n(this);this.editor.fire("afterInsertHtml",{})},insertHtmlIntoRange:function(a,b,c){x(this,c||"html",a,b);this.editor.fire("afterInsertHtml",{intoRange:b})},insertElement:function(a,b){var d=this.editor;d.focus();d.fire("saveSnapshot");var e=d.activeEnterMode,d=d.getSelection(),f=a.getName(),f=CKEDITOR.dtd.$block[f];b||(b=d.getRanges()[0]);this.insertElementIntoRange(a,
+b)&&(b.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),f&&((f=a.getNext(function(a){return c(a)&&!A(a)}))&&f.type==CKEDITOR.NODE_ELEMENT&&f.is(CKEDITOR.dtd.$block)?f.getDtd()["#"]?b.moveToElementEditStart(f):b.moveToElementEditEnd(a):f||e==CKEDITOR.ENTER_BR||(f=b.fixBlock(!0,e==CKEDITOR.ENTER_DIV?"div":"p"),b.moveToElementEditStart(f))));d.selectRanges([b]);n(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,b){var c=this.editor,d=c.config.enterMode,
+e=a.getName(),f=CKEDITOR.dtd.$block[e];if(b.checkReadOnly())return!1;b.deleteContents(1);b.startContainer.type==CKEDITOR.NODE_ELEMENT&&(b.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})?m(b):b.startContainer.is(CKEDITOR.dtd.$list)&&K(b));var g,v;if(f)for(;(g=b.getCommonAncestor(0,1))&&(v=CKEDITOR.dtd[g.getName()])&&(!v||!v[e]);)g.getName()in CKEDITOR.dtd.span?b.splitElement(g):b.checkStartOfBlock()&&b.checkEndOfBlock()?(b.setStartBefore(g),b.collapse(!0),g.remove()):b.splitBlock(d==CKEDITOR.ENTER_DIV?
+"div":"p",c.editable());b.insertNode(a);return!0},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.fixInitialSelection();"unloaded"==this.status&&(this.status="ready");this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");this.status="detached";var a=this.editor;this._.detach();
+delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},fixInitialSelection:function(){function a(){var b=c.getDocument().$,d=b.getSelection(),e;a:if(d.anchorNode&&d.anchorNode==c.$)e=!0;else{if(CKEDITOR.env.webkit&&(e=c.getDocument().getActive())&&e.equals(c)&&!d.anchorNode){e=!0;break a}e=void 0}e&&(e=new CKEDITOR.dom.range(c),e.moveToElementEditStart(c),b=b.createRange(),b.setStart(e.startContainer.$,e.startOffset),b.collapse(!0),d.removeAllRanges(),
+d.addRange(b))}function b(){var a=c.getDocument().$,d=a.selection,e=c.getDocument().getActive();"None"==d.type&&e.equals(c)&&(d=new CKEDITOR.dom.range(c),a=a.body.createTextRange(),d.moveToElementEditStart(c),d=d.startContainer,d.type!=CKEDITOR.NODE_ELEMENT&&(d=d.getParent()),a.moveToElementText(d.$),a.collapse(!0),a.select())}var c=this;if(CKEDITOR.env.ie&&(9>CKEDITOR.env.version||CKEDITOR.env.quirks))this.hasFocus&&(this.focus(),b());else if(this.hasFocus)this.focus(),a();else this.once("focus",
+function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};z.eol.detect(a,this);z.bogus.exclude(a);z.cell.shrink(a);a.fragment=a.range.cloneContents();z.tree.rebuild(a,this);z.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},extractHtmlFromRange:function(a,b){var c=I,d={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE,
+1);c.table.detectPurge(d);d.bookmark=a.createBookmark();delete d.range;var f=this.editor.createRange();f.moveToPosition(d.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);d.targetBookmark=f.createBookmark();c.list.detectMerge(d,this);c.table.detectRanges(d,this);c.block.detectMerge(d,this);d.tableContentsRanges?(c.table.deleteRanges(d),a.moveToBookmark(d.bookmark),d.range=a):(a.moveToBookmark(d.bookmark),d.range=a,a.extractContents(c.detectExtractMerge(d)));a.moveToBookmark(d.targetBookmark);a.optimize();
+c.fixUneditableRangePosition(a);c.list.merge(d,this);c.table.purge(d,this);c.block.merge(d,this);if(b){c=a.startPath();if(d=a.checkStartOfBlock()&&a.checkEndOfBlock()&&c.block&&!a.root.equals(c.block)){a:{var d=c.block.getElementsByTag("span"),f=0,g;if(d)for(;g=d.getItem(f++);)if(!D(g)){d=!0;break a}d=!1}d=!d}d&&(a.moveToPosition(c.block,CKEDITOR.POSITION_BEFORE_START),c.block.remove())}else c.autoParagraph(this.editor,a),w(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();
+return e},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(G,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,
+"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&"Control"==b.type||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"):
+a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("cke_editable_themed");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(){this.hasFocus=!1},null,null,-1);this.on("focus",function(){this.hasFocus=!0},null,null,-1);if(CKEDITOR.env.webkit)this.on("scroll",function(){a._.previousScrollTop=a.editable().$.scrollTop},null,
+null,-1);if(CKEDITOR.env.edge&&14<CKEDITOR.env.version){var d=function(){var b=a.editable();null!=a._.previousScrollTop&&b.getDocument().equals(CKEDITOR.document)&&(b.$.scrollTop=a._.previousScrollTop,a._.previousScrollTop=null,this.removeListener("scroll",d))};this.on("scroll",d)}a.focusManager.add(this);this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",function(){a.focusManager.focus(this)},this));this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=
+this.getDocument();a.window=this.getWindow();var e=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var k=a.config.contentsLangDirection;this.getDirection(1)!=k&&this.changeAttr("dir",k);var h=CKEDITOR.getCss();if(h){var k=e.getHead(),u=k.getCustomData("stylesheet");u?h!=u.getText()&&(CKEDITOR.env.ie&&9>CKEDITOR.env.version?u.$.styleSheet.cssText=h:u.setText(h)):(h=e.appendStyleText(h),h=new CKEDITOR.dom.element(h.ownerNode||h.owningElement),k.setCustomData("stylesheet",
+h),h.data("cke-temp",1))}k=e.getCustomData("stylesheet_ref")||0;e.setCustomData("stylesheet_ref",k+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){a=a.data;var b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var y={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c=b.data.domEvent.getKey(),d;b=a.getSelection();if(0!==b.getRanges().length){if(c in
+y){var e,u=b.getRanges()[0],p=u.startPath(),C,t,k,c=8==c;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(e=b.getSelectedElement())||(e=g(b))?(a.fire("saveSnapshot"),u.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e.remove(),u.select(),a.fire("saveSnapshot"),d=1):u.collapsed&&((C=p.block)&&(k=C[c?"getPrevious":"getNext"](f))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("table")&&u[c?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),u[c?"checkEndOfBlock":"checkStartOfBlock"]()&&C.remove(),u["moveToElementEdit"+
+(c?"End":"Start")](k),u.select(),a.fire("saveSnapshot"),d=1):p.blockLimit&&p.blockLimit.is("td")&&(t=p.blockLimit.getAscendant("table"))&&u.checkBoundaryOfElement(t,c?CKEDITOR.START:CKEDITOR.END)&&(k=t[c?"getPrevious":"getNext"](f))?(a.fire("saveSnapshot"),u["moveToElementEdit"+(c?"End":"Start")](k),u.checkStartOfBlock()&&u.checkEndOfBlock()?k.remove():u.select(),a.fire("saveSnapshot"),d=1):(t=p.contains(["td","th","caption"]))&&u.checkBoundaryOfElement(t,c?CKEDITOR.START:CKEDITOR.END)&&(d=1))}return!d}});
+a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in y&&!this.getFirst(c)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return!1;b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,"click",b);CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",
+function(b){var c=b.data.getTarget();c.is("img","hr","input","textarea","select")&&!c.isReadOnly()&&(a.getSelection().selectElement(c),c.is("input","textarea","select")&&b.data.preventDefault())});CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&(b=b.data.getTarget(),!b.getOuterHtml().replace(G,""))){var c=a.createRange();
+c.moveToElementEditStart(b);c.select(!0)}});CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()}));CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c=b.data.domEvent.getKey();if(c in y&&(b=a.getSelection(),0!==b.getRanges().length)){var c=8==c,d=b.getRanges()[0];b=d.startPath();
+if(d.collapsed)a:{var e=b.block;if(e&&d[c?"checkStartOfBlock":"checkEndOfBlock"]()&&d.moveToClosestEditablePosition(e,!c)&&d.collapsed){if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var f=d.startContainer.getChild(d.startOffset-(c?1:0));if(f&&f.type==CKEDITOR.NODE_ELEMENT&&f.is("hr")){a.fire("saveSnapshot");f.remove();b=!0;break a}}d=d.startPath().block;if(!d||d&&d.contains(e))b=void 0;else{a.fire("saveSnapshot");var p;(p=(c?d:e).getBogus())&&p.remove();p=a.getSelection();f=p.createBookmarks();
+(c?e:d).moveChildren(c?d:e,!1);b.lastElement.mergeSiblings();q(e,d,!c);p.selectBookmarks(f);b=!0}}else b=!1}else c=d,p=b.block,d=c.endPath().block,p&&d&&!p.equals(d)?(a.fire("saveSnapshot"),(e=p.getBogus())&&e.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),d.getParent()&&(d.moveChildren(p,!1),b.lastElement.mergeSiblings(),q(p,d,!0)),c=a.getSelection().getRanges()[0],c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),c.select(),b=!0):b=!1;if(!b)return;
+a.getSelection().scrollIntoView();a.fire("saveSnapshot");return!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");--c?a.setCustomData("stylesheet_ref",c):(a.removeCustomData("stylesheet_ref"),b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload");
+delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null));return b};CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",function(a){a=a.data;a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")?
+"true":"1"),a.setAttribute("contentEditable",!1))});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();d&&!d.isLocked&&(d=c.checkDirty(),c.fire("lockSnapshot"),a(b),c.fire("unlockSnapshot"),!d&&c.resetDirty())}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label;
+if(d&&(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+e+'" class\x3d"cke_voice_label"\x3e'+d+"\x3c/span\x3e");c.append(d);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");f=CKEDITOR.dom.walker.whitespaces(!0);D=CKEDITOR.dom.walker.bookmark(!1,!0);w=CKEDITOR.dom.walker.empty();
+A=CKEDITOR.dom.walker.bogus();G=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;x=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,f,u,g,y=[],k=d.range.startContainer;e=d.range.startPath();for(var k=v[k.getName()],h=0,B=c.getChildren(),n=B.count(),L=-1,q=-1,E=0,H=e.contains(v.$list);h<n;++h)e=B.getItem(h),a(e)?(u=e.getName(),H&&u in CKEDITOR.dtd.$list?y=y.concat(b(e,d)):(g=!!k[u],
+"br"!=u||!e.data("cke-eol")||h&&h!=n-1||(E=(f=h?y[h-1].node:B.getItem(h+1))&&(!a(f)||!f.is("br")),f=f&&a(f)&&v.$block[f.getName()]),-1!=L||g||(L=h),g||(q=h),y.push({isElement:1,isLineBreak:E,isBlock:e.isBlockBoundary(),hasBlockSibling:f,node:e,name:u,allowed:g}),f=E=0)):y.push({isElement:0,node:e,allowed:1});-1<L&&(y[L].firstNotAllowed=1);-1<q&&(y[q].lastNotAllowed=1);return y}function d(b,c){var e=[],f=b.getChildren(),u=f.count(),g,y=0,k=v[c],h=!b.is(v.$inline)||b.is("br");for(h&&e.push(" ");y<u;y++)g=
+f.getItem(y),a(g)&&!g.is(k)?e=e.concat(d(g,c)):e.push(g);h&&e.push(" ");return e}function e(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function f(b){return b&&a(b)&&(b.is(v.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function u(b,c,d,e){var f=b.clone(),g,v;f.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);(g=(new CKEDITOR.dom.walker(f)).next())&&a(g)&&B[g.getName()]&&(v=g.getPrevious())&&a(v)&&!v.getParent().equals(b.startContainer)&&d.contains(v)&&e.contains(g)&&g.isIdentical(v)&&
+(g.moveChildren(v),g.remove(),u(b,c,d,e))}function g(b,c){function d(b,c){if(c.isBlock&&c.isElement&&!c.node.is("br")&&a(b)&&b.is("br"))return b.remove(),1}var e=c.endContainer.getChild(c.endOffset),f=c.endContainer.getChild(c.endOffset-1);e&&d(e,b[b.length-1]);f&&d(f,b[0])&&(c.setEnd(c.endContainer,c.endOffset-1),c.collapse())}var v=CKEDITOR.dtd,B={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},L={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},n=CKEDITOR.tools.extend({},
+v.$inline);delete n.br;return function(B,p,C,t){var F=B.editor,N=!1;"unfiltered_html"==p&&(p="html",N=!0);if(!t.checkReadOnly()){var q=(new CKEDITOR.dom.elementPath(t.startContainer,t.root)).blockLimit||t.root;B={type:p,dontFilter:N,editable:B,editor:F,range:t,blockLimit:q,mergeCandidates:[],zombies:[]};p=B.range;t=B.mergeCandidates;var m,w;"text"==B.type&&p.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(m=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",p.document),p.insertNode(m),
+p.setStartAfter(m));N=new CKEDITOR.dom.elementPath(p.startContainer);B.endPath=q=new CKEDITOR.dom.elementPath(p.endContainer);if(!p.collapsed){var F=q.block||q.blockLimit,x=p.getCommonAncestor();F&&!F.equals(x)&&!F.contains(x)&&p.checkEndOfBlock()&&B.zombies.push(F);p.deleteContents()}for(;(w=e(p))&&a(w)&&w.isBlockBoundary()&&N.contains(w);)p.moveToPosition(w,CKEDITOR.POSITION_BEFORE_END);u(p,B.blockLimit,N,q);m&&(p.setEndBefore(m),p.collapse(),m.remove());m=p.startPath();if(F=m.contains(f,!1,1))p.splitElement(F),
+B.inlineStylesRoot=F,B.inlineStylesPeak=m.lastElement;m=p.createBookmark();(F=m.startNode.getPrevious(c))&&a(F)&&f(F)&&t.push(F);(F=m.startNode.getNext(c))&&a(F)&&f(F)&&t.push(F);for(F=m.startNode;(F=F.getParent())&&f(F);)t.push(F);p.moveToBookmark(m);if(m=C){m=B.range;if("text"==B.type&&B.inlineStylesRoot){w=B.inlineStylesPeak;p=w.getDocument().createText("{cke-peak}");for(t=B.inlineStylesRoot.getParent();!w.equals(t);)p=p.appendTo(w.clone()),w=w.getParent();C=p.getOuterHtml().split("{cke-peak}").join(C)}w=
+B.blockLimit.getName();if(/^\s+|\s+$/.test(C)&&"span"in CKEDITOR.dtd[w]){var D='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';C=D+C+D}C=B.editor.dataProcessor.toHtml(C,{context:null,fixForBody:!1,protectedWhitespaces:!!D,dontFilter:B.dontFilter,filter:B.editor.activeFilter,enterMode:B.editor.activeEnterMode});w=m.document.createElement("body");w.setHtml(C);D&&(w.getFirst().remove(),w.getLast().remove());if((D=m.startPath().block)&&(1!=D.getChildCount()||!D.getBogus()))a:{var A;if(1==
+w.getChildCount()&&a(A=w.getFirst())&&A.is(L)&&!A.hasAttribute("contenteditable")){D=A.getElementsByTag("*");m=0;for(t=D.count();m<t;m++)if(p=D.getItem(m),!p.is(n))break a;A.moveChildren(A.getParent(1));A.remove()}}B.dataWrapper=w;m=C}if(m){A=B.range;m=A.document;var M;w=B.blockLimit;t=0;var z,D=[],G,S;C=F=0;var I,K;p=A.startContainer;var N=B.endPath.elements[0],W,q=N.getPosition(p),x=!!N.getCommonAncestor(p)&&q!=CKEDITOR.POSITION_IDENTICAL&&!(q&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);
+p=b(B.dataWrapper,B);for(g(p,A);t<p.length;t++){q=p[t];if(M=q.isLineBreak){M=A;I=w;var R=void 0,Z=void 0;q.hasBlockSibling?M=1:(R=M.startContainer.getAscendant(v.$block,1))&&R.is({div:1,p:1})?(Z=R.getPosition(I),Z==CKEDITOR.POSITION_IDENTICAL||Z==CKEDITOR.POSITION_CONTAINS?M=0:(I=M.splitElement(R),M.moveToPosition(I,CKEDITOR.POSITION_AFTER_START),M=1)):M=0}if(M)C=0<t;else{M=A.startPath();!q.isBlock&&h(B.editor,M.block,M.blockLimit)&&(S=k(B.editor))&&(S=m.createElement(S),S.appendBogus(),A.insertNode(S),
+CKEDITOR.env.needsBrFiller&&(z=S.getBogus())&&z.remove(),A.moveToPosition(S,CKEDITOR.POSITION_BEFORE_END));if((M=A.startPath().block)&&!M.equals(G)){if(z=M.getBogus())z.remove(),D.push(M);G=M}q.firstNotAllowed&&(F=1);if(F&&q.isElement){M=A.startContainer;for(I=null;M&&!v[M.getName()][q.name];){if(M.equals(w)){M=null;break}I=M;M=M.getParent()}if(M)I&&(K=A.splitElement(I),B.zombies.push(K),B.zombies.push(I));else{I=w.getName();W=!t;M=t==p.length-1;I=d(q.node,I);for(var R=[],Z=I.length,aa=0,ca=void 0,
+da=0,T=-1;aa<Z;aa++)ca=I[aa]," "==ca?(da||W&&!aa||(R.push(new CKEDITOR.dom.text(" ")),T=R.length),da=1):(R.push(ca),da=0);M&&T==R.length&&R.pop();W=R}}if(W){for(;M=W.pop();)A.insertNode(M);W=0}else A.insertNode(q.node);q.lastNotAllowed&&t<p.length-1&&((K=x?N:K)&&A.setEndAt(K,CKEDITOR.POSITION_AFTER_START),F=0);A.collapse()}}1!=p.length?z=!1:(z=p[0],z=z.isElement&&"false"==z.node.getAttribute("contenteditable"));z&&(C=!0,M=p[0].node,A.setStartAt(M,CKEDITOR.POSITION_BEFORE_START),A.setEndAt(M,CKEDITOR.POSITION_AFTER_END));
+B.dontMoveCaret=C;B.bogusNeededBlocks=D}z=B.range;var Q;K=B.bogusNeededBlocks;for(W=z.createBookmark();G=B.zombies.pop();)G.getParent()&&(S=z.clone(),S.moveToElementEditStart(G),S.removeEmptyBlocksAtEnd());if(K)for(;G=K.pop();)CKEDITOR.env.needsBrFiller?G.appendBogus():G.append(z.document.createText(" "));for(;G=B.mergeCandidates.pop();)G.mergeSiblings();z.moveToBookmark(W);if(!B.dontMoveCaret){for(G=e(z);G&&a(G)&&!G.is(v.$empty);){if(G.isBlockBoundary())z.moveToPosition(G,CKEDITOR.POSITION_BEFORE_END);
+else{if(f(G)&&G.getHtml().match(/(\s| )$/g)){Q=null;break}Q=z.clone();Q.moveToPosition(G,CKEDITOR.POSITION_BEFORE_END)}G=G.getLast(c)}Q&&z.moveToRange(Q)}}}}();m=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};b.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT};return b}function b(a,c,d){c=a.getDocument().createElement(c);a.append(c,d);return c}function c(a){var b=a.count(),
+d;for(b;0<b--;)d=a.getItem(b),CKEDITOR.tools.trim(d.getHtml())||(d.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&d.getChildCount()&&d.getFirst().remove())}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=!1;c(f.getElementsByTag("td"));c(f.getElementsByTag("th"));f=d.clone();f.setStart(e,0);f=a(f).lastBackward();f||(f=d.clone(),f.setEndAt(e,CKEDITOR.POSITION_BEFORE_END),f=a(f).lastForward(),g=!0);f||(f=e);f.is("table")?(d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START),
+d.collapse(!0),f.remove()):(f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g)),f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th":"td",g)),(e=f.getBogus())&&e.remove(),d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}();K=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$list)||a.is(CKEDITOR.dtd.$listItem)};b.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&
+a.is(CKEDITOR.dtd.$listItem)};return b}return function(b){var c=b.startContainer,d=!1,e;e=b.clone();e.setStart(c,0);e=a(e).lastBackward();e||(e=b.clone(),e.setEndAt(c,CKEDITOR.POSITION_BEFORE_END),e=a(e).lastForward(),d=!0);e||(e=c);e.is(CKEDITOR.dtd.$list)?(b.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),b.collapse(!0),e.remove()):((c=e.getBogus())&&c.remove(),b.moveToPosition(e,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END),b.select())}}();z={eol:{detect:function(a,b){var c=a.range,
+d=c.clone(),e=c.clone(),f=new CKEDITOR.dom.elementPath(c.startContainer,b),g=new CKEDITOR.dom.elementPath(c.endContainer,b);d.collapse(1);e.collapse();f.block&&d.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(c.setStartAfter(f.block),a.prependEolBr=1);g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(c.setEndBefore(g.block),a.appendEolBr=1)},fix:function(a,b){var c=b.getDocument(),d;a.appendEolBr&&(d=this.createEolBr(c),a.fragment.append(d));!a.prependEolBr||d&&!d.getPrevious()||a.fragment.append(this.createEolBr(c),
+1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),c=b.startNode,b=b.endNode;!b||!A(b)||c&&c.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var c=a.range,d=c.getCommonAncestor(),e=new CKEDITOR.dom.elementPath(d,b),f=new CKEDITOR.dom.elementPath(c.startContainer,b),c=new CKEDITOR.dom.elementPath(c.endContainer,b),g;d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent());if(e.blockLimit.is({tr:1,
+table:1})){var v=e.contains("table").getParent();g=function(a){return!a.equals(v)}}else if(e.block&&e.block.is(CKEDITOR.dtd.$listItem)&&(f=f.contains(CKEDITOR.dtd.$list),c=c.contains(CKEDITOR.dtd.$list),!f.equals(c))){var k=e.contains(CKEDITOR.dtd.$list).getParent();g=function(a){return!a.equals(k)}}g||(g=function(a){return!a.equals(e.block)&&!a.equals(e.blockLimit)});this.rebuildFragment(a,b,d,g)},rebuildFragment:function(a,b,c,d){for(var e;c&&!c.equals(b)&&d(c);)e=c.clone(0,1),a.fragment.appendTo(e),
+a.fragment=e,c=c.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,c=a.endContainer,d=a.startOffset,e=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(c)&&b.is("tr")&&++d==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}};I=function(){function a(b,c){var d=b.getParent();if(d.is(CKEDITOR.dtd.$inline))b[c?"insertBefore":"insertAfter"](d)}function b(c,d,e){a(d);a(e,1);for(var f;f=e.getNext();)f.insertAfter(d),d=f;w(c)&&c.remove()}function c(a,b){var d=new CKEDITOR.dom.range(a);d.setStartAfter(b.startNode);
+d.setEndBefore(b.endNode);return d}return{list:{detectMerge:function(a,b){var d=c(b,a.bookmark),e=d.startPath(),f=d.endPath(),g=e.contains(CKEDITOR.dtd.$list),k=f.contains(CKEDITOR.dtd.$list);a.mergeList=g&&k&&g.getParent().equals(k.getParent())&&!g.equals(k);a.mergeListItems=e.block&&f.block&&e.block.is(CKEDITOR.dtd.$listItem)&&f.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList||a.mergeListItems)d=d.clone(),d.setStartBefore(a.bookmark.startNode),d.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=
+d.createBookmark()},merge:function(a,c){if(a.mergeListBookmark){var d=a.mergeListBookmark.startNode,e=a.mergeListBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c);if(a.mergeList){var k=f.contains(CKEDITOR.dtd.$list),h=g.contains(CKEDITOR.dtd.$list);k.equals(h)||(h.moveChildren(k),h.remove())}a.mergeListItems&&(f=f.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$listItem),f.equals(g)||b(g,d,e));d.remove();e.remove()}}},block:{detectMerge:function(a,
+b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var c=new CKEDITOR.dom.range(b);c.setStartBefore(a.bookmark.startNode);c.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=c.createBookmark()}},merge:function(a,c){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var d=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c),f=f.block,g=g.block;f&&g&&!f.equals(g)&&b(g,d,e);d.remove();e.remove()}}},table:function(){function a(c){var e=
+[],f,g=new CKEDITOR.dom.walker(c),k=c.startPath().contains(d),h=c.endPath().contains(d),p={};g.guard=function(a,g){if(a.type==CKEDITOR.NODE_ELEMENT){var F="visited_"+(g?"out":"in");if(a.getCustomData(F))return;CKEDITOR.dom.element.setMarker(p,a,F,1)}if(g&&k&&a.equals(k))f=c.clone(),f.setEndAt(k,CKEDITOR.POSITION_BEFORE_END),e.push(f);else if(!g&&h&&a.equals(h))f=c.clone(),f.setStartAt(h,CKEDITOR.POSITION_AFTER_START),e.push(f);else{if(F=!g)F=a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&(!k||b(a,k))&&(!h||
+b(a,h));F&&(f=c.clone(),f.selectNodeContents(a),e.push(f))}};g.lastForward();CKEDITOR.dom.element.clearAllMarkers(p);return e}function b(a,c){var d=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,e=a.getPosition(c);return e===CKEDITOR.POSITION_IDENTICAL?!1:0===(e&d)}var d={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,c=b.clone();c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var c=new CKEDITOR.dom.walker(c),e=0;c.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&++e};
+c.checkForward();if(1<e){var c=b.startPath().contains("table"),f=b.endPath().contains("table");c&&f&&b.checkBoundaryOfElement(c,CKEDITOR.START)&&b.checkBoundaryOfElement(f,CKEDITOR.END)&&(b=a.range.clone(),b.setStartBefore(c),b.setEndAfter(f),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(e,f){var g=c(f,e.bookmark),k=g.clone(),h,l,p=g.getCommonAncestor();p.is(CKEDITOR.dtd.$tableContent)&&!p.is(d)&&(p=p.getAscendant("table",!0));l=p;p=new CKEDITOR.dom.elementPath(g.startContainer,
+l);l=new CKEDITOR.dom.elementPath(g.endContainer,l);p=p.contains("table");l=l.contains("table");if(p||l)p&&l&&b(p,l)?(e.tableSurroundingRange=k,k.setStartAt(p,CKEDITOR.POSITION_AFTER_END),k.setEndAt(l,CKEDITOR.POSITION_BEFORE_START),k=g.clone(),k.setEndAt(p,CKEDITOR.POSITION_AFTER_END),h=g.clone(),h.setStartAt(l,CKEDITOR.POSITION_BEFORE_START),h=a(k).concat(a(h))):p?l||(e.tableSurroundingRange=k,k.setStartAt(p,CKEDITOR.POSITION_AFTER_END),g.setEndAt(p,CKEDITOR.POSITION_AFTER_END)):(e.tableSurroundingRange=
+k,k.setEndAt(l,CKEDITOR.POSITION_BEFORE_START),g.setStartAt(l,CKEDITOR.POSITION_AFTER_START)),e.tableContentsRanges=h?h:a(g)},deleteRanges:function(a){for(var b;b=a.tableContentsRanges.pop();)b.extractContents(),w(b.startContainer)&&b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,c=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode);c.moveToBookmark(a.purgeTableBookmark);
+c.deleteContents();a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var c=b.startPath(),d;h(a,c.block,c.blockLimit)&&(d=k(a))&&(d=b.document.createElement(d),d.appendBogus(),b.insertNode(d),b.moveToPosition(d,
+CKEDITOR.POSITION_AFTER_START))}}}()})();
+(function(){function a(a,b){if(0===a.length)return!1;var c,d;if((c=!b&&1===a.length)&&!(c=a[0].collapsed)){var e=a[0];c=e.startContainer.getAscendant({td:1,th:1},!0);var f=e.endContainer.getAscendant({td:1,th:1},!0);d=CKEDITOR.tools.trim;c&&c.equals(f)&&!c.findOne("td, th, tr, tbody, table")?(e=e.cloneContents(),c=e.getFirst()?d(e.getFirst().getText())!==d(c.getText()):!0):c=!1}if(c)return!1;for(d=0;d<a.length;d++)if(c=a[d]._getTableElement(),!c)return!1;return!0}function d(a){function b(a){a=a.find("td, th");
+var c=[],d;for(d=0;d<a.count();d++)c.push(a.getItem(d));return c}var c=[],d,e;for(e=0;e<a.length;e++)d=a[e]._getTableElement(),d.is&&d.is({td:1,th:1})?c.push(d):c=c.concat(b(d));return c}function b(a){a=d(a);var b="",c=[],e,f;for(f=0;f<a.length;f++)e&&!e.equals(a[f].getAscendant("tr"))?(b+=c.join("\t")+"\n",e=a[f].getAscendant("tr"),c=[]):0===f&&(e=a[f].getAscendant("tr")),c.push(a[f].getText());return b+=c.join("\t")}function c(a){var c=this.root.editor,d=c.getSelection(1);this.reset();I=!0;d.root.once("selectionchange",
+function(a){a.cancel()},null,null,0);d.selectRanges([a[0]]);d=this._.cache;d.ranges=new CKEDITOR.dom.rangeList(a);d.type=CKEDITOR.SELECTION_TEXT;d.selectedElement=a[0]._getTableElement();d.selectedText=b(a);d.nativeSel=null;this.isFake=1;this.rev=m++;c._.fakeSelection=this;I=!1;this.root.fire("selectionchange")}function e(){var b=this._.fakeSelection,c;if(b){c=this.getSelection(1);var d;if(!(d=!c)&&(d=!c.isHidden())){d=b;var e=c.getRanges(),f=d.getRanges(),g=e.length&&e[0]._getTableElement()&&e[0]._getTableElement().getAscendant("table",
+!0),k=f.length&&f[0]._getTableElement()&&f[0]._getTableElement().getAscendant("table",!0),p=1===e.length&&e[0]._getTableElement()&&e[0]._getTableElement().is("table"),h=1===f.length&&f[0]._getTableElement()&&f[0]._getTableElement().is("table"),t=1===e.length&&e[0].collapsed,f=a(e,!!CKEDITOR.env.webkit)&&a(f);g=g&&k?g.equals(k)||k.contains(g):!1;g&&(t||f)?(p&&!h&&d.selectRanges(e),d=!0):d=!1;d=!d}d&&(b.reset(),b=0)}if(!b&&(b=c||this.getSelection(1),!b||b.getType()==CKEDITOR.SELECTION_NONE))return;
+this.fire("selectionCheck",b);c=this.elementPath();c.compare(this._.selectionPreviousPath)||(d=this._.selectionPreviousPath&&this._.selectionPreviousPath.blockLimit.equals(c.blockLimit),CKEDITOR.env.webkit&&!d&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=c,this.fire("selectionChange",{selection:b,path:c}))}function g(){r=!0;l||(h.call(this),l=CKEDITOR.tools.setTimeout(h,200,this))}function h(){l=null;r&&(CKEDITOR.tools.setTimeout(e,0,this),r=!1)}function k(a){return J(a)||
+a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function n(a){function b(c,d){return c&&c.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(d?"End":"Start")](c):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var c=a.startContainer,d=a.getPreviousNode(k,null,c),e=a.getNextNode(k,null,c);return b(d)||b(e,1)||!(d||e||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus())?!0:!1}function q(a){f(a,!1);var b=a.getDocument().createText(K);a.setCustomData("cke-fillingChar",
+b);return b}function f(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(!1!==b){var d=a.getDocument().getSelection().getNative(),e=d&&"None"!=d.type&&d.getRangeAt(0),f=K.length;if(c.getLength()>f&&e&&e.intersectsNode(c.$)){var g=[{node:d.anchorNode,offset:d.anchorOffset},{node:d.focusNode,offset:d.focusOffset}];d.anchorNode==c.$&&d.anchorOffset>f&&(g[0].offset-=f);d.focusNode==c.$&&d.focusOffset>f&&(g[1].offset-=f)}}c.setText(D(c.getText(),1));g&&(c=a.getDocument().$,d=c.getSelection(),
+c=c.createRange(),c.setStart(g[0].node,g[0].offset),c.collapse(!0),d.removeAllRanges(),d.addRange(c),d.extend(g[1].node,g[1].offset))}}function D(a,b){return b?a.replace(z,function(a,b){return b?" ":""}):a.replace(K,"")}function w(a,b){var c=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie&&14>CKEDITOR.env.version?"display:none":"position:fixed;top:0;left:-1000px")+'"\x3e'+(b||"\x26nbsp;")+"\x3c/div\x3e",a.document);a.fire("lockSnapshot");
+a.editable().append(c);var d=a.getSelection(1),e=a.createRange(),f=d.root.on("selectionchange",function(a){a.cancel()},null,null,0);e.setStartAt(c,CKEDITOR.POSITION_AFTER_START);e.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);d.selectRanges([e]);f.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=c}function A(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),f=e[0];1==e.length&&f.collapsed&&(d=f[38>d?"getPreviousEditableNode":
+"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&"false"==d.getAttribute("contenteditable")&&(a.getSelection().fake(d),c.data.preventDefault(),c.cancel())}}}function G(a){for(var b=0;b<a.length;b++){var c=a[b];c.getCommonAncestor().isReadOnly()&&a.splice(b,1);if(!c.collapsed){if(c.startContainer.isReadOnly())for(var d=c.startContainer,e;d&&!((e=d.type==CKEDITOR.NODE_ELEMENT)&&d.is("body")||!d.isReadOnly());)e&&"false"==d.getAttribute("contentEditable")&&c.setStartAfter(d),d=d.getParent();
+d=c.startContainer;e=c.endContainer;var f=c.startOffset,g=c.endOffset,p=c.clone();d&&d.type==CKEDITOR.NODE_TEXT&&(f>=d.getLength()?p.setStartAfter(d):p.setStartBefore(d));e&&e.type==CKEDITOR.NODE_TEXT&&(g?p.setEndAfter(e):p.setEndBefore(e));d=new CKEDITOR.dom.walker(p);d.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone();c.setEndBefore(d);c.collapsed&&a.splice(b--,1);d.getPosition(p.endContainer)&CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(d),e.collapsed||a.splice(b+
+1,0,e));return!0}return!1};d.next()}}return a}var x="function"!=typeof window.getSelection,m=1,K=CKEDITOR.tools.repeat("",7),z=new RegExp(K+"( )?","g"),I,l,r,J=CKEDITOR.dom.walker.invisible(1),H=function(){function a(b){return function(a){var c=a.editor.createRange();c.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([c]);return!1}}function b(a){return function(b){var c=b.editor,d=c.createRange(),e;(e=d.moveToClosestEditablePosition(b.selected,a))||(e=d.moveToClosestEditablePosition(b.selected,
+!a));e&&c.getSelection().selectRanges([d]);c.fire("saveSnapshot");b.selected.remove();e||(d.moveToElementEditablePosition(c.editable()),c.getSelection().selectRanges([d]));c.fire("saveSnapshot");return!1}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(a){function b(){var a=c.getSelection();a&&a.removeAllRanges()}var c=a.editor;c.on("contentDom",function(){function a(){q=new CKEDITOR.dom.selection(c.getSelection());q.lock()}function b(){p.removeListener("mouseup",
+b);u.removeListener("mouseup",b);var a=CKEDITOR.document.$.selection,c=a.createRange();"None"!=a.type&&c.parentElement()&&c.parentElement().ownerDocument==k.$&&c.select()}function d(a){if(CKEDITOR.env.ie){var b=(a=a.getRanges()[0])?a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&("false"==a.getAttribute("contenteditable")||"true"==a.getAttribute("contenteditable"))},!0):null;return a&&"false"==b.getAttribute("contenteditable")&&b}}var k=c.document,p=CKEDITOR.document,
+h=c.editable(),t=k.getBody(),u=k.getDocumentElement(),l=h.isInline(),y,q;CKEDITOR.env.gecko&&h.attachListener(h,"focus",function(a){a.removeListener();0!==y&&(a=c.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==h.$&&(a=c.createRange(),a.moveToElementEditStart(h),a.select())},null,null,-2);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){y&&CKEDITOR.env.webkit&&(y=c._.previousActive&&c._.previousActive.equals(k.getActive()))&&null!=c._.previousScrollTop&&c._.previousScrollTop!=
+h.$.scrollTop&&(h.$.scrollTop=c._.previousScrollTop);c.unlockSelection(y);y=0},null,null,-1);h.attachListener(h,"mousedown",function(){y=0});if(CKEDITOR.env.ie||l)x?h.attachListener(h,"beforedeactivate",a,null,null,-1):h.attachListener(c,"selectionCheck",a,null,null,-1),h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){c.lockSelection(q);y=1},null,null,-1),h.attachListener(h,"mousedown",function(){y=0});if(CKEDITOR.env.ie&&!l){var n;h.attachListener(h,"mousedown",function(a){2==
+a.data.$.button&&((a=c.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(n=c.window.getScrollPosition()))});h.attachListener(h,"mouseup",function(a){2==a.data.$.button&&n&&(c.document.$.documentElement.scrollLeft=n.x,c.document.$.documentElement.scrollTop=n.y);n=null});if("BackCompat"!=k.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat){var m,w;u.on("mousedown",function(a){function b(a){a=a.data.$;if(m){var c=t.$.createTextRange();try{c.moveToPoint(a.clientX,a.clientY)}catch(d){}m.setEndPoint(0>
+w.compareEndPoints("StartToStart",c)?"EndToEnd":"StartToStart",c);m.select()}}function c(){u.removeListener("mousemove",b);p.removeListener("mouseup",c);u.removeListener("mouseup",c);m.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<u.$.clientHeight&&a.$.x<u.$.clientWidth){m=t.$.createTextRange();try{m.moveToPoint(a.$.clientX,a.$.clientY)}catch(d){}w=m.duplicate();u.on("mousemove",b);p.on("mouseup",c);u.on("mouseup",c)}})}if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)u.on("mousedown",function(a){a.data.getTarget().is("html")&&
+(p.on("mouseup",b),u.on("mouseup",b))})}}h.attachListener(h,"selectionchange",e,c);h.attachListener(h,"keyup",g,c);h.attachListener(h,"keydown",function(a){var b=this.getSelection(1);d(b)&&(b.selectElement(d(b)),a.data.preventDefault())},c);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){c.forceNextSelectionCheck();c.selectionChange(1)});if(l&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var r;h.attachListener(h,"mousedown",function(){r=1});h.attachListener(k.getDocumentElement(),
+"mouseup",function(){r&&g.call(c);r=0})}else h.attachListener(CKEDITOR.env.ie?h:k.getDocumentElement(),"mouseup",g,c);CKEDITOR.env.webkit&&h.attachListener(k,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:h.hasFocus&&f(h)}},null,null,-1);h.attachListener(h,"keydown",A(c),null,null,-1)});c.on("setData",function(){c.unlockSelection();CKEDITOR.env.webkit&&b()});c.on("contentDomUnload",function(){c.unlockSelection()});if(CKEDITOR.env.ie9Compat)c.on("beforeDestroy",
+b,null,null,9);c.on("dataReady",function(){delete c._.fakeSelection;delete c._.hiddenSelectionContainer;c.selectionChange(1)});c.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=c.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&(b.remove(),CKEDITOR.env.gecko&&(a=c.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100);c.on("key",function(a){if("wysiwyg"==c.mode){var b=c.getSelection();if(b.isFake){var d=
+H[a.data.keyCode];if(d)return d({editor:c,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),c=a.getCustomData("cke-fillingChar");c&&(c.getCustomData("ready")?(f(a),a.editor.fire("selectionCheck")):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){f(b.editable())},null,null,-1);b.on("getSnapshot",function(a){a.data&&(a.data=D(a.data))},
+b,null,20);b.on("toDataFormat",function(a){a.data.dataValue=D(a.data.dataValue)},null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(a){(a?e:g).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE?
+(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):!1};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():
+new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=a;a=a.root}var c=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:m++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=c?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b)return CKEDITOR.tools.extend(this._.cache,b._.cache),
+this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var d,e;if(a)if(a.getRangeAt)d=(e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}d=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}if(!d||d.type!=CKEDITOR.NODE_ELEMENT&&d.type!=CKEDITOR.NODE_TEXT||!this.root.equals(d)&&!this.root.contains(d))this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement=
+null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList;return this};var E={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:D,_createFillingCharSequenceNode:q,FILLING_CHAR_SEQUENCE:K});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=
+x?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:x?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;"Text"==d&&(b=CKEDITOR.SELECTION_TEXT);"Control"==d&&(b=CKEDITOR.SELECTION_ELEMENT);c.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;
+else if(1==c.rangeCount){var c=c.getRangeAt(0),d=c.startContainer;d==c.endContainer&&1==d.nodeType&&1==c.endOffset-c.startOffset&&E[d.childNodes[c.startOffset].nodeName.toLowerCase()]&&(b=CKEDITOR.SELECTION_ELEMENT)}return a.type=b},getRanges:function(){var a=x?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e=d.children,f,g,h=b.duplicate(),k=0,
+l=e.length-1,u=-1,q,n;k<=l;)if(u=Math.floor((k+l)/2),f=e[u],h.moveToElementText(f),q=h.compareEndPoints("StartToStart",b),0<q)l=u-1;else if(0>q)k=u+1;else return{container:d,offset:a(f)};if(-1==u||u==e.length-1&&0>q){h.moveToElementText(d);h.setEndPoint("StartToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;e=d.childNodes;if(!h)return f=e[e.length-1],f.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:e.length}:{container:f,offset:f.nodeValue.length};for(d=e.length;0<h&&0<d;)g=e[--d],g.nodeType==
+CKEDITOR.NODE_TEXT&&(n=g,h-=g.nodeValue.length);return{container:n,offset:-h}}h.collapse(0<q?!0:!1);h.setEndPoint(0<q?"StartToStart":"EndToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!h)return{container:d,offset:a(f)+(0<q?0:1)};for(;0<h;)try{g=f[0<q?"previousSibling":"nextSibling"],g.nodeType==CKEDITOR.NODE_TEXT&&(h-=g.nodeValue.length,n=g),f=g}catch(m){return{container:d,offset:a(f)}}return{container:n,offset:0<q?-h:n.nodeValue.length+h}};return function(){var a=this.getNative(),c=a&&
+a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),d=b(c,!0),a.setStart(new CKEDITOR.dom.node(d.container),d.offset),d=b(c),a.setEnd(new CKEDITOR.dom.node(d.container),d.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e<c.length;e++){for(var f=c.item(e),g=f.parentNode,h=0,a=new CKEDITOR.dom.range(this.root);h<
+g.childNodes.length&&g.childNodes[h]!=f;h++);a.setStart(new CKEDITOR.dom.node(g),h);a.setEnd(new CKEDITOR.dom.node(g),h+1);d.push(a)}return d}return[]}}():function(){var a=[],b,c=this.getNative();if(!c)return a;for(var d=0;d<c.rangeCount;d++){var e=c.getRangeAt(d);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);b.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(b)}return a};return function(b){var c=this._.cache,d=c.ranges;d||(c.ranges=
+d=new CKEDITOR.dom.rangeList(a.call(this)));return b?G(new CKEDITOR.dom.rangeList(d.slice())):d}}(),getStartElement:function(){var a=this._.cache;if(void 0!==a.startElement)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var c=this.getRanges()[0];if(c){if(c.collapsed)b=c.startContainer,b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());else{for(c.optimize();b=c.startContainer,c.startOffset==(b.getChildCount?
+b.getChildCount():b.getLength())&&!b.isBlockBoundary();)c.setStartAfter(b);b=c.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();if((b=b.getChild(c.startOffset))&&b.type==CKEDITOR.NODE_ELEMENT)for(c=b.getFirst();c&&c.type==CKEDITOR.NODE_ELEMENT;)b=c,c=c.getFirst();else b=c.startContainer}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(void 0!==a.selectedElement)return a.selectedElement;var b=this,c=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)},
+function(){for(var a=b.getRanges()[0].clone(),c,d,e=2;e&&!((c=a.getEnclosedNode())&&c.type==CKEDITOR.NODE_ELEMENT&&E[c.getName()]&&(d=c));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return d&&d.$});return a.selectedElement=c?new CKEDITOR.dom.element(c):null},getSelectedText:function(){var a=this._.cache;if(void 0!==a.selectedText)return a.selectedText;var b=this.getNative(),b=x?"Control"==b.type?"":b.createRange().text:b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement();
+this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=1},unlock:function(b){if(this.isLocked){if(b)var d=this.getSelectedElement(),e=this.getRanges(),f=this.isFake;this.isLocked=0;this.reset();b&&(b=d||e[0]&&e[0].getCommonAncestor())&&b.getAscendant("body",1)&&(a(e)?c.call(this,e):f?this.fake(d):d?this.selectElement(d):this.selectRanges(e))}},reset:function(){this._.cache={};this.isFake=0;var a=this.root.editor;if(a&&a._.fakeSelection)if(this.rev==a._.fakeSelection.rev){delete a._.fakeSelection;
+var b=a._.hiddenSelectionContainer;if(b){var c=a.checkDirty();a.fire("lockSnapshot");b.remove();a.fire("unlockSnapshot");!c&&a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=m++},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(b){var d=this.root.editor,e=d&&d._.hiddenSelectionContainer;this.reset();if(e)for(var e=this.root,g,h=0;h<b.length;++h)g=
+b[h],g.endContainer.equals(e)&&(g.endOffset=Math.min(g.endOffset,e.getChildCount()));if(b.length)if(this.isLocked){var k=CKEDITOR.document.getActive();this.unlock();this.selectRanges(b);this.lock();k&&!k.equals(this.root)&&k.focus()}else{var l;a:{var p,C;if(1==b.length&&!(C=b[0]).collapsed&&(l=C.getEnclosedNode())&&l.type==CKEDITOR.NODE_ELEMENT&&(C=C.clone(),C.shrink(CKEDITOR.SHRINK_ELEMENT,!0),(p=C.getEnclosedNode())&&p.type==CKEDITOR.NODE_ELEMENT&&(l=p),"false"==l.getAttribute("contenteditable")))break a;
+l=void 0}if(l)this.fake(l);else if(d&&d.plugins.tableselection&&CKEDITOR.plugins.tableselection.isSupportedEnvironment&&a(b)&&!I)c.call(this,b);else{if(x){p=CKEDITOR.dom.walker.whitespaces(!0);l=/\ufeff|\u00a0/;C={table:1,tbody:1,tr:1};1<b.length&&(d=b[b.length-1],b[0].setEnd(d.endContainer,d.endOffset));d=b[0];b=d.collapsed;var t,F,m;if((e=d.getEnclosedNode())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in E&&(!e.is("a")||!e.getText()))try{m=e.$.createControlRange();m.addElement(e.$);m.select();return}catch(w){}if(d.startContainer.type==
+CKEDITOR.NODE_ELEMENT&&d.startContainer.getName()in C||d.endContainer.type==CKEDITOR.NODE_ELEMENT&&d.endContainer.getName()in C)d.shrink(CKEDITOR.NODE_ELEMENT,!0),b=d.collapsed;m=d.createBookmark();C=m.startNode;b||(k=m.endNode);m=d.document.$.body.createTextRange();m.moveToElementText(C.$);m.moveStart("character",1);k?(l=d.document.$.body.createTextRange(),l.moveToElementText(k.$),m.setEndPoint("EndToEnd",l),m.moveEnd("character",-1)):(t=C.getNext(p),F=C.hasAscendant("pre"),t=!(t&&t.getText&&t.getText().match(l))&&
+(F||!C.hasPrevious()||C.getPrevious().is&&C.getPrevious().is("br")),F=d.document.createElement("span"),F.setHtml("\x26#65279;"),F.insertBefore(C),t&&d.document.createText("").insertBefore(C));d.setStartBefore(C);C.remove();b?(t?(m.moveStart("character",-1),m.select(),d.document.$.selection.clear()):m.select(),d.moveToPosition(F,CKEDITOR.POSITION_BEFORE_START),F.remove()):(d.setEndBefore(k),k.remove(),m.select())}else{k=this.getNative();if(!k)return;this.removeAllRanges();for(m=0;m<b.length;m++){if(m<
+b.length-1&&(t=b[m],F=b[m+1],l=t.clone(),l.setStart(t.endContainer,t.endOffset),l.setEnd(F.startContainer,F.startOffset),!l.collapsed&&(l.shrink(CKEDITOR.NODE_ELEMENT,!0),d=l.getCommonAncestor(),l=l.getEnclosedNode(),d.isReadOnly()||l&&l.isReadOnly()))){F.setStart(t.startContainer,t.startOffset);b.splice(m--,1);continue}d=b[m];F=this.document.$.createRange();d.collapsed&&CKEDITOR.env.webkit&&n(d)&&(l=q(this.root),d.insertNode(l),(t=l.getNext())&&!l.getPrevious()&&t.type==CKEDITOR.NODE_ELEMENT&&"br"==
+t.getName()?(f(this.root),d.moveToPosition(t,CKEDITOR.POSITION_BEFORE_START)):d.moveToPosition(l,CKEDITOR.POSITION_AFTER_END));F.setStart(d.startContainer.$,d.startOffset);try{F.setEnd(d.endContainer.$,d.endOffset)}catch(r){if(0<=r.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))d.collapse(1),F.setEnd(d.endContainer.$,d.endOffset);else throw r;}k.addRange(F)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a,b){var c=this.root.editor;void 0===b&&a.hasAttribute("aria-label")&&(b=a.getAttribute("aria-label"));
+this.reset();w(c,b);var d=this._.cache,e=new CKEDITOR.dom.range(this.root);e.setStartBefore(a);e.setEndAfter(a);d.ranges=new CKEDITOR.dom.rangeList(e);d.selectedElement=d.startElement=a;d.type=CKEDITOR.SELECTION_ELEMENT;d.selectedText=d.nativeSel=null;this.isFake=1;this.rev=m++;c._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},isInTable:function(b){return a(this.getRanges(),
+b)},isCollapsed:function(){var a=this.getRanges();return 1===a.length&&a[0].collapsed},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(b){for(var c=[],d,e=0;e<b.length;e++){var f=new CKEDITOR.dom.range(this.root);f.moveToBookmark(b[e]);c.push(f)}b.isFake&&(d=a(c)?c[0]._getTableElement():c[0].getEnclosedNode(),d&&d.type==
+CKEDITOR.NODE_ELEMENT||(CKEDITOR.warn("selection-not-fake"),b.isFake=0));b.isFake&&!a(c)?this.fake(d):this.selectRanges(c);return this},getCommonAncestor:function(){var a=this.getRanges();return a.length?a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer):null},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=this.getNative();try{a&&a[x?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}}})();
+"use strict";CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3;
+(function(){function a(a,b){for(var c,d;(a=a.getParent())&&!a.equals(b);)if(a.getAttribute("data-nostyle"))c=a;else if(!d){var e=a.getAttribute("contentEditable");"false"==e?c=a:"true"==e&&(d=1)}return c}function d(a,b,c,d){return(a.getPosition(b)|d)==d&&(!c.childRule||c.childRule(a))}function b(c){var f=c.document;if(c.collapsed)f=K(this,f),c.insertNode(f),c.moveToPosition(f,CKEDITOR.POSITION_BEFORE_END);else{var g=this.element,h=this._.definition,k,l=h.ignoreReadonly,m=l||h.includeReadonly;null==
+m&&(m=c.root.getCustomData("cke_includeReadonly"));var q=CKEDITOR.dtd[g];q||(k=!0,q=CKEDITOR.dtd.span);c.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.trim();var n=c.createBookmark(),w=n.startNode,u=n.endNode,r=w,v;if(!l){var x=c.getCommonAncestor(),l=a(w,x),x=a(u,x);l&&(r=l.getNextSourceNode(!0));x&&(u=x)}for(r.getPosition(u)==CKEDITOR.POSITION_FOLLOWING&&(r=0);r;){l=!1;if(r.equals(u))r=null,l=!0;else{var A=r.type==CKEDITOR.NODE_ELEMENT?r.getName():null,x=A&&"false"==r.getAttribute("contentEditable"),D=A&&
+r.getAttribute("data-nostyle");if(A&&r.data("cke-bookmark")){r=r.getNextSourceNode(!0);continue}if(x&&m&&CKEDITOR.dtd.$block[A])for(var z=r,y=e(z),E=void 0,H=y.length,I=0,z=H&&new CKEDITOR.dom.range(z.getDocument());I<H;++I){var E=y[I],J=CKEDITOR.filter.instances[E.data("cke-filter")];if(J?J.check(this):1)z.selectNodeContents(E),b.call(this,z)}y=A?!q[A]||D?0:x&&!m?0:d(r,u,h,V):1;if(y)if(E=r.getParent(),y=h,H=g,I=k,!E||!(E.getDtd()||CKEDITOR.dtd.span)[H]&&!I||y.parentRule&&!y.parentRule(E))l=!0;else{if(v||
+A&&CKEDITOR.dtd.$removeEmpty[A]&&(r.getPosition(u)|V)!=V||(v=c.clone(),v.setStartBefore(r)),A=r.type,A==CKEDITOR.NODE_TEXT||x||A==CKEDITOR.NODE_ELEMENT&&!r.getChildCount()){for(var A=r,L;(l=!A.getNext(B))&&(L=A.getParent(),q[L.getName()])&&d(L,w,h,O);)A=L;v.setEndAfter(A)}}else l=!0;r=r.getNextSourceNode(D||x)}if(l&&v&&!v.collapsed){for(var l=K(this,f),x=l.hasAttributes(),D=v.getCommonAncestor(),A={},y={},E={},H={},T,Q,ba;l&&D;){if(D.getName()==g){for(T in h.attributes)!H[T]&&(ba=D.getAttribute(Q))&&
+(l.getAttribute(T)==ba?y[T]=1:H[T]=1);for(Q in h.styles)!E[Q]&&(ba=D.getStyle(Q))&&(l.getStyle(Q)==ba?A[Q]=1:E[Q]=1)}D=D.getParent()}for(T in y)l.removeAttribute(T);for(Q in A)l.removeStyle(Q);x&&!l.hasAttributes()&&(l=null);l?(v.extractContents().appendTo(l),v.insertNode(l),G.call(this,l),l.mergeSiblings(),CKEDITOR.env.ie||l.$.normalize()):(l=new CKEDITOR.dom.element("span"),v.extractContents().appendTo(l),v.insertNode(l),G.call(this,l),l.remove(!0));v=null}}c.moveToBookmark(n);c.shrink(CKEDITOR.SHRINK_TEXT);
+c.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function c(a){function b(){for(var a=new CKEDITOR.dom.elementPath(d.getParent()),c=new CKEDITOR.dom.elementPath(q.getParent()),e=null,f=null,g=0;g<a.elements.length;g++){var h=a.elements[g];if(h==a.block||h==a.blockLimit)break;n.checkElementRemovable(h,!0)&&(e=h)}for(g=0;g<c.elements.length;g++){h=c.elements[g];if(h==c.block||h==c.blockLimit)break;n.checkElementRemovable(h,!0)&&(f=h)}f&&q.breakParent(f);e&&d.breakParent(e)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var c=
+a.createBookmark(),d=c.startNode,e=this._.definition.alwaysRemoveElement;if(a.collapsed){for(var f=new CKEDITOR.dom.elementPath(d.getParent(),a.root),g,h=0,k;h<f.elements.length&&(k=f.elements[h])&&k!=f.block&&k!=f.blockLimit;h++)if(this.checkElementRemovable(k)){var m;!e&&a.collapsed&&(a.checkBoundaryOfElement(k,CKEDITOR.END)||(m=a.checkBoundaryOfElement(k,CKEDITOR.START)))?(g=k,g.match=m?"start":"end"):(k.mergeSiblings(),k.is(this.element)?A.call(this,k):x(k,l(this)[k.getName()]))}if(g){e=d;for(h=
+0;;h++){k=f.elements[h];if(k.equals(g))break;else if(k.match)continue;else k=k.clone();k.append(e);e=k}e["start"==g.match?"insertBefore":"insertAfter"](g)}}else{var q=c.endNode,n=this;b();for(f=d;!f.equals(q);)g=f.getNextSourceNode(),f.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(f)&&(f.getName()==this.element?A.call(this,f):x(f,l(this)[f.getName()]),g.type==CKEDITOR.NODE_ELEMENT&&g.contains(d)&&(b(),g=d.getNext())),f=g}a.moveToBookmark(c);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function e(a){var b=
+[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function g(a){var b=a.getEnclosedNode()||a.getCommonAncestor(!1,!0);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&z(a,this)}function h(a){var b=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1)){var b=this._.definition,c=b.attributes;if(c)for(var d in c)a.removeAttribute(d,c[d]);if(b.styles)for(var e in b.styles)b.styles.hasOwnProperty(e)&&
+a.removeStyle(e)}}function k(a){var b=a.createBookmark(!0),c=a.createIterator();c.enforceRealBlocks=!0;this._.enterMode&&(c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR);for(var d,e=a.document,f;d=c.getNextParagraph();)!d.isReadOnly()&&(c.activeFilter?c.activeFilter.check(this):1)&&(f=K(this,e,d),q(d,f));a.moveToBookmark(b)}function n(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=!0;c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var d,e;d=c.getNextParagraph();)this.checkElementRemovable(d)&&
+(d.is("pre")?((e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))&&d.copyAttributes(e),q(d,e)):A.call(this,d));a.moveToBookmark(b)}function q(a,b){var c=!b;c&&(b=a.getDocument().createElement("div"),a.copyAttributes(b));var d=b&&b.is("pre"),e=a.is("pre"),g=!d&&e;if(d&&!e){e=b;(g=a.getBogus())&&g.remove();g=a.getHtml();g=D(g,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");g=g.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");g=g.replace(/([ \t\n\r]+| )/g,
+" ");g=g.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");h.append(e);e.$.outerHTML="\x3cpre\x3e"+g+"\x3c/pre\x3e";e.copyAttributes(h.getFirst());e=h.getFirst().remove()}else e.setHtml(g);b=e}else g?b=w(c?[a.getHtml()]:f(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,k;(k=c.getPrevious(L))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(d=D(k.getHtml(),/\n$/,"")+"\n\n"+D(c.getHtml(),/^\n/,""),CKEDITOR.env.ie?c.$.outerHTML="\x3cpre\x3e"+d+"\x3c/pre\x3e":
+c.setHtml(d),k.remove())}else c&&m(b)}function f(a){var b=[];D(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"\x3c/pre\x3e"+c+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function D(a,b,c){var d="",e="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function w(a,b){var c;
+1<a.length&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var d=0;d<a.length;d++){var e=a[d],e=e.replace(/(\r\n|\r)/g,"\n"),e=D(e,/^[ \t]*\n/,""),e=D(e,/\n$/,""),e=D(e,/^[ \t]+|[ \t]+$/g,function(a,b){return 1==a.length?"\x26nbsp;":b?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),e=e.replace(/\n/g,"\x3cbr\x3e"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e);
+c.append(f)}else b.setHtml(e)}return c||b}function A(a,b){var c=this._.definition,d=c.attributes,c=c.styles,e=l(this)[a.getName()],f=CKEDITOR.tools.isEmpty(d)&&CKEDITOR.tools.isEmpty(c),g;for(g in d)if("class"!=g&&!this._.definition.fullMatch||a.getAttribute(g)==r(g,d[g]))b&&"data-"==g.slice(0,5)||(f=a.hasAttribute(g),a.removeAttribute(g));for(var h in c)this._.definition.fullMatch&&a.getStyle(h)!=r(h,c[h],!0)||(f=f||!!a.getStyle(h),a.removeStyle(h));x(a,e,E[a.getName()]);f&&(this._.definition.alwaysRemoveElement?
+m(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?m(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function G(a){for(var b=l(this),c=a.getElementsByTag(this.element),d,e=c.count();0<=--e;)d=c.getItem(e),d.isReadOnly()||A.call(this,d,!0);for(var f in b)if(f!=this.element)for(c=a.getElementsByTag(f),e=c.count()-1;0<=e;e--)d=c.getItem(e),d.isReadOnly()||x(d,b[f])}function x(a,b,c){if(b=b&&b.attributes)for(var d=0;d<b.length;d++){var e=b[d][0],
+f;if(f=a.getAttribute(e)){var g=b[d][1];(null===g||g.test&&g.test(f)||"string"==typeof g&&f==g)&&a.removeAttribute(e)}}c||m(a)}function m(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var c=a.getPrevious(L),d=a.getNext(L);!c||c.type!=CKEDITOR.NODE_TEXT&&c.isBlockBoundary({br:1})||a.append("br",1);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else c=a.getFirst(),d=a.getLast(),a.remove(!0),c&&(c.type==CKEDITOR.NODE_ELEMENT&&c.mergeSiblings(),
+d&&!c.equals(d)&&d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings())}function K(a,b,c){var d;d=a.element;"*"==d&&(d="span");d=new CKEDITOR.dom.element(d,b);c&&c.copyAttributes(d);d=z(d,a);b.getCustomData("doc_processing_style")&&d.hasAttribute("id")?d.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return d}function z(a,b){var c=b._.definition,d=c.attributes,c=CKEDITOR.style.getStyleText(c);if(d)for(var e in d)a.setAttribute(e,d[e]);c&&a.setAttribute("style",c);return a}function I(a,
+b){for(var c in a)a[c]=a[c].replace(v,function(a,c){return b[c]})}function l(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},c=a._.definition.overrides;if(c){CKEDITOR.tools.isArray(c)||(c=[c]);for(var d=0;d<c.length;d++){var e=c[d],f,g;"string"==typeof e?f=e.toLowerCase():(f=e.element?e.element.toLowerCase():a.element,g=e.attributes);e=b[f]||(b[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return b}function r(a,b,c){var d=new CKEDITOR.dom.element("span");
+d[c?"setStyle":"setAttribute"](a,b);return d[c?"getStyle":"getAttribute"](a)}function J(a,b){function c(a,b){return"font-family"==b.toLowerCase()?a.replace(/["']/g,""):a}"string"==typeof a&&(a=CKEDITOR.tools.parseCssText(a));"string"==typeof b&&(b=CKEDITOR.tools.parseCssText(b,!0));for(var d in a)if(!(d in b)||c(b[d],d)!=c(a[d],d)&&"inherit"!=a[d]&&"inherit"!=b[d])return!1;return!0}function H(a,b,c){var d=a.document,e=a.getRanges();b=b?this.removeFromRange:this.applyToRange;var f,g;if(a.isFake&&a.isInTable())for(f=
+[],g=0;g<e.length;g++)f.push(e[g].clone());for(var h=e.createIterator();g=h.getNextRange();)b.call(this,g,c);a.selectRanges(f||e);d.removeCustomData("doc_processing_style")}var E={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},u={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,
+dd:1,form:1,audio:1,video:1},y=/\s*(?:;\s*|$)/,v=/#\((.+?)\)/g,B=CKEDITOR.dom.walker.bookmark(0,1),L=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);var c=a.attributes;c&&c.style&&(a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(c.style)),delete c.style);b&&(a=CKEDITOR.tools.clone(a),I(a.attributes,b),I(a.styles,b));c=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase():
+a.element:"*";this.type=a.type||(E[c]?CKEDITOR.STYLE_BLOCK:u[c]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof CKEDITOR.dom.document)return H.call(this,a.getSelection());if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);H.call(this,a.getSelection(),0,a);this._.enterMode=b}},remove:function(a){if(a instanceof
+CKEDITOR.dom.document)return H.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);H.call(this,a.getSelection(),1,a);this._.enterMode=b}},applyToRange:function(a){this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?b:this.type==CKEDITOR.STYLE_BLOCK?k:this.type==CKEDITOR.STYLE_OBJECT?g:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==CKEDITOR.STYLE_BLOCK?
+n:this.type==CKEDITOR.STYLE_OBJECT?h:null;return this.removeFromRange(a)},applyToObject:function(a){z(a,this)},checkActive:function(a,b){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,b);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var c=a.elements,d=0,e;d<c.length;d++)if(e=c[d],this.type!=CKEDITOR.STYLE_INLINE||e!=a.block&&e!=a.blockLimit){if(this.type==CKEDITOR.STYLE_OBJECT){var f=e.getName();if(!("string"==typeof this.element?
+f==this.element:f in this.element))continue}if(this.checkElementRemovable(e,!0,b))return!0}}return!1},checkApplicable:function(a,b,c){b&&b instanceof CKEDITOR.filter&&(c=b);if(c&&!c.check(this))return!1;switch(this.type){case CKEDITOR.STYLE_OBJECT:return!!a.contains(this.element);case CKEDITOR.STYLE_BLOCK:return!!a.blockLimit.getDtd()[this.element]}return!0},checkElementMatch:function(a,b){var c=this._.definition;if(!a||!c.ignoreReadonly&&a.isReadOnly())return!1;var d=a.getName();if("string"==typeof this.element?
+d==this.element:d in this.element){if(!b&&!a.hasAttributes())return!0;if(d=c._AC)c=d;else{var d={},e=0,f=c.attributes;if(f)for(var g in f)e++,d[g]=f[g];if(g=CKEDITOR.style.getStyleText(c))d.style||e++,d.style=g;d._length=e;c=c._AC=d}if(c._length){for(var h in c)if("_length"!=h)if(d=a.getAttribute(h)||"","style"==h?J(c[h],d):c[h]==d){if(!b)return!0}else if(b)return!1;if(b)return!0}else return!0}return!1},checkElementRemovable:function(a,b,c){if(this.checkElementMatch(a,b,c))return!0;if(b=l(this)[a.getName()]){var d;
+if(!(b=b.attributes))return!0;for(c=0;c<b.length;c++)if(d=b[c][0],d=a.getAttribute(d)){var e=b[c][1];if(null===e)return!0;if("string"==typeof e){if(d==e)return!0}else if(e.test(d))return!0}}return!1},buildPreview:function(a){var b=this._.definition,c=[],d=b.element;"bdo"==d&&(d="span");var c=["\x3c",d],e=b.attributes;if(e)for(var f in e)c.push(" ",f,'\x3d"',e[f],'"');(e=CKEDITOR.style.getStyleText(b))&&c.push(' style\x3d"',e,'"');c.push("\x3e",a||b.name,"\x3c/",d,"\x3e");return c.join("")},getDefinition:function(){return this._.definition}};
+CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(y,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(y,";");"inherit"==f?d+=g:c+=g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,!0));return a._ST=c+d};CKEDITOR.style.customHandlers={};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),
+{assignedTo:CKEDITOR.STYLE_OBJECT},a,!0);return this.customHandlers[a.type]=b};var V=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,O=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();CKEDITOR.styleCommand=function(a,d){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,d,!0)};
CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)};CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);CKEDITOR.loadStylesSet=function(a,d,b){CKEDITOR.stylesSet.addExternal(a,d,"");CKEDITOR.stylesSet.load(a,b)};
-CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,d){var b=this._.styleStateChangeCallbacks;b||(b=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var d=0;d<b.length;d++){var g=b[d],l=g.style.checkActive(a.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;g.fn.call(this,l)}}));b.push({style:a,fn:d})},applyStyle:function(a){a.apply(this)},removeStyle:function(a){a.remove(this)},getStylesSet:function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions);
+CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,d){var b=this._.styleStateChangeCallbacks;b||(b=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var d=0;d<b.length;d++){var g=b[d],h=g.style.checkActive(a.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;g.fn.call(this,h)}}));b.push({style:a,fn:d})},applyStyle:function(a){a.apply(this)},removeStyle:function(a){a.remove(this)},getStylesSet:function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions);
else{var d=this,b=d.config.stylesCombo_stylesSet||d.config.stylesSet;if(!1===b)a(null);else if(b instanceof Array)d._.stylesDefinitions=b,a(b);else{b||(b="default");var b=b.split(":"),c=b[0];CKEDITOR.stylesSet.addExternal(c,b[1]?b.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(c,function(b){d._.stylesDefinitions=b[c];a(d._.stylesDefinitions)})}}}});
CKEDITOR.dom.comment=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createComment(a));CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"\x3c!--"+this.$.nodeValue+"--\x3e"}});"use strict";
-(function(){var a={},d={},b;for(b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list||(a[b]=1);for(b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit||b in CKEDITOR.dtd.$empty||(d[b]=1);CKEDITOR.dom.elementPath=function(b,e){var g=null,l=null,k=[],n=b,w;e=e||b.getDocument().getBody();do if(n.type==CKEDITOR.NODE_ELEMENT){k.push(n);if(!this.lastElement&&(this.lastElement=n,n.is(CKEDITOR.dtd.$object)||"false"==n.getAttribute("contenteditable")))continue;if(n.equals(e))break;if(!l&&(w=n.getName(),
-"true"==n.getAttribute("contenteditable")?l=n:!g&&d[w]&&(g=n),a[w])){if(w=!g&&"div"==w){a:{w=n.getChildren();for(var f=0,x=w.count();f<x;f++){var A=w.getItem(f);if(A.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[A.getName()]){w=!0;break a}}w=!1}w=!w}w?g=n:l=n}}while(n=n.getParent());l||(l=e);this.block=g;this.blockLimit=l;this.root=e;this.elements=k}})();
-CKEDITOR.dom.elementPath.prototype={compare:function(a){var d=this.elements;a=a&&a.elements;if(!a||d.length!=a.length)return!1;for(var b=0;b<d.length;b++)if(!d[b].equals(a[b]))return!1;return!0},contains:function(a,d,b){var c;"string"==typeof a&&(c=function(b){return b.getName()==a});a instanceof CKEDITOR.dom.element?c=function(b){return b.equals(a)}:CKEDITOR.tools.isArray(a)?c=function(b){return-1<CKEDITOR.tools.indexOf(a,b.getName())}:"function"==typeof a?c=a:"object"==typeof a&&(c=function(b){return b.getName()in
-a});var e=this.elements,g=e.length;d&&g--;b&&(e=Array.prototype.slice.call(e,0),e.reverse());for(d=0;d<g;d++)if(c(e[d]))return e[d];return null},isContextFor:function(a){var d;return a in CKEDITOR.dtd.$block?(d=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!d.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};
+(function(){var a={},d={},b;for(b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list||(a[b]=1);for(b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit||b in CKEDITOR.dtd.$empty||(d[b]=1);CKEDITOR.dom.elementPath=function(b,e){var g=null,h=null,k=[],n=b,q;e=e||b.getDocument().getBody();n||(n=e);do if(n.type==CKEDITOR.NODE_ELEMENT){k.push(n);if(!this.lastElement&&(this.lastElement=n,n.is(CKEDITOR.dtd.$object)||"false"==n.getAttribute("contenteditable")))continue;if(n.equals(e))break;if(!h&&(q=n.getName(),
+"true"==n.getAttribute("contenteditable")?h=n:!g&&d[q]&&(g=n),a[q])){if(q=!g&&"div"==q){a:{q=n.getChildren();for(var f=0,D=q.count();f<D;f++){var w=q.getItem(f);if(w.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[w.getName()]){q=!0;break a}}q=!1}q=!q}q?g=n:h=n}}while(n=n.getParent());h||(h=e);this.block=g;this.blockLimit=h;this.root=e;this.elements=k}})();
+CKEDITOR.dom.elementPath.prototype={compare:function(a){var d=this.elements;a=a&&a.elements;if(!a||d.length!=a.length)return!1;for(var b=0;b<d.length;b++)if(!d[b].equals(a[b]))return!1;return!0},contains:function(a,d,b){var c=0,e;"string"==typeof a&&(e=function(b){return b.getName()==a});a instanceof CKEDITOR.dom.element?e=function(b){return b.equals(a)}:CKEDITOR.tools.isArray(a)?e=function(b){return-1<CKEDITOR.tools.indexOf(a,b.getName())}:"function"==typeof a?e=a:"object"==typeof a&&(e=function(b){return b.getName()in
+a});var g=this.elements,h=g.length;d&&(b?c+=1:--h);b&&(g=Array.prototype.slice.call(g,0),g.reverse());for(;c<h;c++)if(e(g[c]))return g[c];return null},isContextFor:function(a){var d;return a in CKEDITOR.dtd.$block?(d=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!d.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};
CKEDITOR.dom.text=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createTextNode(a));this.$=a};CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node;
CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(a){this.$.nodeValue=a},split:function(a){var d=this.$.parentNode,b=d.childNodes.length,c=this.getLength(),e=this.getDocument(),g=new CKEDITOR.dom.text(this.$.splitText(a),e);d.childNodes.length==b&&(a>=c?(g=e.createText(""),g.insertAfter(this)):(a=e.createText(""),a.insertAfter(g),a.remove()));return g},substring:function(a,
d){return"number"!=typeof d?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,d)}});
-(function(){function a(a,c,d){var g=a.serializable,l=c[d?"endContainer":"startContainer"],k=d?"endOffset":"startOffset",n=g?c.document.getById(a.startNode):a.startNode;a=g?c.document.getById(a.endNode):a.endNode;l.equals(n.getPrevious())?(c.startOffset=c.startOffset-l.getLength()-a.getPrevious().getLength(),l=a.getNext()):l.equals(a.getPrevious())&&(c.startOffset-=l.getLength(),l=a.getNext());l.equals(n.getParent())&&c[k]++;l.equals(a.getParent())&&c[k]++;c[d?"endContainer":"startContainer"]=l;return c}
-CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,d)};var d={createIterator:function(){var a=this,c=CKEDITOR.dom.walker.bookmark(),d=[],g;return{getNextRange:function(l){g=void 0===g?0:g+1;var k=a[g];if(k&&1<a.length){if(!g)for(var n=a.length-1;0<=n;n--)d.unshift(a[n].createBookmark(!0));if(l)for(var w=0;a[g+w+1];){var f=k.document;l=0;n=f.getById(d[w].endNode);for(f=f.getById(d[w+1].startNode);;){n=
-n.getNextSourceNode(!1);if(f.equals(n))l=1;else if(c(n)||n.type==CKEDITOR.NODE_ELEMENT&&n.isBlockBoundary())continue;break}if(!l)break;w++}for(k.moveToBookmark(d.shift());w--;)n=a[++g],n.moveToBookmark(d.shift()),k.setEnd(n.endContainer,n.endOffset)}return k}}},createBookmarks:function(b){for(var c=[],d,g=0;g<this.length;g++){c.push(d=this[g].createBookmark(b,!0));for(var l=g+1;l<this.length;l++)this[l]=a(d,this[l]),this[l]=a(d,this[l],!0)}return c},createBookmarks2:function(a){for(var c=[],d=0;d<
+(function(){function a(a,c,d){var g=a.serializable,h=c[d?"endContainer":"startContainer"],k=d?"endOffset":"startOffset",n=g?c.document.getById(a.startNode):a.startNode;a=g?c.document.getById(a.endNode):a.endNode;h.equals(n.getPrevious())?(c.startOffset=c.startOffset-h.getLength()-a.getPrevious().getLength(),h=a.getNext()):h.equals(a.getPrevious())&&(c.startOffset-=h.getLength(),h=a.getNext());h.equals(n.getParent())&&c[k]++;h.equals(a.getParent())&&c[k]++;c[d?"endContainer":"startContainer"]=h;return c}
+CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,d)};var d={createIterator:function(){var a=this,c=CKEDITOR.dom.walker.bookmark(),d=[],g;return{getNextRange:function(h){g=void 0===g?0:g+1;var k=a[g];if(k&&1<a.length){if(!g)for(var n=a.length-1;0<=n;n--)d.unshift(a[n].createBookmark(!0));if(h)for(var q=0;a[g+q+1];){var f=k.document;h=0;n=f.getById(d[q].endNode);for(f=f.getById(d[q+1].startNode);;){n=
+n.getNextSourceNode(!1);if(f.equals(n))h=1;else if(c(n)||n.type==CKEDITOR.NODE_ELEMENT&&n.isBlockBoundary())continue;break}if(!h)break;q++}for(k.moveToBookmark(d.shift());q--;)n=a[++g],n.moveToBookmark(d.shift()),k.setEnd(n.endContainer,n.endOffset)}return k}}},createBookmarks:function(b){for(var c=[],d,g=0;g<this.length;g++){c.push(d=this[g].createBookmark(b,!0));for(var h=g+1;h<this.length;h++)this[h]=a(d,this[h]),this[h]=a(d,this[h],!0)}return c},createBookmarks2:function(a){for(var c=[],d=0;d<
this.length;d++)c.push(this[d].createBookmark2(a));return c},moveToBookmarks:function(a){for(var c=0;c<this.length;c++)this[c].moveToBookmark(a[c])}}})();
(function(){function a(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function d(b){var c=CKEDITOR.skin["ua_"+b],d=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,b){return a>b?-1:1}),e=0,g;e<c.length;e++)if(g=c[e],d.ie&&(g.replace(/^ie/,"")==d.version||d.quirks&&"iequirks"==g)&&(g="ie"),d[g]){b+="_"+c[e];break}return CKEDITOR.getUrl(a()+b+".css")}function b(a,b){g[a]||(CKEDITOR.document.appendStyleSheet(d(a)),g[a]=1);b&&b()}function c(a){var b=
-a.getById(l);b||(b=a.getHead().append("style"),b.setAttribute("id",l),b.setAttribute("type","text/css"));return b}function e(a,b,c){var d,e,g;if(CKEDITOR.env.webkit)for(b=b.split("}").slice(0,-1),e=0;e<b.length;e++)b[e]=b[e].split("{");for(var k=0;k<a.length;k++)if(CKEDITOR.env.webkit)for(e=0;e<b.length;e++){g=b[e][1];for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);a[k].$.sheet.addRule(b[e][0],g)}else{g=b;for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?
-a[k].$.styleSheet.cssText+=g:a[k].$.innerHTML+=g}}var g={};CKEDITOR.skin={path:a,loadPart:function(c,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){b(c,d)}):b(c,d)},getPath:function(a){return CKEDITOR.getUrl(d(a))},icons:{},addIcon:function(a,b,c,d){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:d||"16px"})},getIconStyle:function(a,b,c,d,e){var g;a&&(a=a.toLowerCase(),b&&(g=this.icons[a+"-rtl"]),
+a.getById(h);b||(b=a.getHead().append("style"),b.setAttribute("id",h),b.setAttribute("type","text/css"));return b}function e(a,b,c){var d,e,g;if(CKEDITOR.env.webkit)for(b=b.split("}").slice(0,-1),e=0;e<b.length;e++)b[e]=b[e].split("{");for(var h=0;h<a.length;h++)if(CKEDITOR.env.webkit)for(e=0;e<b.length;e++){g=b[e][1];for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);a[h].$.sheet.addRule(b[e][0],g)}else{g=b;for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?
+a[h].$.styleSheet.cssText+=g:a[h].$.innerHTML+=g}}var g={};CKEDITOR.skin={path:a,loadPart:function(c,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){b(c,d)}):b(c,d)},getPath:function(a){return CKEDITOR.getUrl(d(a))},icons:{},addIcon:function(a,b,c,d){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:d||"16px"})},getIconStyle:function(a,b,c,d,e){var g;a&&(a=a.toLowerCase(),b&&(g=this.icons[a+"-rtl"]),
g||(g=this.icons[a]));a=c||g&&g.path||"";d=d||g&&g.offset;e=e||g&&g.bgsize||"16px";a&&(a=a.replace(/'/g,"\\'"));return a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+d+"px;background-size:"+e+";"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var b=c(CKEDITOR.document);return(this.setUiColor=function(a){this.uiColor=a;var c=CKEDITOR.skin.chameleon,d="",g="";"function"==typeof c&&(d=c(this,"editor"),g=
-c(this,"panel"));a=[[n,a]];e([b],d,a);e(k,g,a)}).call(this,a)}});var l="cke_ui_color",k=[],n=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor;a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=c(a);k.push(a);var d=b.getUiColor();d&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[n,d]])}};b.on("panelShow",a);b.on("menuShow",a);b.config.uiColor&&b.setUiColor(b.config.uiColor)}})})();
+c(this,"panel"));a=[[n,a]];e([b],d,a);e(k,g,a)}).call(this,a)}});var h="cke_ui_color",k=[],n=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor;a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=c(a);k.push(a);var d=b.getUiColor();d&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[n,d]])}};b.on("panelShow",a);b.on("menuShow",a);b.config.uiColor&&b.setUiColor(b.config.uiColor)}})})();
(function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=!1;else{var a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"width:0;height:0;position:absolute;left:-10000px;border:1px solid;border-color:red blue"\x3e\x3c/div\x3e',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var d=a.getComputedStyle("border-top-color"),b=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!d||d!=b)}catch(c){CKEDITOR.env.hc=!1}a.remove()}CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc");CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,d=0;d<a.length;d++)CKEDITOR.editor.prototype.constructor.apply(a[d][0],a[d][1]),CKEDITOR.add(a[d][0])})();/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.skin.name="moono";CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8,gecko";CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8";
new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",v);CKEDITOR.dialog.addUIElement("password",v);CKEDITOR.dialog.addUIElement("textarea",n);CKEDITOR.dialog.addUIElement("checkbox",n);CKEDITOR.dialog.addUIElement("radio",n);CKEDITOR.dialog.addUIElement("button",n);CKEDITOR.dialog.addUIElement("select",n);CKEDITOR.dialog.addUIElement("file",n);CKEDITOR.dialog.addUIElement("fileButton",n);CKEDITOR.dialog.addUIElement("html",
n);CKEDITOR.dialog.addUIElement("fieldset",{build:function(b,a,d){for(var f=a.children,c,e=[],h=[],g=0;g<f.length&&(c=f[g]);g++){var k=[];e.push(k);h.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b,c,k))}return new CKEDITOR.ui.dialog[a.type](b,h,e,d,a)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;CKEDITOR.DIALOG_STATE_IDLE=1;CKEDITOR.DIALOG_STATE_BUSY=2;
(function(){function x(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,c=b-1;c>b-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function A(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;c<b+a;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function K(a,b){for(var c=a.$.getElementsByTagName("input"),
-d=0,e=c.length;d<e;d++){var f=new CKEDITOR.dom.element(c[d]);"text"==f.getAttribute("type").toLowerCase()&&(b?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function T(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})}
-function U(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function V(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",W).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),c=b.getChild([0,0,0,0,0]),d=c.getChild(0),e=c.getChild(1);a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c);
-!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('\x3ciframe frameBorder\x3d"0" class\x3d"cke_iframe_shim" src\x3d"'+a+'" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(c.getParent()));d.unselectable();e.unselectable();return{element:b,parts:{dialog:b.getChild(0),title:d,close:e,tabs:c.getChild(2),contents:c.getChild([3,0,0,0]),
+e=0,d=c.length;e<d;e++){var f=new CKEDITOR.dom.element(c[e]);"text"==f.getAttribute("type").toLowerCase()&&(b?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function T(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})}
+function U(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function V(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",W).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),c=b.getChild([0,0,0,0,0]),e=c.getChild(0),d=c.getChild(1);a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c);
+!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('\x3ciframe frameBorder\x3d"0" class\x3d"cke_iframe_shim" src\x3d"'+a+'" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(c.getParent()));e.unselectable();d.unselectable();return{element:b,parts:{dialog:b.getChild(0),title:e,close:d,tabs:c.getChild(2),contents:c.getChild([3,0,0,0]),
footer:c.getChild([3,0,1,0])}}}function L(a,b,c){this.element=b;this.focusIndex=c;this.tabIndex=0;this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});b.on("focus",function(){this.fire("mouseover")});b.on("blur",function(){this.fire("mouseout")})}function X(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow();
-c.on("resize",b);a.on("hide",function(){c.removeListener("resize",b)})}function M(a,b){this._={dialog:a};CKEDITOR.tools.extend(this,b)}function Y(a){function b(b){var c=a.getSize(),k=CKEDITOR.document.getWindow().getViewPaneSize(),q=b.data.$.screenX,n=b.data.$.screenY,r=q-d.x,l=n-d.y;d={x:q,y:n};e.x+=r;e.y+=l;a.move(e.x+h[3]<g?-h[3]:e.x-h[1]>k.width-c.width-g?k.width-c.width+("rtl"==f.lang.dir?0:h[1]):e.x,e.y+h[0]<g?-h[0]:e.y-h[2]>k.height-c.height-g?k.height-c.height+h[2]:e.y,1);b.data.preventDefault()}
-function c(){CKEDITOR.document.removeListener("mousemove",b);CKEDITOR.document.removeListener("mouseup",c);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",c)}}var d=null,e=null,f=a.getParentEditor(),g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20);a.parts.title.on("mousedown",function(g){d={x:g.data.$.screenX,y:g.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",
-c);e=a.getPosition();if(CKEDITOR.env.ie6Compat){var f=u.getChild(0).getFrameDocument();f.on("mousemove",b);f.on("mouseup",c)}g.data.preventDefault()},a)}function Z(a){function b(b){var c="rtl"==f.lang.dir,n=k.width,q=k.height,G=n+(b.data.$.screenX-m.x)*(c?-1:1)*(a._.moved?1:2),H=q+(b.data.$.screenY-m.y)*(a._.moved?1:2),B=a._.element.getFirst(),B=c&&B.getComputedStyle("right"),C=a.getPosition();C.y+H>p.height&&(H=p.height-C.y);(c?B:C.x)+G>p.width&&(G=p.width-(c?B:C.x));if(e==CKEDITOR.DIALOG_RESIZE_WIDTH||
-e==CKEDITOR.DIALOG_RESIZE_BOTH)n=Math.max(d.minWidth||0,G-g);if(e==CKEDITOR.DIALOG_RESIZE_HEIGHT||e==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(d.minHeight||0,H-h);a.resize(n,q);a._.moved||a.layout();b.data.preventDefault()}function c(){CKEDITOR.document.removeListener("mouseup",c);CKEDITOR.document.removeListener("mousemove",b);q&&(q.remove(),q=null);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mouseup",c);a.removeListener("mousemove",b)}}var d=a.definition,e=d.resizable;
-if(e!=CKEDITOR.DIALOG_RESIZE_NONE){var f=a.getParentEditor(),g,h,p,m,k,q,n=CKEDITOR.tools.addFunction(function(e){k=a.getSize();var d=a.parts.contents;d.$.getElementsByTagName("iframe").length&&(q=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_dialog_resize_cover" style\x3d"height: 100%; position: absolute; width: 100%;"\x3e\x3c/div\x3e'),d.append(q));h=k.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks));g=k.width-a.parts.contents.getSize("width",
-1);m={x:e.screenX,y:e.screenY};p=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",c);CKEDITOR.env.ie6Compat&&(d=u.getChild(0).getFrameDocument(),d.on("mousemove",b),d.on("mouseup",c));e.preventDefault&&e.preventDefault()});a.on("load",function(){var b="";e==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":e==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+
-b+" cke_resizer_"+f.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(f.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+n+', event )"\x3e'+("ltr"==f.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(b,1)});f.on("destroy",function(){CKEDITOR.tools.removeFunction(n)})}}function I(a){a.data.preventDefault(1)}function N(a){var b=CKEDITOR.document.getWindow(),c=a.config,d=c.dialog_backgroundCoverColor||"white",e=c.dialog_backgroundCoverOpacity,f=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,
-e,f),g=z[c];g?g.show():(f=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",f,"; top: 0px; left: 0px; ",CKEDITOR.env.ie6Compat?"":"background-color: "+d,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(d="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+d+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",f.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'),f.push("void((function(){"+
-encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+d+"' );document.close();")+"})())"),f.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),f.push("\x3c/div\x3e"),g=CKEDITOR.dom.element.createFromHtml(f.join("")),g.setOpacity(void 0!==e?e:.5),g.on("keydown",I),g.on("keypress",I),g.on("keyup",I),g.appendTo(CKEDITOR.document.getBody()),z[c]=g);a.focusManager.add(g);
-u=g;a=function(){var a=b.getViewPaneSize();g.setStyles({width:a.width+"px",height:a.height+"px"})};var h=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;g.setStyles({left:a.x+"px",top:a.y+"px"});if(c){do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)}};J=a;b.on("resize",a);a();CKEDITOR.env.mac&&CKEDITOR.env.webkit||g.focus();if(CKEDITOR.env.ie6Compat){var p=function(){h();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){p.prevScrollHandler=
+c.on("resize",b);a.on("hide",function(){c.removeListener("resize",b)})}function M(a,b){this._={dialog:a};CKEDITOR.tools.extend(this,b)}function Y(a){function b(b){var c=a.getSize(),k=CKEDITOR.document.getWindow().getViewPaneSize(),q=b.data.$.screenX,n=b.data.$.screenY,r=q-e.x,l=n-e.y;e={x:q,y:n};d.x+=r;d.y+=l;a.move(d.x+h[3]<g?-h[3]:d.x-h[1]>k.width-c.width-g?k.width-c.width+("rtl"==f.lang.dir?0:h[1]):d.x,d.y+h[0]<g?-h[0]:d.y-h[2]>k.height-c.height-g?k.height-c.height+h[2]:d.y,1);b.data.preventDefault()}
+function c(){CKEDITOR.document.removeListener("mousemove",b);CKEDITOR.document.removeListener("mouseup",c);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",c)}}var e=null,d=null,f=a.getParentEditor(),g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20);a.parts.title.on("mousedown",function(g){e={x:g.data.$.screenX,y:g.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",
+c);d=a.getPosition();if(CKEDITOR.env.ie6Compat){var f=u.getChild(0).getFrameDocument();f.on("mousemove",b);f.on("mouseup",c)}g.data.preventDefault()},a)}function Z(a){function b(b){var c="rtl"==f.lang.dir,n=k.width,q=k.height,G=n+(b.data.$.screenX-m.x)*(c?-1:1)*(a._.moved?1:2),H=q+(b.data.$.screenY-m.y)*(a._.moved?1:2),B=a._.element.getFirst(),B=c&&B.getComputedStyle("right"),C=a.getPosition();C.y+H>p.height&&(H=p.height-C.y);(c?B:C.x)+G>p.width&&(G=p.width-(c?B:C.x));if(d==CKEDITOR.DIALOG_RESIZE_WIDTH||
+d==CKEDITOR.DIALOG_RESIZE_BOTH)n=Math.max(e.minWidth||0,G-g);if(d==CKEDITOR.DIALOG_RESIZE_HEIGHT||d==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(e.minHeight||0,H-h);a.resize(n,q);a._.moved||a.layout();b.data.preventDefault()}function c(){CKEDITOR.document.removeListener("mouseup",c);CKEDITOR.document.removeListener("mousemove",b);q&&(q.remove(),q=null);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mouseup",c);a.removeListener("mousemove",b)}}var e=a.definition,d=e.resizable;
+if(d!=CKEDITOR.DIALOG_RESIZE_NONE){var f=a.getParentEditor(),g,h,p,m,k,q,n=CKEDITOR.tools.addFunction(function(d){k=a.getSize();var e=a.parts.contents;e.$.getElementsByTagName("iframe").length&&(q=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_dialog_resize_cover" style\x3d"height: 100%; position: absolute; width: 100%;"\x3e\x3c/div\x3e'),e.append(q));h=k.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks));g=k.width-a.parts.contents.getSize("width",
+1);m={x:d.screenX,y:d.screenY};p=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",c);CKEDITOR.env.ie6Compat&&(e=u.getChild(0).getFrameDocument(),e.on("mousemove",b),e.on("mouseup",c));d.preventDefault&&d.preventDefault()});a.on("load",function(){var b="";d==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":d==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+
+b+" cke_resizer_"+f.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(f.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+n+', event )"\x3e'+("ltr"==f.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(b,1)});f.on("destroy",function(){CKEDITOR.tools.removeFunction(n)})}}function I(a){a.data.preventDefault(1)}function N(a){var b=CKEDITOR.document.getWindow(),c=a.config,e=CKEDITOR.skinName||a.config.skin,d=c.dialog_backgroundCoverColor||("moono-lisa"==e?"black":"white"),e=c.dialog_backgroundCoverOpacity,
+f=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,e,f),g=z[c];g?g.show():(f=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",f,"; top: 0px; left: 0px; ",CKEDITOR.env.ie6Compat?"":"background-color: "+d,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(d="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+d+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",f.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'),
+f.push("void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+d+"' );document.close();")+"})())"),f.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),f.push("\x3c/div\x3e"),g=CKEDITOR.dom.element.createFromHtml(f.join("")),g.setOpacity(void 0!==e?e:.5),g.on("keydown",I),g.on("keypress",I),g.on("keyup",I),g.appendTo(CKEDITOR.document.getBody()),
+z[c]=g);a.focusManager.add(g);u=g;a=function(){var a=b.getViewPaneSize();g.setStyles({width:a.width+"px",height:a.height+"px"})};var h=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;g.setStyles({left:a.x+"px",top:a.y+"px"});if(c){do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)}};J=a;b.on("resize",a);a();CKEDITOR.env.mac&&CKEDITOR.env.webkit||g.focus();if(CKEDITOR.env.ie6Compat){var p=function(){h();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){p.prevScrollHandler=
window.onscroll||function(){};window.onscroll=p},0);h()}}function O(a){u&&(a.focusManager.remove(u),a=CKEDITOR.document.getWindow(),u.hide(),a.removeListener("resize",J),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),J=null)}var v=CKEDITOR.tools.cssLength,W='\x3cdiv class\x3d"cke_reset_all {editorId} {editorDialogClass} {hidpi}" dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"dialog" aria-labelledby\x3d"cke_dialog_title_{id}"\x3e\x3ctable class\x3d"cke_dialog '+
CKEDITOR.env.cssClass+' cke_{langDir}" style\x3d"position:absolute" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_dialog_body" role\x3d"presentation"\x3e\x3cdiv id\x3d"cke_dialog_title_{id}" class\x3d"cke_dialog_title" role\x3d"presentation"\x3e\x3c/div\x3e\x3ca id\x3d"cke_dialog_close_button_{id}" class\x3d"cke_dialog_close_button" href\x3d"javascript:void(0)" title\x3d"{closeTitle}" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e\x3cdiv id\x3d"cke_dialog_tabs_{id}" class\x3d"cke_dialog_tabs" role\x3d"tablist"\x3e\x3c/div\x3e\x3ctable class\x3d"cke_dialog_contents" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_contents_{id}" class\x3d"cke_dialog_contents_body" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_footer_{id}" class\x3d"cke_dialog_footer" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e';
-CKEDITOR.dialog=function(a,b){function c(){var a=l._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;c<b;c++)a[c].focusIndex=c}function d(a){var b=l._.focusList;a=a||0;if(!(1>b.length)){var c=l._.currentFocusIndex;l._.tabBarMode&&0>a&&(c=0);try{b[c].getInputElement().$.blur()}catch(e){}var d=c,g=1<l._.pageCount;do{d+=a;if(g&&!l._.tabBarMode&&(d==b.length||-1==d)){l._.tabBarMode=!0;l._.tabs[l._.currentTabId][0].focus();
-l._.currentFocusIndex=-1;return}d=(d+b.length)%b.length;if(d==c)break}while(a&&!b[d].isFocusable());b[d].focus();"text"==b[d].type&&b[d].select()}}function e(b){if(l==CKEDITOR.dialog._.currentTop){var c=b.data.getKeystroke(),e="rtl"==a.lang.dir,g=[37,38,39,40];q=n=0;if(9==c||c==CKEDITOR.SHIFT+9)d(c==CKEDITOR.SHIFT+9?-1:1),q=1;else if(c==CKEDITOR.ALT+121&&!l._.tabBarMode&&1<l.getPageCount())l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1,q=1;else if(-1!=CKEDITOR.tools.indexOf(g,
-c)&&l._.tabBarMode)c=-1!=CKEDITOR.tools.indexOf([e?39:37,38],c)?x.call(l):A.call(l),l.selectPage(c),l._.tabs[c][0].focus(),q=1;else if(13!=c&&32!=c||!l._.tabBarMode)if(13==c)c=b.data.getTarget(),c.is("a","button","select","textarea")||c.is("input")&&"button"==c.$.type||((c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),q=1),n=1;else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),n=1;else return;else this.selectPage(this._.currentTabId),
-this._.tabBarMode=!1,this._.currentFocusIndex=-1,d(1),q=1;f(b)}}function f(a){q?a.data.preventDefault(1):n&&a.data.stopPropagation()}var g=CKEDITOR.dialog._.dialogDefinitions[b],h=CKEDITOR.tools.clone(aa),p=a.config.dialog_buttonsOrder||"OS",m=a.lang.dir,k={},q,n;("OS"==p&&CKEDITOR.env.mac||"rtl"==p&&"ltr"==m||"ltr"==p&&"rtl"==m)&&h.buttons.reverse();g=CKEDITOR.tools.extend(g(a),h);g=CKEDITOR.tools.clone(g);g=new P(this,g);h=V(a);this._={editor:a,element:h.element,name:b,contentSize:{width:0,height:0},
+CKEDITOR.dialog=function(a,b){function c(){var a=l._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;c<b;c++)a[c].focusIndex=c}function e(a){var b=l._.focusList;a=a||0;if(!(1>b.length)){var c=l._.currentFocusIndex;l._.tabBarMode&&0>a&&(c=0);try{b[c].getInputElement().$.blur()}catch(d){}var e=c,g=1<l._.pageCount;do{e+=a;if(g&&!l._.tabBarMode&&(e==b.length||-1==e)){l._.tabBarMode=!0;l._.tabs[l._.currentTabId][0].focus();
+l._.currentFocusIndex=-1;return}e=(e+b.length)%b.length;if(e==c)break}while(a&&!b[e].isFocusable());b[e].focus();"text"==b[e].type&&b[e].select()}}function d(b){if(l==CKEDITOR.dialog._.currentTop){var c=b.data.getKeystroke(),d="rtl"==a.lang.dir,g=[37,38,39,40];q=n=0;if(9==c||c==CKEDITOR.SHIFT+9)e(c==CKEDITOR.SHIFT+9?-1:1),q=1;else if(c==CKEDITOR.ALT+121&&!l._.tabBarMode&&1<l.getPageCount())l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1,q=1;else if(-1!=CKEDITOR.tools.indexOf(g,
+c)&&l._.tabBarMode)c=-1!=CKEDITOR.tools.indexOf([d?39:37,38],c)?x.call(l):A.call(l),l.selectPage(c),l._.tabs[c][0].focus(),q=1;else if(13!=c&&32!=c||!l._.tabBarMode)if(13==c)c=b.data.getTarget(),c.is("a","button","select","textarea")||c.is("input")&&"button"==c.$.type||((c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),q=1),n=1;else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),n=1;else return;else this.selectPage(this._.currentTabId),
+this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1),q=1;f(b)}}function f(a){q?a.data.preventDefault(1):n&&a.data.stopPropagation()}var g=CKEDITOR.dialog._.dialogDefinitions[b],h=CKEDITOR.tools.clone(aa),p=a.config.dialog_buttonsOrder||"OS",m=a.lang.dir,k={},q,n;("OS"==p&&CKEDITOR.env.mac||"rtl"==p&&"ltr"==m||"ltr"==p&&"rtl"==m)&&h.buttons.reverse();g=CKEDITOR.tools.extend(g(a),h);g=CKEDITOR.tools.clone(g);g=new P(this,g);h=V(a);this._={editor:a,element:h.element,name:b,contentSize:{width:0,height:0},
size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],currentFocusIndex:0,hasFocus:!1};this.parts=h.parts;CKEDITOR.tools.setTimeout(function(){a.fire("ariaWidget",this.parts.contents)},0,this);h={position:CKEDITOR.env.ie6Compat?"absolute":"fixed",top:0,visibility:"hidden"};h["rtl"==m?"right":"left"]=0;this.parts.dialog.setStyles(h);CKEDITOR.event.call(this);this.definition=g=CKEDITOR.fire("dialogDefinition",
{name:b,definition:g},a).definition;if(!("removeDialogTabs"in a._)&&a.config.removeDialogTabs){h=a.config.removeDialogTabs.split(";");for(m=0;m<h.length;m++)if(p=h[m].split(":"),2==p.length){var r=p[0];k[r]||(k[r]=[]);k[r].push(p[1])}a._.removeDialogTabs=k}if(a._.removeDialogTabs&&(k=a._.removeDialogTabs[b]))for(m=0;m<k.length;m++)g.removeContents(k[m]);if(g.onLoad)this.on("load",g.onLoad);if(g.onShow)this.on("show",g.onShow);if(g.onHide)this.on("hide",g.onHide);if(g.onOk)this.on("ok",function(b){a.fire("saveSnapshot");
setTimeout(function(){a.fire("saveSnapshot")},0);!1===g.onOk.call(this,b)&&(b.data.hide=!1)});this.state=CKEDITOR.DIALOG_STATE_IDLE;if(g.onCancel)this.on("cancel",function(a){!1===g.onCancel.call(this,a)&&(a.data.hide=!1)});var l=this,t=function(a){var b=l._.contents,c=!1,d;for(d in b)for(var e in b[d])if(c=a.call(this,b[d][e]))return};this.on("ok",function(a){t(function(b){if(b.validate){var c=b.validate(this),d="string"==typeof c||!1===c;d&&(a.data.hide=!1,a.stop());T.call(b,!d,"string"==typeof c?
-c:void 0);return d}})},this,null,0);this.on("cancel",function(b){t(function(c){if(c.isChanged())return a.config.dialog_noConfirmCancel||confirm(a.lang.common.confirmCancel)||(b.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=d;var y=this._.element;a.focusManager.add(y,1);this.on("show",function(){y.on("keydown",e,this);if(CKEDITOR.env.gecko)y.on("keypress",f,this)});this.on("hide",
-function(){y.removeListener("keydown",e);CKEDITOR.env.gecko&&y.removeListener("keypress",f);t(function(a){U.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",e,this,null,0)});this.on("show",function(){c();var b=1<l._.pageCount;a.config.dialog_startupFocusTab&&b?(l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1):this._.hasFocus||(this._.currentFocusIndex=b?-1:this._.focusList.length-1,g.onFocus?
-(b=g.onFocus.call(this))&&b.focus():d(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);Y(this);Z(this);(new CKEDITOR.dom.text(g.title,CKEDITOR.document)).appendTo(this.parts.title);for(m=0;m<g.contents.length;m++)(k=g.contents[m])&&this.addPage(k);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),
-this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,d(1)),a.data.preventDefault())},this);m=[];k=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:g.buttons},m).getChild();this.parts.footer.setHtml(m.join(""));for(m=0;m<k.length;m++)this._.buttons[k[m].id]=k[m]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){this._.contentSize&&this._.contentSize.width==
+c:void 0);return d}})},this,null,0);this.on("cancel",function(b){t(function(c){if(c.isChanged())return a.config.dialog_noConfirmCancel||confirm(a.lang.common.confirmCancel)||(b.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=e;var y=this._.element;a.focusManager.add(y,1);this.on("show",function(){y.on("keydown",d,this);if(CKEDITOR.env.gecko)y.on("keypress",f,this)});this.on("hide",
+function(){y.removeListener("keydown",d);CKEDITOR.env.gecko&&y.removeListener("keypress",f);t(function(a){U.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",d,this,null,0)});this.on("show",function(){c();var b=1<l._.pageCount;a.config.dialog_startupFocusTab&&b?(l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1):this._.hasFocus||(this._.currentFocusIndex=b?-1:this._.focusList.length-1,g.onFocus?
+(b=g.onFocus.call(this))&&b.focus():e(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);Y(this);Z(this);(new CKEDITOR.dom.text(g.title,CKEDITOR.document)).appendTo(this.parts.title);for(m=0;m<g.contents.length;m++)(k=g.contents[m])&&this.addPage(k);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),
+this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1)),a.data.preventDefault())},this);m=[];k=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:g.buttons},m).getChild();this.parts.footer.setHtml(m.join(""));for(m=0;m<k.length;m++)this._.buttons[k[m].id]=k[m]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){this._.contentSize&&this._.contentSize.width==
a&&this._.contentSize.height==b||(CKEDITOR.dialog.fire("resize",{dialog:this,width:a,height:b},this._.editor),this.fire("resize",{width:a,height:b},this._.editor),this.parts.contents.setStyles({width:a+"px",height:b+"px"}),"rtl"==this._.editor.lang.dir&&this._.position&&(this._.position.x=CKEDITOR.document.getWindow().getViewPaneSize().width-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)),this._.contentSize={width:a,height:b})}}(),getSize:function(){var a=this._.element.getFirst();
-return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,c){var d=this._.element.getFirst(),e="rtl"==this._.editor.lang.dir,f="fixed"==d.getComputedStyle("position");CKEDITOR.env.ie&&d.setStyle("zoom","100%");f&&this._.position&&this._.position.x==a&&this._.position.y==b||(this._.position={x:a,y:b},f||(f=CKEDITOR.document.getWindow().getScrollPosition(),a+=f.x,b+=f.y),e&&(f=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-f.width-a),b={top:(0<b?b:0)+"px"},
-b[e?"right":"left"]=(0<a?a:0)+"px",d.setStyles(b),c&&(this._.moved=1))},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display","block"):a.appendTo(CKEDITOR.document.getBody());this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();this.selectPage(this.definition.contents[0].id);
-null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,N(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this);
-a.on("keydown",Q);a.on("keyup",R);this._.hasFocus=!1;for(var c in b.contents)if(b.contents[c]){var a=b.contents[c],d=this._.tabs[a.id],e=a.requiredContent,f=0;if(d){for(var g in this._.contents[a.id]){var h=this._.contents[a.id][g];"hbox"!=h.type&&"vbox"!=h.type&&h.getInputElement()&&(h.requiredContent&&!this._.editor.activeFilter.check(h.requiredContent)?h.disable():(h.enable(),f++))}!f||e&&!this._.editor.activeFilter.check(e)?d[0].addClass("cke_dialog_tab_disabled"):d[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();
-X(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),d=(c.width-b.width)/2,e=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<e?e:0)>c.height||
-b.width+(0<d?d:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:d,this._.moved?this._.position.y:e)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},
-commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(ba(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();
-if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else O(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",Q);a.removeListener("keyup",R);var c=this._.editor;c.focus();setTimeout(function(){c.focusManager.unlock();CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialog;
-this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",d=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),e=this._.contents[a.id]={},f=d.getChild(),
-g=0;d=f.shift();)d.notAllowed||"hbox"==d.type||"vbox"==d.type||g++,e[d.id]=d,"function"==typeof d.getChild&&f.push.apply(f,d.getChild());g||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");d=CKEDITOR.env;e="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();c=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style\x3d"display:none"':"",' id\x3d"',e,'"',d.gecko&&!d.hc?"":' href\x3d"javascript:void(0)"',
-' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));b.setAttribute("aria-labelledby",e);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=c;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&&(S(this,this,"CTRL+"+a.accessKey,ca,da),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&
-!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=this._.tabs[b][0],d=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),d.hide());d.setAttribute("aria-hidden",b!=a)}var e=this._.tabs[a];e[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(K(e[1]),e[1].show(),setTimeout(function(){K(e[1],1)},0)):e[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},
-updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(a){var b=this._.tabs[a]&&this._.tabs[a][0];b&&1!=this._.pageCount&&b.isVisible()&&(a==this._.currentTabId&&this.selectPage(x.call(this)),b.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},
-getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},
-getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new L(this,a,b));else{this._.focusList.splice(b,0,new L(this,a,b));for(var c=b+1;c<this._.focusList.length;c++)this._.focusList[c].focusIndex++}},setState:function(a){if(this.state!=a){this.state=a;if(a==CKEDITOR.DIALOG_STATE_BUSY){if(!this.parts.spinner){var b=this.getParentEditor().lang.dir,c={attributes:{"class":"cke_dialog_spinner"},
-styles:{"float":"rtl"==b?"right":"left"}};c.styles["margin-"+("rtl"==b?"left":"right")]="8px";this.parts.spinner=CKEDITOR.document.createElement("div",c);this.parts.spinner.setHtml("\x26#8987;");this.parts.spinner.appendTo(this.parts.title,1)}this.parts.spinner.show();this.getButton("ok").disable()}else a==CKEDITOR.DIALOG_STATE_IDLE&&(this.parts.spinner&&this.parts.spinner.hide(),this.getButton("ok").enable());this.fire("state",a)}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){this._.dialogDefinitions[a]&&
-"function"!=typeof b||(this._.dialogDefinitions[a]=b)},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},isTabEnabled:function(a,b,c){a=a.config.removeDialogTabs;return!(a&&a.match(new RegExp("(?:^|;)"+b+":"+c+"(?:$|;)","i")))},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",
-{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel,"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,
-b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);var aa={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},D=function(a,b,c){for(var d=0,e;e=a[d];d++)if(e.id==b||c&&e[c]&&(e=D(e[c],
-b,c)))return e;return null},E=function(a,b,c,d,e){if(c){for(var f=0,g;g=a[f];f++){if(g.id==c)return a.splice(f,0,b),b;if(d&&g[d]&&(g=E(g[d],b,c,d,!0)))return g}if(e)return null}a.push(b);return b},F=function(a,b,c){for(var d=0,e;e=a[d];d++){if(e.id==b)return a.splice(d,1);if(c&&e[c]&&(e=F(e[c],b,c)))return e}return null},P=function(a,b){this.dialog=a;for(var c=b.contents,d=0,e;e=c[d];d++)c[d]=e&&new M(a,e);CKEDITOR.tools.extend(this,b)};P.prototype={getContents:function(a){return D(this.contents,
-a)},getButton:function(a){return D(this.buttons,a)},addContents:function(a,b){return E(this.contents,a,b)},addButton:function(a,b){return E(this.buttons,a,b)},removeContents:function(a){F(this.contents,a)},removeButton:function(a){F(this.buttons,a)}};M.prototype={get:function(a){return D(this.elements,a,"children")},add:function(a,b){return E(this.elements,a,b,"children")},remove:function(a){F(this.elements,a,"children")}};var J,z={},u,w={},Q=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=
-a.data.$.altKey,d=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(d?"SHIFT+":"")+e])&&b.length&&(b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},R=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,d=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(d?"SHIFT+":"")+e])&&b.length&&(b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),
-a.data.preventDefault()))},S=function(a,b,c,d,e){(w[c]||(w[c]=[])).push({uiElement:a,dialog:b,key:c,keyup:e||a.accessKeyUp,keydown:d||a.accessKeyDown})},ba=function(a){for(var b in w){for(var c=w[b],d=c.length-1;0<=d;d--)c[d].dialog!=a&&c[d].uiElement!=a||c.splice(d,1);0===c.length&&delete w[b]}},da=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},ca=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,d,e,f,g){if(!(4>arguments.length)){var h=(d.call?d(b):d)||
-"div",p=["\x3c",h," "],m=(e&&e.call?e(b):e)||{},k=(f&&f.call?f(b):f)||{},q=(g&&g.call?g.call(this,a,b):g)||"",n=this.domId=k.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(m.display="none",this.notAllowed=!0);k.id=n;var r={};b.type&&(r["cke_dialog_ui_"+b.type]=1);b.className&&(r[b.className]=1);b.disabled&&(r.cke_disabled=1);for(var l=k["class"]&&k["class"].split?k["class"].split(" "):[],n=0;n<l.length;n++)l[n]&&(r[l[n]]=1);l=
-[];for(n in r)l.push(n);k["class"]=l.join(" ");b.title&&(k.title=b.title);r=(b.style||"").split(";");b.align&&(l=b.align,m["margin-left"]="left"==l?0:"auto",m["margin-right"]="right"==l?0:"auto");for(n in m)r.push(n+":"+m[n]);b.hidden&&r.push("display:none");for(n=r.length-1;0<=n;n--)""===r[n]&&r.splice(n,1);0<r.length&&(k.style=(k.style?k.style+"; ":"")+r.join("; "));for(n in k)p.push(n+'\x3d"'+CKEDITOR.tools.htmlEncode(k[n])+'" ');p.push("\x3e",q,"\x3c/",h,"\x3e");c.push(p.join(""));(this._||(this._=
-{})).dialog=a;"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,b.setValue.call(this,c))}}));"function"==typeof b.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);
-this.registerEvents(b);this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&S(this,a,"CTRL+"+b.accessKey);var t=this;a.on("load",function(){var b=t.getInputElement();if(b){var c=t.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;t.fire("focus");c&&this.addClass(c)});b.on("blur",function(){t.fire("blur");c&&this.removeClass(c)})}});CKEDITOR.tools.extend(this,b);this.keyboardFocusable&&(this.tabIndex=
-b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=t.focusIndex}))}},hbox:function(a,b,c,d,e){if(!(4>arguments.length)){this._||(this._={});var f=this._.children=b,g=e&&e.widths||null,h=e&&e.height||null,p,m={role:"presentation"};e&&e.align&&(m.align=e.align);CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"hbox"},d,"table",{},m,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(p=0;p<c.length;p++){var b="cke_dialog_ui_hbox_child",
-d=[];0===p&&(b="cke_dialog_ui_hbox_first");p==c.length-1&&(b="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',b,'" role\x3d"presentation" ');g?g[p]&&d.push("width:"+v(g[p])):d.push("width:"+Math.floor(100/c.length)+"%");h&&d.push("height:"+v(h));e&&void 0!==e.padding&&d.push("padding:"+v(e.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[p].align&&d.push("text-align:"+f[p].align);0<d.length&&a.push('style\x3d"'+d.join("; ")+'" ');a.push("\x3e",c[p],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");
-return a.join("")})}},vbox:function(a,b,c,d,e){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=b,g=e&&e.width||null,h=e&&e.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"vbox"},d,"div",null,{role:"presentation"},function(){var b=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];b.push('style\x3d"');e&&e.expand&&b.push("height:100%;");b.push("width:"+v(g||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align\x3d"',
-CKEDITOR.tools.htmlEncode(e&&e.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("\x3e\x3ctbody\x3e");for(var d=0;d<c.length;d++){var k=[];b.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');g&&k.push("width:"+v(g||"100%"));h?k.push("height:"+v(h[d])):e&&e.expand&&k.push("height:"+Math.floor(100/c.length)+"%");e&&void 0!==e.padding&&k.push("padding:"+v(e.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[d].align&&k.push("text-align:"+f[d].align);0<k.length&&b.push('style\x3d"',
-k.join("; "),'" ');b.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',c[d],"\x3c/td\x3e\x3c/tr\x3e")}b.push("\x3c/tbody\x3e\x3c/table\x3e");return b.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,b){this.getInputElement().setValue(a);!b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},
-isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();return this},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,d=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})},e;for(e in a)if(c=
-e.match(b))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):d(this,this._.dialog,c[1].toLowerCase(),a[e]);return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=
-this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return this.isEnabled()&&this.isVisible()?!0:!1}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>
-a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,c,d){for(var e=c.children,f,g=[],h=[],p=0;p<e.length&&(f=e[p]);p++){var m=[];g.push(m);h.push(CKEDITOR.dialog._.uiElementBuilders[f.type].build(a,f,m))}return new CKEDITOR.ui.dialog[c.type](a,h,g,d,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",
-a)})();CKEDITOR.dialogCommand=function(a,b){this.dialogName=a;CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){a.openDialog(this.dialogName)},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,c=/^\d*(?:\.\d+)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,f=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=
-arguments;return function(){var b=this&&this.getValue?this.getValue():a[0],c,d=CKEDITOR.VALIDATE_AND,e=[],f;for(f=0;f<a.length;f++)if("function"==typeof a[f])e.push(a[f]);else break;f<a.length&&"string"==typeof a[f]&&(c=a[f],f++);f<a.length&&"number"==typeof a[f]&&(d=a[f]);var n=d==CKEDITOR.VALIDATE_AND?!0:!1;for(f=0;f<e.length;f++)n=d==CKEDITOR.VALIDATE_AND?n&&e[f](b):n||e[f](b);return n?!0:c}},regex:function(a,b){return function(c){c=this&&this.getValue?this.getValue():c;return a.test(c)?!0:b}},
-notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,a)},number:function(a){return this.regex(c,a)},cssLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return d.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return f.test(CKEDITOR.tools.trim(a))},a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},
-notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var c in z)z[c].remove();z={}}a=a.editor._.storedDialogs;for(var d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var c=null,d=CKEDITOR.dialog._.dialogDefinitions[a];null===CKEDITOR.dialog._.currentTop&&N(this);if("function"==typeof d)c=
-this._.storedDialogs||(this._.storedDialogs={}),c=c[a]||(c[a]=new CKEDITOR.dialog(this,a)),b&&b.call(c,c),c.show();else{if("failed"==d)throw O(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof d&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(d),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return c}})})();
-CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(x){x.on("doubleclick",function(A){A.data.dialog&&x.openDialog(A.data.dialog)},null,null,999)}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{af:1,ar:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-gb":1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,"fr-ca":1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},init:function(b){var c=this;b.addCommand("a11yHelp",{exec:function(){var a=b.langCode,a=c.availableLangs[a]?
-a:c.availableLangs[a.replace(/-.*/,"")]?a.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+a+".js"),function(){b.lang.a11yhelp=c.langEntries[a];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js");b.on("ariaEditorHelpLabel",function(a){a.data.label=b.lang.common.editorHelp})}})})();CKEDITOR.plugins.add("basicstyles",{init:function(c){var e=0,d=function(g,d,b,a){if(a){a=new CKEDITOR.style(a);var f=h[b];f.unshift(a);c.attachStyleStateChange(a,function(a){!c.readOnly&&c.getCommand(b).setState(a)});c.addCommand(b,new CKEDITOR.styleCommand(a,{contentForms:f}));c.ui.addButton&&c.ui.addButton(g,{label:d,command:b,toolbar:"basicstyles,"+(e+=10)})}},h={bold:["strong","b",["span",function(a){a=a.styles["font-weight"];return"bold"==a||700<=+a}]],italic:["em","i",["span",function(a){return"italic"==
+return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,c){var e=this._.element.getFirst(),d="rtl"==this._.editor.lang.dir,f="fixed"==e.getComputedStyle("position");CKEDITOR.env.ie&&e.setStyle("zoom","100%");f&&this._.position&&this._.position.x==a&&this._.position.y==b||(this._.position={x:a,y:b},f||(f=CKEDITOR.document.getWindow().getScrollPosition(),a+=f.x,b+=f.y),d&&(f=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-f.width-a),b={top:(0<b?b:0)+"px"},
+b[d?"right":"left"]=(0<a?a:0)+"px",e.setStyles(b),c&&(this._.moved=1))},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display","block"):a.appendTo(CKEDITOR.document.getBody());this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();null===
+this._.currentTabId&&this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,N(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/
+2),CKEDITOR.dialog._.currentTop=this);a.on("keydown",Q);a.on("keyup",R);this._.hasFocus=!1;for(var c in b.contents)if(b.contents[c]){var a=b.contents[c],e=this._.tabs[a.id],d=a.requiredContent,f=0;if(e){for(var g in this._.contents[a.id]){var h=this._.contents[a.id][g];"hbox"!=h.type&&"vbox"!=h.type&&h.getInputElement()&&(h.requiredContent&&!this._.editor.activeFilter.check(h.requiredContent)?h.disable():(h.enable(),f++))}!f||d&&!this._.editor.activeFilter.check(d)?e[0].addClass("cke_dialog_tab_disabled"):
+e[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();X(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),e=
+(c.width-b.width)/2,d=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<d?d:0)>c.height||b.width+(0<e?e:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:e,this._.moved?this._.position.y:d)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),
+setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility",
+"hidden");for(ba(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else O(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",Q);a.removeListener("keyup",R);var c=this._.editor;
+c.focus();setTimeout(function(){c.focusManager.unlock();CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialog;this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",e=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",
+children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),d=this._.contents[a.id]={},f=e.getChild(),g=0;e=f.shift();)e.notAllowed||"hbox"==e.type||"vbox"==e.type||g++,d[e.id]=e,"function"==typeof e.getChild&&f.push.apply(f,e.getChild());g||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");e=CKEDITOR.env;d="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();c=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',
+0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style\x3d"display:none"':"",' id\x3d"',d,'"',e.gecko&&!e.hc?"":' href\x3d"javascript:void(0)"',' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));b.setAttribute("aria-labelledby",d);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=c;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&&
+(S(this,this,"CTRL+"+a.accessKey,ca,da),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=this._.tabs[b][0],e=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),e.hide());e.setAttribute("aria-hidden",b!=a)}var d=this._.tabs[a];d[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||
+CKEDITOR.env.ie7Compat?(K(d[1]),d[1].show(),setTimeout(function(){K(d[1],1)},0)):d[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(a){var b=this._.tabs[a]&&this._.tabs[a][0];b&&1!=this._.pageCount&&b.isVisible()&&(a==this._.currentTabId&&this.selectPage(x.call(this)),b.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=
+this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},
+enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new L(this,a,b));else{this._.focusList.splice(b,0,new L(this,a,b));for(var c=b+1;c<this._.focusList.length;c++)this._.focusList[c].focusIndex++}},
+setState:function(a){if(this.state!=a){this.state=a;if(a==CKEDITOR.DIALOG_STATE_BUSY){if(!this.parts.spinner){var b=this.getParentEditor().lang.dir,c={attributes:{"class":"cke_dialog_spinner"},styles:{"float":"rtl"==b?"right":"left"}};c.styles["margin-"+("rtl"==b?"left":"right")]="8px";this.parts.spinner=CKEDITOR.document.createElement("div",c);this.parts.spinner.setHtml("\x26#8987;");this.parts.spinner.appendTo(this.parts.title,1)}this.parts.spinner.show();this.getButton("ok").disable()}else a==
+CKEDITOR.DIALOG_STATE_IDLE&&(this.parts.spinner&&this.parts.spinner.hide(),this.getButton("ok").enable());this.fire("state",a)}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){this._.dialogDefinitions[a]&&"function"!=typeof b||(this._.dialogDefinitions[a]=b)},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},isTabEnabled:function(a,b,c){a=a.config.removeDialogTabs;return!(a&&a.match(new RegExp("(?:^|;)"+b+":"+c+"(?:$|;)",
+"i")))},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel,
+"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);
+var aa={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},D=function(a,b,c){for(var e=0,d;d=a[e];e++)if(d.id==b||c&&d[c]&&(d=D(d[c],b,c)))return d;return null},E=function(a,b,c,e,d){if(c){for(var f=0,g;g=a[f];f++){if(g.id==c)return a.splice(f,0,b),b;if(e&&g[e]&&(g=E(g[e],b,c,e,!0)))return g}if(d)return null}a.push(b);return b},F=function(a,b,c){for(var e=0,d;d=a[e];e++){if(d.id==b)return a.splice(e,1);if(c&&d[c]&&(d=F(d[c],
+b,c)))return d}return null},P=function(a,b){this.dialog=a;for(var c=b.contents,e=0,d;d=c[e];e++)c[e]=d&&new M(a,d);CKEDITOR.tools.extend(this,b)};P.prototype={getContents:function(a){return D(this.contents,a)},getButton:function(a){return D(this.buttons,a)},addContents:function(a,b){return E(this.contents,a,b)},addButton:function(a,b){return E(this.buttons,a,b)},removeContents:function(a){F(this.contents,a)},removeButton:function(a){F(this.buttons,a)}};M.prototype={get:function(a){return D(this.elements,
+a,"children")},add:function(a,b){return E(this.elements,a,b,"children")},remove:function(a){F(this.elements,a,"children")}};var J,z={},u,w={},Q=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length&&(b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},R=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,
+e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length&&(b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),a.data.preventDefault()))},S=function(a,b,c,e,d){(w[c]||(w[c]=[])).push({uiElement:a,dialog:b,key:c,keyup:d||a.accessKeyUp,keydown:e||a.accessKeyDown})},ba=function(a){for(var b in w){for(var c=w[b],e=c.length-1;0<=e;e--)c[e].dialog!=a&&c[e].uiElement!=a||c.splice(e,1);0===c.length&&delete w[b]}},da=function(a,
+b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},ca=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,e,d,f,g){if(!(4>arguments.length)){var h=(e.call?e(b):e)||"div",p=["\x3c",h," "],m=(d&&d.call?d(b):d)||{},k=(f&&f.call?f(b):f)||{},q=(g&&g.call?g.call(this,a,b):g)||"",n=this.domId=k.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(m.display="none",this.notAllowed=!0);k.id=n;var r={};b.type&&(r["cke_dialog_ui_"+
+b.type]=1);b.className&&(r[b.className]=1);b.disabled&&(r.cke_disabled=1);for(var l=k["class"]&&k["class"].split?k["class"].split(" "):[],n=0;n<l.length;n++)l[n]&&(r[l[n]]=1);l=[];for(n in r)l.push(n);k["class"]=l.join(" ");b.title&&(k.title=b.title);r=(b.style||"").split(";");b.align&&(l=b.align,m["margin-left"]="left"==l?0:"auto",m["margin-right"]="right"==l?0:"auto");for(n in m)r.push(n+":"+m[n]);b.hidden&&r.push("display:none");for(n=r.length-1;0<=n;n--)""===r[n]&&r.splice(n,1);0<r.length&&(k.style=
+(k.style?k.style+"; ":"")+r.join("; "));for(n in k)p.push(n+'\x3d"'+CKEDITOR.tools.htmlEncode(k[n])+'" ');p.push("\x3e",q,"\x3c/",h,"\x3e");c.push(p.join(""));(this._||(this._={})).dialog=a;"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,b.setValue.call(this,c))}}));"function"==typeof b.getValue&&
+(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);this.registerEvents(b);this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&S(this,a,"CTRL+"+b.accessKey);var t=this;a.on("load",function(){var b=t.getInputElement();if(b){var c=t.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;t.fire("focus");
+c&&this.addClass(c)});b.on("blur",function(){t.fire("blur");c&&this.removeClass(c)})}});CKEDITOR.tools.extend(this,b);this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=t.focusIndex}))}},hbox:function(a,b,c,e,d){if(!(4>arguments.length)){this._||(this._={});var f=this._.children=b,g=d&&d.widths||null,h=d&&d.height||null,p,m={role:"presentation"};d&&d.align&&(m.align=d.align);CKEDITOR.ui.dialog.uiElement.call(this,
+a,d||{type:"hbox"},e,"table",{},m,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(p=0;p<c.length;p++){var b="cke_dialog_ui_hbox_child",e=[];0===p&&(b="cke_dialog_ui_hbox_first");p==c.length-1&&(b="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',b,'" role\x3d"presentation" ');g?g[p]&&e.push("width:"+v(g[p])):e.push("width:"+Math.floor(100/c.length)+"%");h&&e.push("height:"+v(h));d&&void 0!==d.padding&&e.push("padding:"+v(d.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&
+f[p].align&&e.push("text-align:"+f[p].align);0<e.length&&a.push('style\x3d"'+e.join("; ")+'" ');a.push("\x3e",c[p],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");return a.join("")})}},vbox:function(a,b,c,e,d){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=b,g=d&&d.width||null,h=d&&d.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,d||{type:"vbox"},e,"div",null,{role:"presentation"},function(){var b=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];
+b.push('style\x3d"');d&&d.expand&&b.push("height:100%;");b.push("width:"+v(g||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align\x3d"',CKEDITOR.tools.htmlEncode(d&&d.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("\x3e\x3ctbody\x3e");for(var e=0;e<c.length;e++){var k=[];b.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');g&&k.push("width:"+v(g||"100%"));h?k.push("height:"+v(h[e])):d&&d.expand&&k.push("height:"+Math.floor(100/c.length)+"%");
+d&&void 0!==d.padding&&k.push("padding:"+v(d.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[e].align&&k.push("text-align:"+f[e].align);0<k.length&&b.push('style\x3d"',k.join("; "),'" ');b.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',c[e],"\x3c/td\x3e\x3c/tr\x3e")}b.push("\x3c/tbody\x3e\x3c/table\x3e");return b.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},
+setValue:function(a,b){this.getInputElement().setValue(a);!b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();
+return this},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,e=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})},d;for(d in a)if(c=d.match(b))this.eventProcessors[d]?this.eventProcessors[d].call(this,this._.dialog,a[d]):e(this,this._.dialog,c[1].toLowerCase(),a[d]);return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},
+disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return this.isEnabled()&&this.isVisible()?!0:!1}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,
+{getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,c,e){for(var d=c.children,f,g=[],h=[],p=0;p<d.length&&(f=d[p]);p++){var m=[];g.push(m);h.push(CKEDITOR.dialog._.uiElementBuilders[f.type].build(a,f,m))}return new CKEDITOR.ui.dialog[c.type](a,
+h,g,e,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",a)})();CKEDITOR.dialogCommand=function(a,b){this.dialogName=a;CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){var b=this.tabId;a.openDialog(this.dialogName,function(a){b&&a.selectPage(b)})},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,c=/^\d*(?:\.\d+)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,
+f=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=arguments;return function(){var b=this&&this.getValue?this.getValue():a[0],c,d=CKEDITOR.VALIDATE_AND,e=[],f;for(f=0;f<a.length;f++)if("function"==typeof a[f])e.push(a[f]);else break;f<a.length&&"string"==typeof a[f]&&(c=a[f],f++);f<a.length&&"number"==typeof a[f]&&(d=a[f]);var n=d==CKEDITOR.VALIDATE_AND?!0:!1;for(f=0;f<e.length;f++)n=d==CKEDITOR.VALIDATE_AND?n&&
+e[f](b):n||e[f](b);return n?!0:c}},regex:function(a,b){return function(c){c=this&&this.getValue?this.getValue():c;return a.test(c)?!0:b}},notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,a)},number:function(a){return this.regex(c,a)},cssLength:function(a){return this.functions(function(a){return d.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return f.test(CKEDITOR.tools.trim(a))},
+a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var c in z)z[c].remove();z={}}a=a.editor._.storedDialogs;for(var d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var c=null,e=CKEDITOR.dialog._.dialogDefinitions[a];
+null===CKEDITOR.dialog._.currentTop&&N(this);if("function"==typeof e)c=this._.storedDialogs||(this._.storedDialogs={}),c=c[a]||(c[a]=new CKEDITOR.dialog(this,a)),b&&b.call(c,c),c.show();else{if("failed"==e)throw O(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof e&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(e),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,
+b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return c}})})();CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(x){x.on("doubleclick",function(A){A.data.dialog&&x.openDialog(A.data.dialog)},null,null,999)}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{af:1,ar:1,az:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-gb":1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,"fr-ca":1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},init:function(b){var c=this;b.addCommand("a11yHelp",{exec:function(){var a=
+b.langCode,a=c.availableLangs[a]?a:c.availableLangs[a.replace(/-.*/,"")]?a.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+a+".js"),function(){b.lang.a11yhelp=c.langEntries[a];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js");b.on("ariaEditorHelpLabel",function(a){a.data.label=b.lang.common.editorHelp})}})})();(function(){function f(c){var a=this.att;c=c&&c.hasAttribute(a)&&c.getAttribute(a)||"";void 0!==c&&this.setValue(c)}function g(){for(var c,a=0;a<arguments.length;a++)if(arguments[a]instanceof CKEDITOR.dom.element){c=arguments[a];break}if(c){var a=this.att,b=this.getValue();b?c.setAttribute(a,b):c.removeAttribute(a,b)}}var k={id:1,dir:1,classes:1,styles:1};CKEDITOR.plugins.add("dialogadvtab",{requires:"dialog",allowedContent:function(c){c||(c=k);var a=[];c.id&&a.push("id");c.dir&&a.push("dir");var b=
+"";a.length&&(b+="["+a.join(",")+"]");c.classes&&(b+="(*)");c.styles&&(b+="{*}");return b},createAdvancedTab:function(c,a,b){a||(a=k);var d=c.lang.common,h={id:"advanced",label:d.advancedTab,title:d.advancedTab,elements:[{type:"vbox",padding:1,children:[]}]},e=[];if(a.id||a.dir)a.id&&e.push({id:"advId",att:"id",type:"text",requiredContent:b?b+"[id]":null,label:d.id,setup:f,commit:g}),a.dir&&e.push({id:"advLangDir",att:"dir",type:"select",requiredContent:b?b+"[dir]":null,label:d.langDir,"default":"",
+style:"width:100%",items:[[d.notSet,""],[d.langDirLTR,"ltr"],[d.langDirRTL,"rtl"]],setup:f,commit:g}),h.elements[0].children.push({type:"hbox",widths:["50%","50%"],children:[].concat(e)});if(a.styles||a.classes)e=[],a.styles&&e.push({id:"advStyles",att:"style",type:"text",requiredContent:b?b+"{cke-xyz}":null,label:d.styles,"default":"",validate:CKEDITOR.dialog.validate.inlineStyle(d.invalidInlineStyle),onChange:function(){},getStyle:function(a,c){var b=this.getValue().match(new RegExp("(?:^|;)\\s*"+
+a+"\\s*:\\s*([^;]*)","i"));return b?b[1]:c},updateStyle:function(a,b){var d=this.getValue(),e=c.document.createElement("span");e.setAttribute("style",d);e.setStyle(a,b);d=CKEDITOR.tools.normalizeCssText(e.getAttribute("style"));this.setValue(d,1)},setup:f,commit:g}),a.classes&&e.push({type:"hbox",widths:["45%","55%"],children:[{id:"advCSSClasses",att:"class",type:"text",requiredContent:b?b+"(cke-xyz)":null,label:d.cssClasses,"default":"",setup:f,commit:g}]}),h.elements[0].children.push({type:"hbox",
+widths:["50%","50%"],children:[].concat(e)});return h}})})();CKEDITOR.plugins.add("basicstyles",{init:function(c){var e=0,d=function(g,d,b,a){if(a){a=new CKEDITOR.style(a);var f=h[b];f.unshift(a);c.attachStyleStateChange(a,function(a){!c.readOnly&&c.getCommand(b).setState(a)});c.addCommand(b,new CKEDITOR.styleCommand(a,{contentForms:f}));c.ui.addButton&&c.ui.addButton(g,{label:d,command:b,toolbar:"basicstyles,"+(e+=10)})}},h={bold:["strong","b",["span",function(a){a=a.styles["font-weight"];return"bold"==a||700<=+a}]],italic:["em","i",["span",function(a){return"italic"==
a.styles["font-style"]}]],underline:["u",["span",function(a){return"underline"==a.styles["text-decoration"]}]],strike:["s","strike",["span",function(a){return"line-through"==a.styles["text-decoration"]}]],subscript:["sub"],superscript:["sup"]},b=c.config,a=c.lang.basicstyles;d("Bold",a.bold,"bold",b.coreStyles_bold);d("Italic",a.italic,"italic",b.coreStyles_italic);d("Underline",a.underline,"underline",b.coreStyles_underline);d("Strike",a.strike,"strike",b.coreStyles_strike);d("Subscript",a.subscript,
"subscript",b.coreStyles_subscript);d("Superscript",a.superscript,"superscript",b.coreStyles_superscript);c.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}});CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"};CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"};CKEDITOR.config.coreStyles_underline={element:"u"};CKEDITOR.config.coreStyles_strike={element:"s",overrides:"strike"};CKEDITOR.config.coreStyles_subscript={element:"sub"};
-CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var f=CKEDITOR.addTemplate("panel",
-'\x3cdiv lang\x3d"{langCode}" id\x3d"{id}" dir\x3d{dir} class\x3d"cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style\x3d"z-index:{z-index}" role\x3d"presentation"\x3e{frame}\x3c/div\x3e'),g=CKEDITOR.addTemplate("panel-frame",'\x3ciframe id\x3d"{id}" class\x3d"cke_panel_frame" role\x3d"presentation" frameborder\x3d"0" src\x3d"{src}"\x3e\x3c/iframe\x3e'),h=CKEDITOR.addTemplate("panel-frame-inner",'\x3c!DOCTYPE html\x3e\x3chtml class\x3d"cke_panel_container {env}" dir\x3d"{dir}" lang\x3d"{langCode}"\x3e\x3chead\x3e{css}\x3c/head\x3e\x3cbody class\x3d"cke_{dir}" style\x3d"margin:0;padding:0" onload\x3d"{onload}"\x3e\x3c/body\x3e\x3c/html\x3e');
-CKEDITOR.ui.panel.prototype={render:function(a,b){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},this));a.write(h.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+
-b+");"},d)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("keydown",function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var d={editorId:a.id,id:this.id,langCode:a.langCode,
-dir:a.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":a.config.baseFloatZIndex+1};if(this.isFramed){var e=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";d.frame=g.output({id:this.id+"_frame",src:e})}e=f.output(d);b&&b.push(e);return e},addBlock:function(a,b){b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(),
-b);this._.currentBlock||this.showBlock(a);return b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){a=this._.blocks[a];var b=this._.currentBlock,d=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");b&&b.hide();this._.currentBlock=a;CKEDITOR.fire("ariaWidget",d);a._.focusIndex=-1;this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a);a.show();return a},destroy:function(){this.element&&this.element.remove()}};CKEDITOR.ui.panel.block=
+CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var g=CKEDITOR.addTemplate("panel",
+'\x3cdiv lang\x3d"{langCode}" id\x3d"{id}" dir\x3d{dir} class\x3d"cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style\x3d"z-index:{z-index}" role\x3d"presentation"\x3e{frame}\x3c/div\x3e'),h=CKEDITOR.addTemplate("panel-frame",'\x3ciframe id\x3d"{id}" class\x3d"cke_panel_frame" role\x3d"presentation" frameborder\x3d"0" src\x3d"{src}"\x3e\x3c/iframe\x3e'),k=CKEDITOR.addTemplate("panel-frame-inner",'\x3c!DOCTYPE html\x3e\x3chtml class\x3d"cke_panel_container {env}" dir\x3d"{dir}" lang\x3d"{langCode}"\x3e\x3chead\x3e{css}\x3c/head\x3e\x3cbody class\x3d"cke_{dir}" style\x3d"margin:0;padding:0" onload\x3d"{onload}"\x3e\x3c/body\x3e\x3c/html\x3e');
+CKEDITOR.ui.panel.prototype={render:function(a,b){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},this));a.write(k.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+
+b+");"},e)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("keydown",function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var e={editorId:a.id,id:this.id,langCode:a.langCode,
+dir:a.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":a.config.baseFloatZIndex+1};if(this.isFramed){var d=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";e.frame=h.output({id:this.id+"_frame",src:d})}d=g.output(e);b&&b.push(d);return d},addBlock:function(a,b){b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(),
+b);this._.currentBlock||this.showBlock(a);return b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){a=this._.blocks[a];var b=this._.currentBlock,e=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");b&&b.hide();this._.currentBlock=a;CKEDITOR.fire("ariaWidget",e);a._.focusIndex=-1;this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a);a.show();return a},destroy:function(){this.element&&this.element.remove()}};CKEDITOR.ui.panel.block=
CKEDITOR.tools.createClass({$:function(a,b){this.element=a.append(a.getDocument().createElement("div",{attributes:{tabindex:-1,"class":"cke_panel_block"},styles:{display:"none"}}));b&&CKEDITOR.tools.extend(this,b);this.element.setAttributes({role:this.attributes.role||"presentation","aria-label":this.attributes["aria-label"],title:this.attributes.title||this.attributes["aria-label"]});this.keys={};this._.focusIndex=-1;this.element.disableContextMenu()},_:{markItem:function(a){-1!=a&&(a=this.element.getElementsByTag("a").getItem(this._.focusIndex=
-a),CKEDITOR.env.webkit&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(a,b){var d=this.keys[a];switch(d){case "next":for(var e=this._.focusIndex,d=this.element.getElementsByTag("a"),c;c=d.getItem(++e);)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=e;c.focus();break}return c||
-b?!1:(this._.focusIndex=-1,this.onKeyDown(a,1));case "prev":e=this._.focusIndex;for(d=this.element.getElementsByTag("a");0<e&&(c=d.getItem(--e));){if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=e;c.focus();break}c=null}return c||b?!1:(this._.focusIndex=d.count(),this.onKeyDown(a,1));case "click":case "mouseup":return e=this._.focusIndex,(c=0<=e&&this.element.getElementsByTag("a").getItem(e))&&(c.$[d]?c.$[d]():c.$["on"+d]()),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});
-(function(){function v(a,b,c,l,h){h=CKEDITOR.tools.genKey(b.getUniqueId(),c.getUniqueId(),a.lang.dir,a.uiColor||"",l.css||"",h||"");var g=f[h];g||(g=f[h]=new CKEDITOR.ui.panel(b,l),g.element=c.append(CKEDITOR.dom.element.createFromHtml(g.render(a),b)),g.element.setStyles({display:"none",position:"absolute"}));return g}var f={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(a,b,c,l){function h(){e.hide()}c.forceIFrame=1;c.toolbarRelated&&a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&
-(b=CKEDITOR.document.getById("cke_"+a.name));var g=b.getDocument();l=v(a,g,b,c,l||0);var m=l.element,p=m.getFirst(),e=this;m.disableContextMenu();this.element=m;this._={editor:a,panel:l,parentElement:b,definition:c,document:g,iframe:p,children:[],dir:a.lang.dir,showBlockParams:null};a.on("mode",h);a.on("resize",h);g.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,
-b)},getBlock:function(a){return this._.panel.getBlock(a)},showBlock:function(a,b,c,l,h,g){var m=this._.panel,p=m.showBlock(a);this._.showBlockParams=[].slice.call(arguments);this.allowBlur(!1);var e=this._.editor.editable();this._.returnFocus=e.hasFocus?e:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);this._.hideTimeout=0;var k=this.element,e=this._.iframe,e=CKEDITOR.env.ie&&!CKEDITOR.env.edge?e:new CKEDITOR.dom.window(e.$.contentWindow),f=k.getDocument(),r=this._.parentElement.getPositionedAncestor(),
-t=b.getDocumentPosition(f),f=r?r.getDocumentPosition(f):{x:0,y:0},q="rtl"==this._.dir,d=t.x+(l||0)-f.x,n=t.y+(h||0)-f.y;!q||1!=c&&4!=c?q||2!=c&&3!=c||(d+=b.$.offsetWidth-1):d+=b.$.offsetWidth;if(3==c||4==c)n+=b.$.offsetHeight-1;this._.panel._.offsetParentId=b.getId();k.setStyles({top:n+"px",left:0,display:""});k.setOpacity(0);k.getFirst().removeStyle("width");this._.editor.focusManager.add(e);this._.blurSet||(CKEDITOR.event.useCapture=!0,e.on("blur",function(a){function u(){delete this._.returnFocus;
+a),CKEDITOR.env.webkit&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))},markFirstDisplayed:function(a){for(var b=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"none"==a.getStyle("display")},e=this._.getItems(),d,c,f=e.count()-1;0<=f;f--)if(d=e.getItem(f),d.getAscendant(b)||(c=d,this._.focusIndex=f),"true"==d.getAttribute("aria-selected")){c=d;this._.focusIndex=f;break}c&&(a&&a(),CKEDITOR.env.webkit&&c.getDocument().getWindow().focus(),c.focus(),this.onMark&&this.onMark(c))},
+getItems:function(){return this.element.getElementsByTag("a")}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(a,b){var e=this.keys[a];switch(e){case "next":for(var d=this._.focusIndex,e=this.element.getElementsByTag("a"),c;c=e.getItem(++d);)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=d;c.focus();break}return c||b?!1:(this._.focusIndex=-1,this.onKeyDown(a,
+1));case "prev":d=this._.focusIndex;for(e=this.element.getElementsByTag("a");0<d&&(c=e.getItem(--d));){if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=d;c.focus();break}c=null}return c||b?!1:(this._.focusIndex=e.count(),this.onKeyDown(a,1));case "click":case "mouseup":return d=this._.focusIndex,(c=0<=d&&this.element.getElementsByTag("a").getItem(d))&&(c.$[e]?c.$[e]():c.$["on"+e]()),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});
+(function(){function v(a,b,c,m,h){h=CKEDITOR.tools.genKey(b.getUniqueId(),c.getUniqueId(),a.lang.dir,a.uiColor||"",m.css||"",h||"");var g=f[h];g||(g=f[h]=new CKEDITOR.ui.panel(b,m),g.element=c.append(CKEDITOR.dom.element.createFromHtml(g.render(a),b)),g.element.setStyles({display:"none",position:"absolute"}));return g}var f={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(a,b,c,m){function h(){e.hide()}c.forceIFrame=1;c.toolbarRelated&&a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&
+(b=CKEDITOR.document.getById("cke_"+a.name));var g=b.getDocument();m=v(a,g,b,c,m||0);var n=m.element,k=n.getFirst(),e=this;n.disableContextMenu();this.element=n;this._={editor:a,panel:m,parentElement:b,definition:c,document:g,iframe:k,children:[],dir:a.lang.dir,showBlockParams:null};a.on("mode",h);a.on("resize",h);g.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,
+b)},getBlock:function(a){return this._.panel.getBlock(a)},showBlock:function(a,b,c,m,h,g){var n=this._.panel,k=n.showBlock(a);this._.showBlockParams=[].slice.call(arguments);this.allowBlur(!1);var e=this._.editor.editable();this._.returnFocus=e.hasFocus?e:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);this._.hideTimeout=0;var l=this.element,e=this._.iframe,e=CKEDITOR.env.ie&&!CKEDITOR.env.edge?e:new CKEDITOR.dom.window(e.$.contentWindow),f=l.getDocument(),r=this._.parentElement.getPositionedAncestor(),
+t=b.getDocumentPosition(f),f=r?r.getDocumentPosition(f):{x:0,y:0},q="rtl"==this._.dir,d=t.x+(m||0)-f.x,p=t.y+(h||0)-f.y;!q||1!=c&&4!=c?q||2!=c&&3!=c||(d+=b.$.offsetWidth-1):d+=b.$.offsetWidth;if(3==c||4==c)p+=b.$.offsetHeight-1;this._.panel._.offsetParentId=b.getId();l.setStyles({top:p+"px",left:0,display:""});l.setOpacity(0);l.getFirst().removeStyle("width");this._.editor.focusManager.add(e);this._.blurSet||(CKEDITOR.event.useCapture=!0,e.on("blur",function(a){function u(){delete this._.returnFocus;
this.hide()}this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&this.visible&&!this._.activeChild&&(CKEDITOR.env.iOS?this._.hideTimeout||(this._.hideTimeout=CKEDITOR.tools.setTimeout(u,0,this)):u.call(this))},this),e.on("focus",function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},this),CKEDITOR.env.iOS&&(e.on("touchstart",function(){clearTimeout(this._.hideTimeout)},this),e.on("touchend",function(){this._.hideTimeout=0;this.focus()},this)),CKEDITOR.event.useCapture=!1,
-this._.blurSet=1);m.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&!1===this.onEscape(a))return!1},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=k;a.removeStyle("width");if(p.autoSize){var b=p.element.getDocument(),b=(CKEDITOR.env.webkit||CKEDITOR.env.edge?p.element:b.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",b+10+"px");b=p.element.$.scrollHeight;CKEDITOR.env.ie&&
-CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",b+"px");m._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");q&&(d-=k.$.offsetWidth);k.setStyle("left",d+"px");var b=m.element.getWindow(),a=k.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,e=a.height||a.bottom-a.top,l=q?a.right:b.width-a.left,h=q?b.width-a.right:a.left;q?l<c&&(d=h>c?d+c:b.width>c?d-a.left:d-a.right+b.width):
-l<c&&(d=h>c?d-c:b.width>c?d-a.right+b.width:d-a.left);c=a.top;b.height-a.top<e&&(n=c>e?n-e:b.height>e?n-a.bottom+b.height:n-a.top);CKEDITOR.env.ie&&(b=a=new CKEDITOR.dom.element(k.$.offsetParent),"html"==b.getName()&&(b=b.getDocument().getBody()),"rtl"==b.getComputedStyle("direction")&&(d=CKEDITOR.env.ie8Compat?d-2*k.getDocument().getDocumentElement().$.scrollLeft:d-(a.$.scrollWidth-a.$.clientWidth)));var a=k.getFirst(),f;(f=a.getCustomData("activePanel"))&&f.onHide&&f.onHide.call(this,1);a.setCustomData("activePanel",
-this);k.setStyles({top:n+"px",left:d+"px"});k.setOpacity(1);g&&g()},this);m.isLoaded?a():m.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus();p.element.focus();CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=a);this.allowBlur(!0);this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},reposition:function(){var a=this._.showBlockParams;
-this.visible&&this._.showBlockParams&&(this.hide(),this.showBlock.apply(this,a))},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();a&&!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();
-this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),a.focus();delete this._.lastFocused;this._.showBlockParams=null;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!==a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,f,h,g){if(this._.activeChild!=a||a._.panel._.offsetParentId!=c.getId())this.hideChild(),a.onHide=
-CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,f,h,g),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){a.element.getChild(0).$.style.cssText+=""},100)},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),
-b;for(b in f){var c=f[b];a?c.destroy():c.element.hide()}a&&(f={})})})();CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(g){for(var h=g.config.menu_groups.split(","),p=g._.menuGroups={},n=g._.menuItems={},a=0;a<h.length;a++)p[h[a]]=a+1;g.addMenuGroup=function(b,a){p[b]=a||100};g.addMenuItem=function(a,c){p[c.group]&&(n[a]=new CKEDITOR.menuItem(this,a,c))};g.addMenuItems=function(a){for(var c in a)this.addMenuItem(c,a[c])};g.getMenuItem=function(a){return n[a]};g.removeMenuItem=function(a){delete n[a]}}});
-(function(){function g(a){a.sort(function(a,c){return a.group<c.group?-1:a.group>c.group?1:a.order<c.order?-1:a.order>c.order?1:0})}var h='\x3cspan class\x3d"cke_menuitem"\x3e\x3ca id\x3d"{id}" class\x3d"cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href\x3d"{href}" title\x3d"{title}" tabindex\x3d"-1"_cke_focus\x3d1 hidefocus\x3d"true" role\x3d"{role}" aria-haspopup\x3d"{hasPopup}" aria-disabled\x3d"{disabled}" {ariaChecked}';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(h+=' onkeypress\x3d"return false;"');
-CKEDITOR.env.gecko&&(h+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var h=h+(' onmouseover\x3d"CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout\x3d"CKEDITOR.tools.callFunction({moveOutFn},{index});" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;"\x3e'),p=CKEDITOR.addTemplate("menuItem",h+'\x3cspan class\x3d"cke_menubutton_inner"\x3e\x3cspan class\x3d"cke_menubutton_icon"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{iconStyle}"\x3e\x3c/span\x3e\x3c/span\x3e\x3cspan class\x3d"cke_menubutton_label"\x3e{label}\x3c/span\x3e{arrowHtml}\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e'),
-n=CKEDITOR.addTemplate("menuArrow",'\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspan\x3e{label}\x3c/span\x3e\x3c/span\x3e');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var c=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),m=c.block.attributes=c.attributes||{};!m.role&&(m.role="menu");this._.panelDefinition=
-c},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),c=this.editor.elementPath(),m=this._.listeners;this.removeAll();for(var e=0;e<m.length;e++){var l=m[e](b,a,c);if(l)for(var k in l){var f=this.editor.getMenuItem(k);!f||f.command&&!this.editor.getCommand(f.command).state||(f.state=l[k],this.add(f))}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1):
-27==a&&this.hide(1);return!1},onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,c=this.items[a];if(c=c.getItems&&c.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var m in c){var e=this.editor.getMenuItem(m);e&&(e.state=c[m],b.add(e))}var l=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+
-String(a));setTimeout(function(){b.show(l,2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,b,c,m){if(!this.parent&&(this._.onShow(),!this.items.length))return;b=b||("rtl"==this.editor.lang.dir?2:1);var e=this.items,l=this.editor,k=this._.panel,f=this._.element;if(!k){k=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);
-k.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);k.onShow=function(){k._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};k.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);f=k.addBlock(this.id,this._.panelDefinition.block);f.autoSize=!0;var d=f.keys;d[40]="next";d[9]="next";d[38]="prev";d[CKEDITOR.SHIFT+9]="prev";d["rtl"==l.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";d[32]=CKEDITOR.env.ie?"mouseup":
-"click";CKEDITOR.env.ie&&(d[13]="mouseup");f=this._.element=f.element;d=f.getDocument();d.getBody().setStyle("overflow","hidden");d.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,l.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);
-this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}g(e);for(var d=l.elementPath(),d=['\x3cdiv class\x3d"cke_menu'+(d&&d.direction()!=l.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],h=e.length,p=h&&e[0].group,n=0;n<h;n++){var q=e[n];p!=q.group&&(d.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),
-p=q.group);q.render(this,n,d)}d.push("\x3c/div\x3e");f.setHtml(d.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(k,this.id,a,b,c,m):k.showBlock(this.id,a,b,c,m);l.fire("menuShow",[k])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,c){CKEDITOR.tools.extend(this,c,{order:0,className:"cke_menubutton__"+b});this.group=
-a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(a,b,c){var h=a.id+String(b),e="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,l="",k=e==CKEDITOR.TRISTATE_ON?"on":e==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(l=' aria-checked\x3d"'+(e==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var f=this.getItems,d="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",g=this.name;this.icon&&!/\./.test(this.icon)&&(g=
-this.icon);a={id:h,name:this.name,iconName:g,label:this.label,cls:this.className||"",state:k,hasPopup:f?"true":"false",disabled:e==CKEDITOR.TRISTATE_DISABLED,title:this.label,href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(g,"rtl"==this.editor.lang.dir,g==this.icon?null:this.icon,this.iconOffset),arrowHtml:f?n.output({label:d}):"",role:this.role?this.role:"menuitem",ariaChecked:l};
-p.output(a,c)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(a){this.base.call(this,a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.contextmenu.options}}})},proto:{addTarget:function(a,e){a.on("contextmenu",function(a){a=a.data;var c=CKEDITOR.env.webkit?f:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey;if(!e||!c){a.preventDefault();if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var c=this.editor,
+this._.blurSet=1);n.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&!1===this.onEscape(a))return!1},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=l;a.removeStyle("width");if(k.autoSize){var b=k.element.getDocument(),b=(CKEDITOR.env.webkit||CKEDITOR.env.edge?k.element:b.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",b+10+"px");b=k.element.$.scrollHeight;CKEDITOR.env.ie&&
+CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",b+"px");n._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");q&&(d-=l.$.offsetWidth);l.setStyle("left",d+"px");var b=n.element.getWindow(),a=l.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,e=a.height||a.bottom-a.top,m=q?a.right:b.width-a.left,h=q?b.width-a.right:a.left;q?m<c&&(d=h>c?d+c:b.width>c?d-a.left:d-a.right+b.width):
+m<c&&(d=h>c?d-c:b.width>c?d-a.right+b.width:d-a.left);c=a.top;b.height-a.top<e&&(p=c>e?p-e:b.height>e?p-a.bottom+b.height:p-a.top);CKEDITOR.env.ie&&(b=a=new CKEDITOR.dom.element(l.$.offsetParent),"html"==b.getName()&&(b=b.getDocument().getBody()),"rtl"==b.getComputedStyle("direction")&&(d=CKEDITOR.env.ie8Compat?d-2*l.getDocument().getDocumentElement().$.scrollLeft:d-(a.$.scrollWidth-a.$.clientWidth)));var a=l.getFirst(),f;(f=a.getCustomData("activePanel"))&&f.onHide&&f.onHide.call(this,1);a.setCustomData("activePanel",
+this);l.setStyles({top:p+"px",left:d+"px"});l.setOpacity(1);g&&g()},this);n.isLoaded?a():n.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus();k.element.focus();CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=a);this.allowBlur(!0);CKEDITOR.env.ie?CKEDITOR.tools.setTimeout(function(){k.markFirstDisplayed?k.markFirstDisplayed():k._.markFirstDisplayed()},0):k.markFirstDisplayed?k.markFirstDisplayed():
+k._.markFirstDisplayed();this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},reposition:function(){var a=this._.showBlockParams;this.visible&&this._.showBlockParams&&(this.hide(),this.showBlock.apply(this,a))},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();a&&!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=
+this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),a.focus();delete this._.lastFocused;this._.showBlockParams=
+null;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!==a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,f,h,g){if(this._.activeChild!=a||a._.panel._.offsetParentId!=c.getId())this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,f,h,g),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){a.element.getChild(0).$.style.cssText+=
+""},100)},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),b;for(b in f){var c=f[b];a?c.destroy():c.element.hide()}a&&(f={})})})();CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(l){for(var h=l.config.menu_groups.split(","),r=l._.menuGroups={},t=l._.menuItems={},n=0;n<h.length;n++)r[h[n]]=n+1;l.addMenuGroup=function(a,b){r[a]=b||100};l.addMenuItem=function(a,b){r[b.group]&&(t[a]=new CKEDITOR.menuItem(this,a,b))};l.addMenuItems=function(a){for(var b in a)this.addMenuItem(b,a[b])};l.getMenuItem=function(a){return t[a]};l.removeMenuItem=function(a){delete t[a]}}});
+(function(){function l(a){a.sort(function(a,d){return a.group<d.group?-1:a.group>d.group?1:a.order<d.order?-1:a.order>d.order?1:0})}var h='\x3cspan class\x3d"cke_menuitem"\x3e\x3ca id\x3d"{id}" class\x3d"cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href\x3d"{href}" title\x3d"{title}" tabindex\x3d"-1" _cke_focus\x3d1 hidefocus\x3d"true" role\x3d"{role}" aria-label\x3d"{label}" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasPopup}" aria-disabled\x3d"{disabled}" {ariaChecked} draggable\x3d"false"';
+CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(h+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(h+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;" ondragstart\x3d"return false;"');var h=h+(' onmouseover\x3d"CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout\x3d"CKEDITOR.tools.callFunction({moveOutFn},{index});" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;"\x3e'),r=CKEDITOR.addTemplate("menuItem",
+h+'\x3cspan class\x3d"cke_menubutton_inner"\x3e\x3cspan class\x3d"cke_menubutton_icon"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{iconStyle}"\x3e\x3c/span\x3e\x3c/span\x3e\x3cspan class\x3d"cke_menubutton_label"\x3e{label}\x3c/span\x3e{shortcutHtml}{arrowHtml}\x3c/span\x3e\x3c/a\x3e\x3cspan id\x3d"{id}_description" class\x3d"cke_voice_label" aria-hidden\x3d"false"\x3e{ariaShortcut}\x3c/span\x3e\x3c/span\x3e'),t=CKEDITOR.addTemplate("menuArrow",'\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspan\x3e{label}\x3c/span\x3e\x3c/span\x3e'),
+n=CKEDITOR.addTemplate("menuShortcut",'\x3cspan class\x3d"cke_menubutton_label cke_menubutton_shortcut"\x3e{shortcut}\x3c/span\x3e');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var d=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),m=d.block.attributes=d.attributes||{};!m.role&&(m.role="menu");this._.panelDefinition=
+d},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),d=this.editor.elementPath(),m=this._.listeners;this.removeAll();for(var g=0;g<m.length;g++){var k=m[g](b,a,d);if(k)for(var e in k){var f=this.editor.getMenuItem(e);!f||f.command&&!this.editor.getCommand(f.command).state||(f.state=k[e],this.add(f))}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1):
+27==a&&this.hide(1);return!1},onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,d=this.items[a];if(d=d.getItems&&d.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var m in d){var g=this.editor.getMenuItem(m);g&&(g.state=d[m],b.add(g))}var k=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+
+String(a));setTimeout(function(){b.show(k,2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,b,d,m){if(!this.parent&&(this._.onShow(),!this.items.length))return;b=b||("rtl"==this.editor.lang.dir?2:1);var g=this.items,k=this.editor,e=this._.panel,f=this._.element;if(!e){e=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);
+e.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);e.onShow=function(){e._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};e.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);f=e.addBlock(this.id,this._.panelDefinition.block);f.autoSize=!0;var c=f.keys;c[40]="next";c[9]="next";c[38]="prev";c[CKEDITOR.SHIFT+9]="prev";c["rtl"==k.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";c[32]=CKEDITOR.env.ie?"mouseup":
+"click";CKEDITOR.env.ie&&(c[13]="mouseup");f=this._.element=f.element;c=f.getDocument();c.getBody().setStyle("overflow","hidden");c.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,k.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);
+this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}l(g);for(var c=k.elementPath(),c=['\x3cdiv class\x3d"cke_menu'+(c&&c.direction()!=k.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],h=g.length,n=h&&g[0].group,q=0;q<h;q++){var p=g[q];n!=p.group&&(c.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),
+n=p.group);p.render(this,q,c)}c.push("\x3c/div\x3e");f.setHtml(c.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(e,this.id,a,b,d,m):e.showBlock(this.id,a,b,d,m);k.fire("menuShow",[e])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,d){CKEDITOR.tools.extend(this,d,{order:0,className:"cke_menubutton__"+b});this.group=
+a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(a,b,d){var h=a.id+String(b),g="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,k="",e=this.editor,f,c,l=g==CKEDITOR.TRISTATE_ON?"on":g==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(k=' aria-checked\x3d"'+(g==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var u=this.getItems,q="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",p=this.name;this.icon&&!/\./.test(this.icon)&&
+(p=this.icon);this.command&&(f=e.getCommand(this.command),(f=e.getCommandKeystroke(f))&&(c=CKEDITOR.tools.keystrokeToString(e.lang.common.keyboard,f)));a={id:h,name:this.name,iconName:p,label:this.label,cls:this.className||"",state:l,hasPopup:u?"true":"false",disabled:g==CKEDITOR.TRISTATE_DISABLED,title:this.label+(c?" ("+c.display+")":""),ariaShortcut:c?e.lang.common.keyboardShortcut+" "+c.aria:"",href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,
+clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(p,"rtl"==this.editor.lang.dir,p==this.icon?null:this.icon,this.iconOffset),shortcutHtml:c?n.output({shortcut:c.display}):"",arrowHtml:u?t.output({label:q}):"",role:this.role?this.role:"menuitem",ariaChecked:k};r.output(a,d)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(a){this.base.call(this,a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.contextmenu.options}}})},proto:{addTarget:function(a,e){a.on("contextmenu",function(a){a=a.data;var c=CKEDITOR.env.webkit?f:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey;if(!e||!c){a.preventDefault();if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var c=this.editor,
b=(new CKEDITOR.dom.elementPath(a.getTarget(),c.editable())).contains(function(a){return a.hasAttribute("contenteditable")},!0);b&&"false"==b.getAttribute("contenteditable")&&c.getSelection().fake(b)}var b=a.getTarget().getDocument(),d=a.getTarget().getDocument().getDocumentElement(),c=!b.equals(CKEDITOR.document),b=b.getWindow().getScrollPosition(),g=c?a.$.clientX:a.$.pageX||b.x+a.$.clientX,h=c?a.$.clientY:a.$.pageY||b.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(d,null,g,h)},CKEDITOR.env.ie?
-200:0,this)}},this);if(CKEDITOR.env.webkit){var f,d=function(){f=0};a.on("keydown",function(a){f=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});a.on("keyup",d);a.on("contextmenu",d)}},open:function(a,e,f,d){this.editor.focus();a=a||CKEDITOR.document.getDocumentElement();this.editor.selectionChange(1);this.show(a,e,f,d)}}})},beforeInit:function(a){var e=a.contextMenu=new CKEDITOR.plugins.contextMenu(a);a.on("contentDom",function(){e.addTarget(a.editable(),!1!==a.config.browserContextMenuOnCtrl)});
-a.addCommand("contextMenu",{exec:function(){a.contextMenu.open(a.document.getBody())}});a.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");a.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});(function(){function f(c){var a=this.att;c=c&&c.hasAttribute(a)&&c.getAttribute(a)||"";void 0!==c&&this.setValue(c)}function g(){for(var c,a=0;a<arguments.length;a++)if(arguments[a]instanceof CKEDITOR.dom.element){c=arguments[a];break}if(c){var a=this.att,b=this.getValue();b?c.setAttribute(a,b):c.removeAttribute(a,b)}}var k={id:1,dir:1,classes:1,styles:1};CKEDITOR.plugins.add("dialogadvtab",{requires:"dialog",allowedContent:function(c){c||(c=k);var a=[];c.id&&a.push("id");c.dir&&a.push("dir");var b=
-"";a.length&&(b+="["+a.join(",")+"]");c.classes&&(b+="(*)");c.styles&&(b+="{*}");return b},createAdvancedTab:function(c,a,b){a||(a=k);var d=c.lang.common,h={id:"advanced",label:d.advancedTab,title:d.advancedTab,elements:[{type:"vbox",padding:1,children:[]}]},e=[];if(a.id||a.dir)a.id&&e.push({id:"advId",att:"id",type:"text",requiredContent:b?b+"[id]":null,label:d.id,setup:f,commit:g}),a.dir&&e.push({id:"advLangDir",att:"dir",type:"select",requiredContent:b?b+"[dir]":null,label:d.langDir,"default":"",
-style:"width:100%",items:[[d.notSet,""],[d.langDirLTR,"ltr"],[d.langDirRTL,"rtl"]],setup:f,commit:g}),h.elements[0].children.push({type:"hbox",widths:["50%","50%"],children:[].concat(e)});if(a.styles||a.classes)e=[],a.styles&&e.push({id:"advStyles",att:"style",type:"text",requiredContent:b?b+"{cke-xyz}":null,label:d.styles,"default":"",validate:CKEDITOR.dialog.validate.inlineStyle(d.invalidInlineStyle),onChange:function(){},getStyle:function(a,c){var b=this.getValue().match(new RegExp("(?:^|;)\\s*"+
-a+"\\s*:\\s*([^;]*)","i"));return b?b[1]:c},updateStyle:function(a,b){var d=this.getValue(),e=c.document.createElement("span");e.setAttribute("style",d);e.setStyle(a,b);d=CKEDITOR.tools.normalizeCssText(e.getAttribute("style"));this.setValue(d,1)},setup:f,commit:g}),a.classes&&e.push({type:"hbox",widths:["45%","55%"],children:[{id:"advCSSClasses",att:"class",type:"text",requiredContent:b?b+"(cke-xyz)":null,label:d.cssClasses,"default":"",setup:f,commit:g}]}),h.elements[0].children.push({type:"hbox",
-widths:["50%","50%"],children:[].concat(e)});return h}})})();(function(){function q(a,d){function l(c){c=k.list[c];if(c.equals(a.editable())||"true"==c.getAttribute("contenteditable")){var e=a.createRange();e.selectNodeContents(c);e.select()}else a.getSelection().selectElement(c);a.focus()}function m(){n&&n.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');delete k.list}var p=a.ui.spaceId("path"),n,k=a._.elementsPath,q=k.idBase;d.html+='\x3cspan id\x3d"'+p+'_label" class\x3d"cke_voice_label"\x3e'+a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+
-p+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+p+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var c=a.ui.space("path");c&&a.focusManager.add(c,1)});k.onClick=l;var v=CKEDITOR.tools.addFunction(l),w=CKEDITOR.tools.addFunction(function(c,e){var g=k.idBase,b;e=new CKEDITOR.dom.event(e);b="rtl"==a.lang.dir;switch(e.getKeystroke()){case b?39:37:case 9:return(b=CKEDITOR.document.getById(g+(c+1)))||(b=CKEDITOR.document.getById(g+
-"0")),b.focus(),!1;case b?37:39:case CKEDITOR.SHIFT+9:return(b=CKEDITOR.document.getById(g+(c-1)))||(b=CKEDITOR.document.getById(g+(k.list.length-1))),b.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return l(c),!1}return!0});a.on("selectionChange",function(){for(var c=[],e=k.list=[],g=[],b=k.filters,d=!0,l=a.elementPath().elements,f,u=l.length;u--;){var h=l[u],r=0;f=h.data("cke-display-name")?h.data("cke-display-name"):h.data("cke-real-element-type")?h.data("cke-real-element-type"):h.getName();
-(d=h.hasAttribute("contenteditable")?"true"==h.getAttribute("contenteditable"):d)||h.hasAttribute("contenteditable")||(r=1);for(var t=0;t<b.length;t++){var m=b[t](h,f);if(!1===m){r=1;break}f=m||f}r||(e.unshift(h),g.unshift(f))}e=e.length;for(b=0;b<e;b++)f=g[b],d=a.lang.elementspath.eleTitle.replace(/%1/,f),f=x.output({id:q+b,label:d,text:f,jsTitle:"javascript:void('"+f+"')",index:b,keyDownFn:w,clickFn:v}),c.unshift(f);n||(n=CKEDITOR.document.getById(p));g=n;g.setHtml(c.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');
-a.fire("elementsPathUpdate",{space:g})});a.on("readOnly",m);a.on("contentDomUnload",m);a.addCommand("elementsPathFocus",y.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var y={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},d="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(d+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(d+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');
-var x=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+d+' hidefocus\x3d"true" onkeydown\x3d"return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role\x3d"button" aria-label\x3d"{label}"\x3e{text}\x3c/a\x3e');CKEDITOR.plugins.add("elementspath",{init:function(a){a._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+
-"_",filters:[]};a.on("uiSpace",function(d){"bottom"==d.data.space&&q(a,d.data)})}})})();(function(){function q(b,d,a){a=b.config.forceEnterMode||a;"wysiwyg"==b.mode&&(d||(d=b.activeEnterMode),b.elementPath().isContextFor("p")||(d=CKEDITOR.ENTER_BR,a=1),b.fire("saveSnapshot"),d==CKEDITOR.ENTER_BR?t(b,d,null,a):u(b,d,null,a),b.fire("saveSnapshot"))}function v(b){b=b.getSelection().getRanges(!0);for(var d=b.length-1;0<d;d--)b[d].deleteContents();return b[0]}function y(b){var d=b.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},
+200:0,this)}},this);if(CKEDITOR.env.webkit){var f,d=function(){f=0};a.on("keydown",function(a){f=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});a.on("keyup",d);a.on("contextmenu",d)}},open:function(a,e,f,d){!1!==this.editor.config.enableContextMenu&&(this.editor.focus(),a=a||CKEDITOR.document.getDocumentElement(),this.editor.selectionChange(1),this.show(a,e,f,d))}}})},beforeInit:function(a){var e=a.contextMenu=new CKEDITOR.plugins.contextMenu(a);a.on("contentDom",function(){e.addTarget(a.editable(),
+!1!==a.config.browserContextMenuOnCtrl)});a.addCommand("contextMenu",{exec:function(){a.contextMenu.open(a.document.getBody())}});a.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");a.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});CKEDITOR.plugins.add("resize",{init:function(b){function f(d){var e=c.width,m=c.height,f=e+(d.data.$.screenX-n.x)*("rtl"==g?-1:1);d=m+(d.data.$.screenY-n.y);h&&(e=Math.max(a.resize_minWidth,Math.min(f,a.resize_maxWidth)));p&&(m=Math.max(a.resize_minHeight,Math.min(d,a.resize_maxHeight)));b.resize(h?e:null,m)}function k(){CKEDITOR.document.removeListener("mousemove",f);CKEDITOR.document.removeListener("mouseup",k);b.document&&(b.document.removeListener("mousemove",f),b.document.removeListener("mouseup",
+k))}var a=b.config,r=b.ui.spaceId("resizer"),g=b.element?b.element.getDirection(1):"ltr";!a.resize_dir&&(a.resize_dir="vertical");void 0===a.resize_maxWidth&&(a.resize_maxWidth=3E3);void 0===a.resize_maxHeight&&(a.resize_maxHeight=3E3);void 0===a.resize_minWidth&&(a.resize_minWidth=750);void 0===a.resize_minHeight&&(a.resize_minHeight=250);if(!1!==a.resize_enabled){var l=null,n,c,h=("both"==a.resize_dir||"horizontal"==a.resize_dir)&&a.resize_minWidth!=a.resize_maxWidth,p=("both"==a.resize_dir||"vertical"==
+a.resize_dir)&&a.resize_minHeight!=a.resize_maxHeight,q=CKEDITOR.tools.addFunction(function(d){l||(l=b.getResizable());c={width:l.$.offsetWidth||0,height:l.$.offsetHeight||0};n={x:d.screenX,y:d.screenY};a.resize_minWidth>c.width&&(a.resize_minWidth=c.width);a.resize_minHeight>c.height&&(a.resize_minHeight=c.height);CKEDITOR.document.on("mousemove",f);CKEDITOR.document.on("mouseup",k);b.document&&(b.document.on("mousemove",f),b.document.on("mouseup",k));d.preventDefault&&d.preventDefault()});b.on("destroy",
+function(){CKEDITOR.tools.removeFunction(q)});b.on("uiSpace",function(a){if("bottom"==a.data.space){var e="";h&&!p&&(e=" cke_resizer_horizontal");!h&&p&&(e=" cke_resizer_vertical");var c='\x3cspan id\x3d"'+r+'" class\x3d"cke_resizer'+e+" cke_resizer_"+g+'" title\x3d"'+CKEDITOR.tools.htmlEncode(b.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+q+', event)"\x3e'+("ltr"==g?"◢":"◣")+"\x3c/span\x3e";"ltr"==g&&"ltr"==e?a.data.html+=c:a.data.html=c+a.data.html}},b,null,100);b.on("maximize",
+function(a){b.ui.space("resizer")[a.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}});(function(){var c='\x3ca id\x3d"{id}" class\x3d"cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' title\x3d"{title}" tabindex\x3d"-1" hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasArrow}" aria-disabled\x3d"{ariaDisabled}"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(c+=
+' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var c=c+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{style}"'),c=c+'\x3e\x26nbsp;\x3c/span\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_button_label cke_button__{name}_label" aria-hidden\x3d"false"\x3e{label}\x3c/span\x3e\x3cspan id\x3d"{id}_description" class\x3d"cke_button_label" aria-hidden\x3d"false"\x3e{ariaShortcut}\x3c/span\x3e{arrowHtml}\x3c/a\x3e',
+t=CKEDITOR.addTemplate("buttonArrow",'\x3cspan class\x3d"cke_button_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":"")+"\x3c/span\x3e"),u=CKEDITOR.addTemplate("button",c);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};
+CKEDITOR.ui.button.prototype={render:function(a,b){function c(){var f=a.mode;f&&(f=this.modes[f]?void 0!==m[f]?m[f]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,f=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:f,this.setState(f),this.refresh&&this.refresh())}var n=CKEDITOR.env,p=this._.id=CKEDITOR.tools.getNextId(),g="",d=this.command,q,k,h;this._.editor=a;var e={id:p,button:this,editor:a,focus:function(){CKEDITOR.document.getById(p).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},
+v=CKEDITOR.tools.addFunction(function(a){if(e.onkey)return a=new CKEDITOR.dom.event(a),!1!==e.onkey(e,a.getKeystroke())}),w=CKEDITOR.tools.addFunction(function(a){var b;e.onfocus&&(b=!1!==e.onfocus(e,new CKEDITOR.dom.event(a)));return b}),r=0;e.clickFn=q=CKEDITOR.tools.addFunction(function(){r&&(a.unlockSelection(1),r=0);e.execute();n.iOS&&a.focus()});if(this.modes){var m={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(m[a.mode]=this._.state)},this);a.on("activeFilterChange",
+c,this);a.on("mode",c,this);!this.readOnly&&a.on("readOnly",c,this)}else d&&(d=a.getCommand(d))&&(d.on("state",function(){this.setState(d.state)},this),g+=d.state==CKEDITOR.TRISTATE_ON?"on":d.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");if(this.directional)a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=c.getFirst();b=b.data;b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl");d.setAttribute("style",CKEDITOR.skin.getIconStyle(l,
+"rtl"==b,this.icon,this.iconOffset))},this);d?(k=a.getCommandKeystroke(d))&&(h=CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,k)):g+="off";var l=k=this.name||this.command;this.icon&&!/\./.test(this.icon)&&(l=this.icon,this.icon=null);g={id:p,name:k,iconName:l,label:this.label,cls:this.className||"",state:g,ariaDisabled:"disabled"==g?"true":"false",title:this.title+(h?" ("+h.display+")":""),ariaShortcut:h?a.lang.common.keyboardShortcut+" "+h.aria:"",titleJs:n.gecko&&!n.hc?"":(this.title||
+"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:v,focusFn:w,clickFn:q,style:CKEDITOR.skin.getIconStyle(l,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?t.output():""};u.output(g,b);if(this.onRender)this.onRender();return e},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),
+this.hasArrow?(a=a==CKEDITOR.TRISTATE_ON?this._.editor.lang.button.selectedLabel.replace(/%1/g,this.label):this.label,CKEDITOR.document.getById(this._.id+"_label").setText(a)):a==CKEDITOR.TRISTATE_ON?b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;this.allowedContent||this.requiredContent||!this.command||(b=a.getCommand(this.command)||b);return this._.feature=
+b}};CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}})();(function(){function D(a){function d(){for(var b=f(),e=CKEDITOR.tools.clone(a.config.toolbarGroups)||v(a),n=0;n<e.length;n++){var g=e[n];if("/"!=g){"string"==typeof g&&(g=e[n]={name:g});var l,d=g.groups;if(d)for(var h=0;h<d.length;h++)l=d[h],(l=b[l])&&c(g,l);(l=b[g.name])&&c(g,l)}}return e}function f(){var b={},c,e,g;for(c in a.ui.items)e=a.ui.items[c],g=e.toolbar||"others",g=g.split(","),e=g[0],g=parseInt(g[1]||-1,10),b[e]||(b[e]=[]),b[e].push({name:c,order:g});for(e in b)b[e]=b[e].sort(function(b,
+a){return b.order==a.order?0:0>a.order?-1:0>b.order?1:b.order<a.order?-1:1});return b}function c(c,e){if(e.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var d;d=e.shift();)d="string"==typeof d?d:d.name,b&&-1!=CKEDITOR.tools.indexOf(b,d)||(d=a.ui.create(d))&&a.addFeature(d)&&c.items.push(d)}}function h(b){var a=[],e,d,h;for(e=0;e<b.length;++e)d=b[e],h={},"/"==d?a.push(d):CKEDITOR.tools.isArray(d)?(c(h,CKEDITOR.tools.clone(d)),a.push(h)):d.items&&(c(h,CKEDITOR.tools.clone(d.items)),
+h.name=d.name,a.push(h));return a}var b=a.config.removeButtons,b=b&&b.split(","),e=a.config.toolbar;"string"==typeof e&&(e=a.config["toolbar_"+e]);return a.toolbar=e?h(e):d()}function v(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list",
+"indent","blocks","align","bidi"]},{name:"links"},{name:"insert"},"/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},{name:"about"}])}var z=function(){this.toolbars=[];this.focusCommandExecuted=!1};z.prototype.focus=function(){for(var a=0,d;d=this.toolbars[a++];)for(var f=0,c;c=d.items[f++];)if(c.focus){c.focus();return}};var E={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},
+100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(a){var d,f=function(c,h){var b,e="rtl"==a.lang.dir,k=a.config.toolbarGroupCycling,q=e?37:39,e=e?39:37,k=void 0===k||k;switch(h){case 9:case CKEDITOR.SHIFT+9:for(;!b||!b.items.length;)if(b=9==h?(b?b.next:c.toolbar.next)||a.toolbox.toolbars[0]:(b?b.previous:c.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],b.items.length)for(c=b.items[d?b.items.length-1:0];c&&!c.focus;)(c=d?c.previous:c.next)||
+(b=0);c&&c.focus();return!1;case q:b=c;do b=b.next,!b&&k&&(b=c.toolbar.items[0]);while(b&&!b.focus);b?b.focus():f(c,9);return!1;case 40:return c.button&&c.button.hasArrow?c.execute():f(c,40==h?q:e),!1;case e:case 38:b=c;do b=b.previous,!b&&k&&(b=c.toolbar.items[c.toolbar.items.length-1]);while(b&&!b.focus);b?b.focus():(d=1,f(c,CKEDITOR.SHIFT+9),d=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return c.execute(),!1}return!0};a.on("uiSpace",function(c){if(c.data.space==a.config.toolbarLocation){c.removeListener();
+a.toolbox=new z;var d=CKEDITOR.tools.getNextId(),b=['\x3cspan id\x3d"',d,'" class\x3d"cke_voice_label"\x3e',a.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+a.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',d,'" onmousedown\x3d"return false;"\x3e'],d=!1!==a.config.toolbarStartupExpanded,e,k;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&b.push('\x3cspan class\x3d"cke_toolbox_main"'+(d?"\x3e":' style\x3d"display:none"\x3e'));
+for(var q=a.toolbox.toolbars,n=D(a),g=n.length,l=0;l<g;l++){var r,m=0,w,p=n[l],v="/"!==p&&("/"===n[l+1]||l==g-1),x;if(p)if(e&&(b.push("\x3c/span\x3e"),k=e=0),"/"===p)b.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{x=p.items||p;for(var y=0;y<x.length;y++){var t=x[y],A;if(t){var B=function(c){c=c.render(a,b);u=m.items.push(c)-1;0<u&&(c.previous=m.items[u-1],c.previous.next=c);c.toolbar=m;c.onkey=f;c.onfocus=function(){a.toolbox.focusCommandExecuted||a.focus()}};if(t.type==CKEDITOR.UI_SEPARATOR)k=
+e&&t;else{A=!1!==t.canGroup;if(!m){r=CKEDITOR.tools.getNextId();m={id:r,items:[]};w=p.name&&(a.lang.toolbar.toolbarGroups[p.name]||p.name);b.push('\x3cspan id\x3d"',r,'" class\x3d"cke_toolbar'+(v?' cke_toolbar_last"':'"'),w?' aria-labelledby\x3d"'+r+'_label"':"",' role\x3d"toolbar"\x3e');w&&b.push('\x3cspan id\x3d"',r,'_label" class\x3d"cke_voice_label"\x3e',w,"\x3c/span\x3e");b.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var u=q.push(m)-1;0<u&&(m.previous=q[u-1],m.previous.next=
+m)}A?e||(b.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),e=1):e&&(b.push("\x3c/span\x3e"),e=0);k&&(B(k),k=0);B(t)}}}e&&(b.push("\x3c/span\x3e"),k=e=0);m&&b.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}a.config.toolbarCanCollapse&&b.push("\x3c/span\x3e");if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var C=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(C)});
+a.addCommand("toolbarCollapse",{readOnly:1,exec:function(b){var a=b.ui.space("toolbar_collapser"),c=a.getPrevious(),d=b.ui.space("contents"),e=c.getParent(),h=parseInt(d.$.style.height,10),g=e.$.offsetHeight,f=a.hasClass("cke_toolbox_collapser_min");f?(c.show(),a.removeClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarCollapse)):(c.hide(),a.addClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarExpand));a.getFirst().setText(f?"▲":"◀");d.setStyle("height",
+h-(e.$.offsetHeight-g)+"px");b.fire("resize",{outerHeight:b.container.$.offsetHeight,contentsHeight:d.$.offsetHeight,outerWidth:b.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");b.push('\x3ca title\x3d"'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id\x3d"'+a.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');d||b.push(" cke_toolbox_collapser_min");
+b.push('" onclick\x3d"CKEDITOR.tools.callFunction('+C+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',"\x3c/a\x3e")}b.push("\x3c/span\x3e");c.data.html+=b.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,e,f;for(a=this.toolbox.toolbars;d<a.length;d++)for(e=a[d].items,b=0;b<e.length;b++)f=e[b],f.clickFn&&CKEDITOR.tools.removeFunction(f.clickFn),f.keyDownFn&&CKEDITOR.tools.removeFunction(f.keyDownFn)}});a.on("uiReady",function(){var c=a.ui.space("toolbox");c&&a.focusManager.add(c,
+1)});a.addCommand("toolbarFocus",E);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('\x3cspan class\x3d"cke_toolbar_separator" role\x3d"separator"\x3e\x3c/span\x3e');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,d,f){var c=v(this.editor),h=0===d,b={name:a};if(f){if(f=CKEDITOR.tools.search(c,function(a){return a.name==f})){!f.groups&&(f.groups=[]);if(d&&
+(d=CKEDITOR.tools.indexOf(f.groups,d),0<=d)){f.groups.splice(d+1,0,a);return}h?f.groups.splice(0,0,a):f.groups.push(a);return}d=null}d&&(d=CKEDITOR.tools.indexOf(c,function(a){return a.name==d}));h?c.splice(0,0,a):"number"==typeof d?c.splice(d+1,0,b):c.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";CKEDITOR.config.toolbarLocation="top";(function(){function q(a,e){function l(c){c=k.list[c];var d;c.equals(a.editable())||"true"==c.getAttribute("contenteditable")?(d=a.createRange(),d.selectNodeContents(c),d=d.select()):(d=a.getSelection(),d.selectElement(c));CKEDITOR.env.ie&&a.fire("selectionChange",{selection:d,path:new CKEDITOR.dom.elementPath(c)});a.focus()}function m(){n&&n.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');delete k.list}var p=a.ui.spaceId("path"),n,k=a._.elementsPath,q=k.idBase;e.html+='\x3cspan id\x3d"'+
+p+'_label" class\x3d"cke_voice_label"\x3e'+a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+p+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+p+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var c=a.ui.space("path");c&&a.focusManager.add(c,1)});k.onClick=l;var v=CKEDITOR.tools.addFunction(l),w=CKEDITOR.tools.addFunction(function(c,d){var g=k.idBase,b;d=new CKEDITOR.dom.event(d);b="rtl"==a.lang.dir;switch(d.getKeystroke()){case b?
+39:37:case 9:return(b=CKEDITOR.document.getById(g+(c+1)))||(b=CKEDITOR.document.getById(g+"0")),b.focus(),!1;case b?37:39:case CKEDITOR.SHIFT+9:return(b=CKEDITOR.document.getById(g+(c-1)))||(b=CKEDITOR.document.getById(g+(k.list.length-1))),b.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return l(c),!1}return!0});a.on("selectionChange",function(){for(var c=[],d=k.list=[],g=[],b=k.filters,e=!0,l=a.elementPath().elements,f,u=l.length;u--;){var h=l[u],r=0;f=h.data("cke-display-name")?h.data("cke-display-name"):
+h.data("cke-real-element-type")?h.data("cke-real-element-type"):h.getName();(e=h.hasAttribute("contenteditable")?"true"==h.getAttribute("contenteditable"):e)||h.hasAttribute("contenteditable")||(r=1);for(var t=0;t<b.length;t++){var m=b[t](h,f);if(!1===m){r=1;break}f=m||f}r||(d.unshift(h),g.unshift(f))}d=d.length;for(b=0;b<d;b++)f=g[b],e=a.lang.elementspath.eleTitle.replace(/%1/,f),f=x.output({id:q+b,label:e,text:f,jsTitle:"javascript:void('"+f+"')",index:b,keyDownFn:w,clickFn:v}),c.unshift(f);n||
+(n=CKEDITOR.document.getById(p));g=n;g.setHtml(c.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');a.fire("elementsPathUpdate",{space:g})});a.on("readOnly",m);a.on("contentDomUnload",m);a.addCommand("elementsPathFocus",y.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var y={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},e="";CKEDITOR.env.gecko&&
+CKEDITOR.env.mac&&(e+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(e+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var x=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+e+' hidefocus\x3d"true" onkeydown\x3d"return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role\x3d"button" aria-label\x3d"{label}"\x3e{text}\x3c/a\x3e');
+CKEDITOR.plugins.add("elementspath",{init:function(a){a._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_",filters:[]};a.on("uiSpace",function(e){"bottom"==e.data.space&&q(a,e.data)})}})})();(function(){function q(b,d,a){a=b.config.forceEnterMode||a;if("wysiwyg"==b.mode){d||(d=b.activeEnterMode);var h=b.elementPath();h&&!h.isContextFor("p")&&(d=CKEDITOR.ENTER_BR,a=1);b.fire("saveSnapshot");d==CKEDITOR.ENTER_BR?t(b,d,null,a):u(b,d,null,a);b.fire("saveSnapshot")}}function v(b){b=b.getSelection().getRanges(!0);for(var d=b.length-1;0<d;d--)b[d].deleteContents();return b[0]}function y(b){var d=b.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},
!0);if(b.root.equals(d))return b;d=new CKEDITOR.dom.range(d);d.moveToRange(b);return d}CKEDITOR.plugins.add("enterkey",{init:function(b){b.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){q(b)}});b.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){q(b,b.activeShiftEnterMode,1)}});b.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var z=CKEDITOR.dom.walker.whitespaces(),A=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(b,
d,a,h){if(a=a||v(b)){a=y(a);var f=a.document,k=a.checkStartOfBlock(),m=a.checkEndOfBlock(),l=b.elementPath(a.startContainer),c=l.block,n=d==CKEDITOR.ENTER_DIV?"div":"p",e;if(k&&m){if(c&&(c.is("li")||c.getParent().is("li"))){c.is("li")||(c=c.getParent());a=c.getParent();e=a.getParent();h=!c.hasPrevious();var p=!c.hasNext(),n=b.getSelection(),g=n.createBookmarks(),k=c.getDirection(1),m=c.getAttribute("class"),r=c.getAttribute("style"),q=e.getDirection(1)!=k;b=b.enterMode!=CKEDITOR.ENTER_BR||q||r||m;
if(e.is("li"))h||p?(h&&p&&a.remove(),c[p?"insertAfter":"insertBefore"](e)):c.breakParent(e);else{if(b)if(l.block.is("li")?(e=f.createElement(d==CKEDITOR.ENTER_P?"p":"div"),q&&e.setAttribute("dir",k),r&&e.setAttribute("style",r),m&&e.setAttribute("class",m),c.moveChildren(e)):e=l.block,h||p)e[h?"insertBefore":"insertAfter"](a);else c.breakParent(a),e.insertAfter(a);else if(c.appendBogus(!0),h||p)for(;f=c[h?"getFirst":"getLast"]();)f[h?"insertBefore":"insertAfter"](a);else for(c.breakParent(a);f=c.getLast();)f.insertAfter(a);
(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);if(this.onClick)this.onClick(a,b)},this));return this._.click}},proto:{add:function(a,b,c){var d=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=d;var e;e=CKEDITOR.tools.htmlEncodeAttr(a).replace(k,"\\'");a={id:d,val:e,onclick:CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick",clickFn:this._.getClick(),title:CKEDITOR.tools.htmlEncodeAttr(c||a),text:b||a};
this._.pendingList.push(g.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b;this._.pendingHtml.push(h.output({id:b,label:a}))},commit:function(){this._.close();this.element.appendHtml(this._.pendingHtml.join(""));delete this._.size;this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);b?this.unmark(a):this.mark(a);return!b},hideGroup:function(a){var b=(a=this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display",
"none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},showAll:function(){var a=this._.items,b=this._.groups,c=this.element.getDocument(),d;for(d in a)c.getById(a[d]).setStyle("display","");for(var e in b)a=c.getById(b[e]),d=a.getNext(),a.setStyle("display",""),d&&"ul"==d.getName()&&d.setStyle("display","")},mark:function(a){this.multiSelect||this.unmarkAll();a=this._.items[a];var b=this.element.getDocument().getById(a);
-b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},unmark:function(a){var b=this.element.getDocument();a=this._.items[a];var c=b.getById(a);c.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(),c;for(c in a){var d=a[c];b.getById(d).removeClass("cke_selected");b.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&
-this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=-1;var b=this.element.getElementsByTag("a"),c,d=-1;if(a)for(c=this.element.getDocument().getById(this._.items[a]).getFirst();a=b.getItem(++d);){if(a.equals(c)){this._.focusIndex=d;break}}else this.element.focus();c&&setTimeout(function(){c.focus()},0)}}})}});(function(){var c='\x3ca id\x3d"{id}" class\x3d"cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' title\x3d"{title}" tabindex\x3d"-1" hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-haspopup\x3d"{hasArrow}" aria-disabled\x3d"{ariaDisabled}"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(c+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');
-var c=c+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{style}"'),c=c+'\x3e\x26nbsp;\x3c/span\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_button_label cke_button__{name}_label" aria-hidden\x3d"false"\x3e{label}\x3c/span\x3e{arrowHtml}\x3c/a\x3e',
-r=CKEDITOR.addTemplate("buttonArrow",'\x3cspan class\x3d"cke_button_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":"")+"\x3c/span\x3e"),t=CKEDITOR.addTemplate("button",c);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};
-CKEDITOR.ui.button.prototype={render:function(a,b){function c(){var e=a.mode;e&&(e=this.modes[e]?void 0!==k[e]?k[e]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,e=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:e,this.setState(e),this.refresh&&this.refresh())}var l=CKEDITOR.env,m=this._.id=CKEDITOR.tools.getNextId(),f="",g=this.command,n;this._.editor=a;var d={id:m,button:this,editor:a,focus:function(){CKEDITOR.document.getById(m).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},
-u=CKEDITOR.tools.addFunction(function(a){if(d.onkey)return a=new CKEDITOR.dom.event(a),!1!==d.onkey(d,a.getKeystroke())}),v=CKEDITOR.tools.addFunction(function(a){var b;d.onfocus&&(b=!1!==d.onfocus(d,new CKEDITOR.dom.event(a)));return b}),p=0;d.clickFn=n=CKEDITOR.tools.addFunction(function(){p&&(a.unlockSelection(1),p=0);d.execute();l.iOS&&a.focus()});if(this.modes){var k={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(k[a.mode]=this._.state)},this);a.on("activeFilterChange",
-c,this);a.on("mode",c,this);!this.readOnly&&a.on("readOnly",c,this)}else g&&(g=a.getCommand(g))&&(g.on("state",function(){this.setState(g.state)},this),f+=g.state==CKEDITOR.TRISTATE_ON?"on":g.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");if(this.directional)a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=c.getFirst();b=b.data;b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl");d.setAttribute("style",CKEDITOR.skin.getIconStyle(h,
-"rtl"==b,this.icon,this.iconOffset))},this);g||(f+="off");var q=this.name||this.command,h=q;this.icon&&!/\./.test(this.icon)&&(h=this.icon,this.icon=null);f={id:m,name:q,iconName:h,label:this.label,cls:this.className||"",state:f,ariaDisabled:"disabled"==f?"true":"false",title:this.title,titleJs:l.gecko&&!l.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:u,focusFn:v,clickFn:n,style:CKEDITOR.skin.getIconStyle(h,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?
-r.output():""};t.output(f,b);if(this.onRender)this.onRender();return d},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),this.hasArrow?(a=a==CKEDITOR.TRISTATE_ON?this._.editor.lang.button.selectedLabel.replace(/%1/g,this.label):this.label,CKEDITOR.document.getById(this._.id+"_label").setText(a)):a==CKEDITOR.TRISTATE_ON?
-b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;this.allowedContent||this.requiredContent||!this.command||(b=a.getCommand(this.command)||b);return this._.feature=b}};CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}})();CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(d){d.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}});
-(function(){var d='\x3cspan id\x3d"{id}" class\x3d"cke_combo cke_combo__{name} {cls}" role\x3d"presentation"\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_combo_label"\x3e{label}\x3c/span\x3e\x3ca class\x3d"cke_combo_button" title\x3d"{title}" tabindex\x3d"-1"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-haspopup\x3d"true"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(d+=' onkeypress\x3d"return false;"');
-CKEDITOR.env.gecko&&(d+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var d=d+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan id\x3d"{id}_text" class\x3d"cke_combo_text cke_combo_inlinelabel"\x3e{label}\x3c/span\x3e\x3cspan class\x3d"cke_combo_open"\x3e\x3cspan class\x3d"cke_combo_arrow"\x3e'+
-(CKEDITOR.env.hc?"\x26#9660;":CKEDITOR.env.air?"\x26nbsp;":"")+"\x3c/span\x3e\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e"),k=CKEDITOR.addTemplate("combo",d);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel";
-a.block={multiSelect:a.multiSelect,attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];this.render(a,b);return b.join("")},render:function(a,b){function g(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var c=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;a.readOnly&&!this.readOnly&&(c=CKEDITOR.TRISTATE_DISABLED);this.setState(c);this.setValue("");c!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var d=
-CKEDITOR.env,h="cke_"+this.id,e=CKEDITOR.tools.addFunction(function(b){l&&(a.unlockSelection(1),l=0);c.execute(b)},this),f=this,c={id:h,combo:this,focus:function(){CKEDITOR.document.getById(h).getChild(1).focus()},execute:function(c){var b=f._;if(b.state!=CKEDITOR.TRISTATE_DISABLED)if(f.createPanel(a),b.on)b.panel.hide();else{f.commit();var d=f.getValue();d?b.list.mark(d):b.list.unmarkAll();b.panel.showBlock(f.id,new CKEDITOR.dom.element(c),4)}},clickFn:e};a.on("activeFilterChange",g,this);a.on("mode",
-g,this);a.on("selectionChange",g,this);!this.readOnly&&a.on("readOnly",g,this);var m=CKEDITOR.tools.addFunction(function(b,d){b=new CKEDITOR.dom.event(b);var g=b.getKeystroke();if(40==g)a.once("panelShow",function(a){a.data._.panel._.currentBlock.onKeyDown(40)});switch(g){case 13:case 32:case 40:CKEDITOR.tools.callFunction(e,d);break;default:c.onkey(c,g)}b.preventDefault()}),n=CKEDITOR.tools.addFunction(function(){c.onfocus&&c.onfocus()}),l=0;c.keyDownFn=m;d={id:h,name:this.name||this.command,label:this.label,
-title:this.title,cls:this.className||"",titleJs:d.gecko&&!d.hc?"":(this.title||"").replace("'",""),keydownFn:m,focusFn:n,clickFn:e};k.output(d,b);if(this.onRender)this.onRender();return c},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,d=this._.panelDefinition.block,k=b.parent||CKEDITOR.document.getBody(),h="cke_combopanel__"+this.name,e=new CKEDITOR.ui.floatPanel(a,k,b),f=e.addListBlock(this.id,d),c=this;e.onShow=function(){this.element.addClass(h);c.setState(CKEDITOR.TRISTATE_ON);
-c._.on=1;c.editorFocus&&!a.focusManager.hasFocus&&a.focus();if(c.onOpen)c.onOpen();a.once("panelShow",function(){f.focus(!f.multiSelect&&c.getValue())})};e.onHide=function(b){this.element.removeClass(h);c.setState(c.modes&&c.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);c._.on=0;if(!b&&c.onClose)c.onClose()};e.onEscape=function(){e.hide(1)};f.onClick=function(a,b){c.onClick&&c.onClick.call(c,a,b);e.hide()};this._.panel=e;this._.list=f;e.getBlock(this.id).onHide=function(){c._.on=
-0;c.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,b){this._.value=a;var d=this.document.getById("cke_"+this.id+"_text");d&&(a||b?d.removeClass("cke_combo_inlinelabel"):(b=this.label,d.addClass("cke_combo_inlinelabel")),d.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},
-showAll:function(){this._.list.showAll()},add:function(a,b,d){this._.items[a]=d||a;this._.list.add(a,b,d)},startGroup:function(a){this._.list.startGroup(a)},commit:function(){this._.committed||(this._.list.commit(),this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo");a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled");this._.state=
-a}},getState:function(){return this._.state},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}});CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}})();CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var f=a.config,c=a.lang.format,l=f.format_tags.split(";"),d={},m=0,n=[],g=0;g<l.length;g++){var h=l[g],k=new CKEDITOR.style(f["format_"+h]);if(!a.filter.customConfig||a.filter.check(k))m++,d[h]=k,d[h]._.enterMode=a.config.enterMode,n.push(k)}0!==m&&a.ui.addRichCombo("Format",{label:c.label,title:c.panelTitle,toolbar:"styles,20",allowedContent:n,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(f.contentsCss),
+b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},markFirstDisplayed:function(){var a=this;this._.markFirstDisplayed(function(){a.multiSelect||a.unmarkAll()})},unmark:function(a){var b=this.element.getDocument();a=this._.items[a];var c=b.getById(a);c.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(),
+c;for(c in a){var d=a[c];b.getById(d).removeClass("cke_selected");b.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=-1;var b=this.element.getElementsByTag("a"),c,d=-1;if(a)for(c=this.element.getDocument().getById(this._.items[a]).getFirst();a=b.getItem(++d);){if(a.equals(c)){this._.focusIndex=d;break}}else this.element.focus();
+c&&setTimeout(function(){c.focus()},0)}}})}});CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(c){c.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}});
+(function(){var c='\x3cspan id\x3d"{id}" class\x3d"cke_combo cke_combo__{name} {cls}" role\x3d"presentation"\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_combo_label"\x3e{label}\x3c/span\x3e\x3ca class\x3d"cke_combo_button" title\x3d"{title}" tabindex\x3d"-1"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-haspopup\x3d"true"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"');
+CKEDITOR.env.gecko&&(c+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var c=c+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan id\x3d"{id}_text" class\x3d"cke_combo_text cke_combo_inlinelabel"\x3e{label}\x3c/span\x3e\x3cspan class\x3d"cke_combo_open"\x3e\x3cspan class\x3d"cke_combo_arrow"\x3e'+
+(CKEDITOR.env.hc?"\x26#9660;":CKEDITOR.env.air?"\x26nbsp;":"")+"\x3c/span\x3e\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e"),k=CKEDITOR.addTemplate("combo",c);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel";
+a.block={multiSelect:a.multiSelect,attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];this.render(a,b);return b.join("")},render:function(a,b){function f(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var b=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;a.readOnly&&!this.readOnly&&(b=CKEDITOR.TRISTATE_DISABLED);this.setState(b);this.setValue("");b!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var c=
+CKEDITOR.env,h="cke_"+this.id,e=CKEDITOR.tools.addFunction(function(b){l&&(a.unlockSelection(1),l=0);g.execute(b)},this),d=this,g={id:h,combo:this,focus:function(){CKEDITOR.document.getById(h).getChild(1).focus()},execute:function(b){var c=d._;if(c.state!=CKEDITOR.TRISTATE_DISABLED)if(d.createPanel(a),c.on)c.panel.hide();else{d.commit();var f=d.getValue();f?c.list.mark(f):c.list.unmarkAll();c.panel.showBlock(d.id,new CKEDITOR.dom.element(b),4)}},clickFn:e};a.on("activeFilterChange",f,this);a.on("mode",
+f,this);a.on("selectionChange",f,this);!this.readOnly&&a.on("readOnly",f,this);var m=CKEDITOR.tools.addFunction(function(a,b){a=new CKEDITOR.dom.event(a);var d=a.getKeystroke();switch(d){case 13:case 32:case 40:CKEDITOR.tools.callFunction(e,b);break;default:g.onkey(g,d)}a.preventDefault()}),n=CKEDITOR.tools.addFunction(function(){g.onfocus&&g.onfocus()}),l=0;g.keyDownFn=m;c={id:h,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:c.gecko&&!c.hc?"":(this.title||
+"").replace("'",""),keydownFn:m,focusFn:n,clickFn:e};k.output(c,b);if(this.onRender)this.onRender();return g},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,c=this._.panelDefinition.block,k=b.parent||CKEDITOR.document.getBody(),h="cke_combopanel__"+this.name,e=new CKEDITOR.ui.floatPanel(a,k,b),b=e.addListBlock(this.id,c),d=this;e.onShow=function(){this.element.addClass(h);d.setState(CKEDITOR.TRISTATE_ON);d._.on=1;d.editorFocus&&!a.focusManager.hasFocus&&a.focus();if(d.onOpen)d.onOpen()};
+e.onHide=function(b){this.element.removeClass(h);d.setState(d.modes&&d.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);d._.on=0;if(!b&&d.onClose)d.onClose()};e.onEscape=function(){e.hide(1)};b.onClick=function(a,b){d.onClick&&d.onClick.call(d,a,b);e.hide()};this._.panel=e;this._.list=b;e.getBlock(this.id).onHide=function(){d._.on=0;d.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,b){this._.value=a;var c=this.document.getById("cke_"+this.id+"_text");c&&
+(a||b?c.removeClass("cke_combo_inlinelabel"):(b=this.label,c.addClass("cke_combo_inlinelabel")),c.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},showAll:function(){this._.list.showAll()},add:function(a,b,c){this._.items[a]=c||a;this._.list.add(a,b,c)},startGroup:function(a){this._.list.startGroup(a)},
+commit:function(){this._.committed||(this._.list.commit(),this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo");a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled");this._.state=a}},getState:function(){return this._.state},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=
+CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}});CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}})();CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var f=a.config,c=a.lang.format,l=f.format_tags.split(";"),d={},m=0,n=[],g=0;g<l.length;g++){var h=l[g],k=new CKEDITOR.style(f["format_"+h]);if(!a.filter.customConfig||a.filter.check(k))m++,d[h]=k,d[h]._.enterMode=a.config.enterMode,n.push(k)}0!==m&&a.ui.addRichCombo("Format",{label:c.label,title:c.panelTitle,toolbar:"styles,20",allowedContent:n,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(f.contentsCss),
multiSelect:!1,attributes:{"aria-label":c.panelTitle}},init:function(){this.startGroup(c.panelTitle);for(var a in d){var e=c["tag_"+a];this.add(a,d[a].buildPreview(e),e)}},onClick:function(b){a.focus();a.fire("saveSnapshot");b=d[b];var e=a.elementPath();a[b.checkActive(e,a)?"removeStyle":"applyStyle"](b);setTimeout(function(){a.fire("saveSnapshot")},0)},onRender:function(){a.on("selectionChange",function(b){var e=this.getValue();b=b.data.path;this.refresh();for(var c in d)if(d[c].checkActive(b,a)){c!=
e&&this.setValue(c,a.lang.format["tag_"+c]);return}this.setValue("")},this)},onOpen:function(){this.showAll();for(var b in d)a.activeFilter.check(d[b])||this.hideItem(b)},refresh:function(){var b=a.elementPath();if(b){if(b.isContextFor("p"))for(var c in d)if(a.activeFilter.check(d[c]))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}}})}}});CKEDITOR.config.format_tags="p;h1;h2;h3;h4;h5;h6;pre;address;div";CKEDITOR.config.format_p={element:"p"};CKEDITOR.config.format_div={element:"div"};
CKEDITOR.config.format_pre={element:"pre"};CKEDITOR.config.format_address={element:"address"};CKEDITOR.config.format_h1={element:"h1"};CKEDITOR.config.format_h2={element:"h2"};CKEDITOR.config.format_h3={element:"h3"};CKEDITOR.config.format_h4={element:"h4"};CKEDITOR.config.format_h5={element:"h5"};CKEDITOR.config.format_h6={element:"h6"};(function(){var b={canUndo:!1,exec:function(a){var b=a.document.createElement("hr");a.insertElement(b)},allowedContent:"hr",requiredContent:"hr"};CKEDITOR.plugins.add("horizontalrule",{init:function(a){a.blockless||(a.addCommand("horizontalrule",b),a.ui.addButton&&a.ui.addButton("HorizontalRule",{label:a.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})})();CKEDITOR.plugins.add("htmlwriter",{init:function(b){var a=new CKEDITOR.htmlWriter;a.forceSimpleAmpersand=b.config.forceSimpleAmpersand;a.indentationChars=b.config.dataIndentationChars||"\t";b.dataProcessor.writer=a}});
b.$block&&!(a in{li:1,dt:1,dd:1})});this.setRules("br",{breakAfterOpen:1});this.setRules("title",{indent:0,breakAfterOpen:0});this.setRules("style",{indent:0,breakBeforeClose:1});this.setRules("pre",{breakAfterOpen:1,indent:0})},proto:{openTag:function(b){var a=this._.rules[b];this._.afterCloser&&a&&a.needsSpace&&this._.needsSpace&&this._.output.push("\n");this._.indent?this.indentation():a&&a.breakBeforeOpen&&(this.lineBreak(),this.indentation());this._.output.push("\x3c",b);this._.afterCloser=0},
openTagClose:function(b,a){var c=this._.rules[b];a?(this._.output.push(this.selfClosingEnd),c&&c.breakAfterClose&&(this._.needsSpace=c.needsSpace)):(this._.output.push("\x3e"),c&&c.indent&&(this._.indentation+=this.indentationChars));c&&c.breakAfterOpen&&this.lineBreak();"pre"==b&&(this._.inPre=1)},attribute:function(b,a){"string"==typeof a&&(this.forceSimpleAmpersand&&(a=a.replace(/&/g,"\x26")),a=CKEDITOR.tools.htmlEncodeAttr(a));this._.output.push(" ",b,'\x3d"',a,'"')},closeTag:function(b){var a=
this._.rules[b];a&&a.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length));this._.indent?this.indentation():a&&a.breakBeforeClose&&(this.lineBreak(),this.indentation());this._.output.push("\x3c/",b,"\x3e");"pre"==b&&(this._.inPre=0);a&&a.breakAfterClose&&(this.lineBreak(),this._.needsSpace=a.needsSpace);this._.afterCloser=1},text:function(b){this._.indent&&(this.indentation(),!this._.inPre&&(b=CKEDITOR.tools.ltrim(b)));this._.output.push(b)},comment:function(b){this._.indent&&
-this.indentation();this._.output.push("\x3c!--",b,"--\x3e")},lineBreak:function(){!this._.inPre&&0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0},setRules:function(b,a){var c=this._.rules[b];c?CKEDITOR.tools.extend(c,a,!0):this._.rules[b]=a}}});(function(){function g(a,b){var c=l.exec(a),d=l.exec(b);if(c){if(!c[2]&&"px"==d[2])return d[1];if("px"==c[2]&&!d[2])return d[1]+"px"}return b}var k=CKEDITOR.htmlParser.cssStyle,h=CKEDITOR.tools.cssLength,l=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i,m={elements:{$:function(a){var b=a.attributes;if((b=(b=(b=b&&b["data-cke-realelement"])&&new CKEDITOR.htmlParser.fragment.fromHtml(decodeURIComponent(b)))&&b.children[0])&&a.attributes["data-cke-resizable"]){var c=(new k(a)).rules;a=b.attributes;var d=c.width,
+this.indentation();this._.output.push("\x3c!--",b,"--\x3e")},lineBreak:function(){!this._.inPre&&0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0;this._.needsSpace=0},setRules:function(b,a){var c=this._.rules[b];c?CKEDITOR.tools.extend(c,a,!0):this._.rules[b]=
+a}}});(function(){function g(a,b){var c=l.exec(a),d=l.exec(b);if(c){if(!c[2]&&"px"==d[2])return d[1];if("px"==c[2]&&!d[2])return d[1]+"px"}return b}var k=CKEDITOR.htmlParser.cssStyle,h=CKEDITOR.tools.cssLength,l=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i,m={elements:{$:function(a){var b=a.attributes;if((b=(b=(b=b&&b["data-cke-realelement"])&&new CKEDITOR.htmlParser.fragment.fromHtml(decodeURIComponent(b)))&&b.children[0])&&a.attributes["data-cke-resizable"]){var c=(new k(a)).rules;a=b.attributes;var d=c.width,
c=c.height;d&&(a.width=g(a.width,d));c&&(a.height=g(a.height,c))}return b}}};CKEDITOR.plugins.add("fakeobjects",{init:function(a){a.filter.allow("img[!data-cke-realelement,src,alt,title](*){*}","fakeobjects")},afterInit:function(a){(a=(a=a.dataProcessor)&&a.htmlFilter)&&a.addRules(m,{applyToAll:!0})}});CKEDITOR.editor.prototype.createFakeElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown;b={"class":b,"data-cke-realelement":encodeURIComponent(a.getOuterHtml()),"data-cke-real-node-type":a.type,
alt:e,title:e,align:a.getAttribute("align")||""};CKEDITOR.env.hc||(b.src=CKEDITOR.tools.transparentImageData);c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,c=new k,d=a.getAttribute("width"),a=a.getAttribute("height"),d&&(c.rules.width=h(d)),a&&(c.rules.height=h(a)),c.populate(b));return this.document.createElement("img",{attributes:b})};CKEDITOR.editor.prototype.createFakeParserElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,f;f=new CKEDITOR.htmlParser.basicWriter;
a.writeHtml(f);f=f.getHtml();b={"class":b,"data-cke-realelement":encodeURIComponent(f),"data-cke-real-node-type":a.type,alt:e,title:e,align:a.attributes.align||""};CKEDITOR.env.hc||(b.src=CKEDITOR.tools.transparentImageData);c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,d=a.attributes,a=new k,c=d.width,d=d.height,void 0!==c&&(a.rules.width=h(c)),void 0!==d&&(a.rules.height=h(d)),a.populate(b));return new CKEDITOR.htmlParser.element("img",b)};CKEDITOR.editor.prototype.restoreRealElement=
function(a){if(a.data("cke-real-node-type")!=CKEDITOR.NODE_ELEMENT)return null;var b=CKEDITOR.dom.element.createFromHtml(decodeURIComponent(a.data("cke-realelement")),this.document);if(a.data("cke-resizable")){var c=a.getStyle("width");a=a.getStyle("height");c&&b.setAttribute("width",g(b.getAttribute("width"),c));a&&b.setAttribute("height",g(b.getAttribute("height"),a))}return b}})();(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b=a.lang.iframe,c="iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";a.plugins.dialogadvtab&&(c+=";iframe"+a.plugins.dialogadvtab.allowedContent({id:1,
classes:1,styles:1}));CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe",{allowedContent:c,requiredContent:"iframe"}));a.ui.addButton&&a.ui.addButton("Iframe",{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});
-a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe",!0)}}})}})})();(function(){function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is("img")&&!a.data("cke-realelement")&&!a.isReadOnly())return a}function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a||(a=b.getAttribute("align"));return a}CKEDITOR.plugins.add("image",{requires:"dialog",init:function(b){if(!b.plugins.image2){CKEDITOR.dialog.add("image",this.path+"dialogs/image.js");var a="img[alt,!src]{border-style,border-width,float,height,margin,margin-bottom,margin-left,margin-right,margin-top,width}";
+a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe",!0)}}})}})})();(function(){function m(a){function f(a){var b=!1;g.attachListener(g,"keydown",function(){var d=c.getBody().getElementsByTag(a);if(!b){for(var e=0;e<d.count();e++)d.getItem(e).setCustomData("retain",!0);b=!0}},null,null,1);g.attachListener(g,"keyup",function(){var d=c.getElementsByTag(a);b&&(1!=d.count()||d.getItem(0).getCustomData("retain")||d.getItem(0).hasAttribute("data-cke-temp")||d.getItem(0).remove(1),b=!1)})}var b=this.editor,c=a.document,d=c.body,e=c.getElementById("cke_actscrpt");e&&e.parentNode.removeChild(e);
+(e=c.getElementById("cke_shimscrpt"))&&e.parentNode.removeChild(e);(e=c.getElementById("cke_basetagscrpt"))&&e.parentNode.removeChild(e);d.contentEditable=!0;CKEDITOR.env.ie&&(d.hideFocus=!0,d.disabled=!0,d.removeAttribute("disabled"));delete this._.isLoadingData;this.$=d;c=new CKEDITOR.dom.document(c);this.setup();this.fixInitialSelection();var g=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&c.getDocumentElement().addClass(c.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&b.enterMode!=CKEDITOR.ENTER_P?
+f("p"):CKEDITOR.env.edge&&b.enterMode!=CKEDITOR.ENTER_DIV&&f("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)c.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){b.editable().focus()})});n(b);try{b.document.$.execCommand("2D-position",!1,!0)}catch(h){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==b.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var c=a.data.getKeystroke();if(33==c||34==c)if(CKEDITOR.env.ie)setTimeout(function(){b.getSelection().scrollIntoView()},
+0);else if(b.window.$.innerHeight>this.$.offsetHeight){var d=b.createRange();d[33==c?"moveToElementEditStart":"moveToElementEditEnd"](this);d.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(c,"blur",function(){try{c.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(c,"touchend",function(){a.focus()});d=b.document.getElementsByTag("title").getItem(0);d.data("cke-title",d.getText());CKEDITOR.env.ie&&(b.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"==
+this.status&&(this.status="ready");b.fire("contentDom");this._.isPendingFocus&&(b.focus(),this._.isPendingFocus=!1);setTimeout(function(){b.fire("dataReady")},0)},0,this)}function n(a){function f(){var c;a.editable().attachListener(a,"selectionChange",function(){var d=a.getSelection().getSelectedElement();d&&(c&&(c.detachEvent("onresizestart",b),c=null),d.$.attachEvent("onresizestart",b),c=d.$)})}function b(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var c=a.document.$;c.execCommand("enableObjectResizing",
+!1,!a.config.disableObjectResizing);c.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(d){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&f(a)}function p(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");var f=[],b;for(b in CKEDITOR.dtd.$removeEmpty)f.push("html.CSS1Compat "+b+"[contenteditable\x3dfalse]");a.push(f.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&
+(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}var l;CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"});a.addMode("wysiwyg",function(f){function b(b){b&&b.removeListener();
+a.editable(new l(a,d.$.contentWindow.document.body));a.setData(a.getData(1),f)}var c="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",c=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(c)+"}())":"",d=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+c+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');d.setStyles({width:"100%",height:"100%"});d.addClass("cke_wysiwyg_frame").addClass("cke_reset");
+c=a.ui.space("contents");c.append(d);var e=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(e)d.on("load",b);var g=a.title,h=a.fire("ariaEditorHelpLabel",{}).label;g&&(CKEDITOR.env.ie&&h&&(g+=", "+h),d.setAttribute("title",g));if(h){var g=CKEDITOR.tools.getNextId(),k=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+h+"\x3c/span\x3e");c.append(k,1);d.setAttribute("aria-describedby",g)}a.on("beforeModeUnload",function(a){a.removeListener();k&&k.remove()});
+d.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!e&&b();a.fire("ariaWidget",d)})}});CKEDITOR.editor.prototype.addContentsCss=function(a){var f=this.config,b=f.contentsCss;CKEDITOR.tools.isArray(b)||(f.contentsCss=b?[b]:[]);f.contentsCss.push(a)};l=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(m,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},
+base:CKEDITOR.editable,proto:{setData:function(a,f){var b=this.editor;if(f)this.setHtml(a),this.fixInitialSelection(),b.fire("dataReady");else{this._.isLoadingData=!0;b._.dataStore={id:1};var c=b.config,d=c.fullPage,e=c.docType,g=CKEDITOR.tools.buildStyleHtml(p()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');d||(g+=CKEDITOR.tools.buildStyleHtml(b.config.contentsCss));var h=c.baseHref?'\x3cbase href\x3d"'+c.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";d&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){b.docType=
+e=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){b.xmlDeclaration=a;return""}));a=b.dataProcessor.toHtml(a);d?(/<body[\s|>]/.test(a)||(a="\x3cbody\x3e"+a),/<html[\s|>]/.test(a)||(a="\x3chtml\x3e"+a+"\x3c/html\x3e"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$\x26\x3ctitle\x3e\x3c/title\x3e")):a=a.replace(/<html[^>]*>/,"$\x26\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e"),h&&(a=a.replace(/<head[^>]*?>/,"$\x26"+h)),a=a.replace(/<\/head\s*>/,g+"$\x26"),a=
+e+a):a=c.docType+'\x3chtml dir\x3d"'+c.contentsLangDirection+'" lang\x3d"'+(c.contentsLanguage||b.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+this._.docTitle+"\x3c/title\x3e"+h+g+"\x3c/head\x3e\x3cbody"+(c.bodyId?' id\x3d"'+c.bodyId+'"':"")+(c.bodyClass?' class\x3d"'+c.bodyClass+'"':"")+"\x3e"+a+"\x3c/body\x3e\x3c/html\x3e";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'\x3cbody contenteditable\x3d"true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$\x26\x3c!-- cke-content-start --\x3e")));
+c='\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"'+(CKEDITOR.env.ie?' defer\x3d"defer" ':"")+"\x3evar wasLoaded\x3d0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded\x3d1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"\x3c/script\x3e";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.parent.CKEDITOR.tools.enableHtml5Elements(document)\x3c/script\x3e');
+h&&CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_basetagscrpt"\x3evar baseTag \x3d document.querySelector( "base" );baseTag.href \x3d baseTag.href;\x3c/script\x3e');a=a.replace(/(?=\s*<\/(:?head)>)/,c);this.clearCustomData();this.clearListeners();b.fire("contentDomUnload");var k=this.getDocument();try{k.write(a)}catch(l){setTimeout(function(){k.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var f=a.config,b=f.fullPage,c=b&&a.docType,d=b&&a.xmlDeclaration,
+e=this.getDocument(),b=b?e.getDocumentElement().getOuterHtml():e.getBody().getHtml();CKEDITOR.env.gecko&&f.enterMode!=CKEDITOR.ENTER_BR&&(b=b.replace(/<br>(?=\s*(:?$|<\/body>))/,""));b=a.dataProcessor.toDataFormat(b);d&&(b=d+"\n"+b);c&&(b=c+"\n"+b);return b},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:l.baseProto.focus.call(this)},detach:function(){var a=this.editor,f=a.document,b;try{b=a.window.getFrame()}catch(c){}l.baseProto.detach.call(this);this.clearCustomData();f.getDocumentElement().clearCustomData();
+CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);b&&b.getParent()?(b.clearCustomData(),(a=b.removeCustomData("onResize"))&&a.removeListener(),b.remove()):CKEDITOR.warn("editor-destroy-iframe")}}})})();CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;(function(){function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is("img")&&!a.data("cke-realelement")&&!a.isReadOnly())return a}function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a||(a=b.getAttribute("align"));return a}CKEDITOR.plugins.add("image",{requires:"dialog",init:function(b){if(!b.plugins.image2){CKEDITOR.dialog.add("image",this.path+"dialogs/image.js");var a="img[alt,!src]{border-style,border-width,float,height,margin,margin-bottom,margin-left,margin-right,margin-top,width}";
CKEDITOR.dialog.isTabEnabled(b,"image","advanced")&&(a="img[alt,dir,id,lang,longdesc,!src,title]{*}(*)");b.addCommand("image",new CKEDITOR.dialogCommand("image",{allowedContent:a,requiredContent:"img[alt,src]",contentTransformations:[["img{width}: sizeToStyle","img[width]: sizeToAttribute"],["img{float}: alignmentToStyle","img[align]: alignmentToAttribute"]]}));b.ui.addButton&&b.ui.addButton("Image",{label:b.lang.common.image,command:"image",toolbar:"insert,10"});b.on("doubleclick",function(b){var a=
b.data.element;!a.is("img")||a.data("cke-realelement")||a.isReadOnly()||(b.data.dialog="image")});b.addMenuItems&&b.addMenuItems({image:{label:b.lang.image.menu,command:"image",group:"image"}});b.contextMenu&&b.contextMenu.addListener(function(a){if(e(b,a))return{image:CKEDITOR.TRISTATE_OFF}})}},afterInit:function(b){function a(a){var d=b.getCommand("justify"+a);if(d){if("left"==a||"right"==a)d.on("exec",function(d){var c=e(b),g;c&&(g=f(c),g==a?(c.removeStyle("float"),a==f(c)&&c.removeAttribute("align")):
c.setStyle("float",a),d.cancel())});d.on("refresh",function(d){var c=e(b);c&&(c=f(c),this.setState(c==a?CKEDITOR.TRISTATE_ON:"right"==a||"left"==a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),d.cancel())})}}b.plugins.image2||(a("left"),a("right"),a("center"),a("block"))}})})();CKEDITOR.config.image_removeLinkByEmptyURL=!0;(function(){function m(a,b){var e,f;b.on("refresh",function(a){var b=[k],c;for(c in a.data.states)b.push(a.data.states[c]);this.setState(CKEDITOR.tools.search(b,p)?p:k)},b,null,100);b.on("exec",function(b){e=a.getSelection();f=e.createBookmarks(1);b.data||(b.data={});b.data.done=!1},b,null,0);b.on("exec",function(){a.forceNextSelectionCheck();e.selectBookmarks(f)},b,null,100)}var k=CKEDITOR.TRISTATE_DISABLED,p=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(a){var b=CKEDITOR.plugins.indent.genericDefinition;
!0),a.fire("unlockSnapshot"),CKEDITOR.dom.element.clearAllMarkers(b.database))},this,null,c),e.on("refresh",function(d){d.data.states||(d.data.states={});d.data.states[b.name+"@"+c]=b.refreshJob(a,c,d.data.path)},this,null,c);a.addFeature(b)})(this,b[a])})}};CKEDITOR.plugins.indent.genericDefinition.prototype={context:"p",exec:function(){}};CKEDITOR.plugins.indent.specificDefinition.prototype={execJob:function(a,b){var e=this.jobs[b];if(e.state!=k)return e.exec.call(this,a)},refreshJob:function(a,
b,e){b=this.jobs[b];a.activeFilter.checkFeature(this)?b.state=b.refresh.call(this,a,e):b.state=k;return b.state},getContext:function(a){return a.contains(this.context)}}})();(function(){function f(b,c,a){if(!b.getCustomData("indent_processed")){var d=this.editor,l=this.isIndent;if(c){d=b.$.className.match(this.classNameRegex);a=0;d&&(d=d[1],a=CKEDITOR.tools.indexOf(c,d)+1);if(0>(a+=l?1:-1))return;a=Math.min(a,c.length);a=Math.max(a,0);b.$.className=CKEDITOR.tools.ltrim(b.$.className.replace(this.classNameRegex,""));0<a&&b.addClass(c[a-1])}else{c=m(b,a);a=parseInt(b.getStyle(c),10);var g=d.config.indentOffset||40;isNaN(a)&&(a=0);a+=(l?1:-1)*g;if(0>a)return;a=Math.max(a,
0);a=Math.ceil(a/g)*g;b.setStyle(c,a?a+(d.config.indentUnit||"px"):"");""===b.getAttribute("style")&&b.removeAttribute("style")}CKEDITOR.dom.element.setMarker(this.database,b,"indent_processed",1)}}function m(b,c){return"ltr"==(c||b.getComputedStyle("direction"))?"margin-left":"margin-right"}var h=CKEDITOR.dtd.$listItem,p=CKEDITOR.dtd.$list,k=CKEDITOR.TRISTATE_DISABLED,n=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentblock",{requires:"indent",init:function(b){function c(){a.specificDefinition.apply(this,
-arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:d?null:"margin-left,margin-right",classes:d||null}};this.enterBr&&(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(!e.is(h))var c=e.getAscendant(h),e=c&&b.contains(c)||e;e.is(h)&&(e=e.getParent());if(this.enterBr||this.getContext(b)){if(d){var c=d,e=e.$.className.match(this.classNameRegex),
-f=this.isIndent,c=e?f?e[1]!=c.slice(-1):!0:f;return c?n:k}return this.isIndent?n:e?CKEDITOR[0>=(parseInt(e.getStyle(m(e)),10)||0)?"TRISTATE_DISABLED":"TRISTATE_OFF"]:k}return k},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges()[0],c;if(c=a.elementPath().contains(p))f.call(this,c,d);else for(b=b.createIterator(),a=a.config.enterMode,b.enforceRealBlocks=!0,b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)c.isReadOnly()||f.call(this,c,d);return!0}}}}var a=
-CKEDITOR.plugins.indent,d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?new RegExp("(?:^|\\s+)("+d.join("|")+")(?\x3d$|\\s)"):null})}})})();(function(){function w(c){function f(b){for(var e=d.startContainer,a=d.endContainer;e&&!e.getParent().equals(b);)e=e.getParent();for(;a&&!a.getParent().equals(b);)a=a.getParent();if(!e||!a)return!1;for(var g=e,e=[],k=!1;!k;)g.equals(a)&&(k=!0),e.push(g),g=g.getNext();if(1>e.length)return!1;g=b.getParents(!0);for(a=0;a<g.length;a++)if(g[a].getName&&p[g[a].getName()]){b=g[a];break}for(var g=l.isIndent?1:-1,a=e[0],e=e[e.length-1],k=CKEDITOR.plugins.list.listToArray(b,q),n=k[e.getCustomData("listarray_index")].indent,
-a=a.getCustomData("listarray_index");a<=e.getCustomData("listarray_index");a++)if(k[a].indent+=g,0<g){var h=k[a].parent;k[a].parent=new CKEDITOR.dom.element(h.getName(),h.getDocument())}for(a=e.getCustomData("listarray_index")+1;a<k.length&&k[a].indent>n;a++)k[a].indent+=g;e=CKEDITOR.plugins.list.arrayToList(k,q,null,c.config.enterMode,b.getDirection());if(!l.isIndent){var f;if((f=b.getParent())&&f.is("li"))for(var g=e.listNode.getChildren(),r=[],m,a=g.count()-1;0<=a;a--)(m=g.getItem(a))&&m.is&&m.is("li")&&
-r.push(m)}e&&e.listNode.replace(b);if(r&&r.length)for(a=0;a<r.length;a++){for(m=b=r[a];(m=m.getNext())&&m.is&&m.getName()in p;)CKEDITOR.env.needsNbspFiller&&!b.getFirst(x)&&b.append(d.document.createText(" ")),b.append(m);b.insertAfter(f)}e&&c.fire("contentDomInvalidated");return!0}for(var l=this,q=this.database,p=this.context,n=c.getSelection(),n=(n&&n.getRanges()).createIterator(),d;d=n.getNextRange();){for(var b=d.getCommonAncestor();b&&(b.type!=CKEDITOR.NODE_ELEMENT||!p[b.getName()]);){if(c.editable().equals(b)){b=
-!1;break}b=b.getParent()}b||(b=d.startPath().contains(p))&&d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);if(!b){var h=d.getEnclosedNode();h&&h.type==CKEDITOR.NODE_ELEMENT&&h.getName()in p&&(d.setStartAt(h,CKEDITOR.POSITION_AFTER_START),d.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),b=h)}b&&d.startContainer.type==CKEDITOR.NODE_ELEMENT&&d.startContainer.getName()in p&&(h=new CKEDITOR.dom.walker(d),h.evaluator=t,d.startContainer=h.next());b&&d.endContainer.type==CKEDITOR.NODE_ELEMENT&&d.endContainer.getName()in
-p&&(h=new CKEDITOR.dom.walker(d),h.evaluator=t,d.endContainer=h.previous());if(b)return f(b)}return 0}function t(c){return c.type==CKEDITOR.NODE_ELEMENT&&c.is("li")}function x(c){return y(c)&&z(c)}var y=CKEDITOR.dom.walker.whitespaces(!0),z=CKEDITOR.dom.walker.bookmark(!1,!0),u=CKEDITOR.TRISTATE_DISABLED,v=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(c){function f(c){l.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];c.on("key",
-function(f){if("wysiwyg"==c.mode&&f.data.keyCode==this.indentKey){var n=this.getContext(c.elementPath());!n||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,c.elementPath(),n)||(c.execCommand(this.relatedGlobal),f.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(c,f){var d=this.getContext(f),b=CKEDITOR.plugins.indentList.firstItemInPath(this.context,f,d);return d&&this.isIndent&&!b?v:u}:function(c,f){return!this.getContext(f)||this.isIndent?
-u:v},exec:CKEDITOR.tools.bind(w,this)}}var l=CKEDITOR.plugins.indent;l.registerCommands(c,{indentlist:new f(c,"indentlist",!0),outdentlist:new f(c,"outdentlist")});CKEDITOR.tools.extend(f.prototype,l.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(c,f,l){var q=f.contains(t);l||(l=f.contains(c));return l&&q&&q.equals(l.getFirst(t))}})();(function(){function n(a,c){c=void 0===c||c;var b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function g(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";c=a.config.justifyClasses;var h=a.config.enterMode==
-CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=new RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?\x3d$|\\s)");this.requiredContent=h+"("+this.cssClassName+")"}else this.requiredContent=h+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",
-classes:this.cssClassName||null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function l(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var h=new CKEDITOR.dom.walker(b),d;d=h.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),h=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),
-d.addClass(e[0])));e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}g.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var h=c.createBookmarks(),d=c.getRanges(),e=this.cssClassName,g,f,k=a.config.useComputedState,k=void 0===k||k,m=d.length-1;0<=m;m--)for(g=d[m].createIterator(),g.enlargeBr=b!=CKEDITOR.ENTER_BR;f=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)if(!f.isReadOnly()){f.removeAttribute("align");
-f.removeStyle("text-align");var l=e&&(f.$.className=CKEDITOR.tools.ltrim(f.$.className.replace(this.cssClassRegex,""))),p=this.state==CKEDITOR.TRISTATE_OFF&&(!k||n(f,!0)!=this.value);e?p?f.addClass(e):l||f.removeAttribute("class"):p&&f.setStyle("text-align",this.value)}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(h)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&n(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};
-CKEDITOR.plugins.add("justify",{init:function(a){if(!a.blockless){var c=new g(a,"justifyleft","left"),b=new g(a,"justifycenter","center"),h=new g(a,"justifyright","right"),d=new g(a,"justifyblock","justify");a.addCommand("justifyleft",c);a.addCommand("justifycenter",b);a.addCommand("justifyright",h);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,
-command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock",toolbar:"align,40"}));a.on("dirChanged",l)}}})})();(function(){function p(c){return c.replace(/'/g,"\\$\x26")}function q(c){for(var b,a=c.length,f=[],e=0;e<a;e++)b=c.charCodeAt(e),f.push(b);return"String.fromCharCode("+f.join(",")+")"}function r(c,b){var a=c.plugins.link,f=a.compiledProtectionFunction.params,e,d;d=[a.compiledProtectionFunction.name,"("];for(var g=0;g<f.length;g++)a=f[g].toLowerCase(),e=b[a],0<g&&d.push(","),d.push("'",e?p(encodeURIComponent(b[a])):"","'");d.push(")");return d.join("")}function n(c){c=c.config.emailProtection||"";
-var b;c&&"encode"!=c&&(b={},c.replace(/^([^(]+)\(([^)]+)\)$/,function(a,c,e){b.name=c;b.params=[];e.replace(/[^,\s]+/g,function(a){b.params.push(a)})}));return b}CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function c(b){return a.replace(/%1/g,"rtl"==b?"right":"left").replace(/%2/g,"cke_contents_"+b)}var b="background:url("+CKEDITOR.getUrl(this.path+"images"+(CKEDITOR.env.hidpi?"/hidpi":"")+"/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;background-size:16px;",
-a=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+b+"padding-%1:18px;cursor:auto;}.%2 img.cke_anchor{"+b+"width:16px;min-height:15px;height:1.15em;vertical-align:text-bottom;}";CKEDITOR.addCss(c("ltr")+c("rtl"))},init:function(c){var b="a[!href]";CKEDITOR.dialog.isTabEnabled(c,"link","advanced")&&(b=b.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)"));CKEDITOR.dialog.isTabEnabled(c,"link","target")&&(b=b.replace("]",
-",target,onclick]"));c.addCommand("link",new CKEDITOR.dialogCommand("link",{allowedContent:b,requiredContent:"a[href]"}));c.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"}));c.addCommand("unlink",new CKEDITOR.unlinkCommand);c.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand);c.setKeystroke(CKEDITOR.CTRL+76,"link");c.ui.addButton&&(c.ui.addButton("Link",{label:c.lang.link.toolbar,command:"link",toolbar:"links,10"}),c.ui.addButton("Unlink",
-{label:c.lang.link.unlink,command:"unlink",toolbar:"links,20"}),c.ui.addButton("Anchor",{label:c.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"}));CKEDITOR.dialog.add("link",this.path+"dialogs/link.js");CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js");c.on("doubleclick",function(a){var b=CKEDITOR.plugins.link.getSelectedLink(c)||a.data.element;b.isReadOnly()||(b.is("a")?(a.data.dialog=!b.getAttribute("name")||b.getAttribute("href")&&b.getChildCount()?"link":"anchor",a.data.link=
-b):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b)&&(a.data.dialog="anchor"))},null,null,0);c.on("doubleclick",function(a){a.data.dialog in{link:1,anchor:1}&&a.data.link&&c.getSelection().selectElement(a.data.link)},null,null,20);c.addMenuItems&&c.addMenuItems({anchor:{label:c.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:c.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:c.lang.link.menu,command:"link",group:"link",order:1},unlink:{label:c.lang.link.unlink,
-command:"unlink",group:"link",order:5}});c.contextMenu&&c.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a);if(!a&&!(a=CKEDITOR.plugins.link.getSelectedLink(c)))return null;var b={};a.getAttribute("href")&&a.getChildCount()&&(b={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF});a&&a.hasAttribute("name")&&(b.anchor=b.removeAnchor=CKEDITOR.TRISTATE_OFF);return b});this.compiledProtectionFunction=n(c)},afterInit:function(c){c.dataProcessor.dataFilter.addRules({elements:{a:function(a){return a.attributes.name?
-a.children.length?null:c.createFakeParserElement(a,"cke_anchor","anchor"):null}}});var b=c._.elementsPath&&c._.elementsPath.filters;b&&b.push(function(a,b){if("a"==b&&(CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a)||a.getAttribute("name")&&(!a.getAttribute("href")||!a.getChildCount())))return"anchor"})}});var t=/^javascript:/,u=/^mailto:([^?]+)(?:\?(.+))?$/,v=/subject=([^;?:@&=$,\/]*)/i,w=/body=([^;?:@&=$,\/]*)/i,x=/^#(.*)$/,y=/^((?:http|https|ftp|news):\/\/)?(.*)$/,z=/^(_(?:self|top|parent|blank))$/,
-A=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,B=/^javascript:([^(]+)\(([^)]+)\)$/,C=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,D=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,m={id:"advId",dir:"advLangDir",accessKey:"advAccessKey",name:"advName",lang:"advLangCode",tabindex:"advTabIndex",title:"advTitle",type:"advContentType","class":"advCSSClasses",charset:"advCharset",style:"advStyles",rel:"advRel"};
-CKEDITOR.plugins.link={getSelectedLink:function(c){var b=c.getSelection(),a=b.getSelectedElement();return a&&a.is("a")?a:(b=b.getRanges()[0])?(b.shrink(CKEDITOR.SHRINK_TEXT),c.elementPath(b.getCommonAncestor()).contains("a",1)):null},getEditorAnchors:function(c){for(var b=c.editable(),a=b.isInline()&&!c.plugins.divarea?c.document:b,b=a.getElementsByTag("a"),a=a.getElementsByTag("img"),f=[],e=0,d;d=b.getItem(e++);)(d.data("cke-saved-name")||d.hasAttribute("name"))&&f.push({name:d.data("cke-saved-name")||
-d.getAttribute("name"),id:d.getAttribute("id")});for(e=0;d=a.getItem(e++);)(d=this.tryRestoreFakeAnchor(c,d))&&f.push({name:d.getAttribute("name"),id:d.getAttribute("id")});return f},fakeAnchor:!0,tryRestoreFakeAnchor:function(c,b){if(b&&b.data("cke-real-element-type")&&"anchor"==b.data("cke-real-element-type")){var a=c.restoreRealElement(b);if(a.data("cke-saved-name"))return a}},parseLinkAttributes:function(c,b){var a=b&&(b.data("cke-saved-href")||b.getAttribute("href"))||"",f=c.plugins.link.compiledProtectionFunction,
-e=c.config.emailProtection,d,g={};a.match(t)&&("encode"==e?a=a.replace(A,function(a,b,c){c=c||"";return"mailto:"+String.fromCharCode.apply(String,b.split(","))+c.replace(/\\'/g,"'")}):e&&a.replace(B,function(a,b,c){if(b==f.name){g.type="email";a=g.email={};b=/(^')|('$)/g;c=c.match(/[^,\s]+/g);for(var d=c.length,e,h,k=0;k<d;k++)e=decodeURIComponent,h=c[k].replace(b,"").replace(/\\'/g,"'"),h=e(h),e=f.params[k].toLowerCase(),a[e]=h;a.address=[a.name,a.domain].join("@")}}));if(!g.type)if(e=a.match(x))g.type=
-"anchor",g.anchor={},g.anchor.name=g.anchor.id=e[1];else if(e=a.match(u)){d=a.match(v);a=a.match(w);g.type="email";var k=g.email={};k.address=e[1];d&&(k.subject=decodeURIComponent(d[1]));a&&(k.body=decodeURIComponent(a[1]))}else a&&(d=a.match(y))&&(g.type="url",g.url={},g.url.protocol=d[1],g.url.url=d[2]);if(b){if(a=b.getAttribute("target"))g.target={type:a.match(z)?a:"frame",name:a};else if(a=(a=b.data("cke-pa-onclick")||b.getAttribute("onclick"))&&a.match(C))for(g.target={type:"popup",name:a[1]};e=
-D.exec(a[2]);)"yes"!=e[2]&&"1"!=e[2]||e[1]in{height:1,width:1,top:1,left:1}?isFinite(e[2])&&(g.target[e[1]]=e[2]):g.target[e[1]]=!0;var a={},h;for(h in m)(e=b.getAttribute(h))&&(a[m[h]]=e);if(h=b.data("cke-saved-name")||a.advName)a.advName=h;CKEDITOR.tools.isEmpty(a)||(g.advanced=a)}return g},getLinkAttributes:function(c,b){var a=c.config.emailProtection||"",f={};switch(b.type){case "url":var a=b.url&&void 0!==b.url.protocol?b.url.protocol:"http://",e=b.url&&CKEDITOR.tools.trim(b.url.url)||"";f["data-cke-saved-href"]=
-0===e.indexOf("/")?e:a+e;break;case "anchor":a=b.anchor&&b.anchor.id;f["data-cke-saved-href"]="#"+(b.anchor&&b.anchor.name||a||"");break;case "email":var d=b.email,e=d.address;switch(a){case "":case "encode":var g=encodeURIComponent(d.subject||""),k=encodeURIComponent(d.body||""),d=[];g&&d.push("subject\x3d"+g);k&&d.push("body\x3d"+k);d=d.length?"?"+d.join("\x26"):"";"encode"==a?(a=["javascript:void(location.href\x3d'mailto:'+",q(e)],d&&a.push("+'",p(d),"'"),a.push(")")):a=["mailto:",e,d];break;default:a=
-e.split("@",2),d.name=a[0],d.domain=a[1],a=["javascript:",r(c,d)]}f["data-cke-saved-href"]=a.join("")}if(b.target)if("popup"==b.target.type){for(var a=["window.open(this.href, '",b.target.name||"","', '"],h="resizable status location toolbar menubar fullscreen scrollbars dependent".split(" "),e=h.length,g=function(a){b.target[a]&&h.push(a+"\x3d"+b.target[a])},d=0;d<e;d++)h[d]+=b.target[h[d]]?"\x3dyes":"\x3dno";g("width");g("left");g("height");g("top");a.push(h.join(","),"'); return false;");f["data-cke-pa-onclick"]=
-a.join("")}else"notSet"!=b.target.type&&b.target.name&&(f.target=b.target.name);if(b.advanced){for(var l in m)(a=b.advanced[m[l]])&&(f[l]=a);f.name&&(f["data-cke-saved-name"]=f.name)}f["data-cke-saved-href"]&&(f.href=f["data-cke-saved-href"]);l={target:1,onclick:1,"data-cke-pa-onclick":1,"data-cke-saved-name":1};b.advanced&&CKEDITOR.tools.extend(l,m);for(var n in f)delete l[n];return{set:f,removed:CKEDITOR.tools.objectKeys(l)}}};CKEDITOR.unlinkCommand=function(){};CKEDITOR.unlinkCommand.prototype=
-{exec:function(c){var b=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});c.removeStyle(b)},refresh:function(c,b){var a=b.lastElement&&b.lastElement.getAscendant("a",!0);a&&"a"==a.getName()&&a.getAttribute("href")&&a.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]"};CKEDITOR.removeAnchorCommand=function(){};CKEDITOR.removeAnchorCommand.prototype={exec:function(c){var b=
-c.getSelection(),a=b.createBookmarks(),f;if(b&&(f=b.getSelectedElement())&&(f.getChildCount()?f.is("a"):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,f)))f.remove(1);else if(f=CKEDITOR.plugins.link.getSelectedLink(c))f.hasAttribute("href")?(f.removeAttributes({name:1,"data-cke-saved-name":1}),f.removeClass("cke_anchor")):f.remove(1);b.selectBookmarks(a)},requiredContent:"a[name]"};CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0})})();(function(){function I(b,m,e){function c(c){if(!(!(a=d[c?"getFirst":"getLast"]())||a.is&&a.isBlockBoundary()||!(p=m.root[c?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||p.is&&p.isBlockBoundary({br:1})))b.document.createElement("br")[c?"insertBefore":"insertAfter"](a)}for(var f=CKEDITOR.plugins.list.listToArray(m.root,e),g=[],k=0;k<m.contents.length;k++){var h=m.contents[k];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(g.push(h),CKEDITOR.dom.element.setMarker(e,
+arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:d?null:"margin-left,margin-right",classes:d||null}};this.contentTransformations=[["div: splitMarginShorthand"],["h1: splitMarginShorthand"],["h2: splitMarginShorthand"],["h3: splitMarginShorthand"],["h4: splitMarginShorthand"],["h5: splitMarginShorthand"],["h6: splitMarginShorthand"],["ol: splitMarginShorthand"],["p: splitMarginShorthand"],["pre: splitMarginShorthand"],["ul: splitMarginShorthand"]];this.enterBr&&
+(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(!e.is(h))var c=e.getAscendant(h),e=c&&b.contains(c)||e;e.is(h)&&(e=e.getParent());if(this.enterBr||this.getContext(b)){if(d){var c=d,e=e.$.className.match(this.classNameRegex),f=this.isIndent,c=e?f?e[1]!=c.slice(-1):!0:f;return c?n:k}return this.isIndent?n:e?CKEDITOR[0>=(parseInt(e.getStyle(m(e)),10)||0)?"TRISTATE_DISABLED":
+"TRISTATE_OFF"]:k}return k},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges()[0],c;if(c=a.elementPath().contains(p))f.call(this,c,d);else for(b=b.createIterator(),a=a.config.enterMode,b.enforceRealBlocks=!0,b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)c.isReadOnly()||f.call(this,c,d);return!0}}}}var a=CKEDITOR.plugins.indent,d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});
+CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?new RegExp("(?:^|\\s+)("+d.join("|")+")(?\x3d$|\\s)"):null})}})})();(function(){function w(d){function f(b){for(var e=c.startContainer,a=c.endContainer;e&&!e.getParent().equals(b);)e=e.getParent();for(;a&&!a.getParent().equals(b);)a=a.getParent();if(!e||!a)return!1;for(var g=e,e=[],k=!1;!k;)g.equals(a)&&(k=!0),e.push(g),g=g.getNext();if(1>e.length)return!1;g=b.getParents(!0);for(a=0;a<g.length;a++)if(g[a].getName&&p[g[a].getName()]){b=g[a];break}for(var g=l.isIndent?1:-1,a=e[0],e=e[e.length-1],k=CKEDITOR.plugins.list.listToArray(b,q),h=k[e.getCustomData("listarray_index")].indent,
+a=a.getCustomData("listarray_index");a<=e.getCustomData("listarray_index");a++)if(k[a].indent+=g,0<g){var n=k[a].parent;k[a].parent=new CKEDITOR.dom.element(n.getName(),n.getDocument())}for(a=e.getCustomData("listarray_index")+1;a<k.length&&k[a].indent>h;a++)k[a].indent+=g;e=CKEDITOR.plugins.list.arrayToList(k,q,null,d.config.enterMode,b.getDirection());if(!l.isIndent){var f;if((f=b.getParent())&&f.is("li"))for(var g=e.listNode.getChildren(),r=[],m,a=g.count()-1;0<=a;a--)(m=g.getItem(a))&&m.is&&m.is("li")&&
+r.push(m)}e&&e.listNode.replace(b);if(r&&r.length)for(a=0;a<r.length;a++){for(m=b=r[a];(m=m.getNext())&&m.is&&m.getName()in p;)CKEDITOR.env.needsNbspFiller&&!b.getFirst(x)&&b.append(c.document.createText(" ")),b.append(m);b.insertAfter(f)}e&&d.fire("contentDomInvalidated");return!0}for(var l=this,q=this.database,p=this.context,c,n=d.getSelection(),n=(n&&n.getRanges()).createIterator();c=n.getNextRange();){for(var b=c.getCommonAncestor();b&&(b.type!=CKEDITOR.NODE_ELEMENT||!p[b.getName()]);){if(d.editable().equals(b)){b=
+!1;break}b=b.getParent()}b||(b=c.startPath().contains(p))&&c.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);if(!b){var h=c.getEnclosedNode();h&&h.type==CKEDITOR.NODE_ELEMENT&&h.getName()in p&&(c.setStartAt(h,CKEDITOR.POSITION_AFTER_START),c.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),b=h)}b&&c.startContainer.type==CKEDITOR.NODE_ELEMENT&&c.startContainer.getName()in p&&(h=new CKEDITOR.dom.walker(c),h.evaluator=t,c.startContainer=h.next());b&&c.endContainer.type==CKEDITOR.NODE_ELEMENT&&c.endContainer.getName()in
+p&&(h=new CKEDITOR.dom.walker(c),h.evaluator=t,c.endContainer=h.previous());if(b)return f(b)}return 0}function t(d){return d.type==CKEDITOR.NODE_ELEMENT&&d.is("li")}function x(d){return y(d)&&z(d)}var y=CKEDITOR.dom.walker.whitespaces(!0),z=CKEDITOR.dom.walker.bookmark(!1,!0),u=CKEDITOR.TRISTATE_DISABLED,v=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(d){function f(d){l.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];d.on("key",
+function(f){var c=d.elementPath();if("wysiwyg"==d.mode&&f.data.keyCode==this.indentKey&&c){var n=this.getContext(c);!n||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,c,n)||(d.execCommand(this.relatedGlobal),f.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(d,c){var f=this.getContext(c),b=CKEDITOR.plugins.indentList.firstItemInPath(this.context,c,f);return f&&this.isIndent&&!b?v:u}:function(d,c){return!this.getContext(c)||this.isIndent?u:v},
+exec:CKEDITOR.tools.bind(w,this)}}var l=CKEDITOR.plugins.indent;l.registerCommands(d,{indentlist:new f(d,"indentlist",!0),outdentlist:new f(d,"outdentlist")});CKEDITOR.tools.extend(f.prototype,l.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(d,f,l){var q=f.contains(t);l||(l=f.contains(d));return l&&q&&q.equals(l.getFirst(t))}})();(function(){function q(a,c){c=void 0===c||c;var b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function h(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";c=a.config.justifyClasses;var f=a.config.enterMode==
+CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=new RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?\x3d$|\\s)");this.requiredContent=f+"("+this.cssClassName+")"}else this.requiredContent=f+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",
+classes:this.cssClassName||null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function m(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var f=new CKEDITOR.dom.walker(b),d;d=f.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),f=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),
+d.addClass(e[0])));e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}h.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var f=c.createBookmarks(),d=c.getRanges(),e=this.cssClassName,h,g,k=a.config.useComputedState,k=void 0===k||k,n=d.length-1;0<=n;n--)for(h=d[n].createIterator(),h.enlargeBr=b!=CKEDITOR.ENTER_BR;g=h.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)if(!g.isReadOnly()){var l=g.getName(),
+p;p=a.activeFilter.check(l+"{text-align}");if((l=a.activeFilter.check(l+"("+e+")"))||p){g.removeAttribute("align");g.removeStyle("text-align");var m=e&&(g.$.className=CKEDITOR.tools.ltrim(g.$.className.replace(this.cssClassRegex,""))),r=this.state==CKEDITOR.TRISTATE_OFF&&(!k||q(g,!0)!=this.value);e&&l?r?g.addClass(e):m||g.removeAttribute("class"):r&&p&&g.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(f)}},refresh:function(a,c){var b=c.block||c.blockLimit,
+f=b.getName(),d=b.equals(a.editable()),f=this.cssClassName?a.activeFilter.check(f+"("+this.cssClassName+")"):a.activeFilter.check(f+"{text-align}");d&&1===c.elements.length?this.setState(CKEDITOR.TRISTATE_OFF):!d&&f?this.setState(q(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)}};CKEDITOR.plugins.add("justify",{init:function(a){if(!a.blockless){var c=new h(a,"justifyleft","left"),b=new h(a,"justifycenter","center"),
+f=new h(a,"justifyright","right"),d=new h(a,"justifyblock","justify");a.addCommand("justifyleft",c);a.addCommand("justifycenter",b);a.addCommand("justifyright",f);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),
+a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock",toolbar:"align,40"}));a.on("dirChanged",m)}}})})();(function(){function p(c){return c.replace(/'/g,"\\$\x26")}function q(c){for(var b,a=c.length,d=[],f=0;f<a;f++)b=c.charCodeAt(f),d.push(b);return"String.fromCharCode("+d.join(",")+")"}function r(c,b){var a=c.plugins.link,d=a.compiledProtectionFunction.params,f,e;e=[a.compiledProtectionFunction.name,"("];for(var g=0;g<d.length;g++)a=d[g].toLowerCase(),f=b[a],0<g&&e.push(","),e.push("'",f?p(encodeURIComponent(b[a])):"","'");e.push(")");return e.join("")}function n(c){c=c.config.emailProtection||"";
+var b;c&&"encode"!=c&&(b={},c.replace(/^([^(]+)\(([^)]+)\)$/,function(a,c,f){b.name=c;b.params=[];f.replace(/[^,\s]+/g,function(a){b.params.push(a)})}));return b}CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function c(b){return a.replace(/%1/g,"rtl"==b?"right":"left").replace(/%2/g,"cke_contents_"+b)}var b="background:url("+CKEDITOR.getUrl(this.path+"images"+(CKEDITOR.env.hidpi?"/hidpi":"")+"/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;background-size:16px;",
+a=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+b+"padding-%1:18px;cursor:auto;}.%2 img.cke_anchor{"+b+"width:16px;min-height:15px;height:1.15em;vertical-align:text-bottom;}";CKEDITOR.addCss(c("ltr")+c("rtl"))},init:function(c){var b="a[!href]";CKEDITOR.dialog.isTabEnabled(c,"link","advanced")&&(b=b.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)"));CKEDITOR.dialog.isTabEnabled(c,"link","target")&&
+(b=b.replace("]",",target,onclick]"));c.addCommand("link",new CKEDITOR.dialogCommand("link",{allowedContent:b,requiredContent:"a[href]"}));c.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"}));c.addCommand("unlink",new CKEDITOR.unlinkCommand);c.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand);c.setKeystroke(CKEDITOR.CTRL+76,"link");c.ui.addButton&&(c.ui.addButton("Link",{label:c.lang.link.toolbar,command:"link",toolbar:"links,10"}),
+c.ui.addButton("Unlink",{label:c.lang.link.unlink,command:"unlink",toolbar:"links,20"}),c.ui.addButton("Anchor",{label:c.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"}));CKEDITOR.dialog.add("link",this.path+"dialogs/link.js");CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js");c.on("doubleclick",function(a){var b=a.data.element.getAscendant({a:1,img:1},!0);b&&!b.isReadOnly()&&(b.is("a")?(a.data.dialog=!b.getAttribute("name")||b.getAttribute("href")&&b.getChildCount()?"link":
+"anchor",a.data.link=b):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b)&&(a.data.dialog="anchor"))},null,null,0);c.on("doubleclick",function(a){a.data.dialog in{link:1,anchor:1}&&a.data.link&&c.getSelection().selectElement(a.data.link)},null,null,20);c.addMenuItems&&c.addMenuItems({anchor:{label:c.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:c.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:c.lang.link.menu,command:"link",group:"link",
+order:1},unlink:{label:c.lang.link.unlink,command:"unlink",group:"link",order:5}});c.contextMenu&&c.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a);if(!a&&!(a=CKEDITOR.plugins.link.getSelectedLink(c)))return null;var b={};a.getAttribute("href")&&a.getChildCount()&&(b={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF});a&&a.hasAttribute("name")&&(b.anchor=b.removeAnchor=CKEDITOR.TRISTATE_OFF);return b});this.compiledProtectionFunction=
+n(c)},afterInit:function(c){c.dataProcessor.dataFilter.addRules({elements:{a:function(a){return a.attributes.name?a.children.length?null:c.createFakeParserElement(a,"cke_anchor","anchor"):null}}});var b=c._.elementsPath&&c._.elementsPath.filters;b&&b.push(function(a,b){if("a"==b&&(CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a)||a.getAttribute("name")&&(!a.getAttribute("href")||!a.getChildCount())))return"anchor"})}});var t=/^javascript:/,u=/^mailto:([^?]+)(?:\?(.+))?$/,v=/subject=([^;?:@&=$,\/]*)/i,
+w=/body=([^;?:@&=$,\/]*)/i,x=/^#(.*)$/,y=/^((?:http|https|ftp|news):\/\/)?(.*)$/,z=/^(_(?:self|top|parent|blank))$/,A=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,B=/^javascript:([^(]+)\(([^)]+)\)$/,C=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,D=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,m={id:"advId",dir:"advLangDir",accessKey:"advAccessKey",name:"advName",lang:"advLangCode",tabindex:"advTabIndex",
+title:"advTitle",type:"advContentType","class":"advCSSClasses",charset:"advCharset",style:"advStyles",rel:"advRel"};CKEDITOR.plugins.link={getSelectedLink:function(c,b){var a=c.getSelection(),d=a.getSelectedElement(),f=a.getRanges(),e=[],g;if(!b&&d&&d.is("a"))return d;for(d=0;d<f.length;d++)if(g=a.getRanges()[d],g.shrink(CKEDITOR.SHRINK_TEXT,!1,{skipBogus:!0}),(g=c.elementPath(g.getCommonAncestor()).contains("a",1))&&b)e.push(g);else if(g)return g;return b?e:null},getEditorAnchors:function(c){for(var b=
+c.editable(),a=b.isInline()&&!c.plugins.divarea?c.document:b,b=a.getElementsByTag("a"),a=a.getElementsByTag("img"),d=[],f=0,e;e=b.getItem(f++);)(e.data("cke-saved-name")||e.hasAttribute("name"))&&d.push({name:e.data("cke-saved-name")||e.getAttribute("name"),id:e.getAttribute("id")});for(f=0;e=a.getItem(f++);)(e=this.tryRestoreFakeAnchor(c,e))&&d.push({name:e.getAttribute("name"),id:e.getAttribute("id")});return d},fakeAnchor:!0,tryRestoreFakeAnchor:function(c,b){if(b&&b.data("cke-real-element-type")&&
+"anchor"==b.data("cke-real-element-type")){var a=c.restoreRealElement(b);if(a.data("cke-saved-name"))return a}},parseLinkAttributes:function(c,b){var a=b&&(b.data("cke-saved-href")||b.getAttribute("href"))||"",d=c.plugins.link.compiledProtectionFunction,f=c.config.emailProtection,e,g={};a.match(t)&&("encode"==f?a=a.replace(A,function(a,b,c){c=c||"";return"mailto:"+String.fromCharCode.apply(String,b.split(","))+c.replace(/\\'/g,"'")}):f&&a.replace(B,function(a,b,c){if(b==d.name){g.type="email";a=g.email=
+{};b=/(^')|('$)/g;c=c.match(/[^,\s]+/g);for(var e=c.length,f,h,k=0;k<e;k++)f=decodeURIComponent,h=c[k].replace(b,"").replace(/\\'/g,"'"),h=f(h),f=d.params[k].toLowerCase(),a[f]=h;a.address=[a.name,a.domain].join("@")}}));if(!g.type)if(f=a.match(x))g.type="anchor",g.anchor={},g.anchor.name=g.anchor.id=f[1];else if(f=a.match(u)){e=a.match(v);a=a.match(w);g.type="email";var k=g.email={};k.address=f[1];e&&(k.subject=decodeURIComponent(e[1]));a&&(k.body=decodeURIComponent(a[1]))}else a&&(e=a.match(y))&&
+(g.type="url",g.url={},g.url.protocol=e[1],g.url.url=e[2]);if(b){if(a=b.getAttribute("target"))g.target={type:a.match(z)?a:"frame",name:a};else if(a=(a=b.data("cke-pa-onclick")||b.getAttribute("onclick"))&&a.match(C))for(g.target={type:"popup",name:a[1]};f=D.exec(a[2]);)"yes"!=f[2]&&"1"!=f[2]||f[1]in{height:1,width:1,top:1,left:1}?isFinite(f[2])&&(g.target[f[1]]=f[2]):g.target[f[1]]=!0;null!==b.getAttribute("download")&&(g.download=!0);var a={},h;for(h in m)(f=b.getAttribute(h))&&(a[m[h]]=f);if(h=
+b.data("cke-saved-name")||a.advName)a.advName=h;CKEDITOR.tools.isEmpty(a)||(g.advanced=a)}return g},getLinkAttributes:function(c,b){var a=c.config.emailProtection||"",d={};switch(b.type){case "url":var a=b.url&&void 0!==b.url.protocol?b.url.protocol:"http://",f=b.url&&CKEDITOR.tools.trim(b.url.url)||"";d["data-cke-saved-href"]=0===f.indexOf("/")?f:a+f;break;case "anchor":a=b.anchor&&b.anchor.id;d["data-cke-saved-href"]="#"+(b.anchor&&b.anchor.name||a||"");break;case "email":var e=b.email,f=e.address;
+switch(a){case "":case "encode":var g=encodeURIComponent(e.subject||""),k=encodeURIComponent(e.body||""),e=[];g&&e.push("subject\x3d"+g);k&&e.push("body\x3d"+k);e=e.length?"?"+e.join("\x26"):"";"encode"==a?(a=["javascript:void(location.href\x3d'mailto:'+",q(f)],e&&a.push("+'",p(e),"'"),a.push(")")):a=["mailto:",f,e];break;default:a=f.split("@",2),e.name=a[0],e.domain=a[1],a=["javascript:",r(c,e)]}d["data-cke-saved-href"]=a.join("")}if(b.target)if("popup"==b.target.type){for(var a=["window.open(this.href, '",
+b.target.name||"","', '"],h="resizable status location toolbar menubar fullscreen scrollbars dependent".split(" "),f=h.length,g=function(a){b.target[a]&&h.push(a+"\x3d"+b.target[a])},e=0;e<f;e++)h[e]+=b.target[h[e]]?"\x3dyes":"\x3dno";g("width");g("left");g("height");g("top");a.push(h.join(","),"'); return false;");d["data-cke-pa-onclick"]=a.join("")}else"notSet"!=b.target.type&&b.target.name&&(d.target=b.target.name);b.download&&(d.download="");if(b.advanced){for(var l in m)(a=b.advanced[m[l]])&&
+(d[l]=a);d.name&&(d["data-cke-saved-name"]=d.name)}d["data-cke-saved-href"]&&(d.href=d["data-cke-saved-href"]);l={target:1,onclick:1,"data-cke-pa-onclick":1,"data-cke-saved-name":1,download:1};b.advanced&&CKEDITOR.tools.extend(l,m);for(var n in d)delete l[n];return{set:d,removed:CKEDITOR.tools.objectKeys(l)}},showDisplayTextForElement:function(c,b){var a={img:1,table:1,tbody:1,thead:1,tfoot:1,input:1,select:1,textarea:1},d=b.getSelection();return b.widgets&&b.widgets.focused||d&&1<d.getRanges().length?
+!1:!c||!c.getName||!c.is(a)}};CKEDITOR.unlinkCommand=function(){};CKEDITOR.unlinkCommand.prototype={exec:function(c){if(CKEDITOR.env.ie){var b=c.getSelection().getRanges()[0],a=b.getPreviousEditableNode()&&b.getPreviousEditableNode().getAscendant("a",!0)||b.getNextEditableNode()&&b.getNextEditableNode().getAscendant("a",!0),d;b.collapsed&&a&&(d=b.createBookmark(),b.selectNodeContents(a),b.select())}a=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});c.removeStyle(a);
+d&&(b.moveToBookmark(d),b.select())},refresh:function(c,b){var a=b.lastElement&&b.lastElement.getAscendant("a",!0);a&&"a"==a.getName()&&a.getAttribute("href")&&a.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]",editorFocus:1};CKEDITOR.removeAnchorCommand=function(){};CKEDITOR.removeAnchorCommand.prototype={exec:function(c){var b=c.getSelection(),a=b.createBookmarks(),d;if(b&&(d=b.getSelectedElement())&&
+(d.getChildCount()?d.is("a"):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,d)))d.remove(1);else if(d=CKEDITOR.plugins.link.getSelectedLink(c))d.hasAttribute("href")?(d.removeAttributes({name:1,"data-cke-saved-name":1}),d.removeClass("cke_anchor")):d.remove(1);b.selectBookmarks(a)},requiredContent:"a[name]"};CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0})})();(function(){function I(b,m,e){function c(c){if(!(!(a=d[c?"getFirst":"getLast"]())||a.is&&a.isBlockBoundary()||!(p=m.root[c?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||p.is&&p.isBlockBoundary({br:1})))b.document.createElement("br")[c?"insertBefore":"insertAfter"](a)}for(var f=CKEDITOR.plugins.list.listToArray(m.root,e),g=[],k=0;k<m.contents.length;k++){var h=m.contents[k];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(g.push(h),CKEDITOR.dom.element.setMarker(e,
h,"list_item_processed",!0))}h=null;for(k=0;k<g.length;k++)h=g[k].getCustomData("listarray_index"),f[h].indent=-1;for(k=h+1;k<f.length;k++)if(f[k].indent>f[k-1].indent+1){g=f[k-1].indent+1-f[k].indent;for(h=f[k].indent;f[k]&&f[k].indent>=h;)f[k].indent+=g,k++;k--}var d=CKEDITOR.plugins.list.arrayToList(f,e,null,b.config.enterMode,m.root.getAttribute("dir")).listNode,a,p;c(!0);c();d.replace(m.root);b.fire("contentDomInvalidated")}function B(b,m){this.name=b;this.context=this.type=m;this.allowedContent=
m+" li";this.requiredContent=m}function E(b,m,e,c){for(var f,g;f=b[c?"getLast":"getFirst"](J);)(g=f.getDirection(1))!==m.getDirection(1)&&f.setAttribute("dir",g),f.remove(),e?f[c?"insertBefore":"insertAfter"](e):m.append(f,c)}function F(b){function m(e){var c=b[e?"getPrevious":"getNext"](u);c&&c.type==CKEDITOR.NODE_ELEMENT&&c.is(b.getName())&&(E(b,c,null,!e),b.remove(),b=c)}m();m(1)}function G(b){return b.type==CKEDITOR.NODE_ELEMENT&&(b.getName()in CKEDITOR.dtd.$block||b.getName()in CKEDITOR.dtd.$listItem)&&
CKEDITOR.dtd[b.getName()]["#"]}function C(b,m,e){b.fire("saveSnapshot");e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var c=e.extractContents();m.trim(!1,!0);var f=m.createBookmark(),g=new CKEDITOR.dom.elementPath(m.startContainer),k=g.block,g=g.lastElement.getAscendant("li",1)||k,h=new CKEDITOR.dom.elementPath(e.startContainer),d=h.contains(CKEDITOR.dtd.$listItem),h=h.contains(CKEDITOR.dtd.$list);k?(k=k.getBogus())&&k.remove():h&&(k=h.getPrevious(u))&&z(k)&&k.remove();(k=c.getLast())&&k.type==CKEDITOR.NODE_ELEMENT&&
!z(a)};d.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};e=f.clone();if(k){var a;(a=g.contains(v))&&f.checkBoundaryOfElement(a,CKEDITOR.START)&&(a=a.getParent())&&a.is("li")&&(a=A(a))?(c=a,a=a.getPrevious(u),e.moveToPosition(a&&z(a)?a:c,CKEDITOR.POSITION_BEFORE_START)):(d.range.setStartAt(h,CKEDITOR.POSITION_AFTER_START),d.range.setEnd(f.startContainer,f.startOffset),(a=d.previous())&&a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in v||a.is("li"))&&(a.is("li")||(d.range.selectNodeContents(a),
d.reset(),d.evaluator=G,a=d.previous()),c=a,e.moveToElementEditEnd(c),e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_BEFORE_END)));if(c)C(b,e,f),m.cancel();else{var p=g.contains(v);p&&f.checkBoundaryOfElement(p,CKEDITOR.START)&&(c=p.getFirst(u),f.checkBoundaryOfElement(c,CKEDITOR.START)&&(a=p.getPrevious(u),A(c)?a&&(f.moveToElementEditEnd(a),f.select()):b.execCommand("outdent"),m.cancel()))}}else if(c=g.contains("li")){if(d.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),k=(h=c.getLast(u))&&
G(h)?h:c,g=0,(a=d.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in v&&a.equals(h)?(g=1,a=d.next()):f.checkBoundaryOfElement(k,CKEDITOR.END)&&(g=2),g&&a){f=f.clone();f.moveToElementEditStart(a);if(1==g&&(e.optimize(),!e.startContainer.equals(c))){for(c=e.startContainer;c.is(CKEDITOR.dtd.$inline);)p=c,c=c.getParent();p&&e.moveToPosition(p,CKEDITOR.POSITION_AFTER_END)}2==g&&(e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_BEFORE_END),f.endPath().block&&f.moveToPosition(f.endPath().block,CKEDITOR.POSITION_AFTER_START));
-C(b,e,f);m.cancel()}}else d.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),(a=d.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(v)&&(a=a.getFirst(u),g.block&&f.checkStartOfBlock()&&f.checkEndOfBlock()?(g.block.remove(),f.moveToElementEditStart(a),f.select()):A(a)?(f.moveToElementEditStart(a),f.select()):(f=f.clone(),f.moveToElementEditStart(a),C(b,e,f)),m.cancel());setTimeout(function(){b.selectionChange(1)})}}}))}})})();(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]"});b=a.addCommand("numberedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",allowedContent:"ul{list-style-type}"});b=a.addCommand("bulletedListStyle",b);
-a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list",command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};
-a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})();(function(){function V(a,c,d){return n(c)&&n(d)&&d.equals(c.getNext(function(a){return!(E(a)||F(a)||u(a))}))}function z(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function O(a){var c=a.element;if(c&&n(c)&&(c=c.getAscendant(a.triggers,!0))&&a.editable.contains(c)){var d=P(c);if("true"==d.getAttribute("contenteditable"))return c;if(d.is(a.triggers))return d}return null}function ka(a,c,d){r(a,c);r(a,d);a=c.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function w(a,c,d){return c=
+C(b,e,f);m.cancel()}}else d.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),(a=d.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(v)&&(a=a.getFirst(u),g.block&&f.checkStartOfBlock()&&f.checkEndOfBlock()?(g.block.remove(),f.moveToElementEditStart(a),f.select()):A(a)?(f.moveToElementEditStart(a),f.select()):(f=f.clone(),f.moveToElementEditStart(a),C(b,e,f)),m.cancel());setTimeout(function(){b.selectionChange(1)})}}}))}})})();(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]; li{list-style-type}[value]",contentTransformations:[["ol: listTypeToStyle"]]});b=a.addCommand("numberedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",
+allowedContent:"ul{list-style-type}",contentTransformations:[["ul: listTypeToStyle"]]});b=a.addCommand("bulletedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list",command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;
+for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})();(function(){function V(a,c,d){return n(c)&&n(d)&&d.equals(c.getNext(function(a){return!(E(a)||F(a)||u(a))}))}function z(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function O(a){var c=a.element;if(c&&n(c)&&(c=c.getAscendant(a.triggers,!0))&&a.editable.contains(c)){var d=P(c);if("true"==d.getAttribute("contenteditable"))return c;if(d.is(a.triggers))return d}return null}function ka(a,c,d){r(a,c);r(a,d);a=c.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function w(a,c,d){return c=
c[d?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!E(b)||n(b)&&!u(b)&&!A(a,b)})}function q(a,c,d){return a>c&&a<d}function P(a,c){if(a.data("cke-editable"))return null;for(c||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function la(a){var c=a.doc,d=G('\x3cspan contenteditable\x3d"false" style\x3d"'+Q+"position:absolute;border-top:1px dashed "+a.boxColor+'"\x3e\x3c/span\x3e',c),b=CKEDITOR.getUrl(this.path+
"images/"+(t.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");v(d,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[v(G('\x3cspan title\x3d"'+a.editor.lang.magicline.title+'" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e',c),{base:Q+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+b+") center no-repeat "+a.boxColor+";cursor:pointer;"+(t.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":
"")+(t.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),v(G(W,c),{base:X+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),v(G(W,c),{base:X+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px",
CKEDITOR.plugins.removeformat={commands:{removeformat:{exec:function(a){for(var h=a._.removeFormatRegex||(a._.removeFormatRegex=new RegExp("^(?:"+a.config.removeFormatTags.replace(/,/g,"|")+")$","i")),e=a._.removeAttributes||(a._.removeAttributes=a.config.removeFormatAttributes.split(",")),f=CKEDITOR.plugins.removeformat.filter,m=a.getSelection().getRanges(),n=m.createIterator(),p=function(a){return a.type==CKEDITOR.NODE_ELEMENT},c;c=n.getNextRange();){c.collapsed||c.enlarge(CKEDITOR.ENLARGE_ELEMENT);
var l=c.createBookmark(),b=l.startNode,d=l.endNode,k=function(b){for(var c=a.elementPath(b),e=c.elements,d=1,g;(g=e[d])&&!g.equals(c.block)&&!g.equals(c.blockLimit);d++)h.test(g.getName())&&f(a,g)&&b.breakParent(g)};k(b);if(d)for(k(d),b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);b&&!b.equals(d);)if(b.isReadOnly()){if(b.getPosition(d)&CKEDITOR.POSITION_CONTAINS)break;b=b.getNext(p)}else k=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),"img"==b.getName()&&b.data("cke-realelement")||!f(a,b)||(h.test(b.getName())?
b.remove(1):(b.removeAttributes(e),a.fire("removeFormatCleanup",b))),b=k;c.moveToBookmark(l)}a.forceNextSelectionCheck();a.getSelection().selectRanges(m)}}},filter:function(a,h){for(var e=a._.removeFormatFilters||[],f=0;f<e.length;f++)if(!1===e[f](h))return!1;return!0}};CKEDITOR.editor.prototype.addRemoveFormatFilter=function(a){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(a)};CKEDITOR.config.removeFormatTags="b,big,cite,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var";
-CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";CKEDITOR.plugins.add("resize",{init:function(b){function f(d){var e=c.width,m=c.height,f=e+(d.data.$.screenX-n.x)*("rtl"==g?-1:1);d=m+(d.data.$.screenY-n.y);h&&(e=Math.max(a.resize_minWidth,Math.min(f,a.resize_maxWidth)));p&&(m=Math.max(a.resize_minHeight,Math.min(d,a.resize_maxHeight)));b.resize(h?e:null,m)}function k(){CKEDITOR.document.removeListener("mousemove",f);CKEDITOR.document.removeListener("mouseup",k);b.document&&(b.document.removeListener("mousemove",f),b.document.removeListener("mouseup",
-k))}var a=b.config,r=b.ui.spaceId("resizer"),g=b.element?b.element.getDirection(1):"ltr";!a.resize_dir&&(a.resize_dir="vertical");void 0===a.resize_maxWidth&&(a.resize_maxWidth=3E3);void 0===a.resize_maxHeight&&(a.resize_maxHeight=3E3);void 0===a.resize_minWidth&&(a.resize_minWidth=750);void 0===a.resize_minHeight&&(a.resize_minHeight=250);if(!1!==a.resize_enabled){var l=null,n,c,h=("both"==a.resize_dir||"horizontal"==a.resize_dir)&&a.resize_minWidth!=a.resize_maxWidth,p=("both"==a.resize_dir||"vertical"==
-a.resize_dir)&&a.resize_minHeight!=a.resize_maxHeight,q=CKEDITOR.tools.addFunction(function(d){l||(l=b.getResizable());c={width:l.$.offsetWidth||0,height:l.$.offsetHeight||0};n={x:d.screenX,y:d.screenY};a.resize_minWidth>c.width&&(a.resize_minWidth=c.width);a.resize_minHeight>c.height&&(a.resize_minHeight=c.height);CKEDITOR.document.on("mousemove",f);CKEDITOR.document.on("mouseup",k);b.document&&(b.document.on("mousemove",f),b.document.on("mouseup",k));d.preventDefault&&d.preventDefault()});b.on("destroy",
-function(){CKEDITOR.tools.removeFunction(q)});b.on("uiSpace",function(a){if("bottom"==a.data.space){var e="";h&&!p&&(e=" cke_resizer_horizontal");!h&&p&&(e=" cke_resizer_vertical");var c='\x3cspan id\x3d"'+r+'" class\x3d"cke_resizer'+e+" cke_resizer_"+g+'" title\x3d"'+CKEDITOR.tools.htmlEncode(b.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+q+', event)"\x3e'+("ltr"==g?"◢":"◣")+"\x3c/span\x3e";"ltr"==g&&"ltr"==e?a.data.html+=c:a.data.html=c+a.data.html}},b,null,100);b.on("maximize",
-function(a){b.ui.space("resizer")[a.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}});(function(){var f={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";a.editable()[b]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var a;a=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 \x3e tr \x3e td, .%1 table.%2 \x3e tr \x3e th,;.%1 table.%2 \x3e tbody \x3e tr \x3e td, .%1 table.%2 \x3e tbody \x3e tr \x3e th,;.%1 table.%2 \x3e thead \x3e tr \x3e td, .%1 table.%2 \x3e thead \x3e tr \x3e th,;.%1 table.%2 \x3e tfoot \x3e tr \x3e td, .%1 table.%2 \x3e tfoot \x3e tr \x3e th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,
+CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";(function(){var f={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";a.editable()[b]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var a;a=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 \x3e tr \x3e td, .%1 table.%2 \x3e tr \x3e th,;.%1 table.%2 \x3e tbody \x3e tr \x3e td, .%1 table.%2 \x3e tbody \x3e tr \x3e th,;.%1 table.%2 \x3e thead \x3e tr \x3e td, .%1 table.%2 \x3e thead \x3e tr \x3e th,;.%1 table.%2 \x3e tfoot \x3e tr \x3e td, .%1 table.%2 \x3e tfoot \x3e tr \x3e th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,
"cke_show_border").replace(/%1/g,"cke_show_borders ");CKEDITOR.addCss(a)},init:function(a){var b=a.addCommand("showborders",f);b.canUndo=!1;!1!==a.config.startupShowBorders&&b.setState(CKEDITOR.TRISTATE_ON);a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)},null,null,100);a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.on("removeFormatCleanup",function(d){d=d.data;a.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&d.is("table")&&(!d.hasAttribute("border")||
0>=parseInt(d.getAttribute("border"),10))&&d.addClass("cke_show_border")})},afterInit:function(a){var b=a.dataProcessor;a=b&&b.dataFilter;b=b&&b.htmlFilter;a&&a.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"],c=parseInt(a.border,10);c&&!(0>=c)||b&&-1!=b.indexOf("cke_show_border")||(a["class"]=(b||"")+" cke_show_border")}}});b&&b.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"];b&&(a["class"]=b.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,
""))}}})}});CKEDITOR.on("dialogDefinition",function(a){var b=a.data.name;if("table"==b||"tableProperties"==b)if(a=a.data.definition,b=a.getContents("info").get("txtBorder"),b.commit=CKEDITOR.tools.override(b.commit,function(a){return function(b,c){a.apply(this,arguments);var e=parseInt(this.getValue(),10);c[!e||0>=e?"addClass":"removeClass"]("cke_show_border")}}),a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this,
CKEDITOR.tools.extend(f,h));c.addCommand("selectNextCell",k());c.addCommand("selectPreviousCell",k(!0))}})})();
CKEDITOR.dom.element.prototype.focusNext=function(k,h){var g=void 0===h?this.getTabIndex():h,f,c,d,e,b,a;if(0>=g)for(b=this.getNextSourceNode(k,CKEDITOR.NODE_ELEMENT);b;){if(b.isVisible()&&0===b.getTabIndex()){d=b;break}b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(b=this.getDocument().getBody().getFirst();b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&b.equals(this)){if(c=!0,k){if(!(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(b)&&
(f=1);if(b.isVisible()&&!(0>(a=b.getTabIndex()))){if(f&&a==g){d=b;break}a>g&&(!d||!e||a<e)?(d=b,e=a):d||0!==a||(d=b,e=a)}}d&&d.focus()};
-CKEDITOR.dom.element.prototype.focusPrevious=function(k,h){for(var g=void 0===h?this.getTabIndex():h,f,c,d,e=0,b,a=this.getDocument().getBody().getLast();a=a.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&a.equals(this)){if(c=!0,k){if(!(a=a.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(a)&&(f=1);if(a.isVisible()&&!(0>(b=a.getTabIndex())))if(0>=g){if(f&&0===b){d=a;break}b>e&&(d=a,e=b)}else{if(f&&b==g){d=a;break}b<g&&(!d||b>e)&&(d=a,e=b)}}d&&d.focus()};(function(){function B(a){function d(){for(var b=g(),e=CKEDITOR.tools.clone(a.config.toolbarGroups)||q(a),f=0;f<e.length;f++){var l=e[f];if("/"!=l){"string"==typeof l&&(l=e[f]={name:l});var m,d=l.groups;if(d)for(var h=0;h<d.length;h++)m=d[h],(m=b[m])&&c(l,m);(m=b[l.name])&&c(l,m)}}return e}function g(){var b={},c,f,e;for(c in a.ui.items)f=a.ui.items[c],e=f.toolbar||"others",e=e.split(","),f=e[0],e=parseInt(e[1]||-1,10),b[f]||(b[f]=[]),b[f].push({name:c,order:e});for(f in b)b[f]=b[f].sort(function(b,
-a){return b.order==a.order?0:0>a.order?-1:0>b.order?1:b.order<a.order?-1:1});return b}function c(c,e){if(e.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var f;f=e.shift();)f="string"==typeof f?f:f.name,b&&-1!=CKEDITOR.tools.indexOf(b,f)||(f=a.ui.create(f))&&a.addFeature(f)&&c.items.push(f)}}function h(b){var a=[],e,d,h;for(e=0;e<b.length;++e)d=b[e],h={},"/"==d?a.push(d):CKEDITOR.tools.isArray(d)?(c(h,CKEDITOR.tools.clone(d)),a.push(h)):d.items&&(c(h,CKEDITOR.tools.clone(d.items)),
-h.name=d.name,a.push(h));return a}var b=a.config.removeButtons,b=b&&b.split(","),e=a.config.toolbar;"string"==typeof e&&(e=a.config["toolbar_"+e]);return a.toolbar=e?h(e):d()}function q(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list",
-"indent","blocks","align","bidi"]},{name:"links"},{name:"insert"},"/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},{name:"about"}])}var y=function(){this.toolbars=[];this.focusCommandExecuted=!1};y.prototype.focus=function(){for(var a=0,d;d=this.toolbars[a++];)for(var g=0,c;c=d.items[g++];)if(c.focus){c.focus();return}};var C={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},
-100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(a){var d,g=function(c,h){var b,e="rtl"==a.lang.dir,k=a.config.toolbarGroupCycling,r=e?37:39,e=e?39:37,k=void 0===k||k;switch(h){case 9:case CKEDITOR.SHIFT+9:for(;!b||!b.items.length;)if(b=9==h?(b?b.next:c.toolbar.next)||a.toolbox.toolbars[0]:(b?b.previous:c.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],b.items.length)for(c=b.items[d?b.items.length-1:0];c&&!c.focus;)(c=d?c.previous:c.next)||
-(b=0);c&&c.focus();return!1;case r:b=c;do b=b.next,!b&&k&&(b=c.toolbar.items[0]);while(b&&!b.focus);b?b.focus():g(c,9);return!1;case 40:return c.button&&c.button.hasArrow?(a.once("panelShow",function(b){b.data._.panel._.currentBlock.onKeyDown(40)}),c.execute()):g(c,40==h?r:e),!1;case e:case 38:b=c;do b=b.previous,!b&&k&&(b=c.toolbar.items[c.toolbar.items.length-1]);while(b&&!b.focus);b?b.focus():(d=1,g(c,CKEDITOR.SHIFT+9),d=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return c.execute(),
-!1}return!0};a.on("uiSpace",function(c){if(c.data.space==a.config.toolbarLocation){c.removeListener();a.toolbox=new y;var d=CKEDITOR.tools.getNextId(),b=['\x3cspan id\x3d"',d,'" class\x3d"cke_voice_label"\x3e',a.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+a.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',d,'" onmousedown\x3d"return false;"\x3e'],d=!1!==a.config.toolbarStartupExpanded,e,k;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&
-b.push('\x3cspan class\x3d"cke_toolbox_main"'+(d?"\x3e":' style\x3d"display:none"\x3e'));for(var r=a.toolbox.toolbars,f=B(a),l=0;l<f.length;l++){var m,n=0,v,p=f[l],w;if(p)if(e&&(b.push("\x3c/span\x3e"),k=e=0),"/"===p)b.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{w=p.items||p;for(var x=0;x<w.length;x++){var t=w[x],q;if(t){var z=function(c){c=c.render(a,b);u=n.items.push(c)-1;0<u&&(c.previous=n.items[u-1],c.previous.next=c);c.toolbar=n;c.onkey=g;c.onfocus=function(){a.toolbox.focusCommandExecuted||
-a.focus()}};if(t.type==CKEDITOR.UI_SEPARATOR)k=e&&t;else{q=!1!==t.canGroup;if(!n){m=CKEDITOR.tools.getNextId();n={id:m,items:[]};v=p.name&&(a.lang.toolbar.toolbarGroups[p.name]||p.name);b.push('\x3cspan id\x3d"',m,'" class\x3d"cke_toolbar"',v?' aria-labelledby\x3d"'+m+'_label"':"",' role\x3d"toolbar"\x3e');v&&b.push('\x3cspan id\x3d"',m,'_label" class\x3d"cke_voice_label"\x3e',v,"\x3c/span\x3e");b.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var u=r.push(n)-1;0<u&&(n.previous=r[u-
-1],n.previous.next=n)}q?e||(b.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),e=1):e&&(b.push("\x3c/span\x3e"),e=0);k&&(z(k),k=0);z(t)}}}e&&(b.push("\x3c/span\x3e"),k=e=0);n&&b.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}a.config.toolbarCanCollapse&&b.push("\x3c/span\x3e");if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var A=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(A)});
-a.addCommand("toolbarCollapse",{readOnly:1,exec:function(b){var a=b.ui.space("toolbar_collapser"),c=a.getPrevious(),e=b.ui.space("contents"),d=c.getParent(),f=parseInt(e.$.style.height,10),h=d.$.offsetHeight,g=a.hasClass("cke_toolbox_collapser_min");g?(c.show(),a.removeClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarCollapse)):(c.hide(),a.addClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarExpand));a.getFirst().setText(g?"▲":"◀");e.setStyle("height",
-f-(d.$.offsetHeight-h)+"px");b.fire("resize",{outerHeight:b.container.$.offsetHeight,contentsHeight:e.$.offsetHeight,outerWidth:b.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");b.push('\x3ca title\x3d"'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id\x3d"'+a.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');d||b.push(" cke_toolbox_collapser_min");
-b.push('" onclick\x3d"CKEDITOR.tools.callFunction('+A+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',"\x3c/a\x3e")}b.push("\x3c/span\x3e");c.data.html+=b.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,e,g;for(a=this.toolbox.toolbars;d<a.length;d++)for(e=a[d].items,b=0;b<e.length;b++)g=e[b],g.clickFn&&CKEDITOR.tools.removeFunction(g.clickFn),g.keyDownFn&&CKEDITOR.tools.removeFunction(g.keyDownFn)}});a.on("uiReady",function(){var c=a.ui.space("toolbox");c&&a.focusManager.add(c,
-1)});a.addCommand("toolbarFocus",C);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('\x3cspan class\x3d"cke_toolbar_separator" role\x3d"separator"\x3e\x3c/span\x3e');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,d,g){var c=q(this.editor),h=0===d,b={name:a};if(g){if(g=CKEDITOR.tools.search(c,function(a){return a.name==g})){!g.groups&&(g.groups=[]);if(d&&
-(d=CKEDITOR.tools.indexOf(g.groups,d),0<=d)){g.groups.splice(d+1,0,a);return}h?g.groups.splice(0,0,a):g.groups.push(a);return}d=null}d&&(d=CKEDITOR.tools.indexOf(c,function(a){return a.name==d}));h?c.splice(0,0,a):"number"==typeof d?c.splice(d+1,0,b):c.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";CKEDITOR.config.toolbarLocation="top";(function(){function m(a){function f(a){var b=!1;g.attachListener(g,"keydown",function(){var d=c.getBody().getElementsByTag(a);if(!b){for(var e=0;e<d.count();e++)d.getItem(e).setCustomData("retain",!0);b=!0}},null,null,1);g.attachListener(g,"keyup",function(){var d=c.getElementsByTag(a);b&&(1!=d.count()||d.getItem(0).getCustomData("retain")||d.getItem(0).remove(1),b=!1)})}var b=this.editor,c=a.document,d=c.body,e=c.getElementById("cke_actscrpt");e&&e.parentNode.removeChild(e);(e=c.getElementById("cke_shimscrpt"))&&
-e.parentNode.removeChild(e);(e=c.getElementById("cke_basetagscrpt"))&&e.parentNode.removeChild(e);d.contentEditable=!0;CKEDITOR.env.ie&&(d.hideFocus=!0,d.disabled=!0,d.removeAttribute("disabled"));delete this._.isLoadingData;this.$=d;c=new CKEDITOR.dom.document(c);this.setup();this.fixInitialSelection();var g=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&c.getDocumentElement().addClass(c.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&b.enterMode!=CKEDITOR.ENTER_P?f("p"):CKEDITOR.env.edge&&b.enterMode!=
-CKEDITOR.ENTER_DIV&&f("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)c.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){b.editable().focus()})});n(b);try{b.document.$.execCommand("2D-position",!1,!0)}catch(h){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==b.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var c=a.data.getKeystroke();if(33==c||34==c)if(CKEDITOR.env.ie)setTimeout(function(){b.getSelection().scrollIntoView()},
-0);else if(b.window.$.innerHeight>this.$.offsetHeight){var d=b.createRange();d[33==c?"moveToElementEditStart":"moveToElementEditEnd"](this);d.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(c,"blur",function(){try{c.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(c,"touchend",function(){a.focus()});d=b.document.getElementsByTag("title").getItem(0);d.data("cke-title",d.getText());CKEDITOR.env.ie&&(b.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"==
-this.status&&(this.status="ready");b.fire("contentDom");this._.isPendingFocus&&(b.focus(),this._.isPendingFocus=!1);setTimeout(function(){b.fire("dataReady")},0)},0,this)}function n(a){function f(){var c;a.editable().attachListener(a,"selectionChange",function(){var d=a.getSelection().getSelectedElement();d&&(c&&(c.detachEvent("onresizestart",b),c=null),d.$.attachEvent("onresizestart",b),c=d.$)})}function b(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var c=a.document.$;c.execCommand("enableObjectResizing",
-!1,!a.config.disableObjectResizing);c.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(d){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&f(a)}function p(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");var f=[],b;for(b in CKEDITOR.dtd.$removeEmpty)f.push("html.CSS1Compat "+b+"[contenteditable\x3dfalse]");a.push(f.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&
-(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"});a.addMode("wysiwyg",function(f){function b(b){b&&b.removeListener();a.editable(new l(a,
-d.$.contentWindow.document.body));a.setData(a.getData(1),f)}var c="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",c=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(c)+"}())":"",d=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+c+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');d.setStyles({width:"100%",height:"100%"});d.addClass("cke_wysiwyg_frame").addClass("cke_reset");
-c=a.ui.space("contents");c.append(d);var e=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(e)d.on("load",b);var g=a.title,h=a.fire("ariaEditorHelpLabel",{}).label;g&&(CKEDITOR.env.ie&&h&&(g+=", "+h),d.setAttribute("title",g));if(h){var g=CKEDITOR.tools.getNextId(),k=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+h+"\x3c/span\x3e");c.append(k,1);d.setAttribute("aria-describedby",g)}a.on("beforeModeUnload",function(a){a.removeListener();k&&k.remove()});
-d.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!e&&b();a.fire("ariaWidget",d)})}});CKEDITOR.editor.prototype.addContentsCss=function(a){var f=this.config,b=f.contentsCss;CKEDITOR.tools.isArray(b)||(f.contentsCss=b?[b]:[]);f.contentsCss.push(a)};var l=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(m,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},
-base:CKEDITOR.editable,proto:{setData:function(a,f){var b=this.editor;if(f)this.setHtml(a),this.fixInitialSelection(),b.fire("dataReady");else{this._.isLoadingData=!0;b._.dataStore={id:1};var c=b.config,d=c.fullPage,e=c.docType,g=CKEDITOR.tools.buildStyleHtml(p()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');d||(g+=CKEDITOR.tools.buildStyleHtml(b.config.contentsCss));var h=c.baseHref?'\x3cbase href\x3d"'+c.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";d&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){b.docType=
-e=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){b.xmlDeclaration=a;return""}));a=b.dataProcessor.toHtml(a);d?(/<body[\s|>]/.test(a)||(a="\x3cbody\x3e"+a),/<html[\s|>]/.test(a)||(a="\x3chtml\x3e"+a+"\x3c/html\x3e"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$\x26\x3ctitle\x3e\x3c/title\x3e")):a=a.replace(/<html[^>]*>/,"$\x26\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e"),h&&(a=a.replace(/<head[^>]*?>/,"$\x26"+h)),a=a.replace(/<\/head\s*>/,g+"$\x26"),a=
-e+a):a=c.docType+'\x3chtml dir\x3d"'+c.contentsLangDirection+'" lang\x3d"'+(c.contentsLanguage||b.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+this._.docTitle+"\x3c/title\x3e"+h+g+"\x3c/head\x3e\x3cbody"+(c.bodyId?' id\x3d"'+c.bodyId+'"':"")+(c.bodyClass?' class\x3d"'+c.bodyClass+'"':"")+"\x3e"+a+"\x3c/body\x3e\x3c/html\x3e";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'\x3cbody contenteditable\x3d"true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$\x26\x3c!-- cke-content-start --\x3e")));
-c='\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"'+(CKEDITOR.env.ie?' defer\x3d"defer" ':"")+"\x3evar wasLoaded\x3d0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded\x3d1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"\x3c/script\x3e";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.parent.CKEDITOR.tools.enableHtml5Elements(document)\x3c/script\x3e');
-h&&CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_basetagscrpt"\x3evar baseTag \x3d document.querySelector( "base" );baseTag.href \x3d baseTag.href;\x3c/script\x3e');a=a.replace(/(?=\s*<\/(:?head)>)/,c);this.clearCustomData();this.clearListeners();b.fire("contentDomUnload");var k=this.getDocument();try{k.write(a)}catch(l){setTimeout(function(){k.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var f=a.config,b=f.fullPage,c=b&&a.docType,d=b&&a.xmlDeclaration,
-e=this.getDocument(),b=b?e.getDocumentElement().getOuterHtml():e.getBody().getHtml();CKEDITOR.env.gecko&&f.enterMode!=CKEDITOR.ENTER_BR&&(b=b.replace(/<br>(?=\s*(:?$|<\/body>))/,""));b=a.dataProcessor.toDataFormat(b);d&&(b=d+"\n"+b);c&&(b=c+"\n"+b);return b},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:l.baseProto.focus.call(this)},detach:function(){var a=this.editor,f=a.document,b;try{b=a.window.getFrame()}catch(c){}l.baseProto.detach.call(this);this.clearCustomData();f.getDocumentElement().clearCustomData();
-CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);b&&b.getParent()?(b.clearCustomData(),(a=b.removeCustomData("onResize"))&&a.removeListener(),b.remove()):CKEDITOR.warn("editor-destroy-iframe")}}})})();CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;CKEDITOR.config.plugins='dialogui,dialog,a11yhelp,basicstyles,panel,floatpanel,menu,contextmenu,dialogadvtab,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,button,richcombo,format,horizontalrule,htmlwriter,fakeobjects,iframe,image,indent,indentblock,indentlist,justify,link,list,liststyle,magicline,maximize,removeformat,resize,showborders,sourcearea,tab,toolbar,wysiwygarea';CKEDITOR.config.skin='moono';(function() {var setIcons = function(icons, strip) {var path = CKEDITOR.getUrl( 'plugins/' + strip );icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ], bgsize : icons[ ++i ] };};if (CKEDITOR.env.hidpi) setIcons('bold,0,,italic,24,,strike,48,,subscript,72,,superscript,96,,underline,120,,horizontalrule,144,,iframe,168,,image,192,,indent-rtl,216,,indent,240,,outdent-rtl,264,,outdent,288,,justifyblock,312,,justifycenter,336,,justifyleft,360,,justifyright,384,,anchor-rtl,408,,anchor,432,,link,456,,unlink,480,,bulletedlist-rtl,504,,bulletedlist,528,,numberedlist-rtl,552,,numberedlist,576,,maximize,600,,removeformat,624,,source-rtl,648,,source,672,','icons_hidpi.png');else setIcons('bold,0,auto,italic,24,auto,strike,48,auto,subscript,72,auto,superscript,96,auto,underline,120,auto,horizontalrule,144,auto,iframe,168,auto,image,192,auto,indent-rtl,216,auto,indent,240,auto,outdent-rtl,264,auto,outdent,288,auto,justifyblock,312,auto,justifycenter,336,auto,justifyleft,360,auto,justifyright,384,auto,anchor-rtl,408,auto,anchor,432,auto,link,456,auto,unlink,480,auto,bulletedlist-rtl,504,auto,bulletedlist,528,auto,numberedlist-rtl,552,auto,numberedlist,576,auto,maximize,600,auto,removeformat,624,auto,source-rtl,648,auto,source,672,auto','icons.png');})();CKEDITOR.lang.languages={"en":1,"fr":1};}());
\ No newline at end of file
+CKEDITOR.dom.element.prototype.focusPrevious=function(k,h){for(var g=void 0===h?this.getTabIndex():h,f,c,d,e=0,b,a=this.getDocument().getBody().getLast();a=a.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&a.equals(this)){if(c=!0,k){if(!(a=a.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(a)&&(f=1);if(a.isVisible()&&!(0>(b=a.getTabIndex())))if(0>=g){if(f&&0===b){d=a;break}b>e&&(d=a,e=b)}else{if(f&&b==g){d=a;break}b<g&&(!d||b>e)&&(d=a,e=b)}}d&&d.focus()};(function(){function m(a,d){CKEDITOR.tools.extend(this,{editor:a,editable:a.editable(),doc:a.document,win:a.window},d,!0);this.inline=this.editable.isInline();this.inline||(this.frame=this.win.getFrame());this.target=this[this.inline?"editable":"doc"]}function n(a,d){CKEDITOR.tools.extend(this,d,{editor:a},!0)}function p(a,d){var b=a.editable();CKEDITOR.tools.extend(this,{editor:a,editable:b,inline:b.isInline(),doc:a.document,win:a.window,container:CKEDITOR.document.getBody(),winTop:CKEDITOR.document.getWindow()},
+d,!0);this.hidden={};this.visible={};this.inline||(this.frame=this.win.getFrame());this.queryViewport();var c=CKEDITOR.tools.bind(this.queryViewport,this),e=CKEDITOR.tools.bind(this.hideVisible,this),g=CKEDITOR.tools.bind(this.removeAll,this);b.attachListener(this.winTop,"resize",c);b.attachListener(this.winTop,"scroll",c);b.attachListener(this.winTop,"resize",e);b.attachListener(this.win,"scroll",e);b.attachListener(this.inline?b:this.frame,"mouseout",function(a){var b=a.data.$.clientX;a=a.data.$.clientY;
+this.queryViewport();(b<=this.rect.left||b>=this.rect.right||a<=this.rect.top||a>=this.rect.bottom)&&this.hideVisible();(0>=b||b>=this.winTopPane.width||0>=a||a>=this.winTopPane.height)&&this.hideVisible()},this);b.attachListener(a,"resize",c);b.attachListener(a,"mode",g);a.on("destroy",g);this.lineTpl=(new CKEDITOR.template('\x3cdiv data-cke-lineutils-line\x3d"1" class\x3d"cke_reset_all" style\x3d"{lineStyle}"\x3e\x3cspan style\x3d"{tipLeftStyle}"\x3e\x26nbsp;\x3c/span\x3e\x3cspan style\x3d"{tipRightStyle}"\x3e\x26nbsp;\x3c/span\x3e\x3c/div\x3e')).output({lineStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},
+t,this.lineStyle,!0)),tipLeftStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},q,{left:"0px","border-left-color":"red","border-width":"6px 0 6px 6px"},this.tipCss,this.tipLeftStyle,!0)),tipRightStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},q,{right:"0px","border-right-color":"red","border-width":"6px 6px 6px 0"},this.tipCss,this.tipRightStyle,!0))})}function l(a){var d;if(d=a&&a.type==CKEDITOR.NODE_ELEMENT)d=!(r[a.getComputedStyle("float")]||r[a.getAttribute("align")]);return d&&
+!u[a.getComputedStyle("position")]}CKEDITOR.plugins.add("lineutils");CKEDITOR.LINEUTILS_BEFORE=1;CKEDITOR.LINEUTILS_AFTER=2;CKEDITOR.LINEUTILS_INSIDE=4;m.prototype={start:function(a){var d=this,b=this.editor,c=this.doc,e,g,f,h,k=CKEDITOR.tools.eventsBuffer(50,function(){b.readOnly||"wysiwyg"!=b.mode||(d.relations={},(g=c.$.elementFromPoint(f,h))&&g.nodeType&&(e=new CKEDITOR.dom.element(g),d.traverseSearch(e),isNaN(f+h)||d.pixelSearch(e,f,h),a&&a(d.relations,f,h)))});this.listener=this.editable.attachListener(this.target,
+"mousemove",function(a){f=a.data.$.clientX;h=a.data.$.clientY;k.input()});this.editable.attachListener(this.inline?this.editable:this.frame,"mouseout",function(){k.reset()})},stop:function(){this.listener&&this.listener.removeListener()},getRange:function(){var a={};a[CKEDITOR.LINEUTILS_BEFORE]=CKEDITOR.POSITION_BEFORE_START;a[CKEDITOR.LINEUTILS_AFTER]=CKEDITOR.POSITION_AFTER_END;a[CKEDITOR.LINEUTILS_INSIDE]=CKEDITOR.POSITION_AFTER_START;return function(d){var b=this.editor.createRange();b.moveToPosition(this.relations[d.uid].element,
+a[d.type]);return b}}(),store:function(){function a(a,b,c){var e=a.getUniqueId();e in c?c[e].type|=b:c[e]={element:a,type:b}}return function(d,b){var c;b&CKEDITOR.LINEUTILS_AFTER&&l(c=d.getNext())&&c.isVisible()&&(a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_AFTER);b&CKEDITOR.LINEUTILS_INSIDE&&l(c=d.getFirst())&&c.isVisible()&&(a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_INSIDE);a(d,b,this.relations)}}(),traverseSearch:function(a){var d,b,c;do if(c=a.$["data-cke-expando"],
+!(c&&c in this.relations)){if(a.equals(this.editable))break;if(l(a))for(d in this.lookups)(b=this.lookups[d](a))&&this.store(a,b)}while((!a||a.type!=CKEDITOR.NODE_ELEMENT||"true"!=a.getAttribute("contenteditable"))&&(a=a.getParent()))},pixelSearch:function(){function a(a,c,e,g,f){for(var h=0,k;f(e);){e+=g;if(25==++h)break;if(k=this.doc.$.elementFromPoint(c,e))if(k==a)h=0;else if(d(a,k)&&(h=0,l(k=new CKEDITOR.dom.element(k))))return k}}var d=CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a,c){return a.contains(c)}:
+function(a,c){return!!(a.compareDocumentPosition(c)&16)};return function(b,c,d){var g=this.win.getViewPaneSize().height,f=a.call(this,b.$,c,d,-1,function(a){return 0<a});c=a.call(this,b.$,c,d,1,function(a){return a<g});if(f)for(this.traverseSearch(f);!f.getParent().equals(b);)f=f.getParent();if(c)for(this.traverseSearch(c);!c.getParent().equals(b);)c=c.getParent();for(;f||c;){f&&(f=f.getNext(l));if(!f||f.equals(c))break;this.traverseSearch(f);c&&(c=c.getPrevious(l));if(!c||c.equals(f))break;this.traverseSearch(c)}}}(),
+greedySearch:function(){this.relations={};for(var a=this.editable.getElementsByTag("*"),d=0,b,c,e;b=a.getItem(d++);)if(!b.equals(this.editable)&&b.type==CKEDITOR.NODE_ELEMENT&&(b.hasAttribute("contenteditable")||!b.isReadOnly())&&l(b)&&b.isVisible())for(e in this.lookups)(c=this.lookups[e](b))&&this.store(b,c);return this.relations}};n.prototype={locate:function(){function a(a,b){var c=a.element[b===CKEDITOR.LINEUTILS_BEFORE?"getPrevious":"getNext"]();return c&&l(c)?(a.siblingRect=c.getClientRect(),
+b==CKEDITOR.LINEUTILS_BEFORE?(a.siblingRect.bottom+a.elementRect.top)/2:(a.elementRect.bottom+a.siblingRect.top)/2):b==CKEDITOR.LINEUTILS_BEFORE?a.elementRect.top:a.elementRect.bottom}return function(d){var b;this.locations={};for(var c in d)b=d[c],b.elementRect=b.element.getClientRect(),b.type&CKEDITOR.LINEUTILS_BEFORE&&this.store(c,CKEDITOR.LINEUTILS_BEFORE,a(b,CKEDITOR.LINEUTILS_BEFORE)),b.type&CKEDITOR.LINEUTILS_AFTER&&this.store(c,CKEDITOR.LINEUTILS_AFTER,a(b,CKEDITOR.LINEUTILS_AFTER)),b.type&
+CKEDITOR.LINEUTILS_INSIDE&&this.store(c,CKEDITOR.LINEUTILS_INSIDE,(b.elementRect.top+b.elementRect.bottom)/2);return this.locations}}(),sort:function(){var a,d,b,c;return function(e,g){a=this.locations;d=[];for(var f in a)for(var h in a[f])if(b=Math.abs(e-a[f][h]),d.length){for(c=0;c<d.length;c++)if(b<d[c].dist){d.splice(c,0,{uid:+f,type:h,dist:b});break}c==d.length&&d.push({uid:+f,type:h,dist:b})}else d.push({uid:+f,type:h,dist:b});return"undefined"!=typeof g?d.slice(0,g):d}}(),store:function(a,
+d,b){this.locations[a]||(this.locations[a]={});this.locations[a][d]=b}};var q={display:"block",width:"0px",height:"0px","border-color":"transparent","border-style":"solid",position:"absolute",top:"-6px"},t={height:"0px","border-top":"1px dashed red",position:"absolute","z-index":9999};p.prototype={removeAll:function(){for(var a in this.hidden)this.hidden[a].remove(),delete this.hidden[a];for(a in this.visible)this.visible[a].remove(),delete this.visible[a]},hideLine:function(a){var d=a.getUniqueId();
+a.hide();this.hidden[d]=a;delete this.visible[d]},showLine:function(a){var d=a.getUniqueId();a.show();this.visible[d]=a;delete this.hidden[d]},hideVisible:function(){for(var a in this.visible)this.hideLine(this.visible[a])},placeLine:function(a,d){var b,c,e;if(b=this.getStyle(a.uid,a.type)){for(e in this.visible)if(this.visible[e].getCustomData("hash")!==this.hash){c=this.visible[e];break}if(!c)for(e in this.hidden)if(this.hidden[e].getCustomData("hash")!==this.hash){this.showLine(c=this.hidden[e]);
+break}c||this.showLine(c=this.addLine());c.setCustomData("hash",this.hash);this.visible[c.getUniqueId()]=c;c.setStyles(b);d&&d(c)}},getStyle:function(a,d){var b=this.relations[a],c=this.locations[a][d],e={};e.width=b.siblingRect?Math.max(b.siblingRect.width,b.elementRect.width):b.elementRect.width;e.top=this.inline?c+this.winTopScroll.y-this.rect.relativeY:this.rect.top+this.winTopScroll.y+c;if(e.top-this.winTopScroll.y<this.rect.top||e.top-this.winTopScroll.y>this.rect.bottom)return!1;this.inline?
+e.left=b.elementRect.left-this.rect.relativeX:(0<b.elementRect.left?e.left=this.rect.left+b.elementRect.left:(e.width+=b.elementRect.left,e.left=this.rect.left),0<(b=e.left+e.width-(this.rect.left+this.winPane.width))&&(e.width-=b));e.left+=this.winTopScroll.x;for(var g in e)e[g]=CKEDITOR.tools.cssLength(e[g]);return e},addLine:function(){var a=CKEDITOR.dom.element.createFromHtml(this.lineTpl);a.appendTo(this.container);return a},prepare:function(a,d){this.relations=a;this.locations=d;this.hash=Math.random()},
+cleanup:function(){var a,d;for(d in this.visible)a=this.visible[d],a.getCustomData("hash")!==this.hash&&this.hideLine(a)},queryViewport:function(){this.winPane=this.win.getViewPaneSize();this.winTopScroll=this.winTop.getScrollPosition();this.winTopPane=this.winTop.getViewPaneSize();this.rect=this.getClientRect(this.inline?this.editable:this.frame)},getClientRect:function(a){a=a.getClientRect();var d=this.container.getDocumentPosition(),b=this.container.getComputedStyle("position");a.relativeX=a.relativeY=
+0;"static"!=b&&(a.relativeY=d.y,a.relativeX=d.x,a.top-=a.relativeY,a.bottom-=a.relativeY,a.left-=a.relativeX,a.right-=a.relativeX);return a}};var r={left:1,right:1,center:1},u={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:m,locator:n,liner:p}})();CKEDITOR.plugins.add("notification",{init:function(b){function a(b){var a=new CKEDITOR.dom.element("div");a.setStyles({position:"fixed","margin-left":"-9999px"});a.setAttributes({"aria-live":"assertive","aria-atomic":"true"});a.setText(b);CKEDITOR.document.getBody().append(a);setTimeout(function(){a.remove()},100)}b._.notificationArea=new Area(b);b.showNotification=function(a,d,e){var f,l;"progress"==d?f=e:l=e;a=new CKEDITOR.plugins.notification(b,{message:a,type:d,progress:f,duration:l});a.show();
+return a};b.on("key",function(c){if(27==c.data.keyCode){var d=b._.notificationArea.notifications;d.length&&(a(b.lang.notification.closed),d[d.length-1].hide(),c.cancel())}})}});function Notification(b,a){CKEDITOR.tools.extend(this,a,{editor:b,id:"cke-"+CKEDITOR.tools.getUniqueId(),area:b._.notificationArea});a.type||(this.type="info");this.element=this._createElement();b.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(this.element)}
+Notification.prototype={show:function(){!1!==this.editor.fire("notificationShow",{notification:this})&&(this.area.add(this),this._hideAfterTimeout())},update:function(b){var a=!0;!1===this.editor.fire("notificationUpdate",{notification:this,options:b})&&(a=!1);var c=this.element,d=c.findOne(".cke_notification_message"),e=c.findOne(".cke_notification_progress"),f=b.type;c.removeAttribute("role");b.progress&&"progress"!=this.type&&(f="progress");f&&(c.removeClass(this._getClass()),c.removeAttribute("aria-label"),
+this.type=f,c.addClass(this._getClass()),c.setAttribute("aria-label",this.type),"progress"!=this.type||e?"progress"!=this.type&&e&&e.remove():(e=this._createProgressElement(),e.insertBefore(d)));void 0!==b.message&&(this.message=b.message,d.setHtml(this.message));void 0!==b.progress&&(this.progress=b.progress,e&&e.setStyle("width",this._getPercentageProgress()));a&&b.important&&(c.setAttribute("role","alert"),this.isVisible()||this.area.add(this));this.duration=b.duration;this._hideAfterTimeout()},
+hide:function(){!1!==this.editor.fire("notificationHide",{notification:this})&&this.area.remove(this)},isVisible:function(){return 0<=CKEDITOR.tools.indexOf(this.area.notifications,this)},_createElement:function(){var b=this,a,c,d=this.editor.lang.common.close;a=new CKEDITOR.dom.element("div");a.addClass("cke_notification");a.addClass(this._getClass());a.setAttributes({id:this.id,role:"alert","aria-label":this.type});"progress"==this.type&&a.append(this._createProgressElement());c=new CKEDITOR.dom.element("p");
+c.addClass("cke_notification_message");c.setHtml(this.message);a.append(c);c=CKEDITOR.dom.element.createFromHtml('\x3ca class\x3d"cke_notification_close" href\x3d"javascript:void(0)" title\x3d"'+d+'" role\x3d"button" tabindex\x3d"-1"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e');a.append(c);c.on("click",function(){b.editor.focus();b.hide()});return a},_getClass:function(){return"progress"==this.type?"cke_notification_info":"cke_notification_"+this.type},_createProgressElement:function(){var b=
+new CKEDITOR.dom.element("span");b.addClass("cke_notification_progress");b.setStyle("width",this._getPercentageProgress());return b},_getPercentageProgress:function(){return Math.round(100*(this.progress||0))+"%"},_hideAfterTimeout:function(){var b=this,a;this._hideTimeoutId&&clearTimeout(this._hideTimeoutId);if("number"==typeof this.duration)a=this.duration;else if("info"==this.type||"success"==this.type)a="number"==typeof this.editor.config.notification_duration?this.editor.config.notification_duration:
+5E3;a&&(b._hideTimeoutId=setTimeout(function(){b.hide()},a))}};function Area(b){var a=this;this.editor=b;this.notifications=[];this.element=this._createElement();this._uiBuffer=CKEDITOR.tools.eventsBuffer(10,this._layout,this);this._changeBuffer=CKEDITOR.tools.eventsBuffer(500,this._layout,this);b.on("destroy",function(){a._removeListeners();a.element.remove()})}
+Area.prototype={add:function(b){this.notifications.push(b);this.element.append(b.element);1==this.element.getChildCount()&&(CKEDITOR.document.getBody().append(this.element),this._attachListeners());this._layout()},remove:function(b){var a=CKEDITOR.tools.indexOf(this.notifications,b);0>a||(this.notifications.splice(a,1),b.element.remove(),this.element.getChildCount()||(this._removeListeners(),this.element.remove()))},_createElement:function(){var b=this.editor,a=b.config,c=new CKEDITOR.dom.element("div");
+c.addClass("cke_notifications_area");c.setAttribute("id","cke_notifications_area_"+b.name);c.setStyle("z-index",a.baseFloatZIndex-2);return c},_attachListeners:function(){var b=CKEDITOR.document.getWindow(),a=this.editor;b.on("scroll",this._uiBuffer.input);b.on("resize",this._uiBuffer.input);a.on("change",this._changeBuffer.input);a.on("floatingSpaceLayout",this._layout,this,null,20);a.on("blur",this._layout,this,null,20)},_removeListeners:function(){var b=CKEDITOR.document.getWindow(),a=this.editor;
+b.removeListener("scroll",this._uiBuffer.input);b.removeListener("resize",this._uiBuffer.input);a.removeListener("change",this._changeBuffer.input);a.removeListener("floatingSpaceLayout",this._layout);a.removeListener("blur",this._layout)},_layout:function(){function b(){a.setStyle("left",k(n+d.width-g-h))}var a=this.element,c=this.editor,d=c.ui.contentsElement.getClientRect(),e=c.ui.contentsElement.getDocumentPosition(),f,l,r=a.getClientRect(),m,g=this._notificationWidth,h=this._notificationMargin;
+m=CKEDITOR.document.getWindow();var p=m.getScrollPosition(),q=m.getViewPaneSize(),t=CKEDITOR.document.getBody(),u=t.getDocumentPosition(),k=CKEDITOR.tools.cssLength;g&&h||(m=this.element.getChild(0),g=this._notificationWidth=m.getClientRect().width,h=this._notificationMargin=parseInt(m.getComputedStyle("margin-left"),10)+parseInt(m.getComputedStyle("margin-right"),10));c.toolbar&&(f=c.ui.space("top"),l=f.getClientRect());f&&f.isVisible()&&l.bottom>d.top&&l.bottom<d.bottom-r.height?a.setStyles({position:"fixed",
+top:k(l.bottom)}):0<d.top?a.setStyles({position:"absolute",top:k(e.y)}):e.y+d.height-r.height>p.y?a.setStyles({position:"fixed",top:0}):a.setStyles({position:"absolute",top:k(e.y+d.height-r.height)});var n="fixed"==a.getStyle("position")?d.left:"static"!=t.getComputedStyle("position")?e.x-u.x:e.x;d.width<g+h?e.x+g+h>p.x+q.width?b():a.setStyle("left",k(n)):e.x+g+h>p.x+q.width?a.setStyle("left",k(n)):e.x+d.width/2+g/2+h>p.x+q.width?a.setStyle("left",k(n-e.x+p.x+q.width-g-h)):0>d.left+d.width-g-h?b():
+0>d.left+d.width/2-g/2?a.setStyle("left",k(n-e.x+p.x)):a.setStyle("left",k(n+d.width/2-g/2-h/2))}};CKEDITOR.plugins.notification=Notification;(function(){function q(b,a,c){a.type||(a.type="auto");if(c&&!1===b.fire("beforePaste",a)||!a.dataValue&&a.dataTransfer.isEmpty())return!1;a.dataValue||(a.dataValue="");if(CKEDITOR.env.gecko&&"drop"==a.method&&b.toolbox)b.once("afterPaste",function(){b.toolbox.focus()});return b.fire("paste",a)}function y(b){function a(){var a=b.editable();if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var c=function(a){b.readOnly&&"cut"==a.name||m.initPasteDataTransfer(a,b);a.data.preventDefault()};a.on("copy",
+c);a.on("cut",c);a.on("cut",function(){b.readOnly||b.extractSelectedHtml()},null,null,999)}a.on(m.mainPasteEvent,function(b){"beforepaste"==m.mainPasteEvent&&n||t(b)});"beforepaste"==m.mainPasteEvent&&(a.on("paste",function(b){u||(f(),b.data.preventDefault(),t(b),e("paste"))}),a.on("contextmenu",g,null,null,0),a.on("beforepaste",function(b){!b.data||b.data.$.ctrlKey||b.data.$.shiftKey||g()},null,null,0));a.on("beforecut",function(){!n&&h(b)});var d;a.attachListener(CKEDITOR.env.ie?a:b.document.getDocumentElement(),
+"mouseup",function(){d=setTimeout(function(){r()},0)});b.on("destroy",function(){clearTimeout(d)});a.on("keyup",r)}function c(a){return{type:a,canUndo:"cut"==a,startDisabled:!0,fakeKeystroke:"cut"==a?CKEDITOR.CTRL+88:CKEDITOR.CTRL+67,exec:function(){"cut"==this.type&&h();var a;var c=this.type;if(CKEDITOR.env.ie)a=e(c);else try{a=b.document.$.execCommand(c,!1,null)}catch(d){a=!1}a||b.showNotification(b.lang.clipboard[this.type+"Error"]);return a}}}function d(){return{canUndo:!1,async:!0,fakeKeystroke:CKEDITOR.CTRL+
+86,exec:function(b,a){function c(a,g){g="undefined"!==typeof g?g:!0;a?(a.method="paste",a.dataTransfer||(a.dataTransfer=m.initPasteDataTransfer()),q(b,a,g)):d&&b.showNotification(l,"info",b.config.clipboard_notificationDuration);b.fire("afterCommandExec",{name:"paste",command:e,returnValue:!!a})}a="undefined"!==typeof a&&null!==a?a:{};var e=this,d="undefined"!==typeof a.notification?a.notification:!0,g=a.type,h=CKEDITOR.tools.keystrokeToString(b.lang.common.keyboard,b.getCommandKeystroke(this)),l=
+"string"===typeof d?d:b.lang.clipboard.pasteNotification.replace(/%1/,'\x3ckbd aria-label\x3d"'+h.aria+'"\x3e'+h.display+"\x3c/kbd\x3e"),h="string"===typeof a?a:a.dataValue;g?b._.nextPasteType=g:delete b._.nextPasteType;"string"===typeof h?c({dataValue:h}):b.getClipboardData(c)}}}function f(){u=1;setTimeout(function(){u=0},100)}function g(){n=1;setTimeout(function(){n=0},10)}function e(a){var c=b.document,d=c.getBody(),e=!1,g=function(){e=!0};d.on(a,g);7<CKEDITOR.env.version?c.$.execCommand(a):c.$.selection.createRange().execCommand(a);
+d.removeListener(a,g);return e}function h(){if(CKEDITOR.env.ie&&!CKEDITOR.env.quirks){var a=b.getSelection(),c,d,e;a.getType()==CKEDITOR.SELECTION_ELEMENT&&(c=a.getSelectedElement())&&(d=a.getRanges()[0],e=b.document.createText(""),e.insertBefore(c),d.setStartBefore(e),d.setEndAfter(c),a.selectRanges([d]),setTimeout(function(){c.getParent()&&(e.remove(),a.selectElement(c))},0))}}function k(a,c){var d=b.document,e=b.editable(),g=function(b){b.cancel()},h;if(!d.getById("cke_pastebin")){var l=b.getSelection(),
+t=l.createBookmarks();CKEDITOR.env.ie&&l.root.fire("selectionchange");var f=new CKEDITOR.dom.element(!CKEDITOR.env.webkit&&!e.is("body")||CKEDITOR.env.ie?"div":"body",d);f.setAttributes({id:"cke_pastebin","data-cke-temp":"1"});var k=0,d=d.getWindow();CKEDITOR.env.webkit?(e.append(f),f.addClass("cke_editable"),e.is("body")||(k="static"!=e.getComputedStyle("position")?e:CKEDITOR.dom.element.get(e.$.offsetParent),k=k.getDocumentPosition().y)):e.getAscendant(CKEDITOR.env.ie?"body":"html",1).append(f);
+f.setStyles({position:"absolute",top:d.getScrollPosition().y-k+10+"px",width:"1px",height:Math.max(1,d.getViewPaneSize().height-20)+"px",overflow:"hidden",margin:0,padding:0});CKEDITOR.env.safari&&f.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","text"));(k=f.getParent().isReadOnly())?(f.setOpacity(0),f.setAttribute("contenteditable",!0)):f.setStyle("ltr"==b.config.contentsLangDirection?"left":"right","-10000px");b.on("selectionChange",g,null,null,0);if(CKEDITOR.env.webkit||CKEDITOR.env.gecko)h=
+e.once("blur",g,null,null,-100);k&&f.focus();k=new CKEDITOR.dom.range(f);k.selectNodeContents(f);var r=k.select();CKEDITOR.env.ie&&(h=e.once("blur",function(){b.lockSelection(r)}));var p=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=p);h&&h.removeListener();CKEDITOR.env.ie&&e.focus();l.selectBookmarks(t);f.remove();var a;CKEDITOR.env.webkit&&(a=f.getFirst())&&a.is&&a.hasClass("Apple-style-span")&&(f=a);b.removeListener("selectionChange",
+g);c(f.getHtml())},0)}}function v(){if("paste"==m.mainPasteEvent)return b.fire("beforePaste",{type:"auto",method:"paste"}),!1;b.focus();f();var a=b.focusManager;a.lock();if(b.editable().fire(m.mainPasteEvent)&&!e("paste"))return a.unlock(),!1;a.unlock();return!0}function l(a){if("wysiwyg"==b.mode)switch(a.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:a=b.editable();f();"paste"==m.mainPasteEvent&&a.fire("beforepaste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:b.fire("saveSnapshot"),
+setTimeout(function(){b.fire("saveSnapshot")},50)}}function t(a){var c={type:"auto",method:"paste",dataTransfer:m.initPasteDataTransfer(a)};c.dataTransfer.cacheData();var e=!1!==b.fire("beforePaste",c);e&&m.canClipboardApiBeTrusted(c.dataTransfer,b)?(a.data.preventDefault(),setTimeout(function(){q(b,c)},0)):k(a,function(a){c.dataValue=a.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,"");e&&q(b,c)})}function r(){if("wysiwyg"==b.mode){var a=p("paste");b.getCommand("cut").setState(p("cut"));b.getCommand("copy").setState(p("copy"));
+b.getCommand("paste").setState(a);b.fire("pasteState",a)}}function p(a){if(w&&a in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==a)return CKEDITOR.TRISTATE_OFF;a=b.getSelection();var c=a.getRanges();return a.getType()==CKEDITOR.SELECTION_NONE||1==c.length&&c[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var m=CKEDITOR.plugins.clipboard,n=0,u=0,w=0;(function(){b.on("key",l);b.on("contentDom",a);b.on("selectionChange",function(b){w=b.data.selection.getRanges()[0].checkReadOnly();
+r()});b.contextMenu&&b.contextMenu.addListener(function(b,a){w=a.getRanges()[0].checkReadOnly();return{cut:p("cut"),copy:p("copy"),paste:p("paste")}})})();(function(){function a(c,e,d,g,h){var l=b.lang.clipboard[e];b.addCommand(e,d);b.ui.addButton&&b.ui.addButton(c,{label:l,command:e,toolbar:"clipboard,"+g});b.addMenuItems&&b.addMenuItem(e,{label:l,command:e,group:"clipboard",order:h})}a("Cut","cut",c("cut"),10,1);a("Copy","copy",c("copy"),20,4);a("Paste","paste",d(),30,8)})();b.getClipboardData=
+function(a,c){function e(b){b.removeListener();b.cancel();c(b.data)}c||(c=a,a=null);b.on("paste",e,null,null,0);!1===v()&&(b.removeListener("paste",e),c(null))}}function z(b){if(CKEDITOR.env.webkit){if(!b.match(/^[^<]*$/g)&&!b.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!b.match(/^([^<]|<br( ?\/)?>)*$/gi)&&!b.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko){if(!b.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html";
+return"htmlifiedtext"}function A(b,a){function c(b){return CKEDITOR.tools.repeat("\x3c/p\x3e\x3cp\x3e",~~(b/2))+(1==b%2?"\x3cbr\x3e":"")}a=a.replace(/\s+/g," ").replace(/> +</g,"\x3e\x3c").replace(/<br ?\/>/gi,"\x3cbr\x3e");a=a.replace(/<\/?[A-Z]+>/g,function(b){return b.toLowerCase()});if(a.match(/^[^<]$/))return a;CKEDITOR.env.webkit&&-1<a.indexOf("\x3cdiv\x3e")&&(a=a.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"\x3cbr\x3e").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"\x3cdiv\x3e\x3c/div\x3e"),
+a.match(/<div>(<br>|)<\/div>/)&&(a="\x3cp\x3e"+a.replace(/(<div>(<br>|)<\/div>)+/g,function(b){return c(b.split("\x3c/div\x3e\x3cdiv\x3e").length+1)})+"\x3c/p\x3e"),a=a.replace(/<\/div><div>/g,"\x3cbr\x3e"),a=a.replace(/<\/?div>/g,""));CKEDITOR.env.gecko&&b.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(a=a.replace(/^<br><br>$/,"\x3cbr\x3e")),-1<a.indexOf("\x3cbr\x3e\x3cbr\x3e")&&(a="\x3cp\x3e"+a.replace(/(<br>){2,}/g,function(b){return c(b.length/4)})+"\x3c/p\x3e"));return B(b,a)}function C(){function b(){var b=
+{},a;for(a in CKEDITOR.dtd)"$"!=a.charAt(0)&&"div"!=a&&"span"!=a&&(b[a]=1);return b}var a={};return{get:function(c){return"plain-text"==c?a.plainText||(a.plainText=new CKEDITOR.filter("br")):"semantic-content"==c?((c=a.semanticContent)||(c=new CKEDITOR.filter,c.allow({$1:{elements:b(),attributes:!0,styles:!1,classes:!1}}),c=a.semanticContent=c),c):c?new CKEDITOR.filter(c):null}}}function x(b,a,c){a=CKEDITOR.htmlParser.fragment.fromHtml(a);var d=new CKEDITOR.htmlParser.basicWriter;c.applyTo(a,!0,!1,
+b.activeEnterMode);a.writeHtml(d);return d.getHtml()}function B(b,a){b.enterMode==CKEDITOR.ENTER_BR?a=a.replace(/(<\/p><p>)+/g,function(b){return CKEDITOR.tools.repeat("\x3cbr\x3e",b.length/7*2)}).replace(/<\/?p>/g,""):b.enterMode==CKEDITOR.ENTER_DIV&&(a=a.replace(/<(\/)?p>/g,"\x3c$1div\x3e"));return a}function D(b){b.data.preventDefault();b.data.$.dataTransfer.dropEffect="none"}function E(b){var a=CKEDITOR.plugins.clipboard;b.on("contentDom",function(){function c(a,c,e){c.select();q(b,{dataTransfer:e,
+method:"drop"},1);e.sourceEditor.fire("saveSnapshot");e.sourceEditor.editable().extractHtmlFromRange(a);e.sourceEditor.getSelection().selectRanges([a]);e.sourceEditor.fire("saveSnapshot")}function d(c,e){c.select();q(b,{dataTransfer:e,method:"drop"},1);a.resetDragDataTransfer()}function f(a,c,e){var g={$:a.data.$,target:a.data.getTarget()};c&&(g.dragRange=c);e&&(g.dropRange=e);!1===b.fire(a.name,g)&&a.data.preventDefault()}function g(b){b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());return b.getChildCount()}
+var e=b.editable(),h=CKEDITOR.plugins.clipboard.getDropTarget(b),k=b.ui.space("top"),v=b.ui.space("bottom");a.preventDefaultDropOnElement(k);a.preventDefaultDropOnElement(v);e.attachListener(h,"dragstart",f);e.attachListener(b,"dragstart",a.resetDragDataTransfer,a,null,1);e.attachListener(b,"dragstart",function(c){a.initDragDataTransfer(c,b)},null,null,2);e.attachListener(b,"dragstart",function(){var c=a.dragRange=b.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(a.dragStartContainerChildCount=
+c?g(c.startContainer):null,a.dragEndContainerChildCount=c?g(c.endContainer):null)},null,null,100);e.attachListener(h,"dragend",f);e.attachListener(b,"dragend",a.initDragDataTransfer,a,null,1);e.attachListener(b,"dragend",a.resetDragDataTransfer,a,null,100);e.attachListener(h,"dragover",function(b){if(CKEDITOR.env.edge)b.data.preventDefault();else{var a=b.data.getTarget();a&&a.is&&a.is("html")?b.data.preventDefault():CKEDITOR.env.ie&&CKEDITOR.plugins.clipboard.isFileApiSupported&&b.data.$.dataTransfer.types.contains("Files")&&
+b.data.preventDefault()}});e.attachListener(h,"drop",function(c){if(!c.data.$.defaultPrevented){c.data.preventDefault();var e=c.data.getTarget();if(!e.isReadOnly()||e.type==CKEDITOR.NODE_ELEMENT&&e.is("html")){var e=a.getRangeAtDropPosition(c,b),g=a.dragRange;e&&f(c,g,e)}}},null,null,9999);e.attachListener(b,"drop",a.initDragDataTransfer,a,null,1);e.attachListener(b,"drop",function(e){if(e=e.data){var g=e.dropRange,h=e.dragRange,f=e.dataTransfer;f.getTransferType(b)==CKEDITOR.DATA_TRANSFER_INTERNAL?
+setTimeout(function(){a.internalDrop(h,g,f,b)},0):f.getTransferType(b)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c(h,g,f):d(g,f)}},null,null,9999)})}CKEDITOR.plugins.add("clipboard",{requires:"notification,toolbar",init:function(b){var a,c=C();b.config.forcePasteAsPlainText?a="plain-text":b.config.pasteFilter?a=b.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in b.config||(a="semantic-content");b.pasteFilter=c.get(a);y(b);E(b);if(CKEDITOR.env.gecko){var d=["image/png","image/jpeg","image/gif"],
+f;b.on("paste",function(a){var c=a.data,h=c.dataTransfer;if(!c.dataValue&&"paste"==c.method&&h&&1==h.getFilesCount()&&f!=h.id&&(h=h.getFile(0),-1!=CKEDITOR.tools.indexOf(d,h.type))){var k=new FileReader;k.addEventListener("load",function(){a.data.dataValue='\x3cimg src\x3d"'+k.result+'" /\x3e';b.fire("paste",a.data)},!1);k.addEventListener("abort",function(){b.fire("paste",a.data)},!1);k.addEventListener("error",function(){b.fire("paste",a.data)},!1);k.readAsDataURL(h);f=c.dataTransfer.id;a.stop()}},
+null,null,1)}b.on("paste",function(a){a.data.dataTransfer||(a.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer);if(!a.data.dataValue){var c=a.data.dataTransfer,d=c.getData("text/html");if(d)a.data.dataValue=d,a.data.type="html";else if(d=c.getData("text/plain"))a.data.dataValue=b.editable().transformPlainTextToHtml(d),a.data.type="text"}},null,null,1);b.on("paste",function(b){var a=b.data.dataValue,c=CKEDITOR.dtd.$block;-1<a.indexOf("Apple-")&&(a=a.replace(/<span class="Apple-converted-space"> <\/span>/gi,
+" "),"html"!=b.data.type&&(a=a.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;")})),-1<a.indexOf('\x3cbr class\x3d"Apple-interchange-newline"\x3e')&&(b.data.startsWithEOL=1,b.data.preSniffing="html",a=a.replace(/<br class="Apple-interchange-newline">/,"")),a=a.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(a.match(/^<[^<]+cke_(editable|contents)/i)){var d,f,l=new CKEDITOR.dom.element("div");for(l.setHtml(a);1==l.getChildCount()&&
+(d=l.getFirst())&&d.type==CKEDITOR.NODE_ELEMENT&&(d.hasClass("cke_editable")||d.hasClass("cke_contents"));)l=f=d;f&&(a=f.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?a=a.replace(/^ (?: |\r\n)?<(\w+)/g,function(a,e){return e.toLowerCase()in c?(b.data.preSniffing="html","\x3c"+e):a}):CKEDITOR.env.webkit?a=a.replace(/<\/(\w+)><div><br><\/div>$/,function(a,e){return e in c?(b.data.endsWithEOL=1,"\x3c/"+e+"\x3e"):a}):CKEDITOR.env.gecko&&(a=a.replace(/(\s)<br>$/,"$1"));b.data.dataValue=a},null,
+null,3);b.on("paste",function(a){a=a.data;var e=b._.nextPasteType||a.type,d=a.dataValue,f,n=b.config.clipboard_defaultContentType||"html",l=a.dataTransfer.getTransferType(b);f="html"==e||"html"==a.preSniffing?"html":z(d);delete b._.nextPasteType;"htmlifiedtext"==f&&(d=A(b.config,d));"text"==e&&"html"==f?d=x(b,d,c.get("plain-text")):l==CKEDITOR.DATA_TRANSFER_EXTERNAL&&b.pasteFilter&&!a.dontFilter&&(d=x(b,d,b.pasteFilter));a.startsWithEOL&&(d='\x3cbr data-cke-eol\x3d"1"\x3e'+d);a.endsWithEOL&&(d+='\x3cbr data-cke-eol\x3d"1"\x3e');
+"auto"==e&&(e="html"==f||"html"==n?"html":"text");a.type=e;a.dataValue=d;delete a.preSniffing;delete a.startsWithEOL;delete a.endsWithEOL},null,null,6);b.on("paste",function(a){a=a.data;a.dataValue&&(b.insertHtml(a.dataValue,a.type,a.range),setTimeout(function(){b.fire("afterPaste")},0))},null,null,1E3)}});CKEDITOR.plugins.clipboard={isCustomCopyCutSupported:!CKEDITOR.env.ie&&!CKEDITOR.env.iOS,isCustomDataTypesSupported:!CKEDITOR.env.ie,isFileApiSupported:!CKEDITOR.env.ie||9<CKEDITOR.env.version,
+mainPasteEvent:CKEDITOR.env.ie&&!CKEDITOR.env.edge?"beforepaste":"paste",canClipboardApiBeTrusted:function(b,a){return b.getTransferType(a)!=CKEDITOR.DATA_TRANSFER_EXTERNAL||CKEDITOR.env.chrome&&!b.isEmpty()||CKEDITOR.env.gecko&&(b.getData("text/html")||b.getFilesCount())||CKEDITOR.env.safari&&603<=CKEDITOR.env.version&&!CKEDITOR.env.iOS?!0:!1},getDropTarget:function(b){var a=b.editable();return CKEDITOR.env.ie&&9>CKEDITOR.env.version||a.isInline()?a:b.document},fixSplitNodesAfterDrop:function(b,
+a,c,d){function f(b,c,d){var f=b;f.type==CKEDITOR.NODE_TEXT&&(f=b.getParent());if(f.equals(c)&&d!=c.getChildCount())return b=a.startContainer.getChild(a.startOffset-1),c=a.startContainer.getChild(a.startOffset),b&&b.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&(d=b.getLength(),b.setText(b.getText()+c.getText()),c.remove(),a.setStart(b,d),a.collapse(!0)),!0}var g=a.startContainer;"number"==typeof d&&"number"==typeof c&&g.type==CKEDITOR.NODE_ELEMENT&&(f(b.startContainer,g,c)||f(b.endContainer,
+g,d))},isDropRangeAffectedByDragRange:function(b,a){var c=a.startContainer,d=a.endOffset;return b.endContainer.equals(c)&&b.endOffset<=d||b.startContainer.getParent().equals(c)&&b.startContainer.getIndex()<d||b.endContainer.getParent().equals(c)&&b.endContainer.getIndex()<d?!0:!1},internalDrop:function(b,a,c,d){var f=CKEDITOR.plugins.clipboard,g=d.editable(),e,h;d.fire("saveSnapshot");d.fire("lockSnapshot",{dontUpdate:1});CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(b,a,f.dragStartContainerChildCount,
+f.dragEndContainerChildCount);(h=this.isDropRangeAffectedByDragRange(b,a))||(e=b.createBookmark(!1));f=a.clone().createBookmark(!1);h&&(e=b.createBookmark(!1));b=e.startNode;a=e.endNode;h=f.startNode;a&&b.getPosition(h)&CKEDITOR.POSITION_PRECEDING&&a.getPosition(h)&CKEDITOR.POSITION_FOLLOWING&&h.insertBefore(b);b=d.createRange();b.moveToBookmark(e);g.extractHtmlFromRange(b,1);a=d.createRange();a.moveToBookmark(f);q(d,{dataTransfer:c,method:"drop",range:a},1);d.fire("unlockSnapshot")},getRangeAtDropPosition:function(b,
+a){var c=b.data.$,d=c.clientX,f=c.clientY,g=a.getSelection(!0).getRanges()[0],e=a.createRange();if(b.data.testRange)return b.data.testRange;if(document.caretRangeFromPoint&&a.document.$.caretRangeFromPoint(d,f))c=a.document.$.caretRangeFromPoint(d,f),e.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),e.collapse(!0);else if(c.rangeParent)e.setStart(CKEDITOR.dom.node(c.rangeParent),c.rangeOffset),e.collapse(!0);else{if(CKEDITOR.env.ie&&8<CKEDITOR.env.version&&g&&a.editable().hasFocus)return g;
+if(document.body.createTextRange){a.focus();c=a.document.getBody().$.createTextRange();try{for(var h=!1,k=0;20>k&&!h;k++){if(!h)try{c.moveToPoint(d,f-k),h=!0}catch(n){}if(!h)try{c.moveToPoint(d,f+k),h=!0}catch(l){}}if(h){var t="cke-temp-"+(new Date).getTime();c.pasteHTML('\x3cspan id\x3d"'+t+'"\x3e\x3c/span\x3e');var r=a.document.getById(t);e.moveToPosition(r,CKEDITOR.POSITION_BEFORE_START);r.remove()}else{var p=a.document.$.elementFromPoint(d,f),m=new CKEDITOR.dom.element(p),q;if(m.equals(a.editable())||
+"html"==m.getName())return g&&g.startContainer&&!g.startContainer.equals(a.editable())?g:null;q=m.getClientRect();d<q.left?e.setStartAt(m,CKEDITOR.POSITION_AFTER_START):e.setStartAt(m,CKEDITOR.POSITION_BEFORE_END);e.collapse(!0)}}catch(u){return null}}else return null}return e},initDragDataTransfer:function(b,a){var c=b.data.$?b.data.$.dataTransfer:null,d=new this.dataTransfer(c,a);c?this.dragData&&d.id==this.dragData.id?d=this.dragData:this.dragData=d:this.dragData?d=this.dragData:this.dragData=
+d;b.data.dataTransfer=d},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(b,a){if(this.isCustomCopyCutSupported){if(b&&b.data&&b.data.$){var c=new this.dataTransfer(b.data.$.clipboardData,a);this.copyCutData&&c.id==this.copyCutData.id?(c=this.copyCutData,c.$=b.data.$.clipboardData):this.copyCutData=c;return c}return new this.dataTransfer(null,a)}return new this.dataTransfer(CKEDITOR.env.edge&&b&&b.data.$&&b.data.$.clipboardData||null,a)},preventDefaultDropOnElement:function(b){b&&
+b.on("dragover",D)}};var n=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=function(b,a){b&&(this.$=b);this._={metaRegExp:/^<meta.*?>/i,bodyRegExp:/<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i,fragmentRegExp:/\x3c!--(?:Start|End)Fragment--\x3e/g,data:{},files:[],normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==a?"Text":"url"==a?"URL":a}};this.id=this.getData(n);this.id||(this.id="Text"==n?"":"cke-"+CKEDITOR.tools.getUniqueId());
+if("Text"!=n)try{this.$.setData(n,this.id)}catch(c){}a&&(this.sourceEditor=a,this.setData("text/html",a.getSelectedHtml(1)),"Text"==n||this.getData("text/plain")||this.setData("text/plain",a.getSelection().getSelectedText()))};CKEDITOR.DATA_TRANSFER_INTERNAL=1;CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2;CKEDITOR.DATA_TRANSFER_EXTERNAL=3;CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(b,a){b=this._.normalizeType(b);var c=this._.data[b],d;if(void 0===c||null===c||""===c)try{c=this.$.getData(b)}catch(f){}if(void 0===
+c||null===c||""===c)c="";"text/html"!=b||a?"Text"==b&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==c.substring(0,7)&&(c=""):(c=c.replace(this._.metaRegExp,""),(d=this._.bodyRegExp.exec(c))&&d.length&&(c=d[1],c=c.replace(this._.fragmentRegExp,"")));"string"===typeof c&&(d=c.indexOf("\x3c/html\x3e"),c=-1!==d?c.substring(0,d+7):c);return c},setData:function(b,a){b=this._.normalizeType(b);this._.data[b]=a;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==b||"Text"==b){"Text"==n&&
+"Text"==b&&(this.id=a);try{this.$.setData(b,a)}catch(c){}}},getTransferType:function(b){return this.sourceEditor?this.sourceEditor==b?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},cacheData:function(){function b(b){b=a._.normalizeType(b);var c=a.getData(b,!0);c&&(a._.data[b]=c)}if(this.$){var a=this,c,d;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(c=0;c<this.$.types.length;c++)b(this.$.types[c])}else b("Text"),
+b("URL");d=this._getImageFromClipboard();if(this.$&&this.$.files||d){this._.files=[];if(this.$.files&&this.$.files.length)for(c=0;c<this.$.files.length;c++)this._.files.push(this.$.files[c]);0===this._.files.length&&d&&this._.files.push(d)}}},getFilesCount:function(){return this._.files.length?this._.files.length:this.$&&this.$.files&&this.$.files.length?this.$.files.length:this._getImageFromClipboard()?1:0},getFile:function(b){return this._.files.length?this._.files[b]:this.$&&this.$.files&&this.$.files.length?
+this.$.files[b]:0===b?this._getImageFromClipboard():void 0},isEmpty:function(){var b={},a;if(this.getFilesCount())return!1;for(a in this._.data)b[a]=1;if(this.$)if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(var c=0;c<this.$.types.length;c++)b[this.$.types[c]]=1}else b.Text=1,b.URL=1;"Text"!=n&&(b[n]=0);for(a in b)if(b[a]&&""!==this.getData(a))return!1;return!0},_getImageFromClipboard:function(){var b;if(this.$&&this.$.items&&this.$.items[0])try{if((b=this.$.items[0].getAsFile())&&
+b.type)return b}catch(a){}}}})();CKEDITOR.config.clipboard_notificationDuration=1E4;(function(){function f(a){return a.getName&&!a.hasAttribute("data-cke-temp")}CKEDITOR.plugins.add("widgetselection",{init:function(a){if(CKEDITOR.env.webkit){var b=CKEDITOR.plugins.widgetselection;a.on("contentDom",function(a){a=a.editor;var d=a.document,e=a.editable();e.attachListener(d,"keydown",function(a){var c=a.data.$;65==a.data.getKey()&&(CKEDITOR.env.mac&&c.metaKey||!CKEDITOR.env.mac&&c.ctrlKey)&&CKEDITOR.tools.setTimeout(function(){b.addFillers(e)||b.removeFillers(e)},0)},null,null,-1);a.on("selectionCheck",
+function(a){b.removeFillers(a.editor.editable())});a.on("paste",function(a){a.data.dataValue=b.cleanPasteData(a.data.dataValue)});"selectall"in a.plugins&&b.addSelectAllIntegration(a)})}}});CKEDITOR.plugins.widgetselection={startFiller:null,endFiller:null,fillerAttribute:"data-cke-filler-webkit",fillerContent:"\x26nbsp;",fillerTagName:"div",addFillers:function(a){var b=a.editor;if(!this.isWholeContentSelected(a)&&0<a.getChildCount()){var c=a.getFirst(f),d=a.getLast(f);c&&c.type==CKEDITOR.NODE_ELEMENT&&
+!c.isEditable()&&(this.startFiller=this.createFiller(),a.append(this.startFiller,1));d&&d.type==CKEDITOR.NODE_ELEMENT&&!d.isEditable()&&(this.endFiller=this.createFiller(!0),a.append(this.endFiller,0));if(this.hasFiller(a))return b=b.createRange(),b.selectNodeContents(a),b.select(),!0}return!1},removeFillers:function(a){if(this.hasFiller(a)&&!this.isWholeContentSelected(a)){var b=a.findOne(this.fillerTagName+"["+this.fillerAttribute+"\x3dstart]"),c=a.findOne(this.fillerTagName+"["+this.fillerAttribute+
+"\x3dend]");this.startFiller&&b&&this.startFiller.equals(b)?this.removeFiller(this.startFiller,a):this.startFiller=b;this.endFiller&&c&&this.endFiller.equals(c)?this.removeFiller(this.endFiller,a):this.endFiller=c}},cleanPasteData:function(a){a&&a.length&&(a=a.replace(this.createFillerRegex(),"").replace(this.createFillerRegex(!0),""));return a},isWholeContentSelected:function(a){var b=a.editor.getSelection().getRanges()[0];return!b||b&&b.collapsed?!1:(b=b.clone(),b.enlarge(CKEDITOR.ENLARGE_ELEMENT),
+!!(b&&a&&b.startContainer&&b.endContainer&&0===b.startOffset&&b.endOffset===a.getChildCount()&&b.startContainer.equals(a)&&b.endContainer.equals(a)))},hasFiller:function(a){return 0<a.find(this.fillerTagName+"["+this.fillerAttribute+"]").count()},createFiller:function(a){var b=new CKEDITOR.dom.element(this.fillerTagName);b.setHtml(this.fillerContent);b.setAttribute(this.fillerAttribute,a?"end":"start");b.setAttribute("data-cke-temp",1);b.setStyles({display:"block",width:0,height:0,padding:0,border:0,
+margin:0,position:"absolute",top:0,left:"-9999px",opacity:0,overflow:"hidden"});return b},removeFiller:function(a,b){if(a){var c=b.editor,d=b.editor.getSelection().getRanges()[0].startPath(),e=c.createRange(),g,f;d.contains(a)&&(g=a.getHtml(),f=!0);d="start"==a.getAttribute(this.fillerAttribute);a.remove();g&&0<g.length&&g!=this.fillerContent?(b.insertHtmlIntoRange(g,c.getSelection().getRanges()[0]),e.setStartAt(b.getChild(b.getChildCount()-1),CKEDITOR.POSITION_BEFORE_END),c.getSelection().selectRanges([e])):
+f&&(d?e.setStartAt(b.getFirst().getNext(),CKEDITOR.POSITION_AFTER_START):e.setEndAt(b.getLast().getPrevious(),CKEDITOR.POSITION_BEFORE_END),b.editor.getSelection().selectRanges([e]))}},createFillerRegex:function(a){var b=this.createFiller(a).getOuterHtml().replace(/style="[^"]*"/gi,'style\x3d"[^"]*"').replace(/>[^<]*</gi,"\x3e[^\x3c]*\x3c");return new RegExp((a?"":"^")+b+(a?"$":""))},addSelectAllIntegration:function(a){var b=this;a.editable().attachListener(a,"beforeCommandExec",function(c){var d=
+a.editable();"selectAll"==c.data.name&&d&&b.addFillers(d)},null,null,9999)}}})();(function(){function p(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};F(this);G(this);this.on("checkWidgets",H);this.editor.on("contentDomInvalidated",this.checkWidgets,this);I(this);J(this);K(this);L(this);M(this)}function g(a,b,c,d,e){var f=a.editor;CKEDITOR.tools.extend(this,d,{editor:f,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({},
+"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:g.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);N(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes",
+this.getClasses());this.dataReady=!0;r(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function q(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;this._={};b=this.filter=c.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function O(a,
+b){a.addCommand(b.name,{exec:function(a,d){function e(){a.widgets.finalizeCreation(k)}var f=a.widgets.focused;if(f&&f.name==b.name)f.edit();else if(b.insert)b.insert();else if(b.template){var f="function"==typeof b.defaults?b.defaults():b.defaults,f=CKEDITOR.dom.element.createFromHtml(b.template.output(f)),h,l=a.widgets.wrapElement(f,b.name),k=new CKEDITOR.dom.documentFragment(l.getDocument());k.append(l);(h=a.widgets.initOn(f,b,d&&d.startupData))?(f=h.once("edit",function(b){if(b.data.dialog)h.once("dialog",
+function(b){b=b.data;var d,f;d=b.once("ok",e,null,null,20);f=b.once("cancel",function(b){b.data&&!1===b.data.hide||a.widgets.destroy(h,!0)});b.once("hide",function(){d.removeListener();f.removeListener()})});else e()},null,null,999),h.edit(),f.removeListener()):e()}},allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function P(a,b){function c(b,d,c){var e=CKEDITOR.tools.getIndex(a._.upcasts,function(a){return a[2]>
+c});0>e&&(e=a._.upcasts.length);a._.upcasts.splice(e,0,[b,d,c])}var d=b.upcast,e=b.upcastPriority||10;if(d)if("string"==typeof d)for(d=d.split(",");d.length;)c(b.upcasts[d.pop()],b.name,e);else c(d,b.name,e)}function t(a,b){a.focused=null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function H(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e,f,h;if(b){for(d in c)c[d].isReady()&&
+!b.contains(c[d].wrapper)&&this.destroy(c[d],!0);if(a&&a.initOnlyNew)c=this.initOnAll();else{var l=b.find(".cke_widget_wrapper"),c=[];d=0;for(e=l.count();d<e;d++){f=l.getItem(d);if(h=!this.getByElement(f,!0)){a:{h=Q;for(var k=f;k=k.getParent();)if(h(k)){h=!0;break a}h=!1}h=!h}h&&b.contains(f)&&(f.addClass("cke_widget_new"),c.push(this.initOn(f.getFirst(g.isDomWidgetElement))))}}a&&a.focusInited&&1==c.length&&c[0].focus()}}}function u(a,b,c){if(!c.allowedContent&&!c.disallowedContent)return null;var d=
+this._.filters[a];d||(this._.filters[a]=d={});a=d[b];a||(a=c.allowedContent?new CKEDITOR.filter(c.allowedContent):this.editor.filter.clone(),d[b]=a,c.disallowedContent&&a.disallow(c.disallowedContent));return a}function R(a){var b=[],c=a._.upcasts,d=a._.upcastCallbacks;return{toBeWrapped:b,iterator:function(a){var f,h,l,k,m;if("data-cke-widget-wrapper"in a.attributes)return(a=a.getFirst(g.isParserWidgetElement))&&b.push([a]),!1;if("data-widget"in a.attributes)return b.push([a]),!1;if(m=c.length){if(a.attributes["data-cke-widget-upcasted"])return!1;
+k=0;for(f=d.length;k<f;++k)if(!1===d[k](a))return;for(k=0;k<m;++k)if(f=c[k],l={},h=f[0](a,l))return h instanceof CKEDITOR.htmlParser.element&&(a=h),a.attributes["data-cke-widget-data"]=encodeURIComponent(JSON.stringify(l)),a.attributes["data-cke-widget-upcasted"]=1,b.push([a,f[1]]),!1}}}}function v(a,b){return{tabindex:-1,contenteditable:"false","data-cke-widget-wrapper":1,"data-cke-filter":"off","class":"cke_widget_wrapper cke_widget_new cke_widget_"+(a?"inline":"block")+(b?" cke_widget_"+b:"")}}
+function w(a,b,c){if(a.type==CKEDITOR.NODE_ELEMENT){var d=CKEDITOR.dtd[a.name];if(d&&!d[c.name]){var d=a.split(b),e=a.parent;b=d.getIndex();a.children.length||(--b,a.remove());d.children.length||d.remove();return w(e,b,c)}}a.add(c,b)}function x(a,b){return"boolean"==typeof a.inline?a.inline:!!CKEDITOR.dtd.$inline[b]}function Q(a){return a.hasAttribute("data-cke-temp")}function n(a,b,c,d){var e=a.editor;e.fire("lockSnapshot");c?(d=c.data("cke-widget-editable"),d=b.editables[d],a.widgetHoldingFocusedEditable=
+b,b.focusedEditable=d,c.addClass("cke_widget_editable_focused"),d.filter&&e.setActiveFilter(d.filter),e.setActiveEnterMode(d.enterMode,d.shiftEnterMode)):(d||b.focusedEditable.removeClass("cke_widget_editable_focused"),b.focusedEditable=null,a.widgetHoldingFocusedEditable=null,e.setActiveFilter(null),e.setActiveEnterMode(null,null));e.fire("unlockSnapshot")}function S(a){a.contextMenu&&a.contextMenu.addListener(function(b){if(b=a.widgets.getByElement(b,!0))return b.fire("contextMenu",{})})}function T(a,
+b){return CKEDITOR.tools.trim(b)}function L(a){var b=a.editor,c=CKEDITOR.plugins.lineutils;b.on("dragstart",function(d){var c=d.data.target;g.isDomDragHandler(c)&&(c=a.getByElement(c),d.data.dataTransfer.setData("cke/widget-id",c.id),b.focus(),c.focus())});b.on("drop",function(c){var e=c.data.dataTransfer,f=e.getData("cke/widget-id"),h=e.getTransferType(b),e=b.createRange();""!==f&&h===CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c.cancel():""!==f&&h==CKEDITOR.DATA_TRANSFER_INTERNAL&&(f=a.instances[f])&&
+(e.setStartBefore(f.wrapper),e.setEndAfter(f.wrapper),c.data.dragRange=e,delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount,delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount,c.data.dataTransfer.setData("text/html",b.editable().getHtmlFromRange(e).getHtml()),b.widgets.destroy(f,!0))});b.on("contentDom",function(){var d=b.editable();CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(b){if(!b.is(CKEDITOR.dtd.$listItem)&&b.is(CKEDITOR.dtd.$block)&&!g.isDomNestedEditable(b)&&
+!a._.draggedWidget.wrapper.contains(b)){var c=g.getNestedEditable(d,b);if(c){b=a._.draggedWidget;if(a.getByElement(c)==b)return;c=CKEDITOR.filter.instances[c.data("cke-filter")];b=b.requiredContent;if(c&&b&&!c.check(b))return}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function J(a){var b=
+a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,f;c.attachListener(d,"mousedown",function(c){var d=c.data.getTarget();e=d instanceof CKEDITOR.dom.element?a.getByElement(d):null;f=0;e&&(e.inline&&d.type==CKEDITOR.NODE_ELEMENT&&d.hasAttribute("data-cke-widget-drag-handler")?(f=1,a.focused!=e&&b.getSelection().removeAllRanges()):g.getNestedEditable(e.wrapper,d)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){f&&
+e&&e.wrapper&&(f=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){setTimeout(function(){e&&e.wrapper&&c.contains(e.wrapper)&&(e.focus(),e=null)})})});b.on("doubleclick",function(b){var d=a.getByElement(b.data.element);if(d&&!g.getNestedEditable(d.wrapper,b.data.element))return d.fire("doubleclick",{element:b.data.element})},null,null,1)}function K(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&
+(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e},null,null,1)}function M(a){function b(b){a.focused&&y(a.focused,"cut"==b.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,
+"copy",b);a.attachListener(a,"cut",b)})}function I(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(c){var d=(c=g.getNestedEditable(b.editable(),c.data.selection.getStartElement()))&&a.getByElement(c),e=a.widgetHoldingFocusedEditable;e?e===d&&e.focusedEditable.equals(c)||(n(a,e,null),d&&c&&n(a,d,c)):d&&c&&n(a,d,c)});b.on("dataReady",function(){z(a).commit()});b.on("blur",function(){var b;(b=a.focused)&&
+t(a,b);(b=a.widgetHoldingFocusedEditable)&&n(a,b,null)})}function G(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var e=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=e;c[e]=f;b.data.dataValue.forEach(function(b){var c=b.attributes,d;if("data-cke-widget-id"in c){if(c=a.instances[c["data-cke-widget-id"]])d=b.getFirst(g.isParserWidgetElement),f.push({wrapper:b,element:d,widget:c,editables:{}}),"1"!=d.attributes["data-cke-widget-keep-attr"]&&delete d.attributes["data-widget"]}else if("data-cke-widget-editable"in
+c)return f[f.length-1].editables[c["data-cke-widget-editable"]]=b,!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId){a=c[a.data.downcastingSessionId];for(var b,f,h,l,g,m;b=a.shift();){f=b.widget;h=b.element;l=f._.downcastFn&&f._.downcastFn.call(f,h);for(m in b.editables)g=b.editables[m],delete g.attributes.contenteditable,g.setHtml(f.editables[m].getData());l||(l=h);b.wrapper.replaceWith(l)}}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}
+function F(a){var b=a.editor,c,d;b.on("toHtml",function(b){var d=R(a),h;for(b.data.dataValue.forEach(d.iterator,CKEDITOR.NODE_ELEMENT,!0);h=d.toBeWrapped.pop();){var l=h[0],k=l.parent;k.type==CKEDITOR.NODE_ELEMENT&&k.attributes["data-cke-widget-wrapper"]&&k.replaceWith(l);a.wrapElement(h[0],h[1])}c=b.data.protectedWhitespaces?3==b.data.dataValue.children.length&&g.isParserWidgetWrapper(b.data.dataValue.children[1]):1==b.data.dataValue.children.length&&g.isParserWidgetWrapper(b.data.dataValue.children[0])},
+null,null,8);b.on("dataReady",function(){if(d)for(var c=b.editable().find(".cke_widget_wrapper"),f,h,l=0,k=c.count();l<k;++l)f=c.getItem(l),h=f.getFirst(g.isDomWidgetElement),h.type==CKEDITOR.NODE_ELEMENT&&h.data("widget")?(h.replace(f),a.wrapElement(h)):f.remove();d=0;a.destroyAll(!0);a.initOnAll()});b.on("loadSnapshot",function(b){/data-cke-widget/.test(b.data)&&(d=1);a.destroyAll(!0)},null,null,9);b.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(U,T);a.range&&(a=g.getNestedEditable(b.editable(),
+a.range.startContainer))&&(a=CKEDITOR.filter.instances[a.data("cke-filter")])&&b.setActiveFilter(a)});b.on("afterInsertHtml",function(d){d.data.intoRange?a.checkWidgets({initOnlyNew:!0}):(b.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:c}),b.fire("unlockSnapshot"))})}function z(a){var b=a.selected,c=[],d=b.slice(0),e=null;return{select:function(a){0>CKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},
+commit:function(){var f=a.focused!==e,h,g;a.editor.fire("lockSnapshot");for(f&&(h=a.focused)&&t(a,h);h=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,h),1),h.isInited()&&(g=h.editor.checkDirty(),h.setSelected(!1),!g&&h.editor.resetDirty());f&&e&&(g=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!g&&a.editor.resetDirty());for(;h=c.pop();)b.push(h),h.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function A(a,b,c){var d=0;b=B(b);var e=a.data.classes||{},f;if(b){for(e=
+CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f],d=1);d&&a.setData("classes",e)}}function C(a){a.cancel()}function y(a,b){var c=a.editor,d=c.document;if(!d.getById("cke_copybin")){var e=c.blockless||CKEDITOR.env.ie?"span":"div",f=d.createElement(e),h=d.createElement(e),e=CKEDITOR.env.ie&&9>CKEDITOR.env.version;h.setAttributes({id:"cke_copybin","data-cke-temp":"1"});f.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});f.setStyle("ltr"==c.config.contentsLangDirection?
+"left":"right","-5000px");var g=c.createRange();g.setStartBefore(a.wrapper);g.setEndAfter(a.wrapper);f.setHtml('\x3cspan data-cke-copybin-start\x3d"1"\x3e\x3c/span\x3e'+c.editable().getHtmlFromRange(g).getHtml()+'\x3cspan data-cke-copybin-end\x3d"1"\x3e\x3c/span\x3e');c.fire("saveSnapshot");c.fire("lockSnapshot");h.append(f);c.editable().append(h);var k=c.on("selectionChange",C,null,null,0),m=a.repository.on("checkSelection",C,null,null,0);if(e)var n=d.getDocumentElement().$,p=n.scrollTop;g=c.createRange();
+g.selectNodeContents(f);g.select();e&&(n.scrollTop=p);setTimeout(function(){b||a.focus();h.remove();k.removeListener();m.removeListener();c.fire("unlockSnapshot");b&&(a.repository.del(a),c.fire("saveSnapshot"))},100)}}function B(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function D(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function E(){CKEDITOR.env.gecko&&
+this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function V(a){var b=null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)a&&a[d]||this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function W(a){a.on("data",function(){if(a.wrapper){var b=this.getLabel?this.getLabel():this.editor.lang.widget.label.replace(/%1/,this.pathName||this.element.getName());a.wrapper.setAttribute("role","region");a.wrapper.setAttribute("aria-label",
+b)}},null,null,9999)}function X(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(g.isDomDragHandlerContainer),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png)"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1",
+src:CKEDITOR.tools.transparentImageData,width:15,title:b.lang.widget.move,height:15,role:"presentation"}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("dragover",function(a){a.data.preventDefault()});a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(!a.inline&&(d.on("mousedown",Y,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))d.on("dragstart",function(a){a.data.preventDefault(!0)});
+a.dragHandlerContainer=c}}function Y(a){function b(){var b;for(q.reset();b=g.pop();)b.removeListener();var c=k;b=a.sender;var d=this.repository.finder,e=this.repository.liner,f=this.editor,h=this.editor.editable();CKEDITOR.tools.isEmpty(e.visible)||(c=d.getRange(c[0]),this.focus(),f.fire("drop",{dropRange:c,target:c.startContainer}));h.removeClass("cke_widget_dragging");e.hideVisible();f.fire("dragend",{target:b})}var c=this.repository.finder,d=this.repository.locator,e=this.repository.liner,f=this.editor,
+h=f.editable(),g=[],k=[],m,n;this.repository._.draggedWidget=this;var p=c.greedySearch(),q=CKEDITOR.tools.eventsBuffer(50,function(){m=d.locate(p);k=d.sort(n,1);k.length&&(e.prepare(p,m),e.placeLine(k[0]),e.cleanup())});h.addClass("cke_widget_dragging");g.push(h.on("mousemove",function(a){n=a.data.$.clientY;q.input()}));f.fire("dragstart",{target:a.sender});g.push(f.document.once("mouseup",b,this));h.isInline()||g.push(CKEDITOR.document.once("mouseup",b,this))}function Z(a){var b,c,d=a.editables;
+a.editables={};if(a.editables)for(b in d)c=d[b],a.initEditable(b,"string"==typeof c?{selector:c}:c)}function aa(a){if(a.mask){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}}function ba(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function N(a,b){ca(a);ba(a);Z(a);aa(a);X(a);
+V(a);W(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart",function(b){var d=b.data.getTarget();g.getNestedEditable(a,d)||a.inline&&g.isDomDragHandler(d)||b.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){y(a,b==CKEDITOR.CTRL+88);return}if(b in da||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",
+function(b){a.edit()&&b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function ca(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function r(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}CKEDITOR.plugins.add("widget",{requires:"lineutils,clipboard,widgetselection",onLoad:function(){CKEDITOR.addCss(".cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover\x3e.cke_widget_element{outline:2px solid yellow;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid yellow}.cke_widget_wrapper.cke_widget_focused\x3e.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #ace}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:15px;height:0;display:none;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover\x3e.cke_widget_drag_handler_container{height:15px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}img.cke_widget_drag_handler{cursor:move;width:15px;height:15px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}")},
+beforeInit:function(a){a.widgets=new p(a)},afterInit:function(a){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});S(a)}});p.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){b=CKEDITOR.tools.prototypedCopy(b);b.name=a;b._=b._||{};this.editor.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));O(this.editor,b);P(this,b);return this.registered[a]=
+b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=z(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=g.isDomWidgetWrapper;b=a.next();)c.select(this.getByElement(b));c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===
+a){var b=a.editor,c=b.createRange(),d;(d=c.moveToClosestEditablePosition(a.wrapper,!0))||(d=c.moveToClosestEditablePosition(a.wrapper,!1));d&&b.getSelection().selectRanges([c])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&n(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a,b){var c,d,e=this.instances;if(b&&!a){d=b.find(".cke_widget_wrapper");for(var e=d.count(),f=0;f<e;++f)(c=this.getByElement(d.getItem(f),
+!0))&&this.destroy(c)}else for(d in e)c=e[d],this.destroy(c,a)},finalizeCreation:function(a){(a=a.getFirst())&&g.isDomWidgetWrapper(a)&&(this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus())},getByElement:function(){function a(a){return a.is(b)&&a.data("cke-widget-id")}var b={div:1,span:1};return function(b,d){if(!b)return null;var e=a(b);if(!d&&!e){var f=this.editor.editable();do b=b.getParent();while(b&&!b.equals(f)&&!(e=a(b)))}return this.instances[e]||null}}(),
+initOn:function(a,b,c){b?"string"==typeof b&&(b=this.registered[b]):b=this.registered[a.data("widget")];if(!b)return null;var d=this.wrapElement(a,b.name);return d?d.hasClass("cke_widget_new")?(a=new g(this,this._.nextId++,a,b,c),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){a=(a||this.editor.editable()).find(".cke_widget_new");for(var b=[],c,d=a.count();d--;)(c=this.initOn(a.getItem(d).getFirst(g.isDomWidgetElement)))&&b.push(c);return b},onWidget:function(a){var b=
+Array.prototype.slice.call(arguments);b.shift();for(var c in this.instances){var d=this.instances[c];d.name==a&&d.on.apply(d,b)}this.on("instanceCreated",function(d){d=d.data;d.name==a&&d.on.apply(d,b)})},parseElementClasses:function(a){if(!a)return null;a=CKEDITOR.tools.trim(a).split(/\s+/);for(var b,c={},d=0;b=a.pop();)-1==b.indexOf("cke_")&&(c[b]=d=1);return d?c:null},wrapElement:function(a,b){var c=null,d,e;if(a instanceof CKEDITOR.dom.element){b=b||a.data("widget");d=this.registered[b];if(!d)return null;
+if((c=a.getParent())&&c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-widget-wrapper"))return c;a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);a.data("widget",b);e=x(d,a.getName());c=new CKEDITOR.dom.element(e?"span":"div");c.setAttributes(v(e,b));c.data("cke-display-name",d.pathName?d.pathName:a.getName());a.getParent(!0)&&c.replace(a);a.appendTo(c)}else if(a instanceof CKEDITOR.htmlParser.element){b=b||a.attributes["data-widget"];d=this.registered[b];
+if(!d)return null;if((c=a.parent)&&c.type==CKEDITOR.NODE_ELEMENT&&c.attributes["data-cke-widget-wrapper"])return c;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]=b);e=x(d,a.name);c=new CKEDITOR.htmlParser.element(e?"span":"div",v(e,b));c.attributes["data-cke-display-name"]=d.pathName?d.pathName:a.name;d=a.parent;var f;d&&(f=a.getIndex(),a.remove());c.add(a);d&&w(d,f,c)}return c},_tests_createEditableFilter:u};
+CKEDITOR.event.implementOn(p.prototype);g.prototype={addClass:function(a){this.element.addClass(a);this.wrapper.addClass(g.WRAPPER_CLASS_PREFIX+a)},applyStyle:function(a){A(this,a,1)},checkStyleActive:function(a){a=B(a);var b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1;return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),
+this.element.removeAttributes(["data-cke-widget-data","data-cke-widget-keep-attr"]),this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a];c.removeListener("focus",E);c.removeListener("blur",D);this.editor.focusManager.remove(c);b||(this.repository.destroyAll(!1,c),c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable",
+"data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a={dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var d,e;!1!==b.fire("dialog",a)&&(d=a.on("show",function(){a.setupContent(b)}),e=a.on("ok",function(){var d,e=b.on("data",function(a){d=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);e.removeListener();d&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){d.removeListener();
+e.removeListener()}))});return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var c=this._findOneNotNested(b.selector);return c&&c.is(CKEDITOR.dtd.$editable)?(c=new q(this.editor,c,{filter:u.call(this.repository,this.name,a,b)}),this.editables[a]=c,c.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":c.enterMode}),c.filter&&
+c.data("cke-filter",c.filter.id),c.addClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),b.pathName&&c.data("cke-display-name",b.pathName),this.editor.focusManager.add(c),c.on("focus",E,this),CKEDITOR.env.ie&&c.on("blur",D,this),c._.initialSetData=!0,c.setData(c.getHtml()),!0):!1},_findOneNotNested:function(a){a=this.wrapper.find(a);for(var b,c,d=0;d<a.count();d++)if(b=a.getItem(d),c=b.getAscendant(g.isDomWidgetWrapper),this.wrapper.equals(c))return b;return null},isInited:function(){return!(!this.wrapper||
+!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a);this.wrapper.removeClass(g.WRAPPER_CLASS_PREFIX+a)},removeStyle:function(a){A(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=
+e[a])}d&&this.dataReady&&(r(this),this.fire("data",c));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");this.fire(a?"focus":"blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,c=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-15};c&&b.x==c.x&&b.y==c.y||(c=a.checkDirty(),
+a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+"px",left:b.x+"px",display:"block"}),a.fire("unlockSnapshot"),!c&&a.resetDirty(),this._.dragHandlerOffset=b)}};CKEDITOR.event.implementOn(g.prototype);g.getNestedEditable=function(a,b){return!b||b.equals(a)?null:g.isDomNestedEditable(b)?b:g.getNestedEditable(a,b.getParent())};g.isDomDragHandler=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-drag-handler")};g.isDomDragHandlerContainer=function(a){return a.type==
+CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_widget_drag_handler_container")};g.isDomNestedEditable=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-editable")};g.isDomWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-widget")};g.isDomWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-wrapper")};g.isParserWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-widget"]};
+g.isParserWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-cke-widget-wrapper"]};g.WRAPPER_CLASS_PREFIX="cke_widget_wrapper_";q.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),{setData:function(a){this._.initialSetData||this.editor.widgets.destroyAll(!1,this);this._.initialSetData=!1;a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},
+getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(),filter:this.filter,enterMode:this.enterMode})}});var U=/^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?<span [^>]*data-cke-copybin-start="1"[^>]*>.?<\/span>([\s\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?<\/span>(?:<\/(?:div|span)>)?(?:<\/(?:div|span)>)?$/i,da={37:1,38:1,39:1,40:1,8:1,46:1};(function(){function a(){}
+function b(a,b,c){return c&&this.checkElement(a)?(a=c.widgets.getByElement(a,!0))&&a.checkStyleActive(this):!1}var c={};CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget;if(this.group="string"==typeof a.group?[a.group]:a.group){a=this.widget;var b;c[a]||(c[a]={});for(var f=0,h=this.group.length;f<h;f++)b=this.group[f],c[a][b]||(c[a][b]=[]),c[a][b].push(this)}},apply:function(a){var b;a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&(b=a.widgets.focused,
+this.group&&this.removeStylesFromSameGroup(a),b.applyStyle(this))},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},removeStylesFromSameGroup:function(a){var b,f,h=!1;if(!(a instanceof CKEDITOR.editor))return!1;f=a.elementPath();if(this.checkApplicable(f,a))for(var g=0,k=this.group.length;g<k;g++){b=c[this.widget][this.group[g]];for(var m=0;m<b.length;m++)b[m]!==this&&b[m].checkActive(f,a)&&(a.widgets.focused.removeStyle(b[m]),
+h=!0)}return h},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return b instanceof CKEDITOR.editor?this.checkElement(a.lastElement):!1},checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return g.isDomWidgetWrapper(a)?(a=a.getFirst(g.isDomWidgetElement))&&a.data("widget")==this.widget:!1},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;a=a.widgets.registered[this.widget];
+var b,c={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;c[a.styleableElements]={classes:b,propertiesOnly:!0};return c}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this):null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})})();CKEDITOR.plugins.widget=g;g.repository=p;g.nestedEditable=q})();(function(){CKEDITOR.plugins.add("oembed",{icons:"oembed",hidpi:!0,requires:"widget,dialog",version:1.17,init:function(e){function l(a,d,c,f,g,j,h,b){jQuery("body").oembed(a,{onEmbed:function(d){var g=jQuery.fn.oembed.getOEmbedProvider(a);b.element.data("resizeType",j);if("responsive"==j||"custom"==j)b.element.data("maxWidth",c),b.element.data("maxHeight",f);b.element.data("align",h);"center"==h?(b.inline||b.element.setStyle("text-align","center"),b.element.removeStyle("float")):(b.inline||b.element.removeStyle("text-align"),
+"none"==h?b.element.removeStyle("float"):b.element.setStyle("float",h));"string"===typeof d.code?(b.element.$.firstChild&&b.element.$.removeChild(b.element.$.firstChild),b.element.appendHtml(d.code),b.element.data("oembed",a),b.element.data("oembed_provider",g.name),b.element.addClass("oembed-provider-"+g.name)):"string"===typeof d.code[0].outerHTML?(b.element.$.firstChild&&b.element.$.removeChild(b.element.$.firstChild),b.element.appendHtml(d.code[0].outerHTML),b.element.data("oembed",a),b.element.data("oembed_provider",
+g.name),b.element.addClass("oembed-provider-"+g.name)):alert(e.lang.oembed.noEmbedCode)},onError:function(a){0<a.indexOf("vimeo.com")?alert(e.lang.oembed.noVimeo):alert(e.lang.oembed.Error)},maxHeight:f,maxWidth:c,useResponsiveResize:g,embedMethod:"editor"})}(function(){"undefined"===typeof jQuery?CKEDITOR.scriptLoader.load("//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js",function(){jQuery.noConflict();"undefined"===typeof jQuery.fn.oembed&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath("oembed")+
+"libs/jquery.oembed.min.js"))}):"undefined"===typeof jQuery.fn.oembed&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath("oembed")+"libs/jquery.oembed.min.js"))})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{oEmbed:function(a,d,c,f){function g(){if(null==d||"undefined"==d)d=null;if(null==c||"undefined"==c)c=null;if(null==f||"undefined"==f)f=!1;l(a,e,!1,d,c,f)}if(1>a.length||0>a.indexOf("http"))return alert(e.lang.oembed.invalidUrl),!1;"undefined"===typeof jQuery.fn.oembed?
+CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath("oembed")+"libs/jquery.oembed.min.js"),function(){g()}):g();return!0}});e.widgets.add("oembed",{draggable:!1,mask:!0,dialog:"oembed",allowedContent:{div:{styles:"text-align,float",attributes:"*",classes:null!=e.config.oembed_WrapperClass?e.config.oembed_WrapperClass:"embeddedContent"},"div(embeddedContent,oembed-provider-*) iframe":{attributes:"*"},"div(embeddedContent,oembed-provider-*) blockquote":{attributes:"*"},"div(embeddedContent,oembed-provider-*) script":{attributes:"*"}},
+template:'<div class="'+(null!=e.config.oembed_WrapperClass?e.config.oembed_WrapperClass:"embeddedContent")+'"></div>',upcast:function(a){return"div"==a.name&&a.hasClass(null!=e.config.oembed_WrapperClass?e.config.oembed_WrapperClass:"embeddedContent")},init:function(){var a={oembed:this.element.data("oembed")||"",resizeType:this.element.data("resizeType")||"noresize",maxWidth:this.element.data("maxWidth")||560,maxHeight:this.element.data("maxHeight")||315,align:this.element.data("align")||"none",
+oembed_provider:this.element.data("oembed_provider")||""};this.setData(a);this.element.addClass("oembed-provider-"+a.oembed_provider);this.on("dialog",function(a){a.data.widget=this},this)}});e.ui.addButton("oembed",{label:e.lang.oembed.button,command:"oembed",toolbar:"insert,10",icon:this.path+"icons/"+(CKEDITOR.env.hidpi?"hidpi/":"")+"oembed.png"});var k=function(){var a=this.getDialog(),d=this.getValue(),c=a.getContentElement("general","maxSizeBox").getElement(),a=a.getContentElement("general",
+"sizeBox").getElement();"noresize"==d?(c.hide(),a.hide()):"custom"==d?(c.hide(),a.show()):(c.show(),a.hide())};String.prototype.beginsWith=function(a){return 0===this.indexOf(a)};CKEDITOR.dialog.add("oembed",function(a){return{title:a.lang.oembed.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?568:550,minHeight:155,onShow:function(){var a={oembed:this.widget.element.data("oembed")||"",resizeType:this.widget.element.data("resizeType")||"noresize",maxWidth:this.widget.element.data("maxWidth"),maxHeight:this.widget.element.data("maxHeight"),
+align:this.widget.element.data("align")||"none"};this.widget.setData(a);this.getContentElement("general","resizeType").setValue(a.resizeType);this.getContentElement("general","align").setValue(a.align);var a=this.getContentElement("general","resizeType").getValue(),c=this.getContentElement("general","maxSizeBox").getElement(),f=this.getContentElement("general","sizeBox").getElement();"noresize"==a?(c.hide(),f.hide()):"custom"==a?(c.hide(),f.show()):(c.show(),f.hide())},onOk:function(){},contents:[{label:a.lang.common.generalTab,
+id:"general",elements:[{type:"html",id:"oembedHeader",html:'<div style="white-space:normal;width:500px;padding-bottom:10px">'+a.lang.oembed.pasteUrl+"</div>"},{type:"text",id:"embedCode",focus:function(){this.getElement().focus()},label:a.lang.oembed.url,title:a.lang.oembed.pasteUrl,setup:function(a){a.data.oembed&&this.setValue(a.data.oembed)},commit:function(d){var c=CKEDITOR.dialog.getCurrent(),f=c.getValueOf("general","embedCode").replace(/\s/g,""),g=c.getContentElement("general","resizeType").getValue(),
+e=c.getContentElement("general","align").getValue(),h=null,b=null,i=!1,k=c.getParentEditor();if(1>f.length||0>f.indexOf("http"))return alert(a.lang.oembed.invalidUrl),!1;"noresize"==g?(i=!1,b=h=null):"responsive"==g?(h=c.getContentElement("general","maxWidth").getInputElement().getValue(),b=c.getContentElement("general","maxHeight").getInputElement().getValue(),i=!0):"custom"==g&&(h=c.getContentElement("general","width").getInputElement().getValue(),b=c.getContentElement("general","height").getInputElement().getValue(),
+i=!1);l(f,k,h,b,i,g,e,d);d.setData("oembed",f);d.setData("resizeType",g);d.setData("align",e);d.setData("maxWidth",h);d.setData("maxHeight",b)}},{type:"hbox",widths:["50%","50%"],children:[{id:"resizeType",type:"select",label:a.lang.oembed.resizeType,"default":"noresize",setup:function(a){a.data.resizeType&&this.setValue(a.data.resizeType)},items:[[a.lang.oembed.noresize,"noresize"],[a.lang.oembed.responsive,"responsive"],[a.lang.oembed.custom,"custom"]],onChange:k},{type:"hbox",id:"maxSizeBox",widths:["120px",
+"120px"],style:"float:left;position:absolute;left:58%;width:200px",children:[{type:"text",width:"100px",id:"maxWidth","default":null!=a.config.oembed_maxWidth?a.config.oembed_maxWidth:"560",label:a.lang.oembed.maxWidth,title:a.lang.oembed.maxWidthTitle,setup:function(a){a.data.maxWidth&&this.setValue(a.data.maxWidth)}},{type:"text",id:"maxHeight",width:"120px","default":null!=a.config.oembed_maxHeight?a.config.oembed_maxHeight:"315",label:a.lang.oembed.maxHeight,title:a.lang.oembed.maxHeightTitle,
+setup:function(a){a.data.maxHeight&&this.setValue(a.data.maxHeight)}}]},{type:"hbox",id:"sizeBox",widths:["120px","120px"],style:"float:left;position:absolute;left:58%;width:200px",children:[{type:"text",id:"width",width:"100px","default":null!=a.config.oembed_maxWidth?a.config.oembed_maxWidth:"560",label:a.lang.oembed.width,title:a.lang.oembed.widthTitle,setup:function(a){a.data.maxWidth&&this.setValue(a.data.maxWidth)}},{type:"text",id:"height",width:"120px","default":null!=a.config.oembed_maxHeight?
+a.config.oembed_maxHeight:"315",label:a.lang.oembed.height,title:a.lang.oembed.heightTitle,setup:function(a){a.data.maxHeight&&this.setValue(a.data.maxHeight)}}]}]},{type:"hbox",id:"alignment",children:[{id:"align",type:"radio",items:[[a.lang.oembed.none,"none"],[a.lang.common.alignLeft,"left"],[a.lang.common.alignCenter,"center"],[a.lang.common.alignRight,"right"]],label:a.lang.common.align,setup:function(a){this.setValue(a.data.align)}}]}]}]}})}})})();(function(){CKEDITOR.plugins.add("Audio",{lang:["en","es"],getPlaceholderCss:function(){return"img.cke_audio{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;background-color:gray;border: 1px solid #a9a9a9;width: 80px;height: 80px;}"},onLoad:function(){CKEDITOR.addCss&&CKEDITOR.addCss(this.getPlaceholderCss())},init:function(b){var c=b.lang.audio;"undefined"==typeof b.element.data?alert('The "audio" plugin requires CKEditor 3.5 or newer'):
+(CKEDITOR.dialog.add("audio",this.path+"dialogs/audio.js"),b.addCommand("Audio",new CKEDITOR.dialogCommand("audio")),b.ui.addButton("Audio",{label:c.toolbar,command:"Audio",icon:this.path+"images/icon.png"}),b.addCss&&b.addCss(this.getPlaceholderCss()),b.addMenuItems&&b.addMenuItems({audio:{label:c.properties,command:"Audio",group:"flash"}}),b.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"audio"==b.data("cke-real-element-type")&&(a.data.dialog="audio")}),b.contextMenu&&b.contextMenu.addListener(function(a){if(a&&
+a.is("img")&&!a.isReadOnly()&&"audio"==a.data("cke-real-element-type"))return{audio:CKEDITOR.TRISTATE_OFF}}),CKEDITOR.dtd.$empty["cke:source"]=1,CKEDITOR.dtd.$empty.source=1,b.lang.fakeobjects.audio=c.fakeObject)},afterInit:function(b){var c=b.dataProcessor;(c&&c.dataFilter).addRules({elements:{$:function(a){if("audio"==a.name){a.name="cke:audio";for(var d=0;d<a.children.length;d++)"source"==a.children[d].name&&(a.children[d].name="cke:source");var d=b.createFakeParserElement(a,"cke_audio","audio",
+!1),c=d.attributes.style||"",e=a.attributes.width,f=a.attributes.height,a=a.attributes.poster;"undefined"!=typeof e&&(c=d.attributes.style=c+"width:"+CKEDITOR.tools.cssLength(e)+";");"undefined"!=typeof f&&(c=d.attributes.style=c+"height:"+CKEDITOR.tools.cssLength(f)+";");a&&(d.attributes.style=c+"background-image:url("+a+");");return d}}}})}});var e={toolbar:"Audio",dialogTitle:"Audio properties",fakeObject:"Audio",properties:"Edit audio",widthRequired:"Width field cannot be empty",heightRequired:"Height field cannot be empty",
+poster:"Poster image",sourceaudio:"Source audio",sourceType:"Audio type",linkTemplate:'<a href="%src%">%type%</a> ',fallbackTemplate:"Your browser doesn't support audio.<br>Please download the file: %links%"},f={toolbar:"Audio",dialogTitle:"Propiedades de audio",fakeObject:"Audio",properties:"Editar el audio",widthRequired:"La anchura no se puede dejar en blanco",heightRequired:"La altura no se puede dejar en blanco",poster:"Imagen de presentación",sourceaudio:"Archivo de audio",sourceType:"Tipo",
+linkTemplate:'<a href="%src%">%type%</a> ',fallbackTemplate:"Su navegador no soporta audio.<br>Por favor, descargue el fichero: %links%"};CKEDITOR.skins&&(e={audio:e},f={audio:f});CKEDITOR.plugins.setLang("audio","en",e);CKEDITOR.plugins.setLang("audio","es",f)})();CKEDITOR.plugins.add("html5video",{requires:"widget",lang:"de,en,eu,es,ru,uk,fr",icons:"html5video",init:function(b){b.widgets.add("html5video",{button:b.lang.html5video.button,template:'\x3cdiv class\x3d"ckeditor-html5-video"\x3e\x3c/div\x3e',allowedContent:"div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,controls,autoplay,width, height]{max-width,height};",requiredContent:"div(ckeditor-html5-video); video[src,controls];",upcast:function(a){return"div"===
+a.name&&a.hasClass("ckeditor-html5-video")},dialog:"html5video",init:function(){var a="",b="",e=this.element.getStyle("text-align"),c="",d="";this.element.getChild(0)&&(a=this.element.getChild(0).getAttribute("src"),c=this.element.getChild(0).getAttribute("width"),d=this.element.getChild(0).getAttribute("height"),b=this.element.getChild(0).getAttribute("autoplay"),responsive=this.element.getAttribute("data-responsive"));a&&(this.setData("src",a),e?this.setData("align",e):this.setData("align","none"),
+c&&this.setData("width",c),d&&this.setData("height",d),b&&this.setData("autoplay","yes"),responsive&&this.setData("responsive",responsive))},data:function(){if(this.data.src){if(!this.element.getChild(0)){var a=new CKEDITOR.dom.element("video");a.setAttribute("controls","controls");this.element.append(a)}this.element.getChild(0).setAttribute("src",this.data.src);this.data.width&&this.element.getChild(0).setAttribute("width",this.data.width);this.data.height&&this.element.getChild(0).setAttribute("height",
+this.data.height);this.data.responsive?(this.element.setAttribute("data-responsive",this.data.responsive),this.element.getChild(0).setStyle("max-width","100%"),this.element.getChild(0).setStyle("height","auto")):(this.element.getChild(0).removeStyle("max-width"),this.element.getChild(0).removeStyle("height"))}this.element.removeStyle("float");this.element.removeStyle("margin-left");this.element.removeStyle("margin-right");"none"===this.data.align?this.element.removeStyle("text-align"):this.element.setStyle("text-align",
+this.data.align);"left"===this.data.align?(this.element.setStyle("float",this.data.align),this.element.setStyle("margin-right","10px")):"right"===this.data.align&&(this.element.setStyle("float",this.data.align),this.element.setStyle("margin-left","10px"));this.element.getChild(0)&&("yes"===this.data.autoplay?this.element.getChild(0).setAttribute("autoplay","autoplay"):this.element.getChild(0).removeAttribute("autoplay"))}});b.contextMenu&&(b.addMenuGroup("html5videoGroup"),b.addMenuItem("html5videoPropertiesItem",
+{label:b.lang.html5video.videoProperties,icon:"html5video",command:"html5video",group:"html5videoGroup"}),b.contextMenu.addListener(function(a){if(a&&a.getChild(0)&&a.getChild(0).hasClass&&a.getChild(0).hasClass("ckeditor-html5-video"))return{html5videoPropertiesItem:CKEDITOR.TRISTATE_OFF}}));CKEDITOR.dialog.add("html5video",this.path+"dialogs/html5video.js")}});CKEDITOR.config.plugins='dialogui,dialog,a11yhelp,dialogadvtab,basicstyles,panel,floatpanel,menu,contextmenu,resize,button,toolbar,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,richcombo,format,horizontalrule,htmlwriter,fakeobjects,iframe,wysiwygarea,image,indent,indentblock,indentlist,justify,link,list,liststyle,magicline,maximize,removeformat,showborders,sourcearea,tab,lineutils,notification,clipboard,widgetselection,widget,oembed,Audio,html5video';CKEDITOR.config.skin='moono';(function() {var setIcons = function(icons, strip) {var path = CKEDITOR.getUrl( 'plugins/' + strip );icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ], bgsize : icons[ ++i ] };};if (CKEDITOR.env.hidpi) setIcons('bold,0,,italic,24,,strike,48,,subscript,72,,superscript,96,,underline,120,,horizontalrule,144,,iframe,168,,image,192,,indent-rtl,216,,indent,240,,outdent-rtl,264,,outdent,288,,justifyblock,312,,justifycenter,336,,justifyleft,360,,justifyright,384,,anchor-rtl,408,,anchor,432,,link,456,,unlink,480,,bulletedlist-rtl,504,,bulletedlist,528,,numberedlist-rtl,552,,numberedlist,576,,maximize,600,,removeformat,624,,source-rtl,648,,source,672,,copy-rtl,696,,copy,720,,cut-rtl,744,,cut,768,,paste-rtl,792,,paste,816,,oembed,840,,html5video,1728,auto','icons_hidpi.png');else setIcons('bold,0,auto,italic,24,auto,strike,48,auto,subscript,72,auto,superscript,96,auto,underline,120,auto,horizontalrule,144,auto,iframe,168,auto,image,192,auto,indent-rtl,216,auto,indent,240,auto,outdent-rtl,264,auto,outdent,288,auto,justifyblock,312,auto,justifycenter,336,auto,justifyleft,360,auto,justifyright,384,auto,anchor-rtl,408,auto,anchor,432,auto,link,456,auto,unlink,480,auto,bulletedlist-rtl,504,auto,bulletedlist,528,auto,numberedlist-rtl,552,auto,numberedlist,576,auto,maximize,600,auto,removeformat,624,auto,source-rtl,648,auto,source,672,auto,copy-rtl,696,auto,copy,720,auto,cut-rtl,744,auto,cut,768,auto,paste-rtl,792,auto,paste,816,auto,oembed,840,auto,html5video,864,auto','icons.png');})();CKEDITOR.lang.languages={"en":1,"fr":1};}());
\ No newline at end of file
/**
- * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
border: none;\r
outline: 1px solid #0782C1;\r
}\r
+\r
+/* Widget Styles */\r
+.code-featured\r
+{\r
+ border: 5px solid red;\r
+}\r
+\r
+.math-featured\r
+{\r
+ padding: 20px;\r
+ box-shadow: 0 0 2px rgba(200, 0, 0, 1);\r
+ background-color: rgba(255, 0, 0, 0.05);\r
+ margin: 10px;\r
+}\r
+\r
+.image-clean\r
+{\r
+ border: 0;\r
+ background: none;\r
+ padding: 0;\r
+}\r
+\r
+.image-clean > figcaption\r
+{\r
+ font-size: .9em;\r
+ text-align: right;\r
+}\r
+\r
+.image-grayscale\r
+{\r
+ background-color: white;\r
+ color: #666;\r
+}\r
+\r
+.image-grayscale img, img.image-grayscale\r
+{\r
+ filter: grayscale(100%);\r
+}\r
+\r
+.embed-240p\r
+{\r
+ max-width: 426px;\r
+ max-height: 240px;\r
+ margin:0 auto;\r
+}\r
+\r
+.embed-360p\r
+{\r
+ max-width: 640px;\r
+ max-height: 360px;\r
+ margin:0 auto;\r
+}\r
+\r
+.embed-480p\r
+{\r
+ max-width: 854px;\r
+ max-height: 480px;\r
+ margin:0 auto;\r
+}\r
+\r
+.embed-720p\r
+{\r
+ max-width: 1280px;\r
+ max-height: 720px;\r
+ margin:0 auto;\r
+}\r
+\r
+.embed-1080p\r
+{\r
+ max-width: 1920px;\r
+ max-height: 1080px;\r
+ margin:0 auto;\r
+}\r
-/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.md or http://ckeditor.com/license\r
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-CKEDITOR.lang['en']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"button":{"selectedLabel":"%1 (Selected)"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"}};
\ No newline at end of file
+CKEDITOR.lang['en']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"contextmenu":{"options":"Context Menu Options"},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"notification":{"closed":"Notification closed."},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"widget":{"move":"Click and drag to move","label":"%1 widget"},"oembed":{"title":"Embed Media Content (Photo, Video, Audio or Rich Content)","button":"Embed Media from External Sites","pasteUrl":"Paste a URL (shorted URLs are also supported) from one of the supported sites (e.g. YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.).","invalidUrl":"Please provide a valid URL.","noEmbedCode":"No embed code found, or site is not supported.","url":"URL:","width":"Width:","height":"Height:","widthTitle":"Width for the embeded content","heightTitle":"Height for the embeded content","maxWidth":"Max. Width:","maxHeight":"Max. Height:","maxWidthTitle":"Maximum Width for the embeded Content","maxHeightTitle":"Maximum Height for the embeded Content","none":"None","resizeType":"Resize Type (videos only):","noresize":"No Resize (use default)","responsive":"Responsive Resize","custom":"Specific Resize","noVimeo":"The owner of this video has set domain restrictions and you will not be able to embed it on your website.","Error":"Media Content could not been retrieved, please try a different URL."},"html5video":{"button":"Insert HTML5 video","title":"HTML5 video","infoLabel":"Video info","allowed":"Allowed file extensions: MP4, WebM, Ogv","urlMissing":"Video source URL is missing.","videoProperties":"Video properties","upload":"Upload","btnUpload":"Send it to the server","advanced":"Advanced","autoplay":"Autoplay?","yes":"Yes","no":"No","responsive":"Responsive width"}};
\ No newline at end of file
-/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.md or http://ckeditor.com/license\r
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-CKEDITOR.lang['fr']={"editor":"Éditeur de Texte Enrichi","editorPanel":"Tableau de bord de l'éditeur de texte enrichi","common":{"editorHelp":"Appuyez sur ALT-0 pour l'aide","browseServer":"Explorer le serveur","url":"URL","protocol":"Protocole","upload":"Télécharger","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton Radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton image","notSet":"<non défini>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue (longdesc => malvoyant)","cssClass":"Classe CSS","advisoryTitle":"Description (title)","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Déplacer pour modifier la taille","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?","options":"Options","target":"Cible (Target)","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à Droite (LTR)","langDirRTL":"Droite à Gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centré","alignJustify":"Justifier","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"Aucun","invalidValue":"Valeur incorrecte.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style inline doit être composée d'un ou plusieurs couples de valeur au format \"nom : valeur\", separés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, Indisponible</span>"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"contextmenu":{"options":"Options du menu contextuel"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 éléments"},"button":{"selectedLabel":"%1 (Sélectionné)"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Formaté"},"horizontalrule":{"toolbar":"Ligne horizontale"},"fakeobjects":{"anchor":"Ancre","flash":"Animation Flash","hiddenfield":"Champ caché","iframe":"IFrame","unknown":"Objet inconnu"},"iframe":{"border":"Afficher une bordure de la IFrame","noUrl":"Veuillez entrer l'adresse du lien de la IFrame","scrolling":"Permettre à la barre de défilement","title":"Propriétés de la IFrame","toolbar":"IFrame"},"image":{"alt":"Texte de remplacement","border":"Bordure","btnUpload":"Envoyer sur le serveur","button2Img":"Voulez-vous transformer le bouton image sélectionné en simple image?","hSpace":"Espacement horizontal","img2Button":"Voulez-vous transformer l'image en bouton image?","infoTab":"Informations sur l'image","linkTab":"Lien","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image","resetSize":"Taille d'origine","title":"Propriétés de l'image","titleButton":"Propriétés du bouton image","upload":"Envoyer","urlMissing":"L'adresse source de l'image est manquante.","vSpace":"Espacement vertical","validateBorder":"Bordure doit être un entier.","validateHSpace":"HSpace doit être un entier.","validateVSpace":"VSpace doit être un entier."},"indent":{"indent":"Augmenter le retrait (tabulation)","outdent":"Diminuer le retrait (tabulation)"},"justify":{"block":"Justifier","center":"Centrer","left":"Aligner à gauche","right":"Aligner à droite"},"link":{"acccessKey":"Touche d'accessibilité","advanced":"Avancé","advisoryContentType":"Type de contenu (ex: text/html)","advisoryTitle":"Description (title)","anchor":{"toolbar":"Ancre","menu":"Editer l'ancre","title":"Propriétés de l'ancre","name":"Nom de l'ancre","errorName":"Veuillez entrer le nom de l'ancre.","remove":"Supprimer l'ancre"},"anchorId":"Par ID d'élément","anchorName":"Par nom d'ancre","charset":"Charset de la cible","cssClasses":"Classe CSS","emailAddress":"Adresse E-Mail","emailBody":"Corps du message","emailSubject":"Sujet du message","id":"Id","info":"Infos sur le lien","langCode":"Code de langue","langDir":"Sens d'écriture","langDirLTR":"Gauche à droite","langDirRTL":"Droite à gauche","menu":"Editer le lien","name":"Nom","noAnchors":"(Aucune ancre disponible dans ce document)","noEmail":"Veuillez entrer l'adresse e-mail","noUrl":"Veuillez entrer l'adresse du lien","other":"<autre>","popupDependent":"Dépendante (Netscape)","popupFeatures":"Options de la fenêtre popup","popupFullScreen":"Plein écran (IE)","popupLeft":"Position gauche","popupLocationBar":"Barre d'adresse","popupMenuBar":"Barre de menu","popupResizable":"Redimensionnable","popupScrollBars":"Barres de défilement","popupStatusBar":"Barre de status","popupToolbar":"Barre d'outils","popupTop":"Position haute","rel":"Relation","selectAnchor":"Sélectionner l'ancre","styles":"Style","tabIndex":"Index de tabulation","target":"Cible","targetFrame":"<cadre>","targetFrameName":"Nom du Cadre destination","targetPopup":"<fenêtre popup>","targetPopupName":"Nom de la fenêtre popup","title":"Lien","toAnchor":"Ancre","toEmail":"E-mail","toUrl":"URL","toolbar":"Lien","type":"Type de lien","unlink":"Supprimer le lien","upload":"Envoyer"},"list":{"bulletedlist":"Insérer/Supprimer la liste à puces","numberedlist":"Insérer/Supprimer la liste numérotée"},"liststyle":{"armenian":"Numération arménienne","bulletedTitle":"Propriétés de la liste à puces","circle":"Cercle","decimal":"Décimal (1, 2, 3, etc.)","decimalLeadingZero":"Décimal précédé par un 0 (01, 02, 03, etc.)","disc":"Disque","georgian":"Numération géorgienne (an, ban, gan, etc.)","lowerAlpha":"Alphabétique minuscules (a, b, c, d, e, etc.)","lowerGreek":"Grec minuscule (alpha, beta, gamma, etc.)","lowerRoman":"Nombres romains minuscules (i, ii, iii, iv, v, etc.)","none":"Aucun","notset":"<Non défini>","numberedTitle":"Propriétés de la liste numérotée","square":"Carré","start":"Début","type":"Type","upperAlpha":"Alphabétique majuscules (A, B, C, D, E, etc.)","upperRoman":"Nombres romains majuscules (I, II, III, IV, V, etc.)","validateStartNumber":"Le premier élément de la liste doit être un nombre entier."},"magicline":{"title":"Insérez un paragraphe ici"},"maximize":{"maximize":"Agrandir","minimize":"Minimiser"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"sourcearea":{"toolbar":"Source"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Editer","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barre d'outils de l'éditeur"}};
\ No newline at end of file
+CKEDITOR.lang['fr']={"editor":"Éditeur de texte enrichi","editorPanel":"Tableau de bord de l'éditeur de texte enrichi","common":{"editorHelp":"Utilisez le raccourci Alt-0 pour obtenir de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Télécharger","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ invisible","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton avec image","notSet":"<indéfini>","id":"ID","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue","cssClass":"Classes de style","advisoryTitle":"Infobulle","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à droite (LTR)","langDirRTL":"Droite à gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centrer","alignJustify":"Justifier","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"Aucun","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style en ligne doit être composée d'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>","keyboard":{"8":"Retour arrière","13":"Entrée","16":"Majuscule","17":"Ctrl","18":"Alt","32":"Espace","35":"Fin","36":"Origine","46":"Supprimer","224":"Commande"},"keyboardShortcut":"Raccourci clavier"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"contextmenu":{"options":"Options du menu contextuel"},"button":{"selectedLabel":"%1 (Sélectionné)"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barres d'outils de l'éditeur"},"elementspath":{"eleLabel":"Chemin des éléments","eleTitle":"Élément %1"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Division","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Préformaté"},"horizontalrule":{"toolbar":"Ligne horizontale"},"fakeobjects":{"anchor":"Ancre","flash":"Animation Flash","hiddenfield":"Champ invisible","iframe":"Cadre de contenu incorporé","unknown":"Objet inconnu"},"iframe":{"border":"Afficher la bordure du cadre","noUrl":"Veuillez entrer l'URL du contenu du cadre","scrolling":"Activer les barres de défilement","title":"Propriétés du cadre de contenu incorporé","toolbar":"Cadre de contenu incorporé"},"image":{"alt":"Texte alternatif","border":"Bordure","btnUpload":"Envoyer sur le serveur","button2Img":"Voulez-vous transformer le bouton avec image sélectionné en simple image ?","hSpace":"Espacement horizontal","img2Button":"Voulez-vous transformer l'image sélectionnée en bouton avec image ?","infoTab":"Informations sur l'image","linkTab":"Lien","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image","resetSize":"Réinitialiser la taille","title":"Propriétés de l'image","titleButton":"Propriétés du bouton avec image","upload":"Téléverser","urlMissing":"L'URL source de l'image est manquante.","vSpace":"Espacement vertical","validateBorder":"La bordure doit être un nombre entier.","validateHSpace":"L'espacement horizontal doit être un nombre entier.","validateVSpace":"L'espacement vertical doit être un nombre entier."},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"justify":{"block":"Justifier","center":"Centrer","left":"Aligner à gauche","right":"Aligner à droite"},"link":{"acccessKey":"Touche d'accessibilité","advanced":"Avancé","advisoryContentType":"Type de contenu (indicatif)","advisoryTitle":"Infobulle","anchor":{"toolbar":"Ancre","menu":"Modifier l'ancre","title":"Propriétés de l'ancre","name":"Nom de l'ancre","errorName":"Veuillez entrer le nom de l'ancre.","remove":"Supprimer l'ancre"},"anchorId":"Par ID d'élément","anchorName":"Par nom d'ancre","charset":"Encodage de la ressource liée","cssClasses":"Classes de style","download":"Forcer le téléchargement","displayText":"Afficher le texte","emailAddress":"Adresse électronique","emailBody":"Corps du message","emailSubject":"Sujet du message","id":"ID","info":"Informations sur le lien","langCode":"Code de langue","langDir":"Sens d'écriture","langDirLTR":"Gauche à droite","langDirRTL":"Droite à gauche (RTL)","menu":"Modifier le lien","name":"Nom","noAnchors":"(Aucune ancre disponible dans ce document)","noEmail":"Veuillez entrer l'adresse électronique","noUrl":"Veuillez entrer l'URL du lien","other":"<autre>","popupDependent":"Dépendante (Netscape)","popupFeatures":"Caractéristiques de la fenêtre surgissante","popupFullScreen":"Plein écran (IE)","popupLeft":"À gauche","popupLocationBar":"Barre d'adresse","popupMenuBar":"Barre de menu","popupResizable":"Redimensionnable","popupScrollBars":"Barres de défilement","popupStatusBar":"Barre d'état","popupToolbar":"Barre d'outils","popupTop":"En haut","rel":"Relation","selectAnchor":"Sélectionner une ancre","styles":"Style","tabIndex":"Indice de tabulation","target":"Cible","targetFrame":"<cadre>","targetFrameName":"Nom du cadre affecté","targetPopup":"<fenêtre surgissante>","targetPopupName":"Nom de la fenêtre surgissante","title":"Lien","toAnchor":"Ancre","toEmail":"Courriel","toUrl":"URL","toolbar":"Lien","type":"Type de lien","unlink":"Supprimer le lien","upload":"Téléverser"},"list":{"bulletedlist":"Insérer/Supprimer une liste à puces","numberedlist":"Insérer/Supprimer une liste numérotée"},"liststyle":{"armenian":"Numération arménienne","bulletedTitle":"Propriétés de la liste à puces","circle":"Cercle","decimal":"Décimal (1, 2, 3, etc.)","decimalLeadingZero":"Décimal précédé par un 0 (01, 02, 03, etc.)","disc":"Disque","georgian":"Numération géorgienne (an, ban, gan, etc.)","lowerAlpha":"Lettres minuscules (a, b, c, d, e, etc.)","lowerGreek":"Grec minuscule (alpha, bêta, gamma, etc.)","lowerRoman":"Chiffres romains minuscules (i, ii, iii, iv, v, etc.)","none":"Aucun","notset":"<indéfini>","numberedTitle":"Propriétés de la liste numérotée","square":"Carré","start":"Début","type":"Type","upperAlpha":"Lettres majuscules (A, B, C, D, E, etc.)","upperRoman":"Chiffres romains majuscules (I, II, III, IV, V, etc.)","validateStartNumber":"Le premier élément de la liste doit être un nombre entier."},"magicline":{"title":"Insérer un paragraphe ici"},"maximize":{"maximize":"Agrandir","minimize":"Réduire"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"sourcearea":{"toolbar":"Source"},"notification":{"closed":"Notification fermée."},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).","paste":"Coller","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"widget":{"move":"Cliquer et glisser pour déplacer","label":"Élément %1"},"oembed":{"title":"Intégrer des contenus multimédia externes. (Photo, Video, Audio, ...)","button":"Insérer des contenus multimédia provenant de nombreux sites.","pasteUrl":"Coller l'URL de partage que vous voulez publier. De nombreux services sont pris en charge tels que : (YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.). Vous pouvez aussi utiliser les URLs courtes.","invalidUrl":"Merci de fournir une URL valide !","noEmbedCode":"Aucun code d'intégration trouvé ou le site n'est pas supporté !","url":"URL:","width":"Largeur:","height":"Hauteur:","widthTitle":"Largeur du conteneur.","heightTitle":"Hauteur du conteneur.","maxWidth":"Max. Largeur:","maxHeight":"Max. Hauteur:","maxWidthTitle":"Largeur maximale du conteneur.","maxHeightTitle":"Hauteur maximale du conteneur.","resizeType":"Resize Type (Only Video's):","none":"None","noresize":"No Resize (use default)","responsive":"Responsive Resize","custom":"Specific Resize","noVimeo":"The owner of this video has set domain restrictions and you will not be able to embed it on your website.","Error":"Media Content could not been retrieved, please try a different URL."},"html5video":{"button":"Insérer un lecteur video HTML5","title":"HTML5 video","infoLabel":"Informations video","allowed":"Extensions de fichiers autorisées: MP4, WebM, Ogv","urlMissing":"URL de la source video manquante. Veuillez la renseigner.","videoProperties":"Propriétés Video","upload":"Télécharger","btnUpload":"Envoyer vers le serveur","advanced":"Avancé","autoplay":"Jouer automatiquement ?","yes":"Oui","no":"Non","responsive":"Responsive width"}};
\ No newline at end of file
--- /dev/null
+CKEDITOR.dialog.add("audio",function(d){function g(a,c){var b=this.getValue();!b&&"id"==this.id&&(b=m());a.setAttribute(this.id,b);if(b)switch(this.id){case "poster":c.backgroundImage="url("+b+")";break;case "width":c.width=b+"px";break;case "height":c.height=b+"px"}}function i(a,c,b){c=this.id.match(/(\w+)(\d)/);a=c[1];c=parseInt(c[2],10);(b[c]||(b[c]={}))[a]=this.getValue()}function j(a){a?this.setValue(a.getAttribute(this.id)):"id"==this.id&&this.setValue(m())}function h(a,c){var b=this.id.match(/(\w+)(\d)/),
+d=b[1],b=parseInt(b[2],10);(b=c[b])&&this.setValue(b[d])}function m(){var a=new Date;return"audio"+a.getFullYear()+a.getMonth()+a.getDate()+a.getHours()+a.getMinutes()+a.getSeconds()}var e=d.lang.audio,l=function(){var a=this.previewImage;a.removeListener("load",l);a.removeListener("error",f);a.removeListener("abort",f);this.setValueOf("info","width",a.$.width);this.setValueOf("info","height",a.$.height)},f=function(){var a=this.previewImage;a.removeListener("load",l);a.removeListener("error",f);
+a.removeListener("abort",f)};return{title:e.dialogTitle,minWidth:400,minHeight:200,onShow:function(){this.fakeImage=this.audioNode=null;this.previewImage=d.document.createElement("img");var a=this.getSelectedElement();if(a&&a.data("cke-real-element-type")&&"audio"==a.data("cke-real-element-type")){this.fakeImage=a;var a=d.restoreRealElement(a),c=[],b=a.getElementsByTag("source","");0==b.count()&&(b=a.getElementsByTag("source","cke"));for(var e=0,f=b.count();e<f;e++){var g=b.getItem(e);c.push({src:g.getAttribute("src"),
+type:g.getAttribute("type")})}this.audioNode=a;this.setupContent(a,c)}else this.setupContent(null,[])},onOk:function(){var a=null;this.fakeImage?a=this.audioNode:(a=CKEDITOR.dom.element.createFromHtml("<cke:audio></cke:audio>",d.document),a.setAttributes({controls:"controls"}));var c={},b=[];this.commitContent(a,c,b);for(var f="",g="",i=e.linkTemplate||"",j=e.fallbackTemplate||"",h=0;h<b.length;h++){var k=b[h];k&&k.src&&(f+='<cke:source src="'+k.src+'" type="'+k.type+'" />',g+=i.replace("%src%",k.src).replace("%type%",
+k.type))}a.setHtml(f+j.replace("%links%",g));a=d.createFakeElement(a,"cke_audio","audio",!1);a.setStyles(c);this.fakeImage?(a.replace(this.fakeImage),d.getSelection().selectElement(a)):(c=new CKEDITOR.dom.element("DIV",d.document),d.insertElement(c),c.append(a))},onHide:function(){this.previewImage&&(this.previewImage.removeListener("load",l),this.previewImage.removeListener("error",f),this.previewImage.removeListener("abort",f),this.previewImage.remove(),this.previewImage=null)},contents:[{id:"info",
+elements:[{type:"hbox",widths:["","100px"],children:[{type:"text",id:"poster",label:e.poster,commit:g,setup:j,onChange:function(){var a=this.getDialog(),c=this.getValue();if(0<c.length){var a=this.getDialog(),b=a.previewImage;b.on("load",l,a);b.on("error",f,a);b.on("abort",f,a);b.setAttribute("src",c)}}},{type:"button",id:"browse",hidden:"true",style:"display:inline-block;margin-top:10px;",filebrowser:{action:"Browse",target:"info:poster",url:d.config.filebrowserImageBrowseUrl||d.config.filebrowserBrowseUrl},
+label:d.lang.common.browseServer}]},{type:"hbox",widths:["33%","33%","33%"],children:[{type:"text",id:"width",label:d.lang.common.width,"default":400,validate:CKEDITOR.dialog.validate.notEmpty(e.widthRequired),commit:g,setup:j},{type:"text",id:"height",label:d.lang.common.height,"default":300,validate:CKEDITOR.dialog.validate.notEmpty(e.heightRequired),commit:g,setup:j},{type:"text",id:"id",label:"Id",commit:g,setup:j}]},{type:"hbox",widths:["","100px","75px"],children:[{type:"text",id:"src0",label:e.sourceaudio,
+commit:i,setup:h},{type:"button",id:"browse",hidden:"true",style:"display:inline-block;margin-top:10px;",filebrowser:{action:"Browse",target:"info:src0",url:d.config.filebrowserAudioBrowseUrl||d.config.filebrowserBrowseUrl},label:d.lang.common.browseServer},{id:"type0",label:e.sourceType,type:"select","default":"audio/mp3",items:[["MP3","audio/mp3"],["WAV","audio/wav"]],commit:i,setup:h}]},{type:"hbox",widths:["","100px","75px"],children:[{type:"text",id:"src1",label:e.sourceaudio,commit:i,setup:h},
+{type:"button",id:"browse",hidden:"true",style:"display:inline-block;margin-top:10px;",filebrowser:{action:"Browse",target:"info:src1",url:d.config.filebrowserAudioBrowseUrl||d.config.filebrowserBrowseUrl},label:d.lang.common.browseServer},{id:"type1",label:e.sourceType,type:"select","default":"audio/wav",items:[["MP3","audio/mp3"],["WAV","audio/wav"]],commit:i,setup:h}]}]}]}});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\r
+ "http://www.w3.org/TR/html4/loose.dtd">\r
+<html lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+<title>Audio plugin</title>\r
+<link href="styles.css" rel="stylesheet" type="text/css">\r
+</head>\r
+\r
+<body>\r
+<h1>Audio Plugin for CKEditor</h1>\r
+\r
+<h2>Introduction</h2>\r
+<p>This is a plugin to create HTML5 <audio> elements in <a href="http://www.ckeditor.com">CKEditor</a>.</p>\r
+<h3>Version history: </h3>\r
+<ol>\r
+ <li>1.0: 10-July-2015. First version.</li>\r
+</ol>\r
+\r
+<h2>Installation</h2>\r
+<h3>1. Copying the files</h3>\r
+<p>Extract the contents of the zip in you plugins directory, so it ends up like\r
+ this<br>\r
+ <!--<img src="installation.png" alt="Screenshot of installation" width="311" height="346" longdesc="#install">-->\r
+ </p>\r
+<pre id="--install">\r
+ckeditor\\r
+ ...\r
+ images\\r
+ lang\\r
+ plugins\\r
+ ...\r
+ audio\\r
+ plugin.js\r
+ dialogs\\r
+ audio.js\r
+ docs\\r
+ install.html\r
+ images\\r
+ icon.png\r
+ placeholder.png\r
+ ...\r
+ skins\\r
+ themes\\r
+</pre>\r
+<h3>2. Adding it to CKEditor</h3>\r
+<p>Now add the plugin in your <em>config.js</em> or custom js configuration\r
+file:\r
+<code>config.extraPlugins='audio'; </code>\r
+</p>\r
+\r
+<h3>3. Add it to your toolbar</h3>\r
+<p>In your toolbar configuration, add a new 'Audio' item in the place where you want the button to show up.</p>\r
+\r
+<h3>4. Configure server browser for audio</h3>\r
+<p>You can use the <code>config.filebrowserAudioBrowseUrl</code> entry to specify a url so the file browser shows just audio elements (as long as your configure properly your file browser).</p>\r
+\r
+<h3>5. Use it</h3>\r
+<p>Now empty the cache of your browser and reload the editor, the new button should show up and you can add <audio> elements into the content.</p>\r
+\r
+<h2>Final notes</h2>\r
+<p>Please, note that only newer browsers support the Audio element, in older ones a simple text linking to the source audios is provided, you might want to\r
+use some javascript or css to customize the final behavior of these elements.</p>\r
+\r
+\r
+<h2>Disclaimers</h2>\r
+<p>CKEditor is © CKSource.com</p>\r
+</body>\r
+</html>\r
--- /dev/null
+body {\r
+ font-family: Arial, Helvetica, sans-serif;\r
+ font-size: 90%;\r
+}\r
+h1 {\r
+ text-align:center;\r
+ font-size:180%;\r
+}\r
+h2 {\r
+ border-bottom:2px solid #CCC;\r
+ margin:1em 0 0.4em 0;\r
+}\r
+h3 {\r
+ margin-bottom:0.4em;\r
+}\r
+p {\r
+ margin:0 0 1em 1em;\r
+ text-align:justify;\r
+}\r
+ol {\r
+ margin:0 0 1.2em 1em;\r
+ padding:0;\r
+ list-style-type:none;\r
+}\r
+ol li {\r
+ margin:0.2em 0;\r
+}\r
+pre {\r
+ font-size:100%;\r
+ font-family:"Courier New", Courier, mono;\r
+ background-color: #CCCCCC;\r
+ border:1px solid #999;\r
+ padding:0.2em 1em;\r
+ margin: 0.4em 0;\r
+ display:block;\r
+ white-space: pre;\r
+ overflow: auto;\r
+}\r
+code {\r
+ font-size:100%;\r
+ font-family:"Courier New", Courier, mono;\r
+ background-color: #CCCCCC;\r
+ border:1px solid #999;\r
+ padding:0.2em;\r
+ white-space: pre;\r
+}\r
+form {\r
+ margin:0 0 0 1em;\r
+}\r
+span.key {\r
+ color: #006600;\r
+}\r
+#install {\r
+ display:none\r
+}\r
+#languages ul {\r
+ display:inline;\r
+ list-style-type:none;\r
+ margin:0;\r
+ padding:0;\r
+}\r
+#languages li {\r
+ display:inline;\r
+ margin:0;\r
+ padding:0;\r
+ vertical-align:bottom;\r
+}\r
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-CKEDITOR.dialog.add("a11yHelp",function(l){var a=l.lang.a11yhelp,n=CKEDITOR.tools.getNextId(),e={8:a.backspace,9:a.tab,13:a.enter,16:a.shift,17:a.ctrl,18:a.alt,19:a.pause,20:a.capslock,27:a.escape,33:a.pageUp,34:a.pageDown,35:a.end,36:a.home,37:a.leftArrow,38:a.upArrow,39:a.rightArrow,40:a.downArrow,45:a.insert,46:a["delete"],91:a.leftWindowKey,92:a.rightWindowKey,93:a.selectKey,96:a.numpad0,97:a.numpad1,98:a.numpad2,99:a.numpad3,100:a.numpad4,101:a.numpad5,102:a.numpad6,103:a.numpad7,104:a.numpad8,
-105:a.numpad9,106:a.multiply,107:a.add,109:a.subtract,110:a.decimalPoint,111:a.divide,112:a.f1,113:a.f2,114:a.f3,115:a.f4,116:a.f5,117:a.f6,118:a.f7,119:a.f8,120:a.f9,121:a.f10,122:a.f11,123:a.f12,144:a.numLock,145:a.scrollLock,186:a.semiColon,187:a.equalSign,188:a.comma,189:a.dash,190:a.period,191:a.forwardSlash,192:a.graveAccent,219:a.openBracket,220:a.backSlash,221:a.closeBracket,222:a.singleQuote};e[CKEDITOR.ALT]=a.alt;e[CKEDITOR.SHIFT]=a.shift;e[CKEDITOR.CTRL]=a.ctrl;var f=[CKEDITOR.ALT,CKEDITOR.SHIFT,
-CKEDITOR.CTRL],p=/\$\{(.*?)\}/g,t=function(){var a=l.keystrokeHandler.keystrokes,g={},c;for(c in a)g[a[c]]=c;return function(a,c){var b;if(g[c]){b=g[c];for(var h,k,m=[],d=0;d<f.length;d++)k=f[d],h=b/f[d],1<h&&2>=h&&(b-=k,m.push(e[k]));m.push(e[b]||String.fromCharCode(b));b=m.join("+")}else b=a;return b}}();return{title:a.title,minWidth:600,minHeight:400,contents:[{id:"info",label:l.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},
-html:function(){for(var e='\x3cdiv class\x3d"cke_accessibility_legend" role\x3d"document" aria-labelledby\x3d"'+n+'_arialbl" tabIndex\x3d"-1"\x3e%1\x3c/div\x3e\x3cspan id\x3d"'+n+'_arialbl" class\x3d"cke_voice_label"\x3e'+a.contents+" \x3c/span\x3e",g=[],c=a.legend,l=c.length,f=0;f<l;f++){for(var b=c[f],h=[],k=b.items,m=k.length,d=0;d<m;d++){var q=k[d],r=q.legend.replace(p,t);r.match(p)||h.push("\x3cdt\x3e%1\x3c/dt\x3e\x3cdd\x3e%2\x3c/dd\x3e".replace("%1",q.name).replace("%2",r))}g.push("\x3ch1\x3e%1\x3c/h1\x3e\x3cdl\x3e%2\x3c/dl\x3e".replace("%1",
-b.name).replace("%2",h.join("")))}return e.replace("%1",g.join(""))}()+'\x3cstyle type\x3d"text/css"\x3e.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}\x3c/style\x3e'}]}],
+CKEDITOR.dialog.add("a11yHelp",function(e){var a=e.lang.a11yhelp,b=e.lang.common.keyboard,q=CKEDITOR.tools.getNextId(),d={8:b[8],9:a.tab,13:b[13],16:b[16],17:b[17],18:b[18],19:a.pause,20:a.capslock,27:a.escape,33:a.pageUp,34:a.pageDown,35:b[35],36:b[36],37:a.leftArrow,38:a.upArrow,39:a.rightArrow,40:a.downArrow,45:a.insert,46:b[46],91:a.leftWindowKey,92:a.rightWindowKey,93:a.selectKey,96:a.numpad0,97:a.numpad1,98:a.numpad2,99:a.numpad3,100:a.numpad4,101:a.numpad5,102:a.numpad6,103:a.numpad7,104:a.numpad8,
+105:a.numpad9,106:a.multiply,107:a.add,109:a.subtract,110:a.decimalPoint,111:a.divide,112:a.f1,113:a.f2,114:a.f3,115:a.f4,116:a.f5,117:a.f6,118:a.f7,119:a.f8,120:a.f9,121:a.f10,122:a.f11,123:a.f12,144:a.numLock,145:a.scrollLock,186:a.semiColon,187:a.equalSign,188:a.comma,189:a.dash,190:a.period,191:a.forwardSlash,192:a.graveAccent,219:a.openBracket,220:a.backSlash,221:a.closeBracket,222:a.singleQuote};d[CKEDITOR.ALT]=b[18];d[CKEDITOR.SHIFT]=b[16];d[CKEDITOR.CTRL]=CKEDITOR.env.mac?b[224]:b[17];var k=
+[CKEDITOR.ALT,CKEDITOR.SHIFT,CKEDITOR.CTRL],r=/\$\{(.*?)\}/g,t=function(a,b){var c=e.getCommandKeystroke(b);if(c){for(var l,f,h=[],g=0;g<k.length;g++)f=k[g],l=c/k[g],1<l&&2>=l&&(c-=f,h.push(d[f]));h.push(d[c]||String.fromCharCode(c));c=h.join("+")}else c=a;return c};return{title:a.title,minWidth:600,minHeight:400,contents:[{id:"info",label:e.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},html:function(){for(var b=
+'\x3cdiv class\x3d"cke_accessibility_legend" role\x3d"document" aria-labelledby\x3d"'+q+'_arialbl" tabIndex\x3d"-1"\x3e%1\x3c/div\x3e\x3cspan id\x3d"'+q+'_arialbl" class\x3d"cke_voice_label"\x3e'+a.contents+" \x3c/span\x3e",d=[],c=a.legend,l=c.length,f=0;f<l;f++){for(var h=c[f],g=[],e=h.items,k=e.length,p=0;p<k;p++){var m=e[p],n=CKEDITOR.env.edge&&m.legendEdge?m.legendEdge:m.legend,n=n.replace(r,t);n.match(r)||g.push("\x3cdt\x3e%1\x3c/dt\x3e\x3cdd\x3e%2\x3c/dd\x3e".replace("%1",m.name).replace("%2",
+n))}d.push("\x3ch1\x3e%1\x3c/h1\x3e\x3cdl\x3e%2\x3c/dl\x3e".replace("%1",h.name).replace("%2",g.join("")))}return b.replace("%1",d.join(""))}()+'\x3cstyle type\x3d"text/css"\x3e.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}\x3c/style\x3e'}]}],
buttons:[CKEDITOR.dialog.cancelButton]}});
\ No newline at end of file
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
\r
cs.js Found: 30 Missing: 0\r
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","af",{title:"Toeganglikheid instruksies",contents:"Hulp inhoud. Druk ESC om toe te maak.",legend:[{name:"Algemeen",items:[{name:"Bewerker balk",legend:"Druk ${toolbarFocus} om op die werkbalk te land. Beweeg na die volgende en voorige wekrbalkgroep met TAB and SHIFT+TAB. Beweeg na die volgende en voorige werkbalkknop met die regter of linker pyl. Druk SPASIE of ENTER om die knop te bevestig."},{name:"Bewerker dialoog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Bewerkerinhoudmenu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pouse",capslock:"Hoofletterslot",escape:"Ontsnap",pageUp:"Blaaiop",pageDown:"Blaaiaf",end:"Einde",home:"Tuis",leftArrow:"Linkspyl",upArrow:"Oppyl",rightArrow:"Regterpyl",downArrow:"Afpyl",insert:"Toevoeg","delete":"Verwyder",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Nommerblok 0",numpad1:"Nommerblok 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pouse",capslock:"Hoofletterslot",escape:"Ontsnap",pageUp:"Blaaiop",pageDown:"Blaaiaf",leftArrow:"Linkspyl",upArrow:"Oppyl",rightArrow:"Regterpyl",downArrow:"Afpyl",insert:"Toevoeg",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Nommerblok 0",numpad1:"Nommerblok 1",
numpad2:"Nommerblok 2",numpad3:"Nommerblok 3",numpad4:"Nommerblok 4",numpad5:"Nommerblok 5",numpad6:"Nommerblok 6",numpad7:"Nommerblok 7",numpad8:"Nommerblok 8",numpad9:"Nommerblok 9",multiply:"Maal",add:"Plus",subtract:"Minus",decimalPoint:"Desimaalepunt",divide:"Gedeeldeur",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nommervergrendel",scrollLock:"Rolvergrendel",semiColon:"Kommapunt",equalSign:"Isgelykaan",comma:"Komma",dash:"Koppelteken",
period:"Punt",forwardSlash:"Skuinsstreep",graveAccent:"Aksentteken",openBracket:"Oopblokhakkie",backSlash:"Trustreep",closeBracket:"Toeblokhakkie",singleQuote:"Enkelaanhaalingsteken"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","ar",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"عام",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"إضافة",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"تقسيم",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"فاصلة",dash:"Dash",period:"نقطة",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
--- /dev/null
+/*
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","az",{title:"Əlillərə dəstək üzrə təlimat",contents:"Kömək. Pəncərəni bağlamaq üçün ESC basın.",legend:[{name:"Əsas",items:[{name:"Düzəliş edənin alətlər çubuğu",legend:"Panelə keçmək üçün ${toolbarFocus} basın. Növbəti panelə TAB, əvvəlki panelə isə SHIFT+TAB düyməsi vasitəsi ilə keçə bilərsiz. Paneldəki düymələr arasında sol və sağ ox düyməsi ilə keçid edə bilərsiz. Seçilmiş düyməsi SPACE və ya ENTER ilə işlədə bilərsiniz."},{name:"Redaktorun pəncərəsi",legend:"Pəncərə içində növbəti element seçmək üçün TAB düyməni basın, əvvəlki isə - SHIFT+TAB. Təsdiq edilməsi üçün ENTER, imtina edilməsi isə ESC diymələri istifadə edin. Pəncərədə bir neçə vərəq olanda olnarın siyahı ALT+F10 ilə aça bilərsiz. Vərəqlərin siyahı fokus altında olanda ox düymələr vasitəsi ilə onların arasında keçid edə bilərsiz."},
+{name:"Redaktorun seçimlərin menyusu",legend:"Seçimləri redaktə etmək üçün ${contextMenu} ya da APPLICATION KEY basın. Növbəti seçimə keçmək üçün TAB ya AŞAĞI OX düyməsini basın, əvvəlki isə - SHIFT+TAB ya YUXARI OX. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Alt menyunu açmaq üçün SPACE, ENTER ya SAĞA OX basın. ESC ya SOLA OX ilə geriyə qayıda bilərsiz. Bütün menyunu ESC ilə bağlıyın."},{name:"Düzəliş edənin siyahı qutusu",legend:"Siyahı qutusu içində növbəti bənd seçmək üçün TAB ya AŞAĞI OX, əvvəlki isə SHIFT+TAB ya YUXARI OX basın. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Siyahı qutusu ESC ilə bağlıyın."},
+{name:"Redaktor elementin cığır paneli",legend:"Elementin cığır paneli seçmək üçün ${elementsPathFocus} basın. Növbəti element seçmək üçün TAB ya SAĞA OX, əvvəlki isə SHIFT+TAB ya SOLA OX istifadə edin. Elementi arımaq SPACE ya ENTER düymələri mövcuddur."}]},{name:"Əmrlər",items:[{name:"Əmri geri qaytar",legend:"${undo} basın"},{name:"Geri əmri",legend:"${redo} basın"},{name:"Qalın əmri",legend:"${bold} basın"},{name:"Kursiv əmri",legend:"${italic} basın"},{name:"Altdan xətt əmri",legend:"${underline} basın"},
+{name:"Link əmri",legend:"${link} basın"},{name:"Paneli gizlət əmri",legend:"${toolbarCollapse} basın"},{name:"Əvvəlki fokus sahəsi seç əmrı",legend:"Kursordan əvvəl ən yaxın əlçatmaz yerə dəymək üçün ${accessPreviousSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},{name:"Növbəti fokus sahəsi seç əmrı",legend:"Kursordan sonra ən yaxın əlçatmaz yerə dəymək üçün ${accessNextSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},
+{name:"Hərtərəfli Kömək",legend:"${a11yHelp} basın"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Sola ox işarəsi",upArrow:"Yuxarı ox işarəsi",rightArrow:"Sağa ox işarəsi",downArrow:"Aşağı ox işarəsi",insert:"Insert",leftWindowKey:"Soldaki Windows düyməsi",rightWindowKey:"Sağdaki Windows düyməsi",selectKey:"Düyməni seçin",
+numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vurma",add:"Əlavə et",subtract:"Çıxma",decimalPoint:"Onluq kəsri tam ədəddən ayıran nöqtə",divide:"Bölüşdürmə",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Nöqtəli verqül",equalSign:"Barəbərlik işarəsi",
+comma:"Vergül",dash:"Defis",period:"Nöqtə",forwardSlash:"Çəp xətt",graveAccent:"Vurğu işarəsi",openBracket:"Açılan mötərizə",backSlash:"Tərs çəpəki xətt",closeBracket:"Bağlanan mötərizə",singleQuote:"Tək dırnaq"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","bg",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Общо",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","ca",{title:"Instruccions d'Accessibilitat",contents:"Continguts de l'Ajuda. Per tancar aquest quadre de diàleg premi ESC.",legend:[{name:"General",items:[{name:"Editor de barra d'eines",legend:"Premi ${toolbarFocus} per desplaçar-se per la barra d'eines. Vagi en el següent i anterior grup de barra d'eines amb TAB i SHIFT+TAB. Vagi en el següent i anterior botó de la barra d'eines amb RIGHT ARROW i LEFT ARROW. Premi SPACE o ENTER per activar el botó de la barra d'eines."},
-{name:"Editor de quadre de diàleg",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor de menú contextual",legend:"Premi ${contextMenu} o APPLICATION KEY per obrir el menú contextual. Després desplacis a la següent opció del menú amb TAB o DOWN ARROW. Desplacis a l'anterior opció amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció del menú. Obri el submenú de l'actual opció utilitzant SPACE o ENTER o RIGHT ARROW. Pot tornar a l'opció del menú pare amb ESC o LEFT ARROW. Tanqui el menú contextual amb ESC."},
-{name:"Editor de caixa de llista",legend:"Dins d'un quadre de llista, desplacis al següent element de la llista amb TAB o DOWN ARROW. Desplacis a l'anterior element de la llista amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció de la llista. Premi ESC per tancar el quadre de llista."},{name:"Editor de barra de ruta de l'element",legend:"Premi ${elementsPathFocus} per anar als elements de la barra de ruta. Desplacis al botó de l'element següent amb TAB o RIGHT ARROW. Desplacis a l'anterior botó amb SHIFT+TAB o LEFT ARROW. Premi SPACE o ENTER per seleccionar l'element a l'editor."}]},
-{name:"Ordres",items:[{name:"Desfer ordre",legend:"Premi ${undo}"},{name:"Refer ordre",legend:"Premi ${redo}"},{name:"Ordre negreta",legend:"Premi ${bold}"},{name:"Ordre cursiva",legend:"Premi ${italic}"},{name:"Ordre subratllat",legend:"Premi ${underline}"},{name:"Ordre enllaç",legend:"Premi ${link}"},{name:"Ordre amagar barra d'eines",legend:"Premi ${toolbarCollapse}"},{name:"Ordre per accedir a l'anterior espai enfocat",legend:"Premi ${accessPreviousSpace} per accedir a l'enfocament d'espai més proper inabastable abans del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},
-{name:"Ordre per accedir al següent espai enfocat",legend:"Premi ${accessNextSpace} per accedir a l'enfocament d'espai més proper inabastable després del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ajuda d'accessibilitat",legend:"Premi ${a11yHelp}"}]}],backspace:"Retrocés",tab:"Tabulació",enter:"Intro",shift:"Majúscules",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Bloqueig de majúscules",escape:"Escape",
-pageUp:"Pàgina Amunt",pageDown:"Pàgina Avall",end:"Fi",home:"Inici",leftArrow:"Fletxa Esquerra",upArrow:"Fletxa Amunt",rightArrow:"Fletxa Dreta",downArrow:"Fletxa Avall",insert:"Inserir","delete":"Eliminar",leftWindowKey:"Tecla Windows Esquerra",rightWindowKey:"Tecla Windows Dreta",selectKey:"Tecla Seleccionar",numpad0:"Teclat Numèric 0",numpad1:"Teclat Numèric 1",numpad2:"Teclat Numèric 2",numpad3:"Teclat Numèric 3",numpad4:"Teclat Numèric 4",numpad5:"Teclat Numèric 5",numpad6:"Teclat Numèric 6",
-numpad7:"Teclat Numèric 7",numpad8:"Teclat Numèric 8",numpad9:"Teclat Numèric 9",multiply:"Multiplicació",add:"Suma",subtract:"Resta",decimalPoint:"Punt Decimal",divide:"Divisió",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloqueig Teclat Numèric",scrollLock:"Bloqueig de Desplaçament",semiColon:"Punt i Coma",equalSign:"Símbol Igual",comma:"Coma",dash:"Guió",period:"Punt",forwardSlash:"Barra Diagonal",graveAccent:"Accent Obert",openBracket:"Claudàtor Obert",
-backSlash:"Barra Invertida",closeBracket:"Claudàtor Tancat",singleQuote:"Cometa Simple"});
\ No newline at end of file
+{name:"Editor de quadre de diàleg",legend:"Dins d'un quadre de diàleg, premi la tecla TAB per desplaçar-se fins al següent element del quadre de diàleg, premi la tecla Shift + TAB per desplaçar-se a l'anterior element del quadre de diàleg, premi la tecla ENTER per confirmar el quadre de diàleg, premi la tecla ESC per cancel·lar el quadre de diàleg. Quan un quadre de diàleg té diverses pestanyes, la llista de pestanyes pot ser assolit ja sigui amb ALT + F10 o TAB, com a part de l'ordre de tabulació del quadre de diàleg. Amb la llista de pestanyes seleccionada, pot anar a la fitxa següent i anterior amb la tecla FLETXA DRETA i ESQUERRA, respectivament."},
+{name:"Editor de menú contextual",legend:"Premi ${contextMenu} o APPLICATION KEY per obrir el menú contextual. Després desplacis a la següent opció del menú amb TAB o DOWN ARROW. Desplacis a l'anterior opció amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció del menú. Obri el submenú de l'actual opció utilitzant SPACE o ENTER o RIGHT ARROW. Pot tornar a l'opció del menú pare amb ESC o LEFT ARROW. Tanqui el menú contextual amb ESC."},{name:"Editor de caixa de llista",legend:"Dins d'un quadre de llista, desplacis al següent element de la llista amb TAB o DOWN ARROW. Desplacis a l'anterior element de la llista amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció de la llista. Premi ESC per tancar el quadre de llista."},
+{name:"Editor de barra de ruta de l'element",legend:"Premi ${elementsPathFocus} per anar als elements de la barra de ruta. Desplacis al botó de l'element següent amb TAB o RIGHT ARROW. Desplacis a l'anterior botó amb SHIFT+TAB o LEFT ARROW. Premi SPACE o ENTER per seleccionar l'element a l'editor."}]},{name:"Ordres",items:[{name:"Desfer ordre",legend:"Premi ${undo}"},{name:"Refer ordre",legend:"Premi ${redo}"},{name:"Ordre negreta",legend:"Premi ${bold}"},{name:"Ordre cursiva",legend:"Premi ${italic}"},
+{name:"Ordre subratllat",legend:"Premi ${underline}"},{name:"Ordre enllaç",legend:"Premi ${link}"},{name:"Ordre amagar barra d'eines",legend:"Premi ${toolbarCollapse}"},{name:"Ordre per accedir a l'anterior espai enfocat",legend:"Premi ${accessPreviousSpace} per accedir a l'enfocament d'espai més proper inabastable abans del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ordre per accedir al següent espai enfocat",
+legend:"Premi ${accessNextSpace} per accedir a l'enfocament d'espai més proper inabastable després del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ajuda d'accessibilitat",legend:"Premi ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulació",pause:"Pausa",capslock:"Bloqueig de majúscules",escape:"Escape",pageUp:"Pàgina Amunt",
+pageDown:"Pàgina Avall",leftArrow:"Fletxa Esquerra",upArrow:"Fletxa Amunt",rightArrow:"Fletxa Dreta",downArrow:"Fletxa Avall",insert:"Inserir",leftWindowKey:"Tecla Windows Esquerra",rightWindowKey:"Tecla Windows Dreta",selectKey:"Tecla Seleccionar",numpad0:"Teclat Numèric 0",numpad1:"Teclat Numèric 1",numpad2:"Teclat Numèric 2",numpad3:"Teclat Numèric 3",numpad4:"Teclat Numèric 4",numpad5:"Teclat Numèric 5",numpad6:"Teclat Numèric 6",numpad7:"Teclat Numèric 7",numpad8:"Teclat Numèric 8",numpad9:"Teclat Numèric 9",
+multiply:"Multiplicació",add:"Suma",subtract:"Resta",decimalPoint:"Punt Decimal",divide:"Divisió",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloqueig Teclat Numèric",scrollLock:"Bloqueig de Desplaçament",semiColon:"Punt i Coma",equalSign:"Símbol Igual",comma:"Coma",dash:"Guió",period:"Punt",forwardSlash:"Barra Diagonal",graveAccent:"Accent Obert",openBracket:"Claudàtor Obert",backSlash:"Barra Invertida",closeBracket:"Claudàtor Tancat",
+singleQuote:"Cometa Simple"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","cs",{title:"Instrukce pro přístupnost",contents:"Obsah nápovědy. Pro uzavření tohoto dialogu stiskněte klávesu ESC.",legend:[{name:"Obecné",items:[{name:"Panel nástrojů editoru",legend:"Stiskněte${toolbarFocus} k procházení panelu nástrojů. Přejděte na další a předchozí skupiny pomocí TAB a SHIFT+TAB. Přechod na další a předchozí tlačítko panelu nástrojů je pomocí ŠIPKA VPRAVO nebo ŠIPKA VLEVO. Stisknutím mezerníku nebo klávesy ENTER tlačítko aktivujete."},{name:"Dialogové okno editoru",
legend:"Uvnitř dialogového okna stiskněte TAB pro přesunutí na další prvek okna, stiskněte SHIFT+TAB pro přesun na předchozí prvek okna, stiskněte ENTER pro odeslání dialogu, stiskněte ESC pro jeho zrušení. Pro dialogová okna, která mají mnoho karet stiskněte ALT+F10 pro zaměření seznamu karet, nebo TAB, pro posun podle pořadí karet.Při zaměření seznamu karet se můžete jimi posouvat pomocí ŠIPKY VPRAVO a VLEVO."},{name:"Kontextové menu editoru",legend:"Stiskněte ${contextMenu} nebo klávesu APPLICATION k otevření kontextového menu. Pak se přesuňte na další možnost menu pomocí TAB nebo ŠIPKY DOLŮ. Přesuňte se na předchozí možnost pomocí SHIFT+TAB nebo ŠIPKY NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti menu. Podmenu současné možnosti otevřete pomocí MEZERNÍKU nebo ENTER či ŠIPKY DOLEVA. Kontextové menu uzavřete stiskem ESC."},
{name:"Rámeček seznamu editoru",legend:"Uvnitř rámečku seznamu se přesunete na další položku menu pomocí TAB nebo ŠIPKA DOLŮ. Na předchozí položku se přesunete SHIFT+TAB nebo ŠIPKA NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti seznamu. Stiskněte ESC pro uzavření seznamu."},{name:"Lišta cesty prvku v editoru",legend:"Stiskněte ${elementsPathFocus} pro procházení lišty cesty prvku. Na další tlačítko prvku se přesunete pomocí TAB nebo ŠIPKA VPRAVO. Na předchozí tlačítko se přesunete pomocí SHIFT+TAB nebo ŠIPKA VLEVO. Stiskněte MEZERNÍK nebo ENTER pro vybrání prvku v editoru."}]},
{name:"Příkazy",items:[{name:" Příkaz Zpět",legend:"Stiskněte ${undo}"},{name:" Příkaz Znovu",legend:"Stiskněte ${redo}"},{name:" Příkaz Tučné",legend:"Stiskněte ${bold}"},{name:" Příkaz Kurzíva",legend:"Stiskněte ${italic}"},{name:" Příkaz Podtržení",legend:"Stiskněte ${underline}"},{name:" Příkaz Odkaz",legend:"Stiskněte ${link}"},{name:" Příkaz Skrýt panel nástrojů",legend:"Stiskněte ${toolbarCollapse}"},{name:"Příkaz pro přístup k předchozímu prostoru zaměření",legend:"Stiskněte ${accessPreviousSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření před stříškou, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},
-{name:"Příkaz pro přístup k dalšímu prostoru zaměření",legend:"Stiskněte ${accessNextSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření po stříšce, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},{name:" Nápověda přístupnosti",legend:"Stiskněte ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tabulátor",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pauza",capslock:"Caps lock",escape:"Escape",pageUp:"Stránka nahoru",
-pageDown:"Stránka dolů",end:"Konec",home:"Domů",leftArrow:"Šipka vlevo",upArrow:"Šipka nahoru",rightArrow:"Šipka vpravo",downArrow:"Šipka dolů",insert:"Vložit","delete":"Smazat",leftWindowKey:"Levá klávesa Windows",rightWindowKey:"Pravá klávesa Windows",selectKey:"Vyberte klávesu",numpad0:"Numerická klávesa 0",numpad1:"Numerická klávesa 1",numpad2:"Numerická klávesa 2",numpad3:"Numerická klávesa 3",numpad4:"Numerická klávesa 4",numpad5:"Numerická klávesa 5",numpad6:"Numerická klávesa 6",numpad7:"Numerická klávesa 7",
+{name:"Příkaz pro přístup k dalšímu prostoru zaměření",legend:"Stiskněte ${accessNextSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření po stříšce, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},{name:" Nápověda přístupnosti",legend:"Stiskněte ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulátor",pause:"Pauza",capslock:"Caps lock",
+escape:"Escape",pageUp:"Stránka nahoru",pageDown:"Stránka dolů",leftArrow:"Šipka vlevo",upArrow:"Šipka nahoru",rightArrow:"Šipka vpravo",downArrow:"Šipka dolů",insert:"Vložit",leftWindowKey:"Levá klávesa Windows",rightWindowKey:"Pravá klávesa Windows",selectKey:"Vyberte klávesu",numpad0:"Numerická klávesa 0",numpad1:"Numerická klávesa 1",numpad2:"Numerická klávesa 2",numpad3:"Numerická klávesa 3",numpad4:"Numerická klávesa 4",numpad5:"Numerická klávesa 5",numpad6:"Numerická klávesa 6",numpad7:"Numerická klávesa 7",
numpad8:"Numerická klávesa 8",numpad9:"Numerická klávesa 9",multiply:"Numerická klávesa násobení",add:"Přidat",subtract:"Numerická klávesa odečítání",decimalPoint:"Desetinná tečka",divide:"Numerická klávesa dělení",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num lock",scrollLock:"Scroll lock",semiColon:"Středník",equalSign:"Rovnítko",comma:"Čárka",dash:"Pomlčka",period:"Tečka",forwardSlash:"Lomítko",graveAccent:"Přízvuk",openBracket:"Otevřená hranatá závorka",
backSlash:"Obrácené lomítko",closeBracket:"Uzavřená hranatá závorka",singleQuote:"Jednoduchá uvozovka"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","cy",{title:"Canllawiau Hygyrchedd",contents:"Cynnwys Cymorth. I gau y deialog hwn, pwyswch ESC.",legend:[{name:"Cyffredinol",items:[{name:"Bar Offer y Golygydd",legend:"Pwyswch $ {toolbarFocus} i fynd at y bar offer. Symudwch i'r grŵp bar offer nesaf a blaenorol gyda TAB a SHIFT+TAB. Symudwch i'r botwm bar offer nesaf a blaenorol gyda SAETH DDE neu SAETH CHWITH. Pwyswch SPACE neu ENTER i wneud botwm y bar offer yn weithredol."},{name:"Deialog y Golygydd",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Dewislen Cyd-destun y Golygydd",legend:"Pwyswch $ {contextMenu} neu'r ALLWEDD 'APPLICATION' i agor y ddewislen cyd-destun. Yna symudwch i'r opsiwn ddewislen nesaf gyda'r TAB neu'r SAETH I LAWR. Symudwch i'r opsiwn blaenorol gyda SHIFT+TAB neu'r SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn ddewislen. Agorwch is-dewislen yr opsiwn cyfredol gyda SPACE neu ENTER neu SAETH DDE. Ewch yn ôl i'r eitem ar y ddewislen uwch gydag ESC neu SAETH CHWITH. Ceuwch y ddewislen cyd-destun gydag ESC."},
{name:"Blwch Rhestr y Golygydd",legend:"Tu mewn y blwch rhestr, ewch i'r eitem rhestr nesaf gyda TAB neu'r SAETH I LAWR. Symudwch i restr eitem flaenorol gyda SHIFT+TAB neu SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn o'r rhestr. Pwyswch ESC i gau'r rhestr."},{name:"Bar Llwybr Elfen y Golygydd",legend:"Pwyswch ${elementsPathFocus} i fynd i'r bar llwybr elfennau. Symudwch i fotwm yr elfen nesaf gyda TAB neu SAETH DDE. Symudwch i fotwm blaenorol gyda SHIFT+TAB neu SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis yr elfen yn y golygydd."}]},
{name:"Gorchmynion",items:[{name:"Gorchymyn dadwneud",legend:"Pwyswch ${undo}"},{name:"Gorchymyn ailadrodd",legend:"Pwyswch ${redo}"},{name:"Gorchymyn Bras",legend:"Pwyswch ${bold}"},{name:"Gorchymyn italig",legend:"Pwyswch ${italig}"},{name:"Gorchymyn tanlinellu",legend:"Pwyso ${underline}"},{name:"Gorchymyn dolen",legend:"Pwyswch ${link}"},{name:"Gorchymyn Cwympo'r Dewislen",legend:"Pwyswch ${toolbarCollapse}"},{name:"Myned i orchymyn bwlch ffocws blaenorol",legend:"Pwyswch ${accessPreviousSpace} i fyned i'r \"blwch ffocws sydd methu ei gyrraedd\" cyn y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. AIladroddwch y cyfuniad allwedd i gyrraedd bylchau ffocws pell."},
-{name:"Ewch i'r gorchymyn blwch ffocws nesaf",legend:"Pwyswch ${accessNextSpace} i fyned i'r blwch ffocws agosaf nad oes modd ei gyrraedd ar ôl y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. Ailadroddwch y cyfuniad allwedd i gyrraedd blychau ffocws pell."},{name:"Cymorth Hygyrchedd",legend:"Pwyswch ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
+{name:"Ewch i'r gorchymyn blwch ffocws nesaf",legend:"Pwyswch ${accessNextSpace} i fyned i'r blwch ffocws agosaf nad oes modd ei gyrraedd ar ôl y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. Ailadroddwch y cyfuniad allwedd i gyrraedd blychau ffocws pell."},{name:"Cymorth Hygyrchedd",legend:"Pwyswch ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","da",{title:"Tilgængelighedsinstrukser",contents:"Onlinehjælp. For at lukke dette vindue klik ESC",legend:[{name:"Generelt",items:[{name:"Editor værktøjslinje",legend:"Tryk ${toolbarFocus} for at navigere til værktøjslinjen. Flyt til næste eller forrige værktøjsline gruppe ved hjælp af TAB eller SHIFT+TAB. Flyt til næste eller forrige værktøjslinje knap med venstre- eller højre piltast. Tryk på SPACE eller ENTER for at aktivere værktøjslinje knappen."},{name:"Editor dialogboks",
-legend:"Inde i en dialogboks kan du, trykke på TAB for at navigere til næste element, trykke på SHIFT+TAB for at navigere til forrige element, trykke på ENTER for at afsende eller trykke på ESC for at lukke dialogboksen.\r\nNår en dialogboks har flere faner, fanelisten kan tilgås med ALT+F10 eller med TAB. Hvis fanelisten er i fokus kan du skifte til næste eller forrige tab, med højre- og venstre piltast."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Kommandoer",items:[{name:"Fortryd kommando",legend:"Klik på ${undo}"},{name:"Gentag kommando",legend:"Klik ${redo}"},{name:"Fed kommando",legend:"Klik ${bold}"},{name:"Kursiv kommando",legend:"Klik ${italic}"},{name:"Understregnings kommando",legend:"Klik ${underline}"},{name:"Link kommando",legend:"Klik ${link}"},{name:" Toolbar Collapse command",legend:"Klik ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Tilgængelighedshjælp",legend:"Kilk ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Venstre pil",
-upArrow:"Pil op",rightArrow:"Højre pil",downArrow:"Pil ned",insert:"Insert","delete":"Delete",leftWindowKey:"Venstre Windows tast",rightWindowKey:"Højre Windows tast",selectKey:"Select-knap",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Gange",add:"Plus",subtract:"Minus",decimalPoint:"Komma",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",
-f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lighedstegn",comma:"Komma",dash:"Bindestreg",period:"Punktum",forwardSlash:"Skråstreg",graveAccent:"Accent grave",openBracket:"Start klamme",backSlash:"Omvendt skråstreg",closeBracket:"Slut klamme",singleQuote:"Enkelt citationstegn"});
\ No newline at end of file
+legend:"Inde i en dialogboks kan du, trykke på TAB for at navigere til næste element, trykke på SHIFT+TAB for at navigere til forrige element, trykke på ENTER for at afsende eller trykke på ESC for at lukke dialogboksen.\r\nNår en dialogboks har flere faner, fanelisten kan tilgås med ALT+F10 eller med TAB. Hvis fanelisten er i fokus kan du skifte til næste eller forrige tab, med højre- og venstre piltast."},{name:"Redaktør kontekstmenu",legend:"Tryk ${contextMenu} eller APPLICATION KEY for at åbne kontekstmenuen. Flyt derefter til næste menuvalg med TAB eller PIL NED. Flyt til forrige valg med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge menu-muligheder. Åben under-menu af aktuelle valg med MELLEMRUM eller RETUR eller HØJRE PIL. Gå tilbage til overliggende menu-emne med ESC eller VENSTRE PIL. Luk kontekstmenu med ESC."},
+{name:"Redaktør listeboks",legend:"Flyt til næste emne med TAB eller PIL NED inde i en listeboks. Flyt til forrige listeemne med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge liste-muligheder. Tryk ESC for at lukke liste-boksen."},{name:"Redaktør elementsti-bar",legend:"Tryk ${elementsPathFocus} for at navigere til elementernes sti-bar. Flyt til næste element-knap med TAB eller HØJRE PIL. Flyt til forrige knap med SHIFT+TAB eller VENSTRE PIL. Klik MELLEMRUM eller RETUR for at vælge element i editoren."}]},
+{name:"Kommandoer",items:[{name:"Fortryd kommando",legend:"Klik på ${undo}"},{name:"Gentag kommando",legend:"Klik ${redo}"},{name:"Fed kommando",legend:"Klik ${bold}"},{name:"Kursiv kommando",legend:"Klik ${italic}"},{name:"Understregnings kommando",legend:"Klik ${underline}"},{name:"Link kommando",legend:"Klik ${link}"},{name:"Klap værktøjslinje sammen kommando ",legend:"Klik ${toolbarCollapse}"},{name:"Adgang til forrige fokusområde kommando",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Tilgængelighedshjælp",legend:"Kilk ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Venstre pil",upArrow:"Pil op",rightArrow:"Højre pil",downArrow:"Pil ned",insert:"Insert",leftWindowKey:"Venstre Windows tast",rightWindowKey:"Højre Windows tast",selectKey:"Select-knap",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Gange",add:"Plus",subtract:"Minus",decimalPoint:"Komma",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4",
+f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lighedstegn",comma:"Komma",dash:"Bindestreg",period:"Punktum",forwardSlash:"Skråstreg",graveAccent:"Accent grave",openBracket:"Start klamme",backSlash:"Omvendt skråstreg",closeBracket:"Slut klamme",singleQuote:"Enkelt citationstegn"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","de-ch",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen die Taste ESC drücken.",legend:[{name:"Allgemein",items:[{name:"Editorwerkzeugleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT+TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren."},
{name:"Editordialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor-Kontextmenü",legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},
{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},
{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace} auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "},
-{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"}]}],backspace:"Rücktaste",tab:"Tab",enter:"Eingabe",shift:"Umschalt",ctrl:"Strg",alt:"Alt",pause:"Pause",capslock:"Feststell",escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",
-end:"Ende",home:"Pos1",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen","delete":"Entfernen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",
-numpad9:"Ziffernblock 9",multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich",
-closeBracket:"Schliessende eckige Klammer",singleQuote:"Einfaches Anführungszeichen"});
\ No newline at end of file
+{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Feststell",escape:"Escape",
+pageUp:"Bild auf",pageDown:"Bild ab",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",numpad9:"Ziffernblock 9",
+multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich",closeBracket:"Schliessende eckige Klammer",
+singleQuote:"Einfaches Anführungszeichen"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","de",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen die Taste ESC drücken.",legend:[{name:"Allgemein",items:[{name:"Editorwerkzeugleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT+TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren."},
-{name:"Editordialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor-Kontextmenü",legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},
-{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},
-{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace} auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "},
-{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"}]}],backspace:"Rücktaste",tab:"Tab",enter:"Eingabe",shift:"Umschalt",ctrl:"Strg",alt:"Alt",pause:"Pause",capslock:"Feststell",escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",
-end:"Ende",home:"Pos1",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen","delete":"Entfernen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",
+{name:"Editordialog",legend:"Drücke innerhalb eines Dialogs TAB, um zum nächsten Element zu springen. Drücke SHIFT+TAB, um zum vorigen Element zu springen, drücke ENTER um das Formular im Dialog abzusenden, drücke ESC, um den Dialog zu schließen. Hat der Dialog mehrere Tabs, dann kannst du durch ALT+F10 die Tab-Liste aufrufen or mittels TAB als Teil der Dialog-Tab-Reihenfolge. Ist die Tab-Liste fokussiert, dann mithilfe der Pfeiltasten (LINKS und RECHTS) zwischen den Tabs gewechselt werden."},{name:"Editor-Kontextmenü",
+legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},
+{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",
+legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace} auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "},
+{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"},{name:"Einfügen als unformatierter Text. ",legend:"Drücke ${pastetext}",legendEdge:"Drücke ${pastetext} und anschließend ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Feststell",
+escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",
numpad9:"Ziffernblock 9",multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich",
closeBracket:"Schließende eckige Klammer",singleQuote:"Einfaches Anführungszeichen"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","el",{title:"Οδηγίες Προσβασιμότητας",contents:"Περιεχόμενα Βοήθειας. Πατήστε ESC για κλείσιμο.",legend:[{name:"Γενικά",items:[{name:"Εργαλειοθήκη Επεξεργαστή",legend:"Πατήστε ${toolbarFocus} για να περιηγηθείτε στην γραμμή εργαλείων. Μετακινηθείτε ανάμεσα στις ομάδες της γραμμής εργαλείων με TAB και SHIFT+TAB. Μετακινηθείτε ανάμεσα στα κουμπιά εργαλείων με το ΔΕΞΙ ή ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να ενεργοποιήσετε το ενεργό κουμπί εργαλείου."},{name:"Παράθυρο Διαλόγου Επεξεργαστή",
legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Αναδυόμενο Μενού Επεξεργαστή",legend:"Πατήστε ${contextMenu} ή APPLICATION KEY για να ανοίξετε το αναδυόμενο μενού. Μετά μετακινηθείτε στην επόμενη επιλογή του μενού με TAB ή ΚΑΤΩ ΒΕΛΑΚΙ. Μετακινηθείτε στην προηγούμενη επιλογή με SHIFT+TAB ή το ΠΑΝΩ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξτε το τρέχων στοιχείο. Ανοίξτε το αναδυόμενο μενού της τρέχουσας επιλογής με ΔΙΑΣΤΗΜΑ ή ENTER ή το ΔΕΞΙ ΒΕΛΑΚΙ. Μεταβείτε πίσω στο αρχικό στοιχείο μενού με το ESC ή το ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Κλείστε το αναδυόμενο μενού με ESC."},
{name:"Κουτί Λίστας Επεξεργαστών",legend:"Μέσα σε ένα κουτί λίστας, μετακινηθείτε στο επόμενο στοιχείο με TAB ή ΚΑΤΩ ΒΕΛΑΚΙ. Μετακινηθείτε στο προηγούμενο στοιχείο με SHIFT+TAB ή το ΠΑΝΩ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξετε ένα στοιχείο. Πατήστε ESC για να κλείσετε το κουτί της λίστας."},{name:"Μπάρα Διαδρομών Στοιχείων Επεξεργαστή",legend:"Πατήστε ${elementsPathFocus} για να περιηγηθείτε στην μπάρα διαδρομών στοιχείων του επεξεργαστή. Μετακινηθείτε στο κουμπί του επόμενου στοιχείου με το TAB ή το ΔΕΞΙ ΒΕΛΑΚΙ. Μετακινηθείτε στο κουμπί του προηγούμενου στοιχείου με το SHIFT+TAB ή το ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξετε το στοιχείο στον επεξεργαστή."}]},
{name:"Εντολές",items:[{name:"Εντολή αναίρεσης",legend:"Πατήστε ${undo}"},{name:"Εντολή επανάληψης",legend:"Πατήστε ${redo}"},{name:"Εντολή έντονης γραφής",legend:"Πατήστε ${bold}"},{name:"Εντολή πλάγιας γραφής",legend:"Πατήστε ${italic}"},{name:"Εντολή υπογράμμισης",legend:"Πατήστε ${underline}"},{name:"Εντολή συνδέσμου",legend:"Πατήστε ${link}"},{name:"Εντολή Σύμπτηξης Εργαλειοθήκης",legend:"Πατήστε ${toolbarCollapse}"},{name:"Πρόσβαση στην προηγούμενη εντολή του χώρου εστίασης ",legend:"Πατήστε ${accessPreviousSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης πριν το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για να φθάσετε στους χώρους μακρινής εστίασης. "},
-{name:"Πρόσβαση στην επόμενη εντολή του χώρου εστίασης",legend:"Πατήστε ${accessNextSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης μετά το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για τους χώρους μακρινής εστίασης. "},{name:"Βοήθεια Προσβασιμότητας",legend:"Πατήστε ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Αριστερό Βέλος",upArrow:"Πάνω Βέλος",rightArrow:"Δεξί Βέλος",downArrow:"Κάτω Βέλος",insert:"Insert ","delete":"Delete",leftWindowKey:"Αριστερό Πλήκτρο Windows",rightWindowKey:"Δεξί Πλήκτρο Windows",selectKey:"Πλήκτρο Select",numpad0:"Αριθμητικό πληκτρολόγιο 0",numpad1:"Αριθμητικό Πληκτρολόγιο 1",numpad2:"Αριθμητικό πληκτρολόγιο 2",numpad3:"Αριθμητικό πληκτρολόγιο 3",numpad4:"Αριθμητικό πληκτρολόγιο 4",numpad5:"Αριθμητικό πληκτρολόγιο 5",numpad6:"Αριθμητικό πληκτρολόγιο 6",
+{name:"Πρόσβαση στην επόμενη εντολή του χώρου εστίασης",legend:"Πατήστε ${accessNextSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης μετά το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για τους χώρους μακρινής εστίασης. "},{name:"Βοήθεια Προσβασιμότητας",legend:"Πατήστε ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Αριστερό Βέλος",upArrow:"Πάνω Βέλος",rightArrow:"Δεξί Βέλος",downArrow:"Κάτω Βέλος",insert:"Insert ",leftWindowKey:"Αριστερό Πλήκτρο Windows",rightWindowKey:"Δεξί Πλήκτρο Windows",selectKey:"Πλήκτρο Select",numpad0:"Αριθμητικό πληκτρολόγιο 0",numpad1:"Αριθμητικό Πληκτρολόγιο 1",numpad2:"Αριθμητικό πληκτρολόγιο 2",numpad3:"Αριθμητικό πληκτρολόγιο 3",numpad4:"Αριθμητικό πληκτρολόγιο 4",numpad5:"Αριθμητικό πληκτρολόγιο 5",numpad6:"Αριθμητικό πληκτρολόγιο 6",
numpad7:"Αριθμητικό πληκτρολόγιο 7",numpad8:"Αριθμητικό πληκτρολόγιο 8",numpad9:"Αριθμητικό πληκτρολόγιο 9",multiply:"Πολλαπλασιασμός",add:"Πρόσθεση",subtract:"Αφαίρεση",decimalPoint:"Υποδιαστολή",divide:"Διαίρεση",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"6",f7:"7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ερωτηματικό",equalSign:"Σύμβολο Ισότητας",comma:"Κόμμα",dash:"Παύλα",period:"Τελεία",forwardSlash:"Κάθετος",graveAccent:"Βαρεία",openBracket:"Άνοιγμα Παρένθεσης",
backSlash:"Ανάστροφη Κάθετος",closeBracket:"Κλείσιμο Παρένθεσης",singleQuote:"Απόστροφος"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","en-gb",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","en",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","eo",{title:"Uzindikoj pri atingeblo",contents:"Helpilenhavo. Por fermi tiun dialogon, premu la ESKAPAN klavon.",legend:[{name:"Ĝeneralaĵoj",items:[{name:"Ilbreto de la redaktilo",legend:"Premu ${toolbarFocus} por atingi la ilbreton. Moviĝu al la sekva aŭ antaŭa grupoj de la ilbreto per la klavoj TABA kaj MAJUSKLIGA+TABA. Moviĝu al la sekva aŭ antaŭa butonoj de la ilbreto per la klavoj SAGO DEKSTREN kaj SAGO MALDEKSTREN. Premu la SPACETklavon aŭ la ENENklavon por aktivigi la ilbretbutonon."},
{name:"Kunteksta menuo de la redaktilo",legend:"Premu ${contextMenu} aŭ entajpu la KLAVKOMBINAĴON por malfermi la kuntekstan menuon. Poste moviĝu al la sekva opcio de la menuo per la klavoj TABA aŭ SAGO SUBEN. Moviĝu al la antaŭa opcio per la klavoj MAJUSKLGA + TABA aŭ SAGO SUPREN. Premu la SPACETklavon aŭ ENENklavon por selekti la menuopcion. Malfermu la submenuon de la kuranta opcio per la SPACETklavo aŭ la ENENklavo aŭ la SAGO DEKSTREN. Revenu al la elemento de la patra menuo per la klavoj ESKAPA aŭ SAGO MALDEKSTREN. Fermu la kuntekstan menuon per la ESKAPA klavo."},
{name:"Fallisto de la redaktilo",legend:"En fallisto, moviĝu al la sekva listelemento per la klavoj TABA aŭ SAGO SUBEN. Moviĝu al la antaŭa listelemento per la klavoj MAJUSKLIGA+TABA aŭ SAGO SUPREN. Premu la SPACETklavon aŭ ENENklavon por selekti la opcion en la listo. Premu la ESKAPAN klavon por fermi la falmenuon."},{name:"Breto indikanta la vojon al la redaktilelementoj",legend:"Premu ${elementsPathFocus} por navigi al la breto indikanta la vojon al la redaktilelementoj. Moviĝu al la butono de la sekva elemento per la klavoj TABA aŭ SAGO DEKSTREN. Moviĝu al la butono de la antaŭa elemento per la klavoj MAJUSKLIGA+TABA aŭ SAGO MALDEKSTREN. Premu la SPACETklavon aŭ ENENklavon por selekti la elementon en la redaktilo."}]},
{name:"Komandoj",items:[{name:"Komando malfari",legend:"Premu ${undo}"},{name:"Komando refari",legend:"Premu ${redo}"},{name:"Komando grasa",legend:"Premu ${bold}"},{name:"Komando kursiva",legend:"Premu ${italic}"},{name:"Komando substreki",legend:"Premu ${underline}"},{name:"Komando ligilo",legend:"Premu ${link}"},{name:"Komando faldi la ilbreton",legend:"Premu ${toolbarCollapse}"},{name:"Komando por atingi la antaŭan fokusan spacon",legend:"Press ${accessPreviousSpace} por atingi la plej proksiman neatingeblan fokusan spacon antaŭ la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinaĵon por atingi malproksimajn fokusajn spacojn."},
-{name:"Komando por atingi la sekvan fokusan spacon",legend:"Press ${accessNextSpace} por atingi la plej proksiman neatingeblan fokusan spacon post la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinajôn por atingi malproksimajn fokusajn spacojn"},{name:"Helpilo pri atingeblo",legend:"Premu ${a11yHelp}"}]}],backspace:"Retropaŝo",tab:"Tabo",enter:"Enigi",shift:"Registrumo",ctrl:"Stirklavo",alt:"Alt-klavo",pause:"Paŭzo",capslock:"Majuskla baskulo",escape:"Eskapa klavo",pageUp:"Antaŭa Paĝo",
-pageDown:"Sekva Paĝo",end:"Fino",home:"Hejmo",leftArrow:"Sago Maldekstren",upArrow:"Sago Supren",rightArrow:"Sago Dekstren",downArrow:"Sago Suben",insert:"Enmeti","delete":"Forigi",leftWindowKey:"Maldekstra Windows-klavo",rightWindowKey:"Dekstra Windows-klavo",selectKey:"Selektklavo",numpad0:"Nombra Klavaro 0",numpad1:"Nombra Klavaro 1",numpad2:"Nombra Klavaro 2",numpad3:"Nombra Klavaro 3",numpad4:"Nombra Klavaro 4",numpad5:"Nombra Klavaro 5",numpad6:"Nombra Klavaro 6",numpad7:"Nombra Klavaro 7",
-numpad8:"Nombra Klavaro 8",numpad9:"Nombra Klavaro 9",multiply:"Obligi",add:"Almeti",subtract:"Subtrahi",decimalPoint:"Dekuma Punkto",divide:"Dividi",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nombra Baskulo",scrollLock:"Ruluma Baskulo",semiColon:"Punktokomo",equalSign:"Egalsigno",comma:"Komo",dash:"Haltostreko",period:"Punkto",forwardSlash:"Oblikvo",graveAccent:"Malakuto",openBracket:"Malferma Krampo",backSlash:"Retroklino",closeBracket:"Ferma Krampo",
-singleQuote:"Citilo"});
\ No newline at end of file
+{name:"Komando por atingi la sekvan fokusan spacon",legend:"Press ${accessNextSpace} por atingi la plej proksiman neatingeblan fokusan spacon post la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinajôn por atingi malproksimajn fokusajn spacojn"},{name:"Helpilo pri atingeblo",legend:"Premu ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabo",pause:"Paŭzo",capslock:"Majuskla baskulo",escape:"Eskapa klavo",
+pageUp:"Antaŭa Paĝo",pageDown:"Sekva Paĝo",leftArrow:"Sago Maldekstren",upArrow:"Sago Supren",rightArrow:"Sago Dekstren",downArrow:"Sago Suben",insert:"Enmeti",leftWindowKey:"Maldekstra Windows-klavo",rightWindowKey:"Dekstra Windows-klavo",selectKey:"Selektklavo",numpad0:"Nombra Klavaro 0",numpad1:"Nombra Klavaro 1",numpad2:"Nombra Klavaro 2",numpad3:"Nombra Klavaro 3",numpad4:"Nombra Klavaro 4",numpad5:"Nombra Klavaro 5",numpad6:"Nombra Klavaro 6",numpad7:"Nombra Klavaro 7",numpad8:"Nombra Klavaro 8",
+numpad9:"Nombra Klavaro 9",multiply:"Obligi",add:"Almeti",subtract:"Subtrahi",decimalPoint:"Dekuma Punkto",divide:"Dividi",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nombra Baskulo",scrollLock:"Ruluma Baskulo",semiColon:"Punktokomo",equalSign:"Egalsigno",comma:"Komo",dash:"Haltostreko",period:"Punkto",forwardSlash:"Oblikvo",graveAccent:"Malakuto",openBracket:"Malferma Krampo",backSlash:"Retroklino",closeBracket:"Ferma Krampo",singleQuote:"Citilo"});
\ No newline at end of file
--- /dev/null
+/*
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","es-mx",{title:"Instrucciones de accesibilidad",contents:"Contenidos de ayuda. Para cerrar este cuadro de diálogo presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:"Presione ${toolbarFocus} para navegar a la barra de herramientas. Desplácese al grupo de barras de herramientas siguiente y anterior con SHIFT + TAB. Desplácese al botón siguiente y anterior de la barra de herramientas con FLECHA DERECHA o FLECHA IZQUIERDA. Presione SPACE o ENTER para activar el botón de la barra de herramientas."},
+{name:"Editor de diálogo",legend:"Dentro de un cuadro de diálogo, pulse TAB para desplazarse hasta el siguiente elemento de diálogo, pulse MAYÚS + TAB para desplazarse al elemento de diálogo anterior, pulse ENTER para enviar el diálogo, pulse ESC para cancelar el diálogo. Cuando un cuadro de diálogo tiene varias pestañas, se puede acceder a la lista de pestañas con ALT + F10 o con TAB como parte del orden de tabulación del diálogo. Con la lista de tabuladores enfocada, mueva a la pestaña siguiente y anterior con las flechas DERECHA y IZQUIERDA, respectivamente."},
+{name:"Menú contextual del editor",legend:"Presione ${contextMenu} o CLAVE DE APLICACIÓN para abrir el menú contextual. A continuación, vaya a la siguiente opción del menú con TAB o DOWN ARROW. Desplácese a la opción anterior con SHIFT + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción del menú. Abra el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Vuelva al elemento de menú principal con ESC o FLECHA IZQUIERDA. Cerrar el menú contextual con ESC."},{name:"Editor de cuadro de lista",
+legend:"Dentro de un cuadro de lista, mueva al siguiente elemento de lista con TAB O FLECHA ABAJO. Mueva al elemento anterior de la lista con MAYÚS + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción de lista. Presione ESC para cerrar el cuadro de lista."},{name:"Barra de ruta del elemento del editor",legend:"Presione ${elementsPathFocus} para navegar a la barra de ruta de elementos. Desplácese al siguiente botón de elemento con TAB o FLECHA DERECHA. Desplácese al botón anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione SPACE o ENTER para seleccionar el elemento en el editor."}]},
+{name:"Comandos",items:[{name:"Comando deshacer",legend:"Presiona ${undo}"},{name:"Comando rehacer",legend:"Presiona ${redo}"},{name:"Comando negrita",legend:"Presiona ${bold}"},{name:"Comando cursiva",legend:"Presiona {italic}"},{name:"Comando subrayado",legend:"Presiona ${underline}"},{name:"Comando enlace",legend:"Presiona ${link}"},{name:"Comando colapsar barra de herramientas",legend:"Presiona ${toolbarCollapse}"},{name:"Acceda al comando de espacio de enfoque anterior",legend:"Presione ${accessPreviousSpace} para acceder al espacio de enfoque inaccesible más cercano antes del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes."},
+{name:"Acceder al siguiente comando de espacio de enfoque",legend:"Pulse ${accessNextSpace} para acceder al espacio de enfoque más cercano inaccesible después del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes."},{name:"Ayuda de accesibilidad",legend:"Presiona ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulador",pause:"Pausa",
+capslock:"Mayúsculas",escape:"Escape",pageUp:"Página arriba",pageDown:"Página abajo",leftArrow:"Flecha izquierda",upArrow:"Flecha arriba",rightArrow:"Flecha derecha",downArrow:"Flecha abajo",insert:"Insertar",leftWindowKey:"Tecla izquierda de Windows",rightWindowKey:"Tecla derecha de Windows",selectKey:"Tecla de selección",numpad0:"Teclado numérico 0",numpad1:"Teclado numérico 1",numpad2:"Teclado numérico 2",numpad3:"Teclado numérico 3",numpad4:"Teclado numérico 4",numpad5:"Teclado numérico 5",numpad6:"Teclado numérico 6",
+numpad7:"Teclado numérico 7",numpad8:"Teclado numérico 8",numpad9:"Teclado numérico 9",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Números",scrollLock:"Bloqueo de desplazamiento",semiColon:"punto y coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Espacio",forwardSlash:"Diagonal",graveAccent:"Acento grave",openBracket:"Abrir paréntesis",
+backSlash:"Diagonal invertida",closeBracket:"Cerrar paréntesis",singleQuote:"Comillas simple"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","es",{title:"Instrucciones de accesibilidad",contents:"Ayuda. Para cerrar presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:'Presiona ${toolbarFocus} para navegar por la barra de herramientas. Para moverse por los distintos grupos de herramientas usa las teclas TAB y MAY+TAB. Para moverse por las distintas herramientas usa FLECHA DERECHA o FECHA IZQUIERDA. Presiona "espacio" o "intro" para activar la herramienta.'},{name:"Editor de diálogo",
-legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor del menú contextual",legend:"Presiona ${contextMenu} o TECLA MENÚ para abrir el menú contextual. Entonces muévete a la siguiente opción del menú con TAB o FLECHA ABAJO. Muévete a la opción previa con SHIFT + TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para seleccionar la opción del menú. Abre el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Regresa al elemento padre del menú con ESC o FLECHA IZQUIERDA. Cierra el menú contextual con ESC."},
-{name:"Lista del Editor",legend:"Dentro de una lista, te mueves al siguiente elemento de la lista con TAB o FLECHA ABAJO. Te mueves al elemento previo de la lista con SHIFT+TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para elegir la opción de la lista. Presiona ESC para cerrar la lista."},{name:"Barra de Ruta del Elemento en el Editor",legend:"Presiona ${elementsPathFocus} para navegar a los elementos de la barra de ruta. Te mueves al siguiente elemento botón con TAB o FLECHA DERECHA. Te mueves al botón previo con SHIFT+TAB o FLECHA IZQUIERDA. Presiona ESPACIO o ENTER para seleccionar el elemento en el editor."}]},
+legend:"Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente."},
+{name:"Editor del menú contextual",legend:"Presiona ${contextMenu} o TECLA MENÚ para abrir el menú contextual. Entonces muévete a la siguiente opción del menú con TAB o FLECHA ABAJO. Muévete a la opción previa con SHIFT + TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para seleccionar la opción del menú. Abre el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Regresa al elemento padre del menú con ESC o FLECHA IZQUIERDA. Cierra el menú contextual con ESC."},{name:"Lista del Editor",
+legend:"Dentro de una lista, te mueves al siguiente elemento de la lista con TAB o FLECHA ABAJO. Te mueves al elemento previo de la lista con SHIFT+TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para elegir la opción de la lista. Presiona ESC para cerrar la lista."},{name:"Barra de Ruta del Elemento en el Editor",legend:"Presiona ${elementsPathFocus} para navegar a los elementos de la barra de ruta. Te mueves al siguiente elemento botón con TAB o FLECHA DERECHA. Te mueves al botón previo con SHIFT+TAB o FLECHA IZQUIERDA. Presiona ESPACIO o ENTER para seleccionar el elemento en el editor."}]},
{name:"Comandos",items:[{name:"Comando deshacer",legend:"Presiona ${undo}"},{name:"Comando rehacer",legend:"Presiona ${redo}"},{name:"Comando negrita",legend:"Presiona ${bold}"},{name:"Comando itálica",legend:"Presiona ${italic}"},{name:"Comando subrayar",legend:"Presiona ${underline}"},{name:"Comando liga",legend:"Presiona ${liga}"},{name:"Comando colapsar barra de herramientas",legend:"Presiona ${toolbarCollapse}"},{name:"Comando accesar el anterior espacio de foco",legend:"Presiona ${accessPreviousSpace} para accesar el espacio de foco no disponible más cercano anterior al cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},
-{name:"Comando accesar el siguiente spacio de foco",legend:"Presiona ${accessNextSpace} para accesar el espacio de foco no disponible más cercano después del cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},{name:"Ayuda de Accesibilidad",legend:"Presiona ${a11yHelp}"}]}],backspace:"Retroceso",tab:"Tabulador",enter:"Ingresar",shift:"Mayús.",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Bloq. Mayús.",escape:"Escape",pageUp:"Regresar Página",
-pageDown:"Avanzar Página",end:"Fin",home:"Inicio",leftArrow:"Flecha Izquierda",upArrow:"Flecha Arriba",rightArrow:"Flecha Derecha",downArrow:"Flecha Abajo",insert:"Insertar","delete":"Suprimir",leftWindowKey:"Tecla Windows Izquierda",rightWindowKey:"Tecla Windows Derecha",selectKey:"Tecla de Selección",numpad0:"Tecla 0 del teclado numérico",numpad1:"Tecla 1 del teclado numérico",numpad2:"Tecla 2 del teclado numérico",numpad3:"Tecla 3 del teclado numérico",numpad4:"Tecla 4 del teclado numérico",numpad5:"Tecla 5 del teclado numérico",
+{name:"Comando accesar el siguiente spacio de foco",legend:"Presiona ${accessNextSpace} para accesar el espacio de foco no disponible más cercano después del cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},{name:"Ayuda de Accesibilidad",legend:"Presiona ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulador",pause:"Pausa",capslock:"Bloq. Mayús.",
+escape:"Escape",pageUp:"Regresar Página",pageDown:"Avanzar Página",leftArrow:"Flecha Izquierda",upArrow:"Flecha Arriba",rightArrow:"Flecha Derecha",downArrow:"Flecha Abajo",insert:"Insertar",leftWindowKey:"Tecla Windows Izquierda",rightWindowKey:"Tecla Windows Derecha",selectKey:"Tecla de Selección",numpad0:"Tecla 0 del teclado numérico",numpad1:"Tecla 1 del teclado numérico",numpad2:"Tecla 2 del teclado numérico",numpad3:"Tecla 3 del teclado numérico",numpad4:"Tecla 4 del teclado numérico",numpad5:"Tecla 5 del teclado numérico",
numpad6:"Tecla 6 del teclado numérico",numpad7:"Tecla 7 del teclado numérico",numpad8:"Tecla 8 del teclado numérico",numpad9:"Tecla 9 del teclado numérico",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto Decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Punto y coma",equalSign:"Signo de Igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Diagonal",
graveAccent:"Acento Grave",openBracket:"Abrir llave",backSlash:"Diagonal Invertida",closeBracket:"Cerrar llave",singleQuote:"Comillas simples"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","et",{title:"Accessibility Instructions",contents:"Abi sisu. Selle dialoogi sulgemiseks vajuta ESC klahvi.",legend:[{name:"Üldine",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","eu",{title:"Erabilerraztasunaren argibideak",contents:"Laguntzaren edukiak. Elkarrizketa-koadro hau ixteko sakatu ESC.",legend:[{name:"Orokorra",items:[{name:"Editorearen tresna-barra",legend:"Sakatu ${toolbarFocus} tresna-barrara nabigatzeko. Tresna-barrako aurreko eta hurrengo taldera joateko erabili TAB eta MAIUS+TAB. Tresna-barrako aurreko eta hurrengo botoira joateko erabili ESKUIN-GEZIA eta EZKER-GEZIA. Sakatu ZURIUNEA edo SARTU tresna-barrako botoia aktibatzeko."},
legend:"Sakatu ${contextMenu} edo APLIKAZIO TEKLA testuinguru-menua irekitzeko. Menuko hurrengo aukerara joateko erabili TAB edo BEHERA GEZIA. Aurreko aukerara nabigatzeko erabili MAIUS+TAB edo GORA GEZIA. Sakatu ZURIUNEA edo SARTU menuko aukera hautatzeko. Ireki uneko aukeraren azpi-menua ZURIUNEA edo SARTU edo ESKUIN-GEZIA erabiliz. Menuko aukera gurasora itzultzeko erabili ESC edo EZKER-GEZIA. Testuinguru-menua ixteko sakatu ESC."},{name:"Editorearen zerrenda-koadroa",legend:"Zerrenda-koadro baten barruan, zerrendako hurrengo elementura joateko erabili TAB edo BEHERA GEZIA. Zerrendako aurreko elementura nabigatzeko MAIUS+TAB edo GORA GEZIA. Sakatu ZURIUNEA edo SARTU zerrendako aukera hautatzeko. Sakatu ESC zerrenda-koadroa ixteko."},
{name:"Editorearen elementuaren bide-barra",legend:"Sakatu ${elementsPathFocus} elementuaren bide-barrara nabigatzeko. Hurrengo elementuaren botoira joateko erabili TAB edo ESKUIN-GEZIA. Aurreko botoira joateko aldiz erabili MAIUS+TAB edo EZKER-GEZIA. Elementua editorean hautatzeko sakatu ZURIUNEA edo SARTU."}]},{name:"Komandoak",items:[{name:"Desegin komandoa",legend:"Sakatu ${undo}"},{name:"Berregin komandoa",legend:"Sakatu ${redo}"},{name:"Lodia komandoa",legend:"Sakatu ${bold}"},{name:"Etzana komandoa",
legend:"Sakatu ${italic}"},{name:"Azpimarratu komandoa",legend:"Sakatu ${underline}"},{name:"Esteka komandoa",legend:"Sakatu ${link}"},{name:"Tolestu tresna-barra komandoa",legend:"Sakatu ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"Erabilerraztasunaren laguntza",legend:"Sakatu ${a11yHelp}"}]}],backspace:"Atzera tekla",tab:"Tabuladorea",enter:"Sartu",shift:"Maius",ctrl:"Ktrl",alt:"Alt",pause:"Pausatu",capslock:"Blok Maius",escape:"Ihes",pageUp:"Page Up",pageDown:"Page Down",end:"Buka",home:"Etxea",leftArrow:"Ezker-gezia",upArrow:"Gora gezia",rightArrow:"Eskuin-gezia",downArrow:"Behera gezia",insert:"Txertatu","delete":"Ezabatu",leftWindowKey:"Ezkerreko Windows tekla",rightWindowKey:"Eskuineko Windows tekla",selectKey:"Hautatu tekla",
+{name:"Erabilerraztasunaren laguntza",legend:"Sakatu ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabuladorea",pause:"Pausatu",capslock:"Blok Maius",escape:"Ihes",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Ezker-gezia",upArrow:"Gora gezia",rightArrow:"Eskuin-gezia",downArrow:"Behera gezia",insert:"Txertatu",leftWindowKey:"Ezkerreko Windows tekla",rightWindowKey:"Eskuineko Windows tekla",selectKey:"Hautatu tekla",
numpad0:"Zenbakizko teklatua 0",numpad1:"Zenbakizko teklatua 1",numpad2:"Zenbakizko teklatua 2",numpad3:"Zenbakizko teklatua 3",numpad4:"Zenbakizko teklatua 4",numpad5:"Zenbakizko teklatua 5",numpad6:"Zenbakizko teklatua 6",numpad7:"Zenbakizko teklatua 7",numpad8:"Zenbakizko teklatua 8",numpad9:"Zenbakizko teklatua 9",multiply:"Biderkatu",add:"Gehitu",subtract:"Kendu",decimalPoint:"Koma hamartarra",divide:"Zatitu",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",
f12:"F12",numLock:"Blok Zenb",scrollLock:"Blok Korr",semiColon:"Puntu eta koma",equalSign:"Berdin zeinua",comma:"Koma",dash:"Marratxoa",period:"Puntua",forwardSlash:"Barra",graveAccent:"Azentu kamutsa",openBracket:"Parentesia ireki",backSlash:"Alderantzizko barra",closeBracket:"Itxi parentesia",singleQuote:"Komatxo bakuna"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","fa",{title:"دستورالعملهای دسترسی",contents:"راهنمای فهرست مطالب. برای بستن این کادر محاورهای ESC را فشار دهید.",legend:[{name:"عمومی",items:[{name:"نوار ابزار ویرایشگر",legend:"${toolbarFocus} را برای باز کردن نوار ابزار بفشارید. با کلید Tab و Shift+Tab در مجموعه نوار ابزار بعدی و قبلی حرکت کنید. برای حرکت در کلید نوار ابزار قبلی و بعدی با کلید جهتنمای راست و چپ جابجا شوید. کلید Space یا Enter را برای فعال کردن کلید نوار ابزار بفشارید."},{name:"پنجره محاورهای ویرایشگر",
legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"منوی متنی ویرایشگر",legend:"${contextMenu} یا کلید برنامههای کاربردی را برای باز کردن منوی متن را بفشارید. سپس میتوانید برای حرکت به گزینه بعدی منو با کلید Tab و یا کلید جهتنمای پایین جابجا شوید. حرکت به گزینه قبلی با Shift+Tab یا کلید جهتنمای بالا. فشردن Space یا Enter برای انتخاب یک گزینه از منو. باز کردن زیر شاخه گزینه منو جاری با کلید Space یا Enter و یا کلید جهتنمای راست و چپ. بازگشت به منوی والد با کلید Esc یا کلید جهتنمای چپ. بستن منوی متن با Esc."},
{name:"جعبه فهرست ویرایشگر",legend:"در داخل جعبه لیست، قلم دوم از اقلام لیست بعدی را با TAB و یا Arrow Down حرکت دهید. انتقال به قلم دوم از اقلام لیست قبلی را با SHIFT + TAB یا UP ARROW. کلید Space یا ENTER را برای انتخاب گزینه لیست بفشارید. کلید ESC را برای بستن جعبه لیست بفشارید."},{name:"ویرایشگر عنصر نوار راه",legend:"برای رفتن به مسیر عناصر ${elementsPathFocus} را بفشارید. حرکت به کلید عنصر بعدی با کلید Tab یا کلید جهتنمای راست. برگشت به کلید قبلی با Shift+Tab یا کلید جهتنمای چپ. فشردن Space یا Enter برای انتخاب یک عنصر در ویرایشگر."}]},
{name:"فرمانها",items:[{name:"بازگشت به آخرین فرمان",legend:"فشردن ${undo}"},{name:"انجام مجدد فرمان",legend:"فشردن ${redo}"},{name:"فرمان درشت کردن متن",legend:"فشردن ${bold}"},{name:"فرمان کج کردن متن",legend:"فشردن ${italic}"},{name:"فرمان زیرخطدار کردن متن",legend:"فشردن ${underline}"},{name:"فرمان پیوند دادن",legend:"فشردن ${link}"},{name:"بستن نوار ابزار فرمان",legend:"فشردن ${toolbarCollapse}"},{name:"دسترسی به فرمان محل تمرکز قبلی",legend:"فشردن ${accessPreviousSpace} برای دسترسی به نزدیکترین فضای قابل دسترسی تمرکز قبل از هشتک، برای مثال: دو عنصر مجاور HR -خط افقی-. تکرار کلید ترکیبی برای رسیدن به فضاهای تمرکز از راه دور."},
-{name:"دسترسی به فضای دستور بعدی",legend:"برای دسترسی به نزدیکترین فضای تمرکز غیر قابل دسترس، ${accessNextSpace} را پس از علامت هشتک بفشارید، برای مثال: دو عنصر مجاور HR -خط افقی-. کلید ترکیبی را برای رسیدن به فضای تمرکز تکرار کنید."},{name:"راهنمای دسترسی",legend:"فشردن ${a11yHelp}"}]}],backspace:"عقبگرد",tab:"برگه",enter:"ورود",shift:"تعویض",ctrl:"کنترل",alt:"دگرساز",pause:"توقف",capslock:"Caps Lock",escape:"گریز",pageUp:"صفحه به بالا",pageDown:"صفحه به پایین",end:"پایان",home:"خانه",leftArrow:"پیکان چپ",
-upArrow:"پیکان بالا",rightArrow:"پیکان راست",downArrow:"پیکان پایین",insert:"ورود","delete":"حذف",leftWindowKey:"کلید چپ ویندوز",rightWindowKey:"کلید راست ویندوز",selectKey:"انتخاب کلید",numpad0:"کلید شماره 0",numpad1:"کلید شماره 1",numpad2:"کلید شماره 2",numpad3:"کلید شماره 3",numpad4:"کلید شماره 4",numpad5:"کلید شماره 5",numpad6:"کلید شماره 6",numpad7:"کلید شماره 7",numpad8:"کلید شماره 8",numpad9:"کلید شماره 9",multiply:"ضرب",add:"افزودن",subtract:"تفریق",decimalPoint:"نقطهی اعشار",divide:"جدا کردن",
+{name:"دسترسی به فضای دستور بعدی",legend:"برای دسترسی به نزدیکترین فضای تمرکز غیر قابل دسترس، ${accessNextSpace} را پس از علامت هشتک بفشارید، برای مثال: دو عنصر مجاور HR -خط افقی-. کلید ترکیبی را برای رسیدن به فضای تمرکز تکرار کنید."},{name:"راهنمای دسترسی",legend:"فشردن ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"برگه",pause:"توقف",capslock:"Caps Lock",escape:"گریز",pageUp:"صفحه به بالا",pageDown:"صفحه به پایین",
+leftArrow:"پیکان چپ",upArrow:"پیکان بالا",rightArrow:"پیکان راست",downArrow:"پیکان پایین",insert:"ورود",leftWindowKey:"کلید چپ ویندوز",rightWindowKey:"کلید راست ویندوز",selectKey:"انتخاب کلید",numpad0:"کلید شماره 0",numpad1:"کلید شماره 1",numpad2:"کلید شماره 2",numpad3:"کلید شماره 3",numpad4:"کلید شماره 4",numpad5:"کلید شماره 5",numpad6:"کلید شماره 6",numpad7:"کلید شماره 7",numpad8:"کلید شماره 8",numpad9:"کلید شماره 9",multiply:"ضرب",add:"افزودن",subtract:"تفریق",decimalPoint:"نقطهی اعشار",divide:"جدا کردن",
f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"علامت تساوی",comma:"کاما",dash:"خط تیره",period:"دوره",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","fi",{title:"Saavutettavuus ohjeet",contents:"Ohjeen sisällöt. Sulkeaksesi tämän dialogin paina ESC.",legend:[{name:"Yleinen",items:[{name:"Editorin työkalupalkki",legend:"Paina ${toolbarFocus} siirtyäksesi työkalupalkkiin. Siirry seuraavaan ja edelliseen työkalupalkin ryhmään TAB ja SHIFT+TAB näppäimillä. Siirry seuraavaan ja edelliseen työkalupainikkeeseen käyttämällä NUOLI OIKEALLE tai NUOLI VASEMMALLE näppäimillä. Paina VÄLILYÖNTI tai ENTER näppäintä aktivoidaksesi työkalupainikkeen."},
{name:"Editorin dialogi",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editorin oheisvalikko",legend:"Paina ${contextMenu} tai SOVELLUSPAINIKETTA avataksesi oheisvalikon. Liiku seuraavaan valikon vaihtoehtoon TAB tai NUOLI ALAS näppäimillä. Siirry edelliseen vaihtoehtoon SHIFT+TAB tai NUOLI YLÖS näppäimillä. Paina VÄLILYÖNTI tai ENTER valitaksesi valikon kohdan. Avataksesi nykyisen kohdan alivalikon paina VÄLILYÖNTI tai ENTER tai NUOLI OIKEALLE painiketta. Siirtyäksesi takaisin valikon ylemmälle tasolle paina ESC tai NUOLI vasemmalle. Oheisvalikko suljetaan ESC painikkeella."},
{name:"Editorin listalaatikko",legend:"Listalaatikon sisällä siirry seuraavaan listan kohtaan TAB tai NUOLI ALAS painikkeilla. Siirry edelliseen listan kohtaan SHIFT+TAB tai NUOLI YLÖS painikkeilla. Paina VÄLILYÖNTI tai ENTER valitaksesi listan vaihtoehdon. Paina ESC sulkeaksesi listalaatikon."},{name:"Editorin elementtipolun palkki",legend:"Paina ${elementsPathFocus} siirtyäksesi elementtipolun palkkiin. Siirry seuraavaan elementtipainikkeeseen TAB tai NUOLI OIKEALLE painikkeilla. Siirry aiempaan painikkeeseen SHIFT+TAB tai NUOLI VASEMMALLE painikkeilla. Paina VÄLILYÖNTI tai ENTER valitaksesi elementin editorissa."}]},
{name:"Komennot",items:[{name:"Peruuta komento",legend:"Paina ${undo}"},{name:"Tee uudelleen komento",legend:"Paina ${redo}"},{name:"Lihavoi komento",legend:"Paina ${bold}"},{name:"Kursivoi komento",legend:"Paina ${italic}"},{name:"Alleviivaa komento",legend:"Paina ${underline}"},{name:"Linkki komento",legend:"Paina ${link}"},{name:"Pienennä työkalupalkki komento",legend:"Paina ${toolbarCollapse}"},{name:"Siirry aiempaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin edellä olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},
-{name:"Siirry seuraavaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin jälkeen olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},{name:"Saavutettavuus ohjeet",legend:"Paina ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numeronäppäimistö 0",numpad1:"Numeronäppäimistö 1",numpad2:"Numeronäppäimistö 2",numpad3:"Numeronäppäimistö 3",numpad4:"Numeronäppäimistö 4",numpad5:"Numeronäppäimistö 5",numpad6:"Numeronäppäimistö 6",numpad7:"Numeronäppäimistö 7",numpad8:"Numeronäppäimistö 8",
+{name:"Siirry seuraavaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin jälkeen olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},{name:"Saavutettavuus ohjeet",legend:"Paina ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numeronäppäimistö 0",numpad1:"Numeronäppäimistö 1",numpad2:"Numeronäppäimistö 2",numpad3:"Numeronäppäimistö 3",numpad4:"Numeronäppäimistö 4",numpad5:"Numeronäppäimistö 5",numpad6:"Numeronäppäimistö 6",numpad7:"Numeronäppäimistö 7",numpad8:"Numeronäppäimistö 8",
numpad9:"Numeronäppäimistö 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puolipiste",equalSign:"Equal Sign",comma:"Pilkku",dash:"Dash",period:"Piste",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","fo",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Falda",add:"Pluss",subtract:"Frádráttar",decimalPoint:"Decimal Point",divide:"Býta",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Javnatekn",comma:"Komma",dash:"Dash",period:"Punktum",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","fr-ca",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer cette fenêtre, appuyez sur ESC.",legend:[{name:"Général",items:[{name:"Barre d'outil de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches TAB et SHIFT+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLECHE DROITE et FLECHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRER pour activer le bouton de barre d'outils."},
{name:"Dialogue de l'éditeur",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l'option suivante du menu avec les touches TAB ou FLECHE BAS. Se déplacer vers l'option précédente avec les touches SHIFT+TAB ou FLECHE HAUT. appuyer sur la BARRE D'ESPACE ou la touche ENTREE pour sélectionner l'option du menu. Oovrir le sous-menu de l'option courante avec la BARRE D'ESPACE ou les touches ENTREE ou FLECHE DROITE. Revenir à l'élément de menu parent avec les touches ESC ou FLECHE GAUCHE. Fermer le menu contextuel avec ESC."},
{name:"Menu déroulant de l'éditeur",legend:"A l'intérieur d'une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches TAB ou FLECHE BAS. Se déplacer vers l'élément précédent de la liste avec les touches SHIFT+TAB ou FLECHE HAUT. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'option dans la liste. Appuyer sur ESC pour fermer le menu déroulant."},{name:"Barre d'emplacement des éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d'emplacement des éléments de léditeur. Se déplacer vers le bouton d'élément suivant avec les touches TAB ou FLECHE DROITE. Se déplacer vers le bouton d'élément précédent avec les touches SHIFT+TAB ou FLECHE GAUCHE. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'élément dans l'éditeur."}]},
{name:"Commandes",items:[{name:"Annuler",legend:"Appuyer sur ${undo}"},{name:"Refaire",legend:"Appuyer sur ${redo}"},{name:"Gras",legend:"Appuyer sur ${bold}"},{name:"Italique",legend:"Appuyer sur ${italic}"},{name:"Souligné",legend:"Appuyer sur ${underline}"},{name:"Lien",legend:"Appuyer sur ${link}"},{name:"Enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Accéder à l'objet de focus précédent",legend:"Appuyer ${accessPreviousSpace} pour accéder au prochain espace disponible avant le curseur, par exemple: deux éléments HR adjacents. Répéter la combinaison pour joindre les éléments d'espaces distantes."},
-{name:"Accéder au prochain objet de focus",legend:"Appuyer ${accessNextSpace} pour accéder au prochain espace disponible après le curseur, par exemple: deux éléments HR adjacents. Répéter la combinaison pour joindre les éléments d'espaces distantes."},{name:"Aide d'accessibilité",legend:"Appuyer sur ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",
-f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+{name:"Accéder au prochain objet de focus",legend:"Appuyer ${accessNextSpace} pour accéder au prochain espace disponible après le curseur, par exemple: deux éléments HR adjacents. Répéter la combinaison pour joindre les éléments d'espaces distantes."},{name:"Aide d'accessibilité",legend:"Appuyer sur ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",
+pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",
+f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer ce dialogue, appuyez sur la touche ÉCHAP (Echappement).",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRÉE pour activer le bouton de barre d'outils."},
-{name:"Dialogue de l'éditeur",legend:"Dans un dialogue, appuyer sur TAB pour aller à l'élément suivant du dialogue, appuyer sur MAJ+TAB pour aller à l'élément précédent du dialogue, appuyer sur ECHAP pour annuler le dialogue. Quand un dialogue a de multiples onglets, on peut accéder à la liste des onglets avec ALT+F10 ou avec TAB. Dans la liste des onglets, se déplacer vers le suivant ou le précédent avec les FLECHES DROITE et GAUCHE respectivement."},{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l'option suivante du menu avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l'option précédente avec les touches MAJ+TAB ou FLÈCHE HAUT. appuyer sur la BARRE D'ESPACE ou la touche ENTRÉE pour sélectionner l'option du menu. Oovrir le sous-menu de l'option courante avec la BARRE D'ESPACE ou les touches ENTRÉE ou FLÈCHE DROITE. Revenir à l'élément de menu parent avec les touches ÉCHAP ou FLÈCHE GAUCHE. Fermer le menu contextuel avec ÉCHAP."},
-{name:"Zone de liste de l'éditeur",legend:"Dans la liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l'élément précédent de la liste avec les touches MAJ+TAB ou FLÈCHE HAUT. Appuyer sur la BARRE D'ESPACE ou sur ENTRÉE pour sélectionner l'option dans la liste. Appuyer sur ÉCHAP pour fermer le menu déroulant."},{name:"Barre d'emplacement des éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d'emplacement des éléments de l'éditeur. Se déplacer vers le bouton d'élément suivant avec les touches TAB ou FLÈCHE DROITE. Se déplacer vers le bouton d'élément précédent avec les touches MAJ+TAB ou FLÈCHE GAUCHE. Appuyer sur la BARRE D'ESPACE ou sur ENTRÉE pour sélectionner l'élément dans l'éditeur."}]},
-{name:"Commandes",items:[{name:" Annuler la commande",legend:"Appuyer sur ${undo}"},{name:"Refaire la commande",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Accéder à la précédente commande d'espace de mise au point",
-legend:"Appuyez sur ${accessPreviousSpace} pour accéder à l'espace hors d'atteinte le plus proche avant le caret, par exemple: deux éléments HR adjacents. Répétez la combinaison de touches pour atteindre les espaces de mise au point distants."},{name:"Accès à la prochaine commande de l'espace de mise au point",legend:"Appuyez sur ${accessNextSpace} pour accéder au plus proche espace de mise au point hors d'atteinte après le caret, par exemple: deux éléments HR adjacents. répétez la combinaison de touches pour atteindre les espace de mise au point distants."},
-{name:" Aide Accessibilité",legend:"Appuyer sur ${a11yHelp}"}]}],backspace:"Retour arrière",tab:"Tabulation",enter:"Entrée",shift:"Majuscule",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Verr. Maj.",escape:"Échap",pageUp:"Page supérieure",pageDown:"Page inférieure",end:"Fin",home:"Retour",leftArrow:"Flèche gauche",upArrow:"Flèche haute",rightArrow:"Flèche droite",downArrow:"Flèche basse",insert:"Insertion","delete":"Supprimer",leftWindowKey:"Touche Windows gauche",rightWindowKey:"Touche Windows droite",
-selectKey:"Touche menu",numpad0:"Pavé numérique 0",numpad1:"Pavé numérique 1",numpad2:"Pavé numérique 2",numpad3:"Pavé numérique 3",numpad4:"Pavé numérique 4",numpad5:"Pavé numérique 5",numpad6:"Pavé numérique 6",numpad7:"Pavé numérique 7",numpad8:"Pavé numérique 8",numpad9:"Pavé numérique 9",multiply:"Multiplier",add:"Addition",subtract:"Soustraire",decimalPoint:"Point décimal",divide:"Diviser",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",
-numLock:"Verrouillage numérique",scrollLock:"Arrêt défilement",semiColon:"Point virgule",equalSign:"Signe égal",comma:"Virgule",dash:"Tiret",period:"Point",forwardSlash:"Barre oblique",graveAccent:"Accent grave",openBracket:"Parenthèse ouvrante",backSlash:"Barre oblique inverse",closeBracket:"Parenthèse fermante",singleQuote:"Apostrophe"});
\ No newline at end of file
+CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers le groupe suivant ou précédent de la barre d'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d'espace ou la touche Entrée pour activer le bouton de barre d'outils."},
+{name:"Fenêtre de l'éditeur",legend:"Dans une boîte de dialogue, appuyer sur Tab pour passer à l'élément suivant, appuyer sur Maj+Tab pour passer à l'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement."},{name:"Menu contextuel de l'éditeur",
+legend:"Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d'espace ou la touche Entrée pour sélectionner l'option du menu. Appuyer sur la barre d'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l'option sélectionnée. Revenir à l'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap."},
+{name:"Zone de liste de l'éditeur",legend:"Dans une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d'espace ou sur Entrée pour sélectionner l'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant."},{name:"Barre du chemin d'éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d'Ariane des éléments. Se déplacer vers le bouton de l'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d'espace ou sur Entrée pour sélectionner l'élément dans l'éditeur."}]},
+{name:"Commandes",items:[{name:" Annuler la commande",legend:"Appuyer sur ${undo}"},{name:"Commande restaurer",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Commande d'accès à l'élément sélectionnable précédent",
+legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents."},{name:"Commande d'accès à l'élément sélectionnable suivant",legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants."},
+{name:" Aide sur l'accessibilité",legend:"Appuyer sur ${a11yHelp}"},{name:"Coller comme texte sans mise en forme",legend:"Appuyer sur ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulation",pause:"Pause",capslock:"Verr. Maj.",escape:"Échap",pageUp:"Page supérieure",pageDown:"Page suivante",leftArrow:"Flèche gauche",upArrow:"Flèche haut",rightArrow:"Flèche droite",downArrow:"Flèche basse",insert:"Inser",leftWindowKey:"Touche Windows gauche",rightWindowKey:"Touche Windows droite",
+selectKey:"Touche Sélectionner",numpad0:"0 du pavé numérique",numpad1:"1 du pavé numérique",numpad2:"2 du pavé numérique",numpad3:"3 du pavé numérique",numpad4:"4 du pavé numérique",numpad5:"5 du pavé numérique",numpad6:"6 du pavé numérique",numpad7:"7 du pavé numérique",numpad8:"Pavé numérique 8",numpad9:"9 du pavé numérique",multiply:"Multiplier",add:"Plus",subtract:"Moins",decimalPoint:"Point décimal",divide:"Diviser",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",
+f11:"F11",f12:"F12",numLock:"Verr. Num.",scrollLock:"Arrêt défil.",semiColon:"Point-virgule",equalSign:"Signe égal",comma:"Virgule",dash:"Tiret",period:"Point",forwardSlash:"Barre oblique",graveAccent:"Accent grave",openBracket:"Parenthèse ouvrante",backSlash:"Barre oblique inverse",closeBracket:"Parenthèse fermante",singleQuote:"Apostrophe"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","gl",{title:"Instrucións de accesibilidade",contents:"Axuda. Para pechar este diálogo prema ESC.",legend:[{name:"Xeral",items:[{name:"Barra de ferramentas do editor",legend:"Prema ${toolbarFocus} para navegar pola barra de ferramentas. Para moverse polos distintos grupos de ferramentas use as teclas TAB e MAIÚS+TAB. Para moverse polas distintas ferramentas use FRECHA DEREITA ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para activar o botón da barra de ferramentas."},
-{name:"Editor de diálogo",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor do menú contextual",legend:"Prema ${contextMenu} ou a TECLA MENÚ para abrir o menú contextual. A seguir móvase á seguinte opción do menú con TAB ou FRECHA ABAIXO. Móvase á opción anterior con MAIÚS + TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para seleccionar a opción do menú. Abra o submenú da opción actual con ESPAZO ou INTRO ou FRECHA DEREITA. Regrese ao elemento principal do menú con ESC ou FRECHA ESQUERDA. Peche o menú contextual con ESC."},
-{name:"Lista do editor",legend:"Dentro dunha lista, móvase ao seguinte elemento da lista con TAB ou FRECHA ABAIXO. Móvase ao elemento anterior da lista con MAIÚS+TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para escoller a opción da lista. Prema ESC para pechar a lista."},{name:"Barra da ruta ao elemento no editor",legend:"Prema ${elementsPathFocus} para navegar ata os elementos da barra de ruta. Móvase ao seguinte elemento botón con TAB ou FRECHA DEREITA. Móvase ao botón anterior con MAIÚS+TAB ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para seleccionar o elemento no editor."}]},
-{name:"Ordes",items:[{name:"Orde «desfacer»",legend:"Prema ${undo}"},{name:"Orde «refacer»",legend:"Prema ${redo}"},{name:"Orde «negra»",legend:"Prema ${bold}"},{name:"Orde «cursiva»",legend:"Prema ${italic}"},{name:"Orde «subliñar»",legend:"Prema ${underline}"},{name:"Orde «ligazón»",legend:"Prema ${link}"},{name:"Orde «contraer a barra de ferramentas»",legend:"Prema ${toolbarCollapse}"},{name:"Orde «acceder ao anterior espazo en foco»",legend:"Prema ${accessPreviousSpace} para acceder ao espazo máis próximo de foco inalcanzábel anterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},
-{name:"Orde «acceder ao seguinte espazo en foco»",legend:"Prema ${accessNextSpace} para acceder ao espazo máis próximo de foco inalcanzábel posterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Axuda da accesibilidade",legend:"Prema ${a11yHelp}"}]}],backspace:"Ir atrás",tab:"Tabulador",enter:"Intro",shift:"Maiús",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Bloq. Maiús",escape:"Escape",pageUp:"Páxina arriba",
-pageDown:"Páxina abaixo",end:"Fin",home:"Inicio",leftArrow:"Frecha esquerda",upArrow:"Frecha arriba",rightArrow:"Frecha dereita",downArrow:"Frecha abaixo",insert:"Inserir","delete":"Supr",leftWindowKey:"Tecla Windows esquerda",rightWindowKey:"Tecla Windows dereita",selectKey:"Escolla a tecla",numpad0:"Tec. numérico 0",numpad1:"Tec. numérico 1",numpad2:"Tec. numérico 2",numpad3:"Tec. numérico 3",numpad4:"Tec. numérico 4",numpad5:"Tec. numérico 5",numpad6:"Tec. numérico 6",numpad7:"Tec. numérico 7",
-numpad8:"Tec. numérico 8",numpad9:"Tec. numérico 9",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloq. num.",scrollLock:"Bloq. despraz.",semiColon:"Punto e coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Barra inclinada",graveAccent:"Acento grave",openBracket:"Abrir corchete",backSlash:"Barra invertida",
-closeBracket:"Pechar corchete",singleQuote:"Comiña simple"});
\ No newline at end of file
+{name:"Editor de diálogo",legend:"Dentro do diálogo, prema TAB para navegar cara os seguintes elementos de diálogo, prema MAIÚS+TAB para moverse cara os anteriores elementos de diálogo, prema INTRO para enviar o diálogo, prema ESC para cancelar o diálogo. Cando o diálogo ten múltiples lapelas, a lista de lapelas pode cinguirse con ALT+F10 ou con TAB como parte da orde de lapelas do diálogo. Coa lapela en foco, pode moverse cara a seguinte ou a anterior lapela coas FRECHAS ESQUERDA e DEREICHA respectivamente."},
+{name:"Editor do menú contextual",legend:"Prema ${contextMenu} ou a TECLA MENÚ para abrir o menú contextual. A seguir móvase á seguinte opción do menú con TAB ou FRECHA ABAIXO. Móvase á opción anterior con MAIÚS + TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para seleccionar a opción do menú. Abra o submenú da opción actual con ESPAZO ou INTRO ou FRECHA DEREITA. Regrese ao elemento principal do menú con ESC ou FRECHA ESQUERDA. Peche o menú contextual con ESC."},{name:"Lista do editor",legend:"Dentro dunha lista, móvase ao seguinte elemento da lista con TAB ou FRECHA ABAIXO. Móvase ao elemento anterior da lista con MAIÚS+TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para escoller a opción da lista. Prema ESC para pechar a lista."},
+{name:"Barra da ruta ao elemento no editor",legend:"Prema ${elementsPathFocus} para navegar ata os elementos da barra de ruta. Móvase ao seguinte elemento botón con TAB ou FRECHA DEREITA. Móvase ao botón anterior con MAIÚS+TAB ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para seleccionar o elemento no editor."}]},{name:"Ordes",items:[{name:"Orde «desfacer»",legend:"Prema ${undo}"},{name:"Orde «refacer»",legend:"Prema ${redo}"},{name:"Orde «negra»",legend:"Prema ${bold}"},{name:"Orde «cursiva»",legend:"Prema ${italic}"},
+{name:"Orde «subliñar»",legend:"Prema ${underline}"},{name:"Orde «ligazón»",legend:"Prema ${link}"},{name:"Orde «contraer a barra de ferramentas»",legend:"Prema ${toolbarCollapse}"},{name:"Orde «acceder ao anterior espazo en foco»",legend:"Prema ${accessPreviousSpace} para acceder ao espazo máis próximo de foco inalcanzábel anterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Orde «acceder ao seguinte espazo en foco»",
+legend:"Prema ${accessNextSpace} para acceder ao espazo máis próximo de foco inalcanzábel posterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Axuda da accesibilidade",legend:"Prema ${a11yHelp}"},{name:"Pegar como texto simple",legend:"Prema ${pastetext}",legendEdge:"Prema ${pastetext}, seguido de ${paste}"}]}],tab:"Tabulador",pause:"Pausa",capslock:"Bloq. Maiús",escape:"Escape",pageUp:"Páxina arriba",pageDown:"Páxina abaixo",
+leftArrow:"Frecha esquerda",upArrow:"Frecha arriba",rightArrow:"Frecha dereita",downArrow:"Frecha abaixo",insert:"Inserir",leftWindowKey:"Tecla Windows esquerda",rightWindowKey:"Tecla Windows dereita",selectKey:"Escolla a tecla",numpad0:"Tec. numérico 0",numpad1:"Tec. numérico 1",numpad2:"Tec. numérico 2",numpad3:"Tec. numérico 3",numpad4:"Tec. numérico 4",numpad5:"Tec. numérico 5",numpad6:"Tec. numérico 6",numpad7:"Tec. numérico 7",numpad8:"Tec. numérico 8",numpad9:"Tec. numérico 9",multiply:"Multiplicar",
+add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloq. num.",scrollLock:"Bloq. despraz.",semiColon:"Punto e coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Barra inclinada",graveAccent:"Acento grave",openBracket:"Abrir corchete",backSlash:"Barra invertida",closeBracket:"Pechar corchete",singleQuote:"Comiña simple"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","gu",{title:"એક્ક્ષેબિલિટી ની વિગતો",contents:"હેલ્પ. આ બંધ કરવા ESC દબાવો.",legend:[{name:"જનરલ",items:[{name:"એડિટર ટૂલબાર",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"એડિટર ડાયલોગ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"કમાંડસ",items:[{name:"અન્ડું કમાંડ",legend:"$ દબાવો {undo}"},{name:"ફરી કરો કમાંડ",legend:"$ દબાવો {redo}"},{name:"બોલ્દનો કમાંડ",legend:"$ દબાવો {bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","he",{title:"הוראות נגישות",contents:"הוראות נגישות. לסגירה לחץ אסקייפ (ESC).",legend:[{name:"כללי",items:[{name:"סרגל הכלים",legend:"לחץ על ${toolbarFocus} כדי לנווט לסרגל הכלים. עבור לכפתור הבא עם מקש הטאב (TAB) או חץ שמאלי. עבור לכפתור הקודם עם מקש השיפט (SHIFT) + טאב (TAB) או חץ ימני. לחץ רווח או אנטר (ENTER) כדי להפעיל את הכפתור הנבחר."},{name:"דיאלוגים (חלונות תשאול)",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"תפריט ההקשר (Context Menu)",legend:"לחץ ${contextMenu} או APPLICATION KEYכדי לפתוח את תפריט ההקשר. עבור לאפשרות הבאה עם טאב (TAB) או חץ למטה. עבור לאפשרות הקודמת עם שיפט (SHIFT) + טאב (TAB) או חץ למעלה. לחץ רווח או אנטר (ENTER) כדי לבחור את האפשרות. פתח את תת התפריט (Sub-menu) של האפשרות הנוכחית עם רווח או אנטר (ENTER) או חץ שמאלי. חזור לתפריט האב עם אסקייפ (ESC) או חץ שמאלי. סגור את תפריט ההקשר עם אסקייפ (ESC)."},{name:"תפריטים צפים (List boxes)",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"עץ אלמנטים (Elements Path)",legend:"לחץ ${elementsPathFocus} כדי לנווט לעץ האלמנטים. עבור לפריט הבא עם טאב (TAB) או חץ ימני. עבור לפריט הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. לחץ רווח או אנטר (ENTER) כדי לבחור את האלמנט בעורך."}]},{name:"פקודות",items:[{name:" ביטול צעד אחרון",legend:"לחץ ${undo}"},{name:" חזרה על צעד אחרון",legend:"לחץ ${redo}"},{name:" הדגשה",legend:"לחץ ${bold}"},{name:" הטייה",legend:"לחץ ${italic}"},{name:" הוספת קו תחתון",legend:"לחץ ${underline}"},{name:" הוספת לינק",
legend:"לחץ ${link}"},{name:" כיווץ סרגל הכלים",legend:"לחץ ${toolbarCollapse}"},{name:"גישה למיקום המיקוד הקודם",legend:"לחץ ${accessPreviousSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב לפני הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."},{name:"גישה למיקום המיקוד הבא",legend:"לחץ ${accessNextSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב אחרי הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."},
-{name:" הוראות נגישות",legend:"לחץ ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"חץ שמאלה",upArrow:"חץ למעלה",rightArrow:"חץ ימינה",downArrow:"חץ למטה",insert:"הכנס","delete":"מחק",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"בחר מקש",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",
+{name:" הוראות נגישות",legend:"לחץ ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"חץ שמאלה",upArrow:"חץ למעלה",rightArrow:"חץ ימינה",downArrow:"חץ למטה",insert:"הכנס",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"בחר מקש",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",
numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"הוסף",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"סלאש",graveAccent:"Grave Accent",
openBracket:"Open Bracket",backSlash:"סלאש הפוך",closeBracket:"Close Bracket",singleQuote:"ציטוט יחיד"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","hi",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"सामान्य",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","hr",{title:"Upute dostupnosti",contents:"Sadržaj pomoći. Za zatvaranje pritisnite ESC.",legend:[{name:"Općenito",items:[{name:"Alatna traka",legend:"Pritisni ${toolbarFocus} za navigaciju do alatne trake. Pomicanje do prethodne ili sljedeće alatne grupe vrši se pomoću SHIFT+TAB i TAB. Pomicanje do prethodnog ili sljedećeg gumba u alatnoj traci vrši se pomoću lijeve i desne strelice kursora. Pritisnite SPACE ili ENTER za aktivaciju alatne trake."},{name:"Dijalog",
-legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstni izbornik",legend:"Pritisnite ${contextMenu} ili APPLICATION tipku za otvaranje kontekstnog izbornika. Pomicanje se vrši TAB ili strelicom kursora prema dolje ili SHIFT+TAB ili strelica kursora prema gore. SPACE ili ENTER odabiru opciju izbornika. Otvorite podizbornik trenutne opcije sa SPACE, ENTER ili desna strelica kursora. Povratak na prethodni izbornik vrši se sa ESC ili lijevom strelicom kursora. Zatvaranje se vrši pritiskom na tipku ESC."},
+legend:"Unutar dijaloga, pritisnite TAB kako bi navigirali do sljedećeg elementa dijaloga, pritisnite SHIFT+TAB kako bi se pomaknuli do prethodnog elementa, pritisnite ENTER kako bi poslali dijalog, pritisnite ESC za gašenje dijaloga. Kada dijalog ima više kartica, listi kartica se može pristupiti pomoću ALT+F10 ili sa TAB. Kada je fokusirana lista kartica, pomaknite se naprijed ili nazad pomoću strelica LIJEVO ili DESNO."},{name:"Kontekstni izbornik",legend:"Pritisnite ${contextMenu} ili APPLICATION tipku za otvaranje kontekstnog izbornika. Pomicanje se vrši TAB ili strelicom kursora prema dolje ili SHIFT+TAB ili strelica kursora prema gore. SPACE ili ENTER odabiru opciju izbornika. Otvorite podizbornik trenutne opcije sa SPACE, ENTER ili desna strelica kursora. Povratak na prethodni izbornik vrši se sa ESC ili lijevom strelicom kursora. Zatvaranje se vrši pritiskom na tipku ESC."},
{name:"Lista",legend:"Unutar list-boxa, pomicanje na sljedeću stavku vrši se sa TAB ili strelica kursora prema dolje. Na prethodnu sa SHIFT+TAB ili strelica prema gore. Pritiskom na SPACE ili ENTER odabire se stavka ili ESC za zatvaranje."},{name:"Traka putanje elemenata",legend:"Pritisnite ${elementsPathFocus} za navigaciju po putanji elemenata. Pritisnite TAB ili desnu strelicu kursora za pomicanje na sljedeći element ili SHIFT+TAB ili lijeva strelica kursora za pomicanje na prethodni element. Pritiskom na SPACE ili ENTER vrši se odabir elementa."}]},
-{name:"Naredbe",items:[{name:"Vrati naredbu",legend:"Pritisni ${undo}"},{name:"Ponovi naredbu",legend:"Pritisni ${redo}"},{name:"Bold naredba",legend:"Pritisni ${bold}"},{name:"Italic naredba",legend:"Pritisni ${italic}"},{name:"Underline naredba",legend:"Pritisni ${underline}"},{name:"Link naredba",legend:"Pritisni ${link}"},{name:"Smanji alatnu traku naredba",legend:"Pritisni ${toolbarCollapse}"},{name:"Access previous focus space naredba",legend:"Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},
-{name:"Access next focus space naredba",legend:"Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},{name:"Pomoć za dostupnost",legend:"Pritisni ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",
-upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+{name:"Naredbe",items:[{name:"Vrati naredbu",legend:"Pritisni ${undo}"},{name:"Ponovi naredbu",legend:"Pritisni ${redo}"},{name:"Bold naredba",legend:"Pritisni ${bold}"},{name:"Italic naredba",legend:"Pritisni ${italic}"},{name:"Underline naredba",legend:"Pritisni ${underline}"},{name:"Link naredba",legend:"Pritisni ${link}"},{name:"Smanji alatnu traku naredba",legend:"Pritisni ${toolbarCollapse}"},{name:"Naredba za pristupi prethodnom prostoru fokusa",legend:"Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},
+{name:"Naredba za pristup sljedećem prostoru fokusa",legend:"Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},{name:"Pomoć za dostupnost",legend:"Pritisni ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Lijev strelica",upArrow:"Strelica gore",rightArrow:"Desna strelica",downArrow:"Strelica dolje",insert:"Insert",leftWindowKey:"Lijeva Windows tipka",rightWindowKey:"Desna Windows tipka",selectKey:"Tipka Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"umpad 8",numpad9:"Numpad 9",multiply:"Množenje",add:"Zbrajanje",subtract:"Oduzimanje",decimalPoint:"Decimalna točka",divide:"Dijeljenje",
+f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Točka zarez",equalSign:"Jednako",comma:"Zarez",dash:"Crtica",period:"Točka",forwardSlash:"Kosa crta",graveAccent:"Akcent",openBracket:"Otvorena uglata zagrada",backSlash:"Obrnuta kosa crta",closeBracket:"Zatvorena uglata zagrada",singleQuote:"Jednostruki navodnik"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","hu",{title:"Kisegítő utasítások",contents:"Súgó tartalmak. A párbeszédablak bezárásához nyomjon ESC-et.",legend:[{name:"Általános",items:[{name:"Szerkesztő Eszköztár",legend:"Nyomjon ${toolbarFocus} hogy kijelölje az eszköztárat. A következő és előző eszköztár csoporthoz a TAB és SHIFT+TAB-al juthat el. A következő és előző eszköztár gombhoz a BAL NYÍL vagy JOBB NYÍL gombbal juthat el. Nyomjon SPACE-t vagy ENTER-t hogy aktiválja az eszköztár gombot."},{name:"Szerkesző párbeszéd ablak",
-legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Szerkesztő helyi menü",legend:"Nyomjon ${contextMenu}-t vagy ALKALMAZÁS BILLENTYŰT a helyi menü megnyitásához. Ezután a következő menüpontra léphet a TAB vagy LEFELÉ NYÍLLAL. Az előző opciót a SHIFT+TAB vagy FELFELÉ NYÍLLAL érheti el. Nyomjon SPACE-t vagy ENTER-t a menüpont kiválasztásához. A jelenlegi menüpont almenüjének megnyitásához nyomjon SPACE-t vagy ENTER-t, vagy JOBB NYILAT. A főmenühöz való visszatéréshez nyomjon ESC-et vagy BAL NYILAT. A helyi menü bezárása az ESC billentyűvel lehetséges."},
+legend:"Párbeszédablakban nyomjon TAB-ot a következő párbeszédmezőhöz ugráshoz, nyomjon SHIFT + TAB-ot az előző mezőhöz ugráshoz, nyomjon ENTER-t a párbeszédablak elfogadásához, nyomjon ESC-et a párbeszédablak elvetéséhez. Azokhoz a párbeszédablakokhoz, amik több fület tartalmaznak, nyomjon ALT + F10-et vagy TAB-ot hogy a fülekre ugorjon. Ezután a TAB-al vagy a JOBB NYÍLLAL a következő fülre ugorhat."},{name:"Szerkesztő helyi menü",legend:"Nyomjon ${contextMenu}-t vagy ALKALMAZÁS BILLENTYŰT a helyi menü megnyitásához. Ezután a következő menüpontra léphet a TAB vagy LEFELÉ NYÍLLAL. Az előző opciót a SHIFT+TAB vagy FELFELÉ NYÍLLAL érheti el. Nyomjon SPACE-t vagy ENTER-t a menüpont kiválasztásához. A jelenlegi menüpont almenüjének megnyitásához nyomjon SPACE-t vagy ENTER-t, vagy JOBB NYILAT. A főmenühöz való visszatéréshez nyomjon ESC-et vagy BAL NYILAT. A helyi menü bezárása az ESC billentyűvel lehetséges."},
{name:"Szerkesztő lista",legend:"A listán belül a következő elemre a TAB vagy LEFELÉ NYÍLLAL mozoghat. Az előző elem kiválasztásához nyomjon SHIFT+TAB-ot vagy FELFELÉ NYILAT. Nyomjon SPACE-t vagy ENTER-t az elem kiválasztásához. Az ESC billentyű megnyomásával bezárhatja a listát."},{name:"Szerkesztő elem utak sáv",legend:"Nyomj ${elementsPathFocus} hogy kijelöld a elemek út sávját. A következő elem gombhoz a TAB-al vagy a JOBB NYÍLLAL juthatsz el. Az előző gombhoz a SHIFT+TAB vagy BAL NYÍLLAL mehetsz. A SPACE vagy ENTER billentyűvel kiválaszthatod az elemet a szerkesztőben."}]},
{name:"Parancsok",items:[{name:"Parancs visszavonása",legend:"Nyomj ${undo}"},{name:"Parancs megismétlése",legend:"Nyomjon ${redo}"},{name:"Félkövér parancs",legend:"Nyomjon ${bold}"},{name:"Dőlt parancs",legend:"Nyomjon ${italic}"},{name:"Aláhúzott parancs",legend:"Nyomjon ${underline}"},{name:"Link parancs",legend:"Nyomjon ${link}"},{name:"Szerkesztősáv összecsukása parancs",legend:"Nyomjon ${toolbarCollapse}"},{name:"Hozzáférés az előző fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel előtt, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},
-{name:"Hozzáférés a következő fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel után, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},{name:"Kisegítő súgó",legend:"Nyomjon ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"balra nyíl",upArrow:"felfelé nyíl",rightArrow:"jobbra nyíl",downArrow:"lefelé nyíl",insert:"Insert","delete":"Delete",leftWindowKey:"bal Windows-billentyű",rightWindowKey:"jobb Windows-billentyű",selectKey:"Billentyű választása",numpad0:"Számbillentyűk 0",numpad1:"Számbillentyűk 1",numpad2:"Számbillentyűk 2",numpad3:"Számbillentyűk 3",numpad4:"Számbillentyűk 4",numpad5:"Számbillentyűk 5",numpad6:"Számbillentyűk 6",numpad7:"Számbillentyűk 7",numpad8:"Számbillentyűk 8",
+{name:"Hozzáférés a következő fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel után, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},{name:"Kisegítő súgó",legend:"Nyomjon ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"balra nyíl",upArrow:"felfelé nyíl",rightArrow:"jobbra nyíl",downArrow:"lefelé nyíl",insert:"Insert",leftWindowKey:"bal Windows-billentyű",rightWindowKey:"jobb Windows-billentyű",selectKey:"Billentyű választása",numpad0:"Számbillentyűk 0",numpad1:"Számbillentyűk 1",numpad2:"Számbillentyűk 2",numpad3:"Számbillentyűk 3",numpad4:"Számbillentyűk 4",numpad5:"Számbillentyűk 5",numpad6:"Számbillentyűk 6",numpad7:"Számbillentyűk 7",numpad8:"Számbillentyűk 8",
numpad9:"Számbillentyűk 9",multiply:"Szorzás",add:"Hozzáadás",subtract:"Kivonás",decimalPoint:"Tizedespont",divide:"Osztás",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Pontosvessző",equalSign:"Egyenlőségjel",comma:"Vessző",dash:"Kötőjel",period:"Pont",forwardSlash:"Perjel",graveAccent:"Visszafelé dőlő ékezet",openBracket:"Nyitó szögletes zárójel",backSlash:"fordított perjel",closeBracket:"Záró szögletes zárójel",
singleQuote:"szimpla idézőjel"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-CKEDITOR.plugins.setLang("a11yhelp","id",{title:"Accessibility Instructions",contents:"Bantuan. Tekan ESC untuk menutup dialog ini.",legend:[{name:"Umum",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
-{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
-{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
-legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
-numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
-graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+CKEDITOR.plugins.setLang("a11yhelp","id",{title:"Instruksi Accessibility",contents:"Bantuan. Tekan ESC untuk menutup dialog ini.",legend:[{name:"Umum",items:[{name:"Toolbar Editor",legend:"Tekan ${toolbarFocus} untuk berpindah ke toolbar. Untuk berpindah ke group toolbar selanjutnya dan sebelumnya gunakan TAB dan SHIFT+TAB. Untuk berpindah ke tombol toolbar selanjutnya dan sebelumnya gunakan RIGHT ARROW atau LEFT ARROW. Tekan SPASI atau ENTER untuk mengaktifkan tombol toolbar."},{name:"Dialog Editor",
+legend:"Pada jendela dialog, tekan TAB untuk berpindah pada elemen dialog selanjutnya, tekan SHIFT+TAB untuk berpindah pada elemen dialog sebelumnya, tekan ENTER untuk submit dialog, tekan ESC untuk membatalkan dialog. Pada dialog dengan multi tab, daftar tab dapat diakses dengan ALT+F10 ataupun dengan tombol TAB sesuai urutan tab pada dialog. Jika daftar tab aktif terpilih, untuk berpindah tab dapat menggunakan RIGHT dan LEFT ARROW."},{name:"Context Menu Editor",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
+{name:"List Box Editor",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
+{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
+f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","it",{title:"Istruzioni di Accessibilità",contents:"Contenuti di Aiuto. Per chiudere questa finestra premi ESC.",legend:[{name:"Generale",items:[{name:"Barra degli strumenti Editor",legend:"Premere ${toolbarFocus} per passare alla barra degli strumenti. Usare TAB per spostarsi al gruppo successivo, MAIUSC+TAB per spostarsi a quello precedente. Usare FRECCIA DESTRA per spostarsi al pulsante successivo, FRECCIA SINISTRA per spostarsi a quello precedente. Premere SPAZIO o INVIO per attivare il pulsante della barra degli strumenti."},
{name:"Menù contestuale Editor",legend:"Premi ${contextMenu} o TASTO APPLICAZIONE per aprire il menu contestuale. Dunque muoviti all'opzione successiva del menu con il tasto TAB o con la Freccia Sotto. Muoviti all'opzione precedente con MAIUSC+TAB o con Freccia Sopra. Premi SPAZIO o INVIO per scegliere l'opzione di menu. Apri il sottomenu dell'opzione corrente con SPAZIO o INVIO oppure con la Freccia Destra. Torna indietro al menu superiore con ESC oppure Freccia Sinistra. Chiudi il menu contestuale con ESC."},
{name:"Box Lista Editor",legend:"All'interno di un elenco di opzioni, per spostarsi all'elemento successivo premere TAB oppure FRECCIA GIÙ. Per spostarsi all'elemento precedente usare SHIFT+TAB oppure FRECCIA SU. Premere SPAZIO o INVIO per selezionare l'elemento della lista. Premere ESC per chiudere l'elenco di opzioni."},{name:"Barra percorso elementi editor",legend:"Premere ${elementsPathFocus} per passare agli elementi della barra del percorso. Usare TAB o FRECCIA DESTRA per passare al pulsante successivo. Per passare al pulsante precedente premere MAIUSC+TAB o FRECCIA SINISTRA. Premere SPAZIO o INVIO per selezionare l'elemento nell'editor."}]},
{name:"Comandi",items:[{name:" Annulla comando",legend:"Premi ${undo}"},{name:" Ripeti comando",legend:"Premi ${redo}"},{name:" Comando Grassetto",legend:"Premi ${bold}"},{name:" Comando Corsivo",legend:"Premi ${italic}"},{name:" Comando Sottolineato",legend:"Premi ${underline}"},{name:" Comando Link",legend:"Premi ${link}"},{name:" Comando riduci barra degli strumenti",legend:"Premi ${toolbarCollapse}"},{name:"Comando di accesso al precedente spazio di focus",legend:"Premi ${accessPreviousSpace} per accedere il più vicino spazio di focus non raggiungibile prima del simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},
-{name:"Comando di accesso al prossimo spazio di focus",legend:"Premi ${accessNextSpace} per accedere il più vicino spazio di focus non raggiungibile dopo il simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},{name:" Aiuto Accessibilità",legend:"Premi ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Invio",shift:"Maiusc",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Bloc Maiusc",escape:"Esc",pageUp:"Pagina sù",pageDown:"Pagina giù",
-end:"Fine",home:"Inizio",leftArrow:"Freccia sinistra",upArrow:"Freccia su",rightArrow:"Freccia destra",downArrow:"Freccia giù",insert:"Ins","delete":"Canc",leftWindowKey:"Tasto di Windows sinistro",rightWindowKey:"Tasto di Windows destro",selectKey:"Tasto di selezione",numpad0:"0 sul tastierino numerico",numpad1:"1 sul tastierino numerico",numpad2:"2 sul tastierino numerico",numpad3:"3 sul tastierino numerico",numpad4:"4 sul tastierino numerico",numpad5:"5 sul tastierino numerico",numpad6:"6 sul tastierino numerico",
+{name:"Comando di accesso al prossimo spazio di focus",legend:"Premi ${accessNextSpace} per accedere il più vicino spazio di focus non raggiungibile dopo il simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},{name:" Aiuto Accessibilità",legend:"Premi ${a11yHelp}"},{name:"Incolla come testo semplice",legend:"Premi ${pastetext}",legendEdge:"Premi ${pastetext}, seguito da ${paste}"}]}],tab:"Tab",pause:"Pausa",capslock:"Bloc Maiusc",
+escape:"Esc",pageUp:"Pagina sù",pageDown:"Pagina giù",leftArrow:"Freccia sinistra",upArrow:"Freccia su",rightArrow:"Freccia destra",downArrow:"Freccia giù",insert:"Ins",leftWindowKey:"Tasto di Windows sinistro",rightWindowKey:"Tasto di Windows destro",selectKey:"Tasto di selezione",numpad0:"0 sul tastierino numerico",numpad1:"1 sul tastierino numerico",numpad2:"2 sul tastierino numerico",numpad3:"3 sul tastierino numerico",numpad4:"4 sul tastierino numerico",numpad5:"5 sul tastierino numerico",numpad6:"6 sul tastierino numerico",
numpad7:"7 sul tastierino numerico",numpad8:"8 sul tastierino numerico",numpad9:"9 sul tastierino numerico",multiply:"Moltiplicazione",add:"Più",subtract:"Sottrazione",decimalPoint:"Punto decimale",divide:"Divisione",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloc Num",scrollLock:"Bloc Scorr",semiColon:"Punto-e-virgola",equalSign:"Segno di uguale",comma:"Virgola",dash:"Trattino",period:"Punto",forwardSlash:"Barra",graveAccent:"Accento grave",
openBracket:"Parentesi quadra aperta",backSlash:"Barra rovesciata",closeBracket:"Parentesi quadra chiusa",singleQuote:"Apostrofo"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","ja",{title:"ユーザー補助の説明",contents:"ヘルプ このダイアログを閉じるには ESCを押してください。",legend:[{name:"全般",items:[{name:"エディターツールバー",legend:"${toolbarFocus} を押すとツールバーのオン/オフ操作ができます。カーソルをツールバーのグループで移動させるにはTabかSHIFT+Tabを押します。グループ内でカーソルを移動させるには、右カーソルか左カーソルを押します。スペースキーやエンターを押すとボタンを有効/無効にすることができます。"},{name:"編集ダイアログ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"エディターのメニュー",legend:"${contextMenu} キーかAPPLICATION KEYを押すとコンテキストメニューが開きます。Tabか下カーソルでメニューのオプション選択が下に移動します。戻るには、SHIFT+Tabか上カーソルです。スペースもしくはENTERキーでメニューオプションを決定できます。現在選んでいるオプションのサブメニューを開くには、スペース、もしくは右カーソルを押します。サブメニューから親メニューに戻るには、ESCか左カーソルを押してください。ESCでコンテキストメニュー自体をキャンセルできます。"},{name:"エディターリストボックス",legend:"リストボックス内で移動するには、Tabか下カーソルで次のアイテムへ移動します。SHIFT+Tabで前のアイテムに戻ります。リストのオプションを選択するには、スペースもしくは、ENTERを押してください。リストボックスを閉じるには、ESCを押してください。"},{name:"エディター要素パスバー",legend:"${elementsPathFocus} を押すとエレメントパスバーを操作出来ます。Tabか右カーソルで次のエレメントを選択できます。前のエレメントを選択するには、SHIFT+Tabか左カーソルです。スペースもしくは、ENTERでエディタ内の対象エレメントを選択出来ます。"}]},
-{name:"コマンド",items:[{name:"元に戻す",legend:"${undo} をクリック"},{name:"やり直し",legend:"${redo} をクリック"},{name:"太字",legend:"${bold} をクリック"},{name:"斜体 ",legend:"${italic} をクリック"},{name:"下線",legend:"${underline} をクリック"},{name:"リンク",legend:"${link} をクリック"},{name:"ツールバーを縮める",legend:"${toolbarCollapse} をクリック"},{name:"前のカーソル移動のできないポイントへ",legend:"${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},{name:"次のカーソル移動のできないポイントへ",legend:"${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},
-{name:"ユーザー補助ヘルプ",legend:"${a11yHelp} をクリック"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"左矢印",upArrow:"上矢印",rightArrow:"右矢印",downArrow:"下矢印",insert:"Insert","delete":"Delete",leftWindowKey:"左Windowキー",rightWindowKey:"右のWindowキー",selectKey:"Select",numpad0:"Num 0",numpad1:"Num 1",numpad2:"Num 2",numpad3:"Num 3",numpad4:"Num 4",numpad5:"Num 5",
+{name:"コマンド",items:[{name:"元に戻す",legend:"${undo} をクリック"},{name:"やり直し",legend:"${redo} をクリック"},{name:"太字",legend:"${bold} をクリック"},{name:"斜体 ",legend:"${italic} をクリック"},{name:"下線",legend:"${underline} をクリック"},{name:"リンク",legend:"${link} をクリック"},{name:"ツールバーをたたむ",legend:"${toolbarCollapse} をクリック"},{name:"前のカーソル移動のできないポイントへ",legend:"${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},{name:"次のカーソルポイントへ移動する",legend:"${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},
+{name:"ユーザー補助ヘルプ",legend:"${a11yHelp} をクリック"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"左矢印",upArrow:"上矢印",rightArrow:"右矢印",downArrow:"下矢印",insert:"Insert",leftWindowKey:"左Windowキー",rightWindowKey:"右のWindowキー",selectKey:"Select",numpad0:"Num 0",numpad1:"Num 1",numpad2:"Num 2",numpad3:"Num 3",numpad4:"Num 4",numpad5:"Num 5",
numpad6:"Num 6",numpad7:"Num 7",numpad8:"Num 8",numpad9:"Num 9",multiply:"掛ける",add:"足す",subtract:"引く",decimalPoint:"小数点",divide:"割る",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"セミコロン",equalSign:"イコール記号",comma:"カンマ",dash:"ダッシュ",period:"ピリオド",forwardSlash:"フォワードスラッシュ",graveAccent:"グレイヴアクセント",openBracket:"開きカッコ",backSlash:"バックスラッシュ",closeBracket:"閉じカッコ",singleQuote:"シングルクォート"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","km",{title:"Accessibility Instructions",contents:"មាតិកាជំនួយ។ ដើម្បីបិទផ្ទាំងនេះ សូមចុច ESC ។",legend:[{name:"ទូទៅ",items:[{name:"របារឧបករណ៍កម្មវិធីនិពន្ធ",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"ផ្ទាំងកម្មវិធីនិពន្ធ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"ម៉ីនុយបរិបទអ្នកកែសម្រួល",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"ប្រអប់បញ្ជីអ្នកកែសម្រួល",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"ពាក្យបញ្ជា",items:[{name:"ការបញ្ជាមិនធ្វើវិញ",legend:"ចុច ${undo}"},{name:"ការបញ្ជាធ្វើវិញ",legend:"ចុច ${redo}"},{name:"ការបញ្ជាអក្សរដិត",legend:"ចុច ${bold}"},{name:"ការបញ្ជាអក្សរទ្រេត",legend:"ចុច ${italic}"},{name:"ពាក្យបញ្ជាបន្ទាត់ពីក្រោម",
legend:"ចុច ${underline}"},{name:"ពាក្យបញ្ជាតំណ",legend:"ចុច ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"ជំនួយពីភាពងាយស្រួល",legend:"ជួយ ${a11yHelp}"}]}],backspace:"លុបថយក្រោយ",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"ផ្អាក",capslock:"Caps Lock",escape:"ចាកចេញ",pageUp:"ទំព័រលើ",pageDown:"ទំព័រក្រោម",end:"ចុង",home:"ផ្ទះ",leftArrow:"ព្រួញឆ្វេង",upArrow:"ព្រួញលើ",rightArrow:"ព្រួញស្ដាំ",downArrow:"ព្រួញក្រោម",insert:"បញ្ចូល","delete":"លុប",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"ជ្រើសគ្រាប់ចុច",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:"ជំនួយពីភាពងាយស្រួល",legend:"ជួយ ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"ផ្អាក",capslock:"Caps Lock",escape:"ចាកចេញ",pageUp:"ទំព័រលើ",pageDown:"ទំព័រក្រោម",leftArrow:"ព្រួញឆ្វេង",upArrow:"ព្រួញលើ",rightArrow:"ព្រួញស្ដាំ",downArrow:"ព្រួញក្រោម",insert:"បញ្ចូល",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"ជ្រើសគ្រាប់ចុច",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"គុណ",add:"បន្ថែម",subtract:"ដក",decimalPoint:"ចំណុចទសភាគ",divide:"ចែក",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"បិទរំកិល",semiColon:"ចុចក្បៀស",equalSign:"សញ្ញាអឺរ៉ូ",comma:"ក្បៀស",dash:"Dash",period:"ចុច",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",
openBracket:"តង្កៀបបើក",backSlash:"Backslash",closeBracket:"តង្កៀបបិទ",singleQuote:"បន្តក់មួយ"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","ko",{title:"접근성 설명",contents:"도움말. 이 창을 닫으시려면 ESC 를 누르세요.",legend:[{name:"일반",items:[{name:"편집기 툴바",legend:"툴바를 탐색하시려면 ${toolbarFocus} 를 투르세요. 이전/다음 툴바 그룹으로 이동하시려면 TAB 키 또는 SHIFT+TAB 키를 누르세요. 이전/다음 툴바 버튼으로 이동하시려면 오른쪽 화살표 키 또는 왼쪽 화살표 키를 누르세요. 툴바 버튼을 활성화 하려면 SPACE 키 또는 ENTER 키를 누르세요."},{name:"편집기 다이얼로그",legend:"TAB 키를 누르면 다음 대화상자로 이동하고, SHIFT+TAB 키를 누르면 이전 대화상자로 이동합니다. 대화상자를 제출하려면 ENTER 키를 누르고, ESC 키를 누르면 대화상자를 취소합니다. 대화상자에 탭이 여러개 있을 때, ALT+F10 키 또는 TAB 키를 누르면 순서에 따라 탭 목록에 도달할 수 있습니다. 탭 목록에 초점이 맞을 때, 오른쪽과 왼쪽 화살표 키를 이용하면 각각 다음과 이전 탭으로 이동할 수 있습니다."},
{name:"편집기 환경 메뉴",legend:"${contextMenu} 또는 어플리케이션 키를 누르면 환경-메뉴를 열 수 있습니다. 환경-메뉴에서 TAB 키 또는 아래 화살표 키를 누르면 다음 메뉴 옵션으로 이동할 수 있습니다. 이전 옵션으로 이동은 SHIFT+TAB 키 또는 위 화살표 키를 눌러서 할 수 있습니다. 스페이스 키 또는 ENTER 키를 눌러서 메뉴 옵션을 선택할 수 있습니다. 스페이스 키 또는 ENTER 키 또는 오른쪽 화살표 키를 눌러서 하위 메뉴를 열 수 있습니다. 부모 메뉴 항목으로 돌아가려면 ESC 키 또는 왼쪽 화살표 키를 누릅니다. ESC 키를 눌러서 환경-메뉴를 닫습니다."},{name:"편집기 목록 박스",legend:"리스트-박스 내에서, 목록의 다음 항목으로 이동하려면 TAB 키 또는 아래쪽 화살표 키를 누릅니다. 목록의 이전 항목으로 이동하려면 SHIFT+TAB 키 또는 위쪽 화살표 키를 누릅니다. 스페이스 키 또는 ENTER 키를 누르면 목록의 해당 옵션을 선택합니다. ESC 키를 눌러서 리스트-박스를 닫을 수 있습니다."},
{name:"편집기 요소 경로 막대",legend:"${elementsPathFocus}를 눌러서 요소 경로 막대를 탐색할 수 있습니다. 다음 요소로 이동하려면 TAB 키 또는 오른쪽 화살표 키를 누릅니다. SHIFT+TAB 키 또는 왼쪽 화살표 키를 누르면 이전 버튼으로 이동할 수 있습니다. 스페이스 키나 ENTER 키를 누르면 편집기의 해당 항목을 선택합니다."}]},{name:"명령",items:[{name:" 명령 실행 취소",legend:"${undo} 누르시오"},{name:" 명령 다시 실행",legend:"${redo} 누르시오"},{name:" 굵게 명령",legend:"${bold} 누르시오"},{name:" 기울임 꼴 명령",legend:"${italic} 누르시오"},{name:" 밑줄 명령",legend:"${underline} 누르시오"},{name:" 링크 명령",legend:"${link} 누르시오"},{name:" 툴바 줄이기 명령",legend:"${toolbarCollapse} 누르시오"},
-{name:" 이전 포커스 공간 접근 명령",legend:"탈자 기호(^) 이전에 ${accessPreviousSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다."},{name:"다음 포커스 공간 접근 명령",legend:"탈자 기호(^) 다음에 ${accessNextSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다. "},{name:" 접근성 도움말",legend:"${a11yHelp} 누르시오"}]}],backspace:"Backspace 키",tab:"탭 키",enter:"엔터 키",shift:"시프트 키",ctrl:"컨트롤 키",alt:"알트 키",pause:"일시정지 키",capslock:"캡스 록 키",
-escape:"이스케이프 키",pageUp:"페이지 업 키",pageDown:"페이지 다운 키",end:"엔드 키",home:"홈 키",leftArrow:"왼쪽 화살표 키",upArrow:"위쪽 화살표 키",rightArrow:"오른쪽 화살표 키",downArrow:"아래쪽 화살표 키",insert:"인서트 키","delete":"삭제 키",leftWindowKey:"왼쪽 윈도우 키",rightWindowKey:"오른쪽 윈도우 키",selectKey:"셀렉트 키",numpad0:"숫자 패드 0 키",numpad1:"숫자 패드 1 키",numpad2:"숫자 패드 2 키",numpad3:"숫자 패드 3 키",numpad4:"숫자 패드 4 키",numpad5:"숫자 패드 5 키",numpad6:"숫자 패드 6 키",numpad7:"숫자 패드 7 키",numpad8:"숫자 패드 8 키",numpad9:"숫자 패드 9 키",multiply:"곱셈(*) 키",add:"덧셈(+) 키",subtract:"뺄셈(-) 키",
+{name:" 이전 포커스 공간 접근 명령",legend:"탈자 기호(^) 이전에 ${accessPreviousSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다."},{name:"다음 포커스 공간 접근 명령",legend:"탈자 기호(^) 다음에 ${accessNextSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다. "},{name:" 접근성 도움말",legend:"${a11yHelp} 누르시오"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],
+tab:"탭 키",pause:"일시정지 키",capslock:"캡스 록 키",escape:"이스케이프 키",pageUp:"페이지 업 키",pageDown:"페이지 다운 키",leftArrow:"왼쪽 화살표 키",upArrow:"위쪽 화살표 키",rightArrow:"오른쪽 화살표 키",downArrow:"아래쪽 화살표 키",insert:"인서트 키",leftWindowKey:"왼쪽 윈도우 키",rightWindowKey:"오른쪽 윈도우 키",selectKey:"셀렉트 키",numpad0:"숫자 패드 0 키",numpad1:"숫자 패드 1 키",numpad2:"숫자 패드 2 키",numpad3:"숫자 패드 3 키",numpad4:"숫자 패드 4 키",numpad5:"숫자 패드 5 키",numpad6:"숫자 패드 6 키",numpad7:"숫자 패드 7 키",numpad8:"숫자 패드 8 키",numpad9:"숫자 패드 9 키",multiply:"곱셈(*) 키",add:"덧셈(+) 키",subtract:"뺄셈(-) 키",
decimalPoint:"온점(.) 키",divide:"나눗셈(/) 키",f1:"F1 키",f2:"F2 키",f3:"F3 키",f4:"F4 키",f5:"F5 키",f6:"F6 키",f7:"F7 키",f8:"F8 키",f9:"F9 키",f10:"F10 키",f11:"F11 키",f12:"F12 키",numLock:"Num Lock 키",scrollLock:"Scroll Lock 키",semiColon:"세미콜론(;) 키",equalSign:"등호(\x3d) 키",comma:"쉼표(,) 키",dash:"대시(-) 키",period:"온점(.) 키",forwardSlash:"슬래시(/) 키",graveAccent:"억음 악센트(`) 키",openBracket:"브라켓 열기([) 키",backSlash:"역슬래시(\\\\) 키",closeBracket:"브라켓 닫기(]) 키",singleQuote:"외 따옴표(') 키"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","ku",{title:"ڕێنمای لەبەردەستدابوون",contents:"پێکهاتەی یارمەتی. کلیك ESC بۆ داخستنی ئەم دیالۆگه.",legend:[{name:"گشتی",items:[{name:"تووڵامرازی دەستكاریكەر",legend:"کلیك ${toolbarFocus} بۆ ڕابەری تووڵامراز. بۆ گواستنەوەی پێشوو داهاتووی گرووپی تووڵامرازی داگرتنی کلیلی TAB لەگەڵ SHIFT+TAB. بۆ گواستنەوەی پێشوو داهاتووی دووگمەی تووڵامرازی لەڕێی کلیلی تیری دەستی ڕاست یان کلیلی تیری دەستی چەپ. کلیکی کلیلی SPACE یان ENTER بۆ چالاککردنی دووگمەی تووڵامراز."},{name:"دیالۆگی دەستكاریكەر",
legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"پێڕستی سەرنووسەر",legend:"کلیك ${contextMenu} یان دوگمەی لیسته(Menu) بۆ کردنەوەی لیستەی دەق. بۆ چوونە هەڵبژاردەیەکی تر له لیسته کلیکی کلیلی TAB یان کلیلی تیری ڕوو لەخوارەوه بۆ چوون بۆ هەڵبژاردەی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو له سەرەوە. داگرتنی کلیلی SPACE یان ENTER بۆ هەڵبژاردنی هەڵبژاردەی لیسته. بۆ کردنەوەی لقی ژێر لیسته لەهەڵبژاردەی لیستە کلیکی کلیلی SPACE یان ENTER یان کلیلی تیری دەستی ڕاست. بۆ گەڕانەوه بۆ سەرەوەی لیسته کلیکی کلیلی ESC یان کلیلی تیری دەستی چەپ. بۆ داخستنی لیستە کلیكی کلیلی ESC بکە."},
{name:"لیستی سنووقی سەرنووسەر",legend:"لەناو سنوقی لیست, چۆن بۆ هەڵنبژاردەی لیستێکی تر کلیکی کلیلی TAB یان کلیلی تیری ڕوو لەخوار. چوون بۆ هەڵبژاردەی لیستی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو لەسەرەوه. کلیکی کلیلی SPACE یان ENTER بۆ دیاریکردنی هەڵبژاردەی لیست. کلیکی کلیلی ESC بۆ داخستنی سنوقی لیست."},{name:"تووڵامرازی توخم",legend:"کلیك ${elementsPathFocus} بۆ ڕابەری تووڵامرازی توخمەکان. چوون بۆ دوگمەی توخمێکی تر کلیکی کلیلی TAB یان کلیلی تیری دەستی ڕاست. چوون بۆ دوگمەی توخمی پێشوو کلیلی SHIFT+TAB یان کلیکی کلیلی تیری دەستی چەپ. داگرتنی کلیلی SPACE یان ENTER بۆ دیاریکردنی توخمەکه لەسەرنووسه."}]},
{name:"فەرمانەکان",items:[{name:"پووچکردنەوەی فەرمان",legend:"کلیك ${undo}"},{name:"هەڵگەڕانەوەی فەرمان",legend:"کلیك ${redo}"},{name:"فەرمانی دەقی قەڵەو",legend:"کلیك ${bold}"},{name:"فەرمانی دەقی لار",legend:"کلیك ${italic}"},{name:"فەرمانی ژێرهێڵ",legend:"کلیك ${underline}"},{name:"فەرمانی بهستەر",legend:"کلیك ${link}"},{name:"شاردەنەوەی تووڵامراز",legend:"کلیك ${toolbarCollapse}"},{name:"چوونەناو سەرنجدانی پێشوی فەرمانی بۆشایی",legend:"کلیک ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"چوونەناو سەرنجدانی داهاتووی فەرمانی بۆشایی",legend:"کلیک ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"دەستپێگەیشتنی یارمەتی",legend:"کلیك ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",
-upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"پەنجەرەی چەپ",rightWindowKey:"پەنجەرەی ڕاست",selectKey:"Select",numpad0:"Numpad 0",numpad1:"1",numpad2:"2",numpad3:"3",numpad4:"4",numpad5:"5",numpad6:"6",numpad7:"7",numpad8:"8",numpad9:"9",multiply:"*",add:"+",subtract:"-",decimalPoint:".",divide:"/",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",
+{name:"چوونەناو سەرنجدانی داهاتووی فەرمانی بۆشایی",legend:"کلیک ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"دەستپێگەیشتنی یارمەتی",legend:"کلیك ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"پەنجەرەی چەپ",rightWindowKey:"پەنجەرەی ڕاست",selectKey:"Select",numpad0:"Numpad 0",numpad1:"1",numpad2:"2",numpad3:"3",numpad4:"4",numpad5:"5",numpad6:"6",numpad7:"7",numpad8:"8",numpad9:"9",multiply:"*",add:"+",subtract:"-",decimalPoint:".",divide:"/",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",
semiColon:";",equalSign:"\x3d",comma:",",dash:"-",period:".",forwardSlash:"/",graveAccent:"`",openBracket:"[",backSlash:"\\\\",closeBracket:"}",singleQuote:"'"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","lt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Bendros savybės",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","lv",{title:"Pieejamības instrukcija",contents:"Palīdzības saturs. Lai aizvērtu ciet šo dialogu nospiediet ESC.",legend:[{name:"Galvenais",items:[{name:"Redaktora rīkjosla",legend:"Nospiediet ${toolbarFocus} lai pārvietotos uz rīkjoslu. Lai pārvietotos uz nākošo vai iepriekšējo rīkjoslas grupu izmantojiet pogu TAB un SHIFT+TAB. Lai pārvietotos uz nākošo vai iepriekšējo rīkjoslas pogu izmantojiet Kreiso vai Labo bultiņu. Nospiediet Atstarpi vai ENTER lai aktivizētu rīkjosla pogu."},
{name:"Redaktora saraksta lauks",legend:"Saraksta laukā, lai pārvietotos uz nākošo saraksta elementu nospiediet TAB vai pogu Bultiņa uz leju. Lai pārvietotos uz iepriekšējo saraksta elementu nospiediet SHIFT+TAB vai pogu Bultiņa uz augšu. Nospiediet SPACE vai ENTER lai izvēlētos saraksta opcijas. Nospiediet ESC lai aizvērtu saraksta lauku."},{name:"Redaktora elementa ceļa josla",legend:"Nospiediet ${elementsPathFocus} lai pārvietotos uz elementa ceļa joslu. Lai pārvietotos uz nākošo elementa pogu izmantojiet TAB vai Labo bultiņu. Lai pārvietotos uz iepriekšējo elementa pogu izmantojiet SHIFT+TAB vai Kreiso bultiņu. Nospiediet SPACE vai ENTER lai izvēlētos elementu redaktorā."}]},
{name:"Komandas",items:[{name:"Komanda atcelt darbību",legend:"Nospiediet ${undo}"},{name:"Komanda atkārtot darbību",legend:"Nospiediet ${redo}"},{name:"Treknraksta komanda",legend:"Nospiediet ${bold}"},{name:"Kursīva komanda",legend:"Nospiediet ${italic}"},{name:"Apakšsvītras komanda ",legend:"Nospiediet ${underline}"},{name:"Hipersaites komanda",legend:"Nospiediet ${link}"},{name:"Rīkjoslas aizvēršanas komanda",legend:"Nospiediet ${toolbarCollapse}"},{name:"Piekļūt iepriekšējai fokusa vietas komandai",
legend:"Nospiediet ${accessPreviousSpace} lai piekļūtu tuvākajai nepieejamajai fokusa vietai pirms kursora. Piemēram: diviem blakus esošiem līnijas HR elementiem. Atkārtojiet taustiņu kombināciju lai piekļūtu pie tālākām vietām."},{name:"Piekļūt nākošā fokusa apgabala komandai",legend:"Nospiediet ${accessNextSpace} lai piekļūtu tuvākajai nepieejamajai fokusa vietai pēc kursora. Piemēram: diviem blakus esošiem līnijas HR elementiem. Atkārtojiet taustiņu kombināciju lai piekļūtu pie tālākām vietām."},
-{name:"Pieejamības palīdzība",legend:"Nospiediet ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:"Pieejamības palīdzība",legend:"Nospiediet ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","mk",{title:"Инструкции за пристапност",contents:"Содржина на делот за помош. За да го затворите овој дијалог притиснете ESC.",legend:[{name:"Општо",items:[{name:"Мени за уредувачот",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Дијалот за едиторот",
legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Контекст-мени на уредувачот",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
{name:"Наредби",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Пауза",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Up",end:"End",home:"Home",leftArrow:"Стрелка лево",
-upArrow:"Стрелка горе",rightArrow:"Стрелка десно",downArrow:"Стрелка доле",insert:"Insert","delete":"Delete",leftWindowKey:"Лево Windows копче",rightWindowKey:"Десно Windows копче",selectKey:"Select копче",numpad0:"Нум. таст. 0",numpad1:"Нум. таст. 1",numpad2:"Нум. таст. 2",numpad3:"Нум. таст. 3",numpad4:"Нум. таст. 4",numpad5:"Нум. таст. 5",numpad6:"Нум. таст. 6",numpad7:"Нум. таст. 7",numpad8:"Нум. таст. 8",numpad9:"Нум. таст. 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Пауза",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Up",
+leftArrow:"Стрелка лево",upArrow:"Стрелка горе",rightArrow:"Стрелка десно",downArrow:"Стрелка доле",insert:"Insert",leftWindowKey:"Лево Windows копче",rightWindowKey:"Десно Windows копче",selectKey:"Select копче",numpad0:"Нум. таст. 0",numpad1:"Нум. таст. 1",numpad2:"Нум. таст. 2",numpad3:"Нум. таст. 3",numpad4:"Нум. таст. 4",numpad5:"Нум. таст. 5",numpad6:"Нум. таст. 6",numpad7:"Нум. таст. 7",numpad8:"Нум. таст. 8",numpad9:"Нум. таст. 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","mn",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Ерөнхий",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","nb",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for å lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for å navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT+TAB. Flytt til neste og forrige verktøylinjeknapp med HØYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å aktivere verktøylinjeknappen."},{name:"Dialog for editor",
legend:"Mens du er i en dialog, trykk TAB for å navigere til neste dialogelement, trykk SHIFT+TAB for å flytte til forrige dialogelement, trykk ENTER for å akseptere dialogen, trykk ESC for å avbryte dialogen. Når en dialog har flere faner, kan fanelisten nås med enten ALT+F10 eller med TAB. Når fanelisten er fokusert, går man til neste og forrige fane med henholdsvis HØYRE og VENSTRE PILTAST."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for å åpne kontekstmeny. Gå til neste alternativ i menyen med TAB eller PILTAST NED. Gå til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge menyalternativet. Åpne undermenyen på valgt alternativ med MELLOMROM eller ENTER eller HØYRE PILTAST. Gå tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."},
{name:"Listeboks for editor",legend:"I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for å navigere til verktøylinjen som viser elementsti. Gå til neste elementknapp med TAB eller HØYRE PILTAST. Gå til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å velge elementet i editoren."}]},
{name:"Hurtigtaster",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Lenke",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:"Gå til forrige fokusområde",legend:"Trykk ${accessPreviousSpace} for å komme til nærmeste fokusområde før skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},
-{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tabulator",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",
-pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Venstre piltast",upArrow:"Opp-piltast",rightArrow:"Høyre piltast",downArrow:"Ned-piltast",insert:"Insert","delete":"Delete",leftWindowKey:"Venstre Windows-tast",rightWindowKey:"Høyre Windows-tast",selectKey:"Velg nøkkel",numpad0:"Numerisk tastatur 0",numpad1:"Numerisk tastatur 1",numpad2:"Numerisk tastatur 2",numpad3:"Numerisk tastatur 3",numpad4:"Numerisk tastatur 4",numpad5:"Numerisk tastatur 5",numpad6:"Numerisk tastatur 6",numpad7:"Numerisk tastatur 7",
+{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"},{name:"Lim inn som ren tekst",legend:"Trykk ${pastetext}",legendEdge:"Trykk ${pastetext}, etterfulgt av ${past}"}]}],tab:"Tabulator",pause:"Pause",capslock:"Caps Lock",
+escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Venstre piltast",upArrow:"Opp-piltast",rightArrow:"Høyre piltast",downArrow:"Ned-piltast",insert:"Insert",leftWindowKey:"Venstre Windows-tast",rightWindowKey:"Høyre Windows-tast",selectKey:"Velg nøkkel",numpad0:"Numerisk tastatur 0",numpad1:"Numerisk tastatur 1",numpad2:"Numerisk tastatur 2",numpad3:"Numerisk tastatur 3",numpad4:"Numerisk tastatur 4",numpad5:"Numerisk tastatur 5",numpad6:"Numerisk tastatur 6",numpad7:"Numerisk tastatur 7",
numpad8:"Numerisk tastatur 8",numpad9:"Numerisk tastatur 9",multiply:"Multipliser",add:"Legg til",subtract:"Trekk fra",decimalPoint:"Desimaltegn",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Likhetstegn",comma:"Komma",dash:"Bindestrek",period:"Punktum",forwardSlash:"Forover skråstrek",graveAccent:"Grav aksent",openBracket:"Åpne parentes",backSlash:"Bakover skråstrek",
closeBracket:"Lukk parentes",singleQuote:"Enkelt sitattegn"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","nl",{title:"Toegankelijkheidsinstructies",contents:"Help-inhoud. Druk op ESC om dit dialoog te sluiten.",legend:[{name:"Algemeen",items:[{name:"Werkbalk tekstverwerker",legend:"Druk op ${toolbarFocus} om naar de werkbalk te navigeren. Om te schakelen naar de volgende en vorige werkbalkgroep, gebruik TAB en SHIFT+TAB. Om te schakelen naar de volgende en vorige werkbalkknop, gebruik de PIJL RECHTS en PIJL LINKS. Druk op SPATIE of ENTER om een werkbalkknop te activeren."},
-{name:"Dialoog tekstverwerker",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Contextmenu tekstverwerker",legend:"Druk op ${contextMenu} of APPLICATION KEY om het contextmenu te openen. Schakel naar de volgende menuoptie met TAB of PIJL OMLAAG. Schakel naar de vorige menuoptie met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om een menuoptie te selecteren. Op een submenu van de huidige optie met SPATIE, ENTER of PIJL RECHTS. Ga terug naar de bovenliggende menuoptie met ESC of PIJL LINKS. Sluit het contextmenu met ESC."},
-{name:"Keuzelijst tekstverwerker",legend:"In een keuzelijst, schakel naar het volgende item met TAB of PIJL OMLAAG. Schakel naar het vorige item met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om het item te selecteren. Druk op ESC om de keuzelijst te sluiten."},{name:"Elementenpad werkbalk tekstverwerker",legend:"Druk op ${elementsPathFocus} om naar het elementenpad te navigeren. Om te schakelen naar het volgende element, gebruik TAB of PIJL RECHTS. Om te schakelen naar het vorige element, gebruik SHIFT+TAB or PIJL LINKS. Druk op SPATIE of ENTER om een element te selecteren in de tekstverwerker."}]},
-{name:"Opdrachten",items:[{name:"Ongedaan maken opdracht",legend:"Druk op ${undo}"},{name:"Opnieuw uitvoeren opdracht",legend:"Druk op ${redo}"},{name:"Vetgedrukt opdracht",legend:"Druk op ${bold}"},{name:"Cursief opdracht",legend:"Druk op ${italic}"},{name:"Onderstrepen opdracht",legend:"Druk op ${underline}"},{name:"Link opdracht",legend:"Druk op ${link}"},{name:"Werkbalk inklappen opdracht",legend:"Druk op ${toolbarCollapse}"},{name:"Ga naar vorige focus spatie commando",legend:"Druk ${accessPreviousSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie voor de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},
-{name:"Ga naar volgende focus spatie commando",legend:"Druk ${accessNextSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie na de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},{name:"Toegankelijkheidshulp",legend:"Druk op ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Pijl naar links",upArrow:"Pijl omhoog",rightArrow:"Pijl naar rechts",downArrow:"Pijl naar beneden",insert:"Invoegen","delete":"Verwijderen",leftWindowKey:"Linker Windows-toets",rightWindowKey:"Rechter Windows-toets",selectKey:"Selecteer toets",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vermenigvuldigen",add:"Toevoegen",
-subtract:"Aftrekken",decimalPoint:"Decimaalteken",divide:"Delen",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puntkomma",equalSign:"Is gelijk-teken",comma:"Komma",dash:"Koppelteken",period:"Punt",forwardSlash:"Slash",graveAccent:"Accent grave",openBracket:"Vierkant haakje openen",backSlash:"Backslash",closeBracket:"Vierkant haakje sluiten",singleQuote:"Apostrof"});
\ No newline at end of file
+{name:"Dialoog tekstverwerker",legend:"In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Bij dialoogvensters met meerdere tabbladen kan de tabset bereikt worden met ALT+F10 of met TAB als onderdeel van de tabvolgorde in het dialoogvenster. Als de tabset focus heeft, kun je schakalen naar het volgende en vorige tabblad met respectievelijk PIJL RECHTS en PIJL LINKS."},
+{name:"Contextmenu tekstverwerker",legend:"Druk op ${contextMenu} of APPLICATION KEY om het contextmenu te openen. Schakel naar de volgende menuoptie met TAB of PIJL OMLAAG. Schakel naar de vorige menuoptie met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om een menuoptie te selecteren. Op een submenu van de huidige optie met SPATIE, ENTER of PIJL RECHTS. Ga terug naar de bovenliggende menuoptie met ESC of PIJL LINKS. Sluit het contextmenu met ESC."},{name:"Keuzelijst tekstverwerker",legend:"In een keuzelijst, schakel naar het volgende item met TAB of PIJL OMLAAG. Schakel naar het vorige item met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om het item te selecteren. Druk op ESC om de keuzelijst te sluiten."},
+{name:"Elementenpad werkbalk tekstverwerker",legend:"Druk op ${elementsPathFocus} om naar het elementenpad te navigeren. Om te schakelen naar het volgende element, gebruik TAB of PIJL RECHTS. Om te schakelen naar het vorige element, gebruik SHIFT+TAB or PIJL LINKS. Druk op SPATIE of ENTER om een element te selecteren in de tekstverwerker."}]},{name:"Opdrachten",items:[{name:"Ongedaan maken opdracht",legend:"Druk op ${undo}"},{name:"Opnieuw uitvoeren opdracht",legend:"Druk op ${redo}"},{name:"Vetgedrukt opdracht",
+legend:"Druk op ${bold}"},{name:"Cursief opdracht",legend:"Druk op ${italic}"},{name:"Onderstrepen opdracht",legend:"Druk op ${underline}"},{name:"Link opdracht",legend:"Druk op ${link}"},{name:"Werkbalk inklappen opdracht",legend:"Druk op ${toolbarCollapse}"},{name:"Ga naar vorige focus spatie commando",legend:"Druk ${accessPreviousSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie voor de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},
+{name:"Ga naar volgende focus spatie commando",legend:"Druk ${accessNextSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie na de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},{name:"Toegankelijkheidshulp",legend:"Druk op ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
+escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Pijl naar links",upArrow:"Pijl omhoog",rightArrow:"Pijl naar rechts",downArrow:"Pijl naar beneden",insert:"Invoegen",leftWindowKey:"Linker Windows-toets",rightWindowKey:"Rechter Windows-toets",selectKey:"Selecteer toets",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vermenigvuldigen",
+add:"Toevoegen",subtract:"Aftrekken",decimalPoint:"Decimaalteken",divide:"Delen",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puntkomma",equalSign:"Is gelijk-teken",comma:"Komma",dash:"Koppelteken",period:"Punt",forwardSlash:"Slash",graveAccent:"Accent grave",openBracket:"Vierkant haakje openen",backSlash:"Backslash",closeBracket:"Vierkant haakje sluiten",singleQuote:"Apostrof"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","no",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for å lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for å navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT+TAB. Flytt til neste og forrige verktøylinjeknapp med HØYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å aktivere verktøylinjeknappen."},{name:"Dialog for editor",
legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for å åpne kontekstmeny. Gå til neste alternativ i menyen med TAB eller PILTAST NED. Gå til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge menyalternativet. Åpne undermenyen på valgt alternativ med MELLOMROM eller ENTER eller HØYRE PILTAST. Gå tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."},
{name:"Listeboks for editor",legend:"I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for å navigere til verktøylinjen som viser elementsti. Gå til neste elementknapp med TAB eller HØYRE PILTAST. Gå til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å velge elementet i editoren."}]},
{name:"Kommandoer",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Link",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:"Gå til forrige fokusområde",legend:"Trykk ${accessPreviousSpace} for å komme til nærmeste fokusområde før skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},
-{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
+{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
+escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
--- /dev/null
+/*
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","oc",{title:"Instruccions d'accessibilitat",contents:"Contengut de l'ajuda. Per tampar aquesta fenèstra, quichatz sus la tòca Escap.",legend:[{name:"General",items:[{name:"Barra d'aisinas de l'editor",legend:"Quichar sus ${toolbarFocus} per accedir a la barra d'aisinas. Se desplaçar cap al groupe seguent o precedent de la barra d'aisinas amb las tòcas Tab e Maj+Tab. Se desplaçar cap al boton seguent o precedent de la barra d'aisinas amb las tòcas Sageta dreita e Sageta esquèrra. Quichar sus la barra d'espaci o la tòca Entrada per activer lo boton de barra d'aisinas."},
+{name:"Fenèstra de l'editor",legend:"Dins una bóstia de dialòg, quichar sus Tab per passar a l'element seguent, quichar sus Maj+Tab per passar a l'element precedent, quichar sus Entrada per validar, quichar sus Escap per anullar. Quand una bóstia de dialòg possedís des onglets, la lista pòt èsser atenta amb Alt+F10 o amb Tab. Dins la lista dels onglets, se desplaçar cap al seguent e lo precedent amb las tòcas Sageta dreita e Sageta esquèrra respectivament."},{name:"Menú contextual de l'editor",legend:"Quichar sus ${contextMenu} o sus la tòca Menú per dobrir lo menú contextual. Se desplaçar ensuite cap a l'opcion seguenta del menú amb las tòcas Tab o Sageta bas. Se desplaçar cap a l'opcion precedenta amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d'espaci o la tòca Entrada per seleccionar l'opcion del menu. Quichar sus la barra d'espaci, la tòca Entrada o Sageta dreita per dobrir lo sosmenú de l'opcion seleccionada. Tornar a l'element de menú parent amb la tòca Escap o Sageta esquèrra. Tampar lo menú contextual amb Escap."},
+{name:"Zòna de lista de l'editor",legend:"Dins una lista en menú desenrotlant, se desplaçar cap a l'element seguent de la lista amb las tòcas Tab o Sageta bas. Se desplaçar cap a l'element precedent de la lista amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d'espaci o sus Entrada per seleccionar l'opcion dins la lista. Quichar sus Escap per tampar lo menú desenrotlant."},{name:"Barra del camin d'elements de l'editor",legend:"Quichar sus ${elementsPathFocus} per naviguer cap a la barra del fial d'Ariana dels elements. Se desplaçar cap al boton de l'element seguent amb las tòcas Tab o Sageta dreita. Se desplaçar cap al boton precedent amb las tòcas Maj+Tab o Sageta esquèrra. Quichar sus la barra d'espaci o sus Entrada per seleccionar l'element dins l'editor."}]},
+{name:"Comandas",items:[{name:"Anullar la comanda",legend:"Quichar sus ${undo}"},{name:"Comanda restablir",legend:"Quichar sus ${redo}"},{name:" Comanda gras",legend:"Quichar sus ${bold}"},{name:" Comanda italica",legend:"Quichar sus ${italic}"},{name:" Comanda solinhat",legend:"Quichar sus ${underline}"},{name:" Comanda ligam",legend:"Quichar sus ${link}"},{name:"Comanda enrotlar la barra d'aisinas",legend:"Quichar sus ${toolbarCollapse}"},{name:"Comanda d'accès a l'element seleccionable precedent",
+legend:"Quichar sus ${accessNextSpace} per accedir a l'element seleccionable inategnible lo mai pròche abans lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables precedents."},{name:"Comanda d'accès a l'element seleccionable seguent",legend:"Quichar sus ${accessNextSpace} per accedir a l'element seleccionable inatenhible lo mai pròche aprèp lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables seguents."},
+{name:" Ajuda sus l'accessibilitat",legend:"Quichar sus ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulacion",pause:"Pausa",capslock:"Verr. Maj.",escape:"Escap",pageUp:"Pagina superiora",pageDown:"Pagina seguenta",leftArrow:"Sageta esquèrra",upArrow:"Sageta naut",rightArrow:"Sageta dreita",downArrow:"Sageta bassa",insert:"Inser",leftWindowKey:"Tòca Windows esquèrra",rightWindowKey:"Tòca Windows dreita",selectKey:"Tòca Seleccionar",
+numpad0:"0 del pavat numeric",numpad1:"1 del pavat numeric",numpad2:"2 del pavat numeric",numpad3:"3 del pavat numeric",numpad4:"4 del pavat numeric",numpad5:"5 del pavat numeric",numpad6:"6 del pavat numeric",numpad7:"7 del pavat numeric",numpad8:"Pavat numeric 8",numpad9:"9 del pavat numeric",multiply:"Multiplicar",add:"Plus",subtract:"Mens",decimalPoint:"Punt decimal",divide:"Devesir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Verr. Num.",
+scrollLock:"Arrèst desfil.",semiColon:"Punt-virgula",equalSign:"Signe egal",comma:"Virgula",dash:"Jonhent",period:"Punt",forwardSlash:"Barra oblica",graveAccent:"Accent grèu",openBracket:"Parentèsi dobèrta",backSlash:"Barra oblica invèrsa",closeBracket:"Parentèsi tampanta",singleQuote:"Apostròfa"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","pl",{title:"Instrukcje dotyczące dostępności",contents:"Zawartość pomocy. Wciśnij ESC, aby zamknąć to okno.",legend:[{name:"Informacje ogólne",items:[{name:"Pasek narzędzi edytora",legend:"Naciśnij ${toolbarFocus}, by przejść do paska narzędzi. Przejdź do następnej i poprzedniej grupy narzędzi używając TAB oraz SHIFT+TAB. Przejdź do następnego i poprzedniego przycisku paska narzędzi za pomocą STRZAŁKI W PRAWO lub STRZAŁKI W LEWO. Naciśnij SPACJĘ lub ENTER by aktywować przycisk paska narzędzi."},
{name:"Okno dialogowe edytora",legend:"Wewnątrz okna dialogowego naciśnij TAB, by przejść do kolejnego elementu tego okna lub SHIFT+TAB, by przejść do poprzedniego elementu okna. Naciśnij ENTER w celu zatwierdzenia opcji okna dialogowego lub ESC w celu anulowania zmian. Jeśli okno dialogowe ma kilka zakładek, do listy zakładek można przejść za pomocą ALT+F10 lub TAB. Gdy lista zakładek jest aktywna, możesz przejść do kolejnej i poprzedniej zakładki za pomocą STRZAŁKI W PRAWO i STRZAŁKI W LEWO."},
{name:"Menu kontekstowe edytora",legend:"Wciśnij ${contextMenu} lub PRZYCISK APLIKACJI aby otworzyć menu kontekstowe. Przejdź do następnej pozycji menu wciskając TAB lub STRZAŁKĘ W DÓŁ. Przejdź do poprzedniej pozycji menu wciskając SHIFT + TAB lub STRZAŁKĘ W GÓRĘ. Wciśnij SPACJĘ lub ENTER aby wygrać pozycję menu. Otwórz pod-menu obecnej pozycji wciskając SPACJĘ lub ENTER lub STRZAŁKĘ W PRAWO. Wróć do pozycji nadrzędnego menu wciskając ESC lub STRZAŁKĘ W LEWO. Zamknij menu wciskając ESC."},{name:"Lista w edytorze",
legend:"Wewnątrz listy przejdź do kolejnego elementu listy za pomocą przycisku TAB lub STRZAŁKI W DÓŁ. Przejdź do poprzedniego elementu listy za pomocą SHIFT+TAB lub STRZAŁKI W GÓRĘ. Naciśnij SPACJĘ lub ENTER w celu wybrania opcji z listy. Naciśnij ESC, by zamknąć listę."},{name:"Pasek ścieżki elementów edytora",legend:"Naciśnij ${elementsPathFocus} w celu przejścia do paska ścieżki elementów edytora. W celu przejścia do kolejnego elementu naciśnij klawisz TAB lub STRZAŁKI W PRAWO. W celu przejścia do poprzedniego elementu naciśnij klawisze SHIFT+TAB lub STRZAŁKI W LEWO. By wybrać element w edytorze, użyj klawisza SPACJI lub ENTER."}]},
-{name:"Polecenia",items:[{name:"Polecenie Cofnij",legend:"Naciśnij ${undo}"},{name:"Polecenie Ponów",legend:"Naciśnij ${redo}"},{name:"Polecenie Pogrubienie",legend:"Naciśnij ${bold}"},{name:"Polecenie Kursywa",legend:"Naciśnij ${italic}"},{name:"Polecenie Podkreślenie",legend:"Naciśnij ${underline}"},{name:"Polecenie Wstaw/ edytuj odnośnik",legend:"Naciśnij ${link}"},{name:"Polecenie schowaj pasek narzędzi",legend:"Naciśnij ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Pomoc dotycząca dostępności",legend:"Naciśnij ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Strzałka w lewo",
-upArrow:"Strzałka w górę",rightArrow:"Strzałka w prawo",downArrow:"Strzałka w dół",insert:"Insert","delete":"Delete",leftWindowKey:"Lewy klawisz Windows",rightWindowKey:"Prawy klawisz Windows",selectKey:"Klawisz wyboru",numpad0:"Klawisz 0 na klawiaturze numerycznej",numpad1:"Klawisz 1 na klawiaturze numerycznej",numpad2:"Klawisz 2 na klawiaturze numerycznej",numpad3:"Klawisz 3 na klawiaturze numerycznej",numpad4:"Klawisz 4 na klawiaturze numerycznej",numpad5:"Klawisz 5 na klawiaturze numerycznej",
-numpad6:"Klawisz 6 na klawiaturze numerycznej",numpad7:"Klawisz 7 na klawiaturze numerycznej",numpad8:"Klawisz 8 na klawiaturze numerycznej",numpad9:"Klawisz 9 na klawiaturze numerycznej",multiply:"Przemnóż",add:"Plus",subtract:"Minus",decimalPoint:"Separator dziesiętny",divide:"Podziel",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Średnik",equalSign:"Znak równości",comma:"Przecinek",dash:"Pauza",
-period:"Kropka",forwardSlash:"Ukośnik prawy",graveAccent:"Akcent słaby",openBracket:"Nawias kwadratowy otwierający",backSlash:"Ukośnik lewy",closeBracket:"Nawias kwadratowy zamykający",singleQuote:"Apostrof"});
\ No newline at end of file
+{name:"Polecenia",items:[{name:"Polecenie Cofnij",legend:"Naciśnij ${undo}"},{name:"Polecenie Ponów",legend:"Naciśnij ${redo}"},{name:"Polecenie Pogrubienie",legend:"Naciśnij ${bold}"},{name:"Polecenie Kursywa",legend:"Naciśnij ${italic}"},{name:"Polecenie Podkreślenie",legend:"Naciśnij ${underline}"},{name:"Polecenie Wstaw/ edytuj odnośnik",legend:"Naciśnij ${link}"},{name:"Polecenie schowaj pasek narzędzi",legend:"Naciśnij ${toolbarCollapse}"},{name:"Przejdź do poprzedniego miejsca, w którym można ustawić focus",
+legend:"Naciśnij ${accessPreviousSpace}, aby przejść do najbliższego niedostępnego miejsca przed kursorem, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc."},{name:"Przejdź do następnego miejsca, w którym można ustawić focus",legend:"Naciśnij ${accessNextSpace}, aby przejść do najbliższego niedostępnego miejsca po kursorze, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc."},
+{name:"Pomoc dotycząca dostępności",legend:"Naciśnij ${a11yHelp}"},{name:"Wklej jako tekst",legend:"Naciśnij ${pastetext}",legendEdge:"Naciśnij ${pastetext}, a następnie ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Strzałka w lewo",upArrow:"Strzałka w górę",rightArrow:"Strzałka w prawo",downArrow:"Strzałka w dół",insert:"Insert",leftWindowKey:"Lewy klawisz Windows",rightWindowKey:"Prawy klawisz Windows",selectKey:"Klawisz wyboru",
+numpad0:"Klawisz 0 na klawiaturze numerycznej",numpad1:"Klawisz 1 na klawiaturze numerycznej",numpad2:"Klawisz 2 na klawiaturze numerycznej",numpad3:"Klawisz 3 na klawiaturze numerycznej",numpad4:"Klawisz 4 na klawiaturze numerycznej",numpad5:"Klawisz 5 na klawiaturze numerycznej",numpad6:"Klawisz 6 na klawiaturze numerycznej",numpad7:"Klawisz 7 na klawiaturze numerycznej",numpad8:"Klawisz 8 na klawiaturze numerycznej",numpad9:"Klawisz 9 na klawiaturze numerycznej",multiply:"Przemnóż",add:"Plus",
+subtract:"Minus",decimalPoint:"Separator dziesiętny",divide:"Podziel",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Średnik",equalSign:"Znak równości",comma:"Przecinek",dash:"Pauza",period:"Kropka",forwardSlash:"Ukośnik prawy",graveAccent:"Akcent słaby",openBracket:"Nawias kwadratowy otwierający",backSlash:"Ukośnik lewy",closeBracket:"Nawias kwadratowy zamykający",singleQuote:"Apostrof"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","pt-br",{title:"Instruções de Acessibilidade",contents:"Conteúdo da Ajuda. Para fechar este diálogo pressione ESC.",legend:[{name:"Geral",items:[{name:"Barra de Ferramentas do Editor",legend:"Pressione ${toolbarFocus} para navegar para a barra de ferramentas. Mova para o anterior ou próximo grupo de ferramentas com TAB e SHIFT+TAB. Mova para o anterior ou próximo botão com SETA PARA DIREITA or SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
{name:"Menu de Contexto do Editor",legend:"Pressione ${contextMenu} ou TECLA DE MENU para abrir o menu de contexto, então mova para a próxima opção com TAB ou SETA PARA BAIXO. Mova para a anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO ou ENTER ou SETA PARA DIREITA. Volte para o menu pai com ESC ou SETA PARA ESQUERDA. Feche o menu de contexto com ESC."},{name:"Caixa de Lista do Editor",legend:"Dentro de uma caixa de lista, mova para o próximo item com TAB ou SETA PARA BAIXO. Mova para o item anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar uma opção na lista. Pressione ESC para fechar a caixa de lista."},
{name:"Barra de Caminho do Elementos do Editor",legend:"Pressione ${elementsPathFocus} para a barra de caminho dos elementos. Mova para o próximo botão de elemento com TAB ou SETA PARA DIREITA. Mova para o botão anterior com SHIFT+TAB ou SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor."}]},{name:"Comandos",items:[{name:" Comando Desfazer",legend:"Pressione ${undo}"},{name:" Comando Refazer",legend:"Pressione ${redo}"},{name:" Comando Negrito",legend:"Pressione ${bold}"},
{name:" Comando Itálico",legend:"Pressione ${italic}"},{name:" Comando Sublinhado",legend:"Pressione ${underline}"},{name:" Comando Link",legend:"Pressione ${link}"},{name:" Comando Fechar Barra de Ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Acessar o comando anterior de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo antes do cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},
-{name:"Acessar próximo fomando de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo após o cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},{name:" Ajuda de Acessibilidade",legend:"Pressione ${a11yHelp}"}]}],backspace:"Tecla Backspace",tab:"Tecla Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",
-pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Seta à Esquerda",upArrow:"Seta à Cima",rightArrow:"Seta à Direita",downArrow:"Seta à Baixo",insert:"Insert","delete":"Delete",leftWindowKey:"Tecla do Windows Esquerda",rightWindowKey:"Tecla do Windows Direita",selectKey:"Tecla Selecionar",numpad0:"0 do Teclado Numérico",numpad1:"1 do Teclado Numérico",numpad2:"2 do Teclado Numérico",numpad3:"3 do Teclado Numérico",numpad4:"4 do Teclado Numérico",numpad5:"5 do Teclado Numérico",numpad6:"6 do Teclado Numérico",
+{name:"Acessar próximo fomando de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo após o cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},{name:" Ajuda de Acessibilidade",legend:"Pressione ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tecla Tab",pause:"Pause",capslock:"Caps Lock",
+escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Seta à Esquerda",upArrow:"Seta à Cima",rightArrow:"Seta à Direita",downArrow:"Seta à Baixo",insert:"Insert",leftWindowKey:"Tecla do Windows Esquerda",rightWindowKey:"Tecla do Windows Direita",selectKey:"Tecla Selecionar",numpad0:"0 do Teclado Numérico",numpad1:"1 do Teclado Numérico",numpad2:"2 do Teclado Numérico",numpad3:"3 do Teclado Numérico",numpad4:"4 do Teclado Numérico",numpad5:"5 do Teclado Numérico",numpad6:"6 do Teclado Numérico",
numpad7:"7 do Teclado Numérico",numpad8:"8 do Teclado Numérico",numpad9:"9 do Teclado Numérico",multiply:"Multiplicar",add:"Mais",subtract:"Subtrair",decimalPoint:"Ponto",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ponto-e-vírgula",equalSign:"Igual",comma:"Vírgula",dash:"Hífen",period:"Ponto",forwardSlash:"Barra",graveAccent:"Acento Grave",openBracket:"Abrir Conchetes",
backSlash:"Contra-barra",closeBracket:"Fechar Colchetes",singleQuote:"Aspas Simples"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Instruções de acessibilidade",contents:"Conteúdo de ajuda. Use a tecla ESC para fechar esta janela.",legend:[{name:"Geral",items:[{name:"Barra de ferramentas do editor",legend:"Clique em ${toolbarFocus} para navegar para a barra de ferramentas. Vá para o grupo da barra de ferramentas anterior e seguinte com TAB e SHIFT+TAB. Vá para o botão da barra de ferramentas anterior com a SETA DIREITA ou ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
-{name:"Janela do Editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu de Contexto do Editor",legend:"Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC."},
-{name:"Editor de caixa em lista",legend:"Dentro da caixa da lista, vá para o itemda lista seguinte com TAB ou SETA PARA BAIXO. Move Vá parao item da lista anterior com SHIFT+TAB ou SETA PARA BAIXO. Pressione ESPAÇO ou ENTER para selecionar a opção da lista. Pressione ESC para fechar a caisa da lista."},{name:"Caminho Barra Elemento Editor",legend:"Clique em ${elementsPathFocus} para navegar para a barra do caminho dos elementos. Vá para o botão do elemento seguinte com TAB ou SETA DIREITA. Vá para o botão anterior com SHIFT+TAB ou SETA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor."}]},
-{name:"Comandos",items:[{name:"Comando de Anular",legend:"Carregar ${undo}"},{name:"Comando de Refazer",legend:"Pressione ${redo}"},{name:"Comando de Negrito",legend:"Pressione ${bold}"},{name:"Comando de Itálico",legend:"Pressione ${italic}"},{name:"Comando de Sublinhado",legend:"Pressione ${underline}"},{name:"Comando de Hiperligação",legend:"Pressione ${link}"},{name:"Comando de Ocultar Barra de Ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Acesso comando do espaço focus anterior",
+CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Instruções de acessibilidade",contents:"Conteúdo de ajuda. Use a tecla ESC para fechar esta janela.",legend:[{name:"Geral",items:[{name:"Barra de ferramentas do editor",legend:"Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
+{name:"Janela do editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu de contexto do editor",legend:"Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. Vá para o item do menu contentor com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC."},
+{name:"Editor de caixa em lista",legend:"Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista."},{name:"Editor da barra de caminho dos elementos",legend:"Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor."}]},
+{name:"Comandos",items:[{name:"Comando de anular",legend:"Carregar ${undo}"},{name:"Comando de refazer",legend:"Clique ${redo}"},{name:"Comando de negrito",legend:"Pressione ${bold}"},{name:"Comando de itálico",legend:"Pressione ${italic}"},{name:"Comando de sublinhado",legend:"Pressione ${underline}"},{name:"Comando de hiperligação",legend:"Pressione ${link}"},{name:"Comando de ocultar barra de ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Aceder ao comando espaço de foco anterior",
legend:"Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},{name:"Acesso comando do espaço focus seguinte",legend:"Pressione ${accessNextSpace} para aceder ao espaço do focos inalcançável mais perto depois do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},
-{name:"Ajuda a acessibilidade",legend:"Pressione ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Maiúsculas",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"Fim",home:"Entrada",leftArrow:"Seta esquerda",upArrow:"Seta para cima",rightArrow:"Seta direita",downArrow:"Seta para baixo",insert:"Inserir","delete":"Eliminar",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",
-numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiplicar",add:"Adicionar",subtract:"Subtrair",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Vírgula",dash:"Dash",period:"Period",
-forwardSlash:"Forward Slash",graveAccent:"Acento grave",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+{name:"Ajuda a acessibilidade",legend:"Pressione ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Separador",pause:"Pausa",capslock:"Maiúsculas",escape:"Esc",pageUp:"Subir página",pageDown:"Descer página",leftArrow:"Seta esquerda",upArrow:"Seta para cima",rightArrow:"Seta direita",downArrow:"Seta para baixo",insert:"Inserir",leftWindowKey:"Tecla esquerda Windows",rightWindowKey:"Tecla direita Windows",selectKey:"Selecionar tecla",
+numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiplicar",add:"Adicionar",subtract:"Subtrair",decimalPoint:"Ponto decimal",divide:"Separar",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ponto e vírgula",equalSign:"Sinald e igual",comma:"Vírgula",
+dash:"Cardinal",period:"Ponto",forwardSlash:"Forward Slash",graveAccent:"Acento grave",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Plica"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","ro",{title:"Instrucțiuni de accesibilitate",contents:"Cuprins. Pentru a închide acest dialog, apăsați tasta ESC.",legend:[{name:"General",items:[{name:"Editează bara instrumente.",legend:"Apasă ${toolbarFocus} pentru a naviga prin bara de instrumente. Pentru a te mișca prin grupurile de instrumente folosește tastele TAB și SHIFT+TAB. Pentru a te mișca intre diverse instrumente folosește tastele SĂGEATĂ DREAPTA sau SĂGEATĂ STÂNGA. Apasă butonul SPAȚIU sau ENTER pentru activarea instrumentului."},
{name:"Dialog editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor meniu contextual",legend:"Apasă ${contextMenu} sau TASTA MENIU pentru a deschide meniul contextual. Treci la următoarea opțiune din meniu cu TAB sau SĂGEATĂ JOS. Treci la opțiunea anterioară cu SHIFT+TAB sau SĂGEATĂ SUS. Apasă SPAȚIU sau ENTER pentru a selecta opțiunea din meniu. Deschide sub-meniul opțiunii curente cu SPAȚIU sau ENTER sau SĂGEATĂ DREAPTA. Revino la elementul din meniul părinte cu ESC sau SĂGEATĂ STÂNGA. Închide meniul de context cu ESC."},
{name:"Editor Casetă Listă",legend:"În interiorul unei liste, treci la următorull element cu TAB sau SĂGEATĂ JOS. Treci la elementul anterior din listă cu SHIFT+TAB sau SĂGEATĂ SUS. Apasă SPAȚIU sau ENTER pentru a selecta opțiunea din listă. Apasă ESC pentru a închide lista."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
{name:"Comenzi",items:[{name:" Undo command",legend:"Apasă ${undo}"},{name:"Comanda precedentă",legend:"Apasă ${redo}"},{name:"Comanda Îngroșat",legend:"Apasă ${bold}"},{name:"Comanda Inclinat",legend:"Apasă ${italic}"},{name:"Comanda Subliniere",legend:"Apasă ${underline}"},{name:"Comanda Legatură",legend:"Apasă ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",
-upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","ru",{title:"Горячие клавиши",contents:"Помощь. Для закрытия этого окна нажмите ESC.",legend:[{name:"Основное",items:[{name:"Панель инструментов",legend:"Нажмите ${toolbarFocus} для перехода к панели инструментов. Для перемещения между группами панели инструментов используйте TAB и SHIFT+TAB. Для перемещения между кнопками панели иструментов используйте кнопки ВПРАВО или ВЛЕВО. Нажмите ПРОБЕЛ или ENTER для запуска кнопки панели инструментов."},{name:"Диалоги",legend:'Внутри диалога, нажмите TAB чтобы перейти к следующему элементу диалога, нажмите SHIFT+TAB чтобы перейти к предыдущему элементу диалога, нажмите ENTER чтобы отправить диалог, нажмите ESC чтобы отменить диалог. Когда диалоговое окно имеет несколько вкладок, получить доступ к панели вкладок как части диалога можно нажатием или сочетания ALT+F10 или TAB, при этом активные элементы диалога будут перебираться с учетом порядка табуляции. При активной панели вкладок, переход к следующей или предыдущей вкладке осуществляется нажатием стрелки "ВПРАВО" или стрелки "ВЛЕВО" соответственно.'},
{name:"Контекстное меню",legend:'Нажмите ${contextMenu} или клавишу APPLICATION, чтобы открыть контекстное меню. Затем перейдите к следующему пункту меню с помощью TAB или стрелкой "ВНИЗ". Переход к предыдущей опции - SHIFT+TAB или стрелкой "ВВЕРХ". Нажмите SPACE, или ENTER, чтобы задействовать опцию меню. Открыть подменю текущей опции - SPACE или ENTER или стрелкой "ВПРАВО". Возврат к родительскому пункту меню - ESC или стрелкой "ВЛЕВО". Закрытие контекстного меню - ESC.'},{name:"Редактор списка",
legend:'Внутри окна списка, переход к следующему пункту списка - TAB или стрелкой "ВНИЗ". Переход к предыдущему пункту списка - SHIFT+TAB или стрелкой "ВВЕРХ". Нажмите SPACE, или ENTER, чтобы задействовать опцию списка. Нажмите ESC, чтобы закрыть окно списка.'},{name:"Путь к элементу",legend:'Нажмите ${elementsPathFocus}, чтобы перейти к панели пути элементов. Переход к следующей кнопке элемента - TAB или стрелкой "ВПРАВО". Переход к предыдущей кнопку - SHIFT+TAB или стрелкой "ВЛЕВО". Нажмите SPACE, или ENTER, чтобы выбрать элемент в редакторе.'}]},
{name:"Команды",items:[{name:"Отменить",legend:"Нажмите ${undo}"},{name:"Повторить",legend:"Нажмите ${redo}"},{name:"Полужирный",legend:"Нажмите ${bold}"},{name:"Курсив",legend:"Нажмите ${italic}"},{name:"Подчеркнутый",legend:"Нажмите ${underline}"},{name:"Гиперссылка",legend:"Нажмите ${link}"},{name:"Свернуть панель инструментов",legend:"Нажмите ${toolbarCollapse}"},{name:"Команды доступа к предыдущему фокусному пространству",legend:'Нажмите ${accessPreviousSpace}, чтобы обратиться к ближайшему недостижимому фокусному пространству перед символом "^", например: два смежных HR элемента. Повторите комбинацию клавиш, чтобы достичь отдаленных фокусных пространств.'},
-{name:"Команды доступа к следующему фокусному пространству",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Справка по горячим клавишам",legend:"Нажмите ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"End",
-home:"Home",leftArrow:"Стрелка влево",upArrow:"Стрелка вверх",rightArrow:"Стрелка вправо",downArrow:"Стрелка вниз",insert:"Insert","delete":"Delete",leftWindowKey:"Левая клавиша Windows",rightWindowKey:"Правая клавиша Windows",selectKey:"Выбрать",numpad0:"Цифра 0",numpad1:"Цифра 1",numpad2:"Цифра 2",numpad3:"Цифра 3",numpad4:"Цифра 4",numpad5:"Цифра 5",numpad6:"Цифра 6",numpad7:"Цифра 7",numpad8:"Цифра 8",numpad9:"Цифра 9",multiply:"Умножить",add:"Плюс",subtract:"Вычесть",decimalPoint:"Десятичная точка",
-divide:"Делить",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Точка с запятой",equalSign:"Равно",comma:"Запятая",dash:"Тире",period:"Точка",forwardSlash:"Наклонная черта",graveAccent:"Апостроф",openBracket:"Открыть скобку",backSlash:"Обратная наклонная черта",closeBracket:"Закрыть скобку",singleQuote:"Одинарная кавычка"});
\ No newline at end of file
+{name:"Команды доступа к следующему фокусному пространству",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Справка по горячим клавишам",legend:"Нажмите ${a11yHelp}"},{name:"Вставить только текст",legend:"Нажмите ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",
+pageDown:"Page Down",leftArrow:"Стрелка влево",upArrow:"Стрелка вверх",rightArrow:"Стрелка вправо",downArrow:"Стрелка вниз",insert:"Insert",leftWindowKey:"Левая клавиша Windows",rightWindowKey:"Правая клавиша Windows",selectKey:"Выбрать",numpad0:"Цифра 0",numpad1:"Цифра 1",numpad2:"Цифра 2",numpad3:"Цифра 3",numpad4:"Цифра 4",numpad5:"Цифра 5",numpad6:"Цифра 6",numpad7:"Цифра 7",numpad8:"Цифра 8",numpad9:"Цифра 9",multiply:"Умножить",add:"Плюс",subtract:"Вычесть",decimalPoint:"Десятичная точка",divide:"Делить",
+f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Точка с запятой",equalSign:"Равно",comma:"Запятая",dash:"Тире",period:"Точка",forwardSlash:"Наклонная черта",graveAccent:"Апостроф",openBracket:"Открыть скобку",backSlash:"Обратная наклонная черта",closeBracket:"Закрыть скобку",singleQuote:"Одинарная кавычка"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","si",{title:"ළඟා වියහැකි ",contents:"උදව් සඳහා අන්තර්ගතය.නික්මයෙමට ESC බොත්තම ඔබන්න",legend:[{name:"පොදු කරුණු",items:[{name:"සංස්කරණ මෙවලම් ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT+TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."},{name:"සංස්කරණ ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"සංස්කරණ අඩංගුවට ",legend:"ඔබන්න ${අන්තර්ගත මෙනුව} හෝ APPLICATION KEY අන්තර්ගත-මෙනුව විවුරතකිරීමට. ඊළඟ මෙනුව-ව්කල්පයන්ට යෑමට TAB හෝ DOWN ARROW බොත්තම ද, පෙර විකල්පයන්ටයෑමට SHIFT+TAB හෝ UP ARROW බොත්තම ද, මෙනුව-ව්කල්පයන් තේරීමට SPACE හෝ ENTER බොත්තම ද, දැනට විවුර්තව ඇති උප-මෙනුවක වීකල්ප තේරීමට SPACE හෝ ENTER හෝ RIGHT ARROW ද, නැවත පෙර ප්රධාන මෙනුවට යෑමට ESC හෝ LEFT ARROW බොත්තම ද. අන්තර්ගත-මෙනුව වැසීමට ESC බොත්තම ද ඔබන්න."},{name:"සංස්කරණ තේරුම් ",legend:"තේරුම් කොටුව තුළ , ඊළඟ අයිතමයට යෑමට TAB හෝ DOWN ARROW , පෙර අයිතමයට යෑමට SHIFT+TAB හෝ UP ARROW . අයිතම විකල්පයන් තේරීමට SPACE හෝ ENTER ,තේරුම් කොටුව වැසීමට ESC බොත්තම් ද ඔබන්න."},
{name:"සංස්කරණ අංග සහිත ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT+TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."}]},{name:"විධාන",items:[{name:"විධානය වෙනස් ",legend:"ඔබන්න ${වෙනස් කිරීම}"},{name:"විධාන නැවත් පෙර පරිදිම වෙනස්කර ගැනීම.",legend:"ඔබන්න ${නැවත් පෙර පරිදිම වෙනස්කර ගැනීම}"},{name:"තද අකුරින් විධාන",legend:"ඔබන්න ${තද }"},
-{name:"බැධී අකුරු විධාන",legend:"ඔබන්න ${බැධී අකුරු }"},{name:"යටින් ඉරි ඇද ඇති විධාන.",legend:"ඔබන්න ${යටින් ඉරි ඇද ඇති}"},{name:"සම්බන්ධිත විධාන",legend:"ඔබන්න ${සම්බන්ධ }"},{name:"මෙවලම් තීරු හැකුලුම් විධාන",legend:"ඔබන්න ${මෙවලම් තීරු හැකුලුම් }"},{name:"යොමුවීමට පෙර වැදගත් විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"යොමුවීමට ඊළග වැදගත් විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"ප්රවේශ ",legend:"ඔබන්න ${a11y }"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",
-alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",
-numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+{name:"බැධී අකුරු විධාන",legend:"ඔබන්න ${බැධී අකුරු }"},{name:"යටින් ඉරි ඇද ඇති විධාන.",legend:"ඔබන්න ${යටින් ඉරි ඇද ඇති}"},{name:"සම්බන්ධිත විධාන",legend:"ඔබන්න ${සම්බන්ධ }"},{name:"මෙවලම් තීරු හැකුලුම් විධාන",legend:"ඔබන්න ${මෙවලම් තීරු හැකුලුම් }"},{name:"යොමුවීමට පෙර වැදගත් විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"යොමුවීමට ඊළග වැදගත් විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"ප්රවේශ ",legend:"ඔබන්න ${a11y }"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],
+tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",
+add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","sk",{title:"Inštrukcie prístupnosti",contents:"Pomocný obsah. Pre zatvorenie tohto okna, stlačte ESC.",legend:[{name:"Všeobecne",items:[{name:"Lišta nástrojov editora",legend:"Stlačte ${toolbarFocus} pre navigáciu na lištu nástrojov. Medzi ďalšou a predchádzajúcou lištou nástrojov sa pohybujete s TAB a SHIFT+TAB. Medzi ďalším a predchádzajúcim tlačidlom na lište nástrojov sa pohybujete s pravou šípkou a ľavou šípkou. Stlačte medzerník alebo ENTER pre aktiváciu tlačidla lišty nástrojov."},
-{name:"Editorový dialóg",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editorové kontextové menu",legend:"Stlačte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ďalšie možnosti menu s TAB alebo dolnou šípkou. Presunte sa k predchádzajúcej možnosti s SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzerníkom, alebo ENTER, alebo pravou šípkou. Vráťte sa späť do položky rodičovského menu s ESC alebo ľavou šípkou. Zatvorte kontextové menu s ESC."},
+{name:"Editorový dialóg",legend:"V dialógovom okne stlačte TAB pre presun na ďalší prvok, SHIFT+TAB pre presun na predchádzajúci prvok, ENTER pre odoslanie, ESC pre zrušenie. Keď má dialógové okno viacero kariet, zoznam kariet dosiahnete buď stlačením ALT+F10 alebo s TAB v príslušnom poradí kariet. So zameraným zoznamom kariet sa pohybujte k ďalšej alebo predchádzajúcej karte cez PRAVÚ a ĽAVÚ ŠÍPKU."},{name:"Editorové kontextové menu",legend:"Stlačte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ďalšie možnosti menu s TAB alebo dolnou šípkou. Presunte sa k predchádzajúcej možnosti s SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzerníkom, alebo ENTER, alebo pravou šípkou. Vráťte sa späť do položky rodičovského menu s ESC alebo ľavou šípkou. Zatvorte kontextové menu s ESC."},
{name:"Editorov box zoznamu",legend:"V boxe zoznamu, presuňte sa na ďalšiu položku v zozname s TAB alebo dolnou šípkou. Presuňte sa k predchádzajúcej položke v zozname so SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti zoznamu. Stlačte ESC pre zatvorenie boxu zoznamu."},{name:"Editorove pásmo cesty prvku",legend:"Stlačte ${elementsPathFocus} pre navigovanie na pásmo cesty elementu. Presuňte sa na tlačidlo ďalšieho prvku s TAB alebo pravou šípkou. Presuňte sa k predchádzajúcemu tlačidlu s SHIFT+TAB alebo ľavou šípkou. Stlačte medzerník alebo ENTER pre výber prvku v editore."}]},
{name:"Príkazy",items:[{name:"Vrátiť príkazy",legend:"Stlačte ${undo}"},{name:"Nanovo vrátiť príkaz",legend:"Stlačte ${redo}"},{name:"Príkaz na stučnenie",legend:"Stlačte ${bold}"},{name:"Príkaz na kurzívu",legend:"Stlačte ${italic}"},{name:"Príkaz na podčiarknutie",legend:"Stlačte ${underline}"},{name:"Príkaz na odkaz",legend:"Stlačte ${link}"},{name:"Príkaz na zbalenie lišty nástrojov",legend:"Stlačte ${toolbarCollapse}"},{name:"Prejsť na predchádzajúcu zamerateľnú medzeru príkazu",legend:"Stlačte ${accessPreviousSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery pred vsuvkuo. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},
-{name:"Prejsť na ďalší ",legend:"Stlačte ${accessNextSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery po vsuvke. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},{name:"Pomoc prístupnosti",legend:"Stlačte ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Stránka hore",pageDown:"Stránka dole",
-end:"End",home:"Home",leftArrow:"Šípka naľavo",upArrow:"Šípka hore",rightArrow:"Šípka napravo",downArrow:"Šípka dole",insert:"Insert","delete":"Delete",leftWindowKey:"Ľavé Windows tlačidlo",rightWindowKey:"Pravé Windows tlačidlo",selectKey:"Tlačidlo Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Násobenie",add:"Sčítanie",subtract:"Odčítanie",
-decimalPoint:"Desatinná čiarka",divide:"Delenie",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Bodkočiarka",equalSign:"Rovná sa",comma:"Čiarka",dash:"Pomĺčka",period:"Bodka",forwardSlash:"Lomítko",graveAccent:"Zdôrazňovanie prízvuku",openBracket:"Hranatá zátvorka otváracia",backSlash:"Backslash",closeBracket:"Hranatá zátvorka zatváracia",singleQuote:"Jednoduché úvodzovky"});
\ No newline at end of file
+{name:"Prejsť na ďalší ",legend:"Stlačte ${accessNextSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery po vsuvke. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},{name:"Pomoc prístupnosti",legend:"Stlačte ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Stránka hore",
+pageDown:"Stránka dole",leftArrow:"Šípka naľavo",upArrow:"Šípka hore",rightArrow:"Šípka napravo",downArrow:"Šípka dole",insert:"Insert",leftWindowKey:"Ľavé Windows tlačidlo",rightWindowKey:"Pravé Windows tlačidlo",selectKey:"Tlačidlo Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Násobenie",add:"Sčítanie",subtract:"Odčítanie",decimalPoint:"Desatinná čiarka",
+divide:"Delenie",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Bodkočiarka",equalSign:"Rovná sa",comma:"Čiarka",dash:"Pomĺčka",period:"Bodka",forwardSlash:"Lomítko",graveAccent:"Zdôrazňovanie prízvuku",openBracket:"Hranatá zátvorka otváracia",backSlash:"Backslash",closeBracket:"Hranatá zátvorka zatváracia",singleQuote:"Jednoduché úvodzovky"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Navodila Dostopnosti",contents:"Vsebina Pomoči. Če želite zapreti to pogovorno okno pritisnite ESC.",legend:[{name:"Splošno",items:[{name:"Urejevalna Orodna Vrstica",legend:"Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice."},
-{name:"Urejevalno Pogovorno Okno",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Urejevalni Kontekstni Meni",legend:"Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC."},
+CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Navodila za dostopnost",contents:"Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.",legend:[{name:"Splošno",items:[{name:"Orodna vrstica urejevalnika",legend:"Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice."},
+{name:"Urejevalno Pogovorno Okno",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstni meni urejevalnika",legend:"Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC."},
{name:"Urejevalno Seznamsko Polje",legend:"Znotraj seznama, se premaknete na naslednji element seznama s tipko TAB ali PUŠČICO DOL. Z SHIFT+TAB ali PUŠČICO GOR se premaknete na prejšnji element seznama. Pritisnite tipko SPACE ali ENTER za izbiro elementa. Pritisnite tipko ESC, da zaprete seznam."},{name:"Urejevalna vrstica poti elementa",legend:"Pritisnite ${elementsPathFocus} za pomikanje po vrstici elementnih poti. S TAB ali DESNA PUŠČICA se premaknete na naslednji gumb elementa. Z SHIFT+TAB ali LEVO PUŠČICO se premaknete na prejšnji gumb elementa. Pritisnite SPACE ali ENTER za izbiro elementa v urejevalniku."}]},
{name:"Ukazi",items:[{name:"Razveljavi ukaz",legend:"Pritisnite ${undo}"},{name:"Ponovi ukaz",legend:"Pritisnite ${redo}"},{name:"Krepki ukaz",legend:"Pritisnite ${bold}"},{name:"Ležeči ukaz",legend:"Pritisnite ${italic}"},{name:"Poudarni ukaz",legend:"Pritisnite ${underline}"},{name:"Ukaz povezave",legend:"Pritisnite ${link}"},{name:"Skrči Orodno Vrstico Ukaz",legend:"Pritisnite ${toolbarCollapse}"},{name:"Dostop do prejšnjega ukaza ostrenja",legend:"Pritisnite ${accessPreviousSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora pred strešico, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},
-{name:"Dostop do naslednjega ukaza ostrenja",legend:"Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},{name:"Pomoč Dostopnosti",legend:"Pritisnite ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",
-home:"Home",leftArrow:"Levo puščica",upArrow:"Gor puščica",rightArrow:"Desno puščica",downArrow:"Dol puščica",insert:"Insert","delete":"Delete",leftWindowKey:"Leva Windows tipka",rightWindowKey:"Desna Windows tipka",selectKey:"Select tipka",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Zmnoži",add:"Dodaj",subtract:"Odštej",decimalPoint:"Decimalna vejica",
-divide:"Deli",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Podpičje",equalSign:"enačaj",comma:"Vejica",dash:"Vezaj",period:"Pika",forwardSlash:"Desna poševnica",graveAccent:"Krativec",openBracket:"Oklepaj",backSlash:"Leva poševnica",closeBracket:"Oklepaj",singleQuote:"Opuščaj"});
\ No newline at end of file
+{name:"Dostop do naslednjega ukaza ostrenja",legend:"Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},{name:"Pomoč dostopnosti",legend:"Pritisnite ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Puščica levo",upArrow:"Puščica gor",rightArrow:"Puščica desno",downArrow:"Puščica dol",insert:"Insert",leftWindowKey:"Leva tipka Windows",rightWindowKey:"Desna tipka Windows",selectKey:"Select tipka",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Zmnoži",add:"Dodaj",subtract:"Odštej",decimalPoint:"Decimalna vejica",
+divide:"Deli",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Podpičje",equalSign:"Enačaj",comma:"Vejica",dash:"Vezaj",period:"Pika",forwardSlash:"Desna poševnica",graveAccent:"Krativec",openBracket:"Oklepaj",backSlash:"Leva poševnica",closeBracket:"Zaklepaj",singleQuote:"Opuščaj"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","sq",{title:"Udhëzimet e Qasjes",contents:"Përmbajtja ndihmëse. Për ta mbyllur dialogun shtyp ESC.",legend:[{name:"Të përgjithshme",items:[{name:"Shiriti i Redaktuesit",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Dialogu i Redaktuesit",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Komandat",items:[{name:"Rikthe komandën",legend:"Shtyp ${undo}"},{name:"Ribëj komandën",legend:"Shtyp ${redo}"},{name:"Komanda e trashjes së tekstit",legend:"Shtyp ${bold}"},{name:"Komanda kursive",legend:"Shtyp ${italic}"},
{name:"Komanda e nënvijëzimit",legend:"Shtyp ${underline}"},{name:"Komanda e Nyjes",legend:"Shtyp ${link}"},{name:" Toolbar Collapse command",legend:"Shtyp ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"Ndihmë Qasjeje",legend:"Shtyp ${a11yHelp}"}]}],backspace:"Prapa",tab:"Fletë",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Shenja majtas",upArrow:"Shenja sipër",rightArrow:"Shenja djathtas",downArrow:"Shenja poshtë",insert:"Shto","delete":"Grise",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:"Ndihmë Qasjeje",legend:"Shtyp ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Fletë",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Shenja majtas",upArrow:"Shenja sipër",rightArrow:"Shenja djathtas",downArrow:"Shenja poshtë",insert:"Shto",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Shto",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Presje",dash:"vizë",period:"Pikë",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Hape kllapën",backSlash:"Backslash",closeBracket:"Mbylle kllapën",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","sr-latn",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Opšte",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","sr",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Опште",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","sv",{title:"Hjälpmedelsinstruktioner",contents:"Hjälpinnehåll. För att stänga denna dialogruta trycker du på ESC.",legend:[{name:"Allmänt",items:[{name:"Editor verktygsfält",legend:"Tryck på ${toolbarFocus} för att navigera till verktygsfältet. Flytta till nästa och föregående verktygsfältsgrupp med TAB och SHIFT+TAB. Flytta till nästa och föregående knapp i verktygsfältet med HÖGERPIL eller VÄNSTERPIL. Tryck SPACE eller ENTER för att aktivera knappen i verktygsfältet."},
{name:"Dialogeditor",legend:"Inuti en dialogruta, tryck TAB för att navigera till nästa fält i dialogrutan, tryck SKIFT+TAB för att flytta till föregående fält, tryck ENTER för att skicka. Du avbryter och stänger dialogen med ESC. För dialogrutor som har flera flikar, tryck ALT+F10 eller TAB för att navigera till fliklistan. med fliklistan vald flytta till nästa och föregående flik med HÖGER- eller VÄNSTERPIL."},{name:"Editor för innehållsmeny",legend:"Tryck på $ {contextMenu} eller PROGRAMTANGENTEN för att öppna snabbmenyn. Flytta sedan till nästa menyalternativ med TAB eller NEDPIL. Flytta till föregående alternativ med SHIFT + TABB eller UPPIL. Tryck Space eller ENTER för att välja menyalternativ. Öppna undermeny av nuvarande alternativ med SPACE eller ENTER eller HÖGERPIL. Gå tillbaka till överordnade menyalternativ med ESC eller VÄNSTERPIL. Stäng snabbmenyn med ESC."},
{name:"Editor för list-box",legend:"Inuti en list-box, gå till nästa listobjekt med TAB eller NEDPIL. Flytta till föregående listobjekt med SHIFT+TAB eller UPPIL. Tryck SPACE eller ENTER för att välja listan alternativet. Tryck ESC för att stänga list-boxen."},{name:"Editor för elementens sökväg",legend:"Tryck på ${elementsPathFocus} för att navigera till verktygsfältet för elementens sökvägar. Flytta till nästa elementknapp med TAB eller HÖGERPIL. Flytta till föregående knapp med SKIFT+TAB eller VÄNSTERPIL. Tryck SPACE eller ENTER för att välja element i redigeraren."}]},
{name:"Kommandon",items:[{name:"Ångra kommando",legend:"Tryck på ${undo}"},{name:"Gör om kommando",legend:"Tryck på ${redo}"},{name:"Kommandot fet stil",legend:"Tryck på ${bold}"},{name:"Kommandot kursiv",legend:"Tryck på ${italic}"},{name:"Kommandot understruken",legend:"Tryck på ${underline}"},{name:"Kommandot länk",legend:"Tryck på ${link}"},{name:"Verktygsfält Dölj kommandot",legend:"Tryck på ${toolbarCollapse}"},{name:"Gå till föregående fokus plats",legend:"Tryck på ${accessPreviousSpace} för att gå till närmast onåbara utrymme före markören, exempel: två intilliggande HR element. Repetera tangentkombinationen för att gå till nästa."},
-{name:"Tillgå nästa fokuskommandots utrymme",legend:"Tryck ${accessNextSpace} på för att komma åt den närmaste onåbar fokus utrymme efter cirkumflex, till exempel: två intilliggande HR element. Upprepa tangentkombinationen för att nå avlägsna fokus utrymmen."},{name:"Hjälp om tillgänglighet",legend:"Tryck ${a11yHelp}"}]}],backspace:"Backsteg",tab:"Tab",enter:"Retur",shift:"Skift",ctrl:"Ctrl",alt:"Alt",pause:"Paus",capslock:"Caps lock",escape:"Escape",pageUp:"Sida Up",pageDown:"Sida Ned",end:"Slut",
-home:"Hem",leftArrow:"Vänsterpil",upArrow:"Uppil",rightArrow:"Högerpil",downArrow:"Nedåtpil",insert:"Infoga","delete":"Radera",leftWindowKey:"Vänster Windowstangent",rightWindowKey:"Höger Windowstangent",selectKey:"Välj tangent",numpad0:"Nummer 0",numpad1:"Nummer 1",numpad2:"Nummer 2",numpad3:"Nummer 3",numpad4:"Nummer 4",numpad5:"Nummer 5",numpad6:"Nummer 6",numpad7:"Nummer 7",numpad8:"Nummer 8",numpad9:"Nummer 9",multiply:"Multiplicera",add:"Addera",subtract:"Minus",decimalPoint:"Decimalpunkt",
-divide:"Dividera",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lika med tecken",comma:"Komma",dash:"Minus",period:"Punkt",forwardSlash:"Snedstreck framåt",graveAccent:"Accent",openBracket:"Öppningsparentes",backSlash:"Snedstreck bakåt",closeBracket:"Slutparentes",singleQuote:"Enkelt Citattecken"});
\ No newline at end of file
+{name:"Tillgå nästa fokuskommandots utrymme",legend:"Tryck ${accessNextSpace} på för att komma åt den närmaste onåbar fokus utrymme efter cirkumflex, till exempel: två intilliggande HR element. Upprepa tangentkombinationen för att nå avlägsna fokus utrymmen."},{name:"Hjälp om tillgänglighet",legend:"Tryck ${a11yHelp}"},{name:"Klistra in som vanlig text",legend:"Tryck ${pastetext}",legendEdge:"Tryck ${pastetext}, följt av ${paste}"}]}],tab:"Tab",pause:"Paus",capslock:"Caps lock",escape:"Escape",pageUp:"Sida Up",
+pageDown:"Sida Ned",leftArrow:"Vänsterpil",upArrow:"Uppil",rightArrow:"Högerpil",downArrow:"Nedåtpil",insert:"Infoga",leftWindowKey:"Vänster Windowstangent",rightWindowKey:"Höger Windowstangent",selectKey:"Välj tangent",numpad0:"Nummer 0",numpad1:"Nummer 1",numpad2:"Nummer 2",numpad3:"Nummer 3",numpad4:"Nummer 4",numpad5:"Nummer 5",numpad6:"Nummer 6",numpad7:"Nummer 7",numpad8:"Nummer 8",numpad9:"Nummer 9",multiply:"Multiplicera",add:"Addera",subtract:"Minus",decimalPoint:"Decimalpunkt",divide:"Dividera",
+f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lika med tecken",comma:"Komma",dash:"Minus",period:"Punkt",forwardSlash:"Snedstreck framåt",graveAccent:"Accent",openBracket:"Öppningsparentes",backSlash:"Snedstreck bakåt",closeBracket:"Slutparentes",singleQuote:"Enkelt Citattecken"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","th",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"ทั่วไป",items:[{name:"แถบเครื่องมือสำหรับเครื่องมือช่วยพิมพ์",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"คำสั่ง",items:[{name:"เลิกทำคำสั่ง",legend:"วาง ${undo}"},{name:"คำสั่งสำหรับทำซ้ำ",legend:"วาง ${redo}"},{name:"คำสั่งสำหรับตัวหนา",legend:"วาง ${bold}"},{name:"คำสั่งสำหรับตัวเอียง",legend:"วาง ${italic}"},{name:"คำสั่งสำหรับขีดเส้นใต้",
legend:"วาง ${underline}"},{name:"คำสั่งสำหรับลิงก์",legend:"วาง ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","tr",{title:"Erişilebilirlik Talimatları",contents:"Yardım içeriği. Bu pencereyi kapatmak için ESC tuşuna basın.",legend:[{name:"Genel",items:[{name:"Düzenleyici Araç Çubuğu",legend:"Araç çubuğunda gezinmek için ${toolbarFocus} basın. TAB ve SHIFT+TAB ile önceki ve sonraki araç çubuğu grubuna taşıyın. SAĞ OK veya SOL OK ile önceki ve sonraki bir araç çubuğu düğmesini hareket ettirin. SPACE tuşuna basın veya araç çubuğu düğmesini etkinleştirmek için ENTER tuşna basın."},
{name:"İçerik Menü Editörü",legend:"İçerik menüsünü açmak için ${contextMenu} veya UYGULAMA TUŞU'na basın. Daha sonra SEKME veya AŞAĞI OK ile bir sonraki menü seçeneği taşıyın. SHIFT + TAB veya YUKARI OK ile önceki seçeneğe gider. Menü seçeneğini seçmek için SPACE veya ENTER tuşuna basın. Seçili seçeneğin alt menüsünü SPACE ya da ENTER veya SAĞ OK açın. Üst menü öğesini geçmek için ESC veya SOL OK ile geri dönün. ESC ile bağlam menüsünü kapatın."},{name:"Liste Kutusu Editörü",legend:"Liste kutusu içinde, bir sonraki liste öğesine SEKME VEYA AŞAĞI OK ile taşıyın. SHIFT+TAB veya YUKARI önceki liste öğesi taşıyın. Liste seçeneği seçmek için SPACE veya ENTER tuşuna basın. Liste kutusunu kapatmak için ESC tuşuna basın."},
{name:"Element Yol Çubuğu Editörü",legend:"Elementlerin yol çubuğunda gezinmek için ${ElementsPathFocus} basın. SEKME veya SAĞ OK ile sonraki element düğmesine taşıyın. SHIFT+TAB veya SOL OK önceki düğmeye hareket ettirin. Editör içindeki elementi seçmek için ENTER veya SPACE tuşuna basın."}]},{name:"Komutlar",items:[{name:"Komutu geri al",legend:"$(undo)'ya basın"},{name:"Komutu geri al",legend:"${redo} basın"},{name:" Kalın komut",legend:"${bold} basın"},{name:" İtalik komutu",legend:"${italic} basın"},
{name:" Alttan çizgi komutu",legend:"${underline} basın"},{name:" Bağlantı komutu",legend:"${link} basın"},{name:" Araç çubuğu Toplama komutu",legend:"${toolbarCollapse} basın"},{name:"Önceki komut alanına odaklan",legend:"Düzeltme imleçinden önce, en yakın uzaktaki alana erişmek için ${accessPreviousSpace} basın, örneğin: iki birleşik HR elementleri. Aynı tuş kombinasyonu tekrarıyla diğer alanlarada ulaşın."},{name:"Sonraki komut alanına odaklan",legend:"Düzeltme imleçinden sonra, en yakın uzaktaki alana erişmek için ${accessNextSpace} basın, örneğin: iki birleşik HR elementleri. Aynı tuş kombinasyonu tekrarıyla diğer alanlarada ulaşın."},
-{name:"Erişilebilirlik Yardımı",legend:"${a11yHelp}'e basın"}]}],backspace:"Silme",tab:"Sekme tuşu",enter:"Gir tuşu",shift:'"Shift" Kaydırma tuşu',ctrl:'"Ctrl" Kontrol tuşu',alt:'"Alt" Anahtar tuşu',pause:"Durdurma tuşu",capslock:"Büyük harf tuşu",escape:"Vazgeç tuşu",pageUp:"Sayfa Yukarı",pageDown:"Sayfa Aşağı",end:"Sona",home:"En başa",leftArrow:"Sol ok",upArrow:"Yukarı ok",rightArrow:"Sağ ok",downArrow:"Aşağı ok",insert:"Araya gir","delete":"Silme",leftWindowKey:"Sol windows tuşu",rightWindowKey:"Sağ windows tuşu",
-selectKey:"Seçme tuşu",numpad0:"Nümerik 0",numpad1:"Nümerik 1",numpad2:"Nümerik 2",numpad3:"Nümerik 3",numpad4:"Nümerik 4",numpad5:"Nümerik 5",numpad6:"Nümerik 6",numpad7:"Nümerik 7",numpad8:"Nümerik 8",numpad9:"Nümerik 9",multiply:"Çarpma",add:"Toplama",subtract:"Çıkarma",decimalPoint:"Ondalık işareti",divide:"Bölme",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lk",scrollLock:"Scr Lk",semiColon:"Noktalı virgül",equalSign:"Eşittir",
-comma:"Virgül",dash:"Eksi",period:"Nokta",forwardSlash:"İleri eğik çizgi",graveAccent:"Üst tırnak",openBracket:"Parantez aç",backSlash:"Ters eğik çizgi",closeBracket:"Parantez kapa",singleQuote:"Tek tırnak"});
\ No newline at end of file
+{name:"Erişilebilirlik Yardımı",legend:"${a11yHelp}'e basın"},{name:"Düz Metin Olarak Yapıştır",legend:"${pastetext} basın",legendEdge:"Önce ${pastetext} ardından${paste} basın"}]}],tab:"Sekme tuşu",pause:"Durdurma tuşu",capslock:"Büyük harf tuşu",escape:"Vazgeç tuşu",pageUp:"Sayfa Yukarı",pageDown:"Sayfa Aşağı",leftArrow:"Sol ok",upArrow:"Yukarı ok",rightArrow:"Sağ ok",downArrow:"Aşağı ok",insert:"Araya gir",leftWindowKey:"Sol windows tuşu",rightWindowKey:"Sağ windows tuşu",selectKey:"Seçme tuşu",
+numpad0:"Nümerik 0",numpad1:"Nümerik 1",numpad2:"Nümerik 2",numpad3:"Nümerik 3",numpad4:"Nümerik 4",numpad5:"Nümerik 5",numpad6:"Nümerik 6",numpad7:"Nümerik 7",numpad8:"Nümerik 8",numpad9:"Nümerik 9",multiply:"Çarpma",add:"Toplama",subtract:"Çıkarma",decimalPoint:"Ondalık işareti",divide:"Bölme",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lk",scrollLock:"Scr Lk",semiColon:"Noktalı virgül",equalSign:"Eşittir",comma:"Virgül",dash:"Eksi",
+period:"Nokta",forwardSlash:"İleri eğik çizgi",graveAccent:"Üst tırnak",openBracket:"Parantez aç",backSlash:"Ters eğik çizgi",closeBracket:"Parantez kapa",singleQuote:"Tek tırnak"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","tt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Гомуми",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Командалар",items:[{name:"Кайтару",legend:"${undo} басыгыз"},{name:"Кабатлау",legend:"${redo} басыгыз"},{name:"Калын",legend:"${bold} басыгыз"},{name:"Курсив",legend:"${italic} басыгыз"},{name:"Астына сызылган",legend:"${underline} басыгыз"},
{name:"Сылталама",legend:"${link} басыгыз"},{name:" Toolbar Collapse command",legend:"${toolbarCollapse} басыгыз"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"${a11yHelp} басыгыз"}]}],backspace:"Кайтару",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Тыныш",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Сул якка ук",upArrow:"Өскә таба ук",rightArrow:"Уң якка ук",downArrow:"Аска таба ук",insert:"Өстәү","delete":"Бетерү",leftWindowKey:"Сул Windows төймəсе",rightWindowKey:"Уң Windows төймəсе",selectKey:"Select төймəсе",numpad0:"Numpad 0",numpad1:"Numpad 1",
-numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Тапкырлау",add:"Кушу",subtract:"Алу",decimalPoint:"Унарлы нокта",divide:"Бүлү",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Нокталы өтер",equalSign:"Тигезлек билгесе",comma:"Өтер",dash:"Сызык",period:"Дәрәҗә",forwardSlash:"Кыек сызык",
-graveAccent:"Гравис",openBracket:"Җәя ачу",backSlash:"Кире кыек сызык",closeBracket:"Җәя ябу",singleQuote:"Бер иңле куштырнаклар"});
\ No newline at end of file
+{name:" Accessibility Help",legend:"${a11yHelp} басыгыз"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Тыныш",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Сул якка ук",upArrow:"Өскә таба ук",rightArrow:"Уң якка ук",downArrow:"Аска таба ук",insert:"Өстәү",leftWindowKey:"Сул Windows төймəсе",rightWindowKey:"Уң Windows төймəсе",selectKey:"Select төймəсе",numpad0:"Numpad 0",
+numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Тапкырлау",add:"Кушу",subtract:"Алу",decimalPoint:"Унарлы нокта",divide:"Бүлү",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Нокталы өтер",equalSign:"Тигезлек билгесе",comma:"Өтер",dash:"Сызык",period:"Дәрәҗә",
+forwardSlash:"Кыек сызык",graveAccent:"Гравис",openBracket:"Җәя ачу",backSlash:"Кире кыек сызык",closeBracket:"Җәя ябу",singleQuote:"Бер иңле куштырнаклар"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","ug",{title:"قوشۇمچە چۈشەندۈرۈش",contents:"ياردەم مەزمۇنى. بۇ سۆزلەشكۈنى ياپماقچى بولسىڭىز ESC نى بېسىڭ.",legend:[{name:"ئادەتتىكى",items:[{name:"قورال بالداق تەھرىر",legend:"${toolbarFocus} بېسىلسا قورال بالداققا يېتەكلەيدۇ، TAB ياكى SHIFT+TAB ئارقىلىق قورال بالداق گۇرۇپپىسى تاللىنىدۇ، ئوڭ سول يا ئوقتا توپچا تاللىنىدۇ، بوشلۇق ياكى Enter كۇنۇپكىسىدا تاللانغان توپچىنى قوللىنىدۇ."},{name:"تەھرىرلىگۈچ سۆزلەشكۈسى",legend:"سۆزلەشكۈدە TAB كۇنۇپكىسىدا كېيىنكى سۆز بۆلىكىگە يۆتكىلىدۇ، SHIFT+TAB بىرىكمە كۇنۇپكىسىدا ئالدىنقى سۆز بۆلىكىگە يۆتكىلىدۇ، ENTER كۇنۇپكىسىدا سۆزلەشكۈنى تاپشۇرىدۇ، ESC كۇنۇپكىسى سۆزلەشكۈدىن ۋاز كېچىدۇ. كۆپ بەتكۈچلۈك سۆزلەشكۈگە نىسبەتەن، ALT+F10 دا بەتكۈچ تىزىمىغا يۆتكەيدۇ. ئاندىن TAB كۇنۇپكىسى ياكى ئوڭ يا ئوق كۇنۇپكىسى كېيىنكى بەتكۈچكە يۆتكەيدۇ؛SHIFT+ TAB كۇنۇپكىسى ياكى سول يا ئوق كۇنۇپكىسى ئالدىنقى بەتكۈچكە يۆتكەيدۇ. بوشلۇق كۇنۇپكىسى ياكى ENTER كۇنۇپكىسى بەتكۈچنى تاللايدۇ."},
{name:"تەھرىرلىگۈچ تىل مۇھىت تىزىملىكى",legend:"${contextMenu} ياكى ئەپ كۇنۇپكىسىدا تىل مۇھىت تىزىملىكىنى ئاچىدۇ. ئاندىن TAB ياكى ئاستى يا ئوق كۇنۇپكىسىدا كېيىنكى تىزىملىك تۈرىگە يۆتكەيدۇ؛ SHIFT+TAB ياكى ئۈستى يا ئوق كۇنۇپكىسىدا ئالدىنقى تىزىملىك تۈرىگە يۆتكەيدۇ. بوشلۇق ياكى ENTER كۇنۇپكىسىدا تىزىملىك تۈرىنى تاللايدۇ. بوشلۇق، ENTER ياكى ئوڭ يا ئوق كۇنۇپكىسىدا تارماق تىزىملىكنى ئاچىدۇ. قايتىش تىزىملىكىگە ESC ياكى سول يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. ESC كۇنۇپكىسىدا تىل مۇھىت تىزىملىكى تاقىلىدۇ."},{name:"تەھرىرلىگۈچ تىزىمى",
legend:"تىزىم قۇتىسىدا، كېيىنكى تىزىم تۈرىگە يۆتكەشتە TAB ياكى ئاستى يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. ئالدىنقى تىزىم تۈرىگە يۆتكەشتە SHIFT+TAB ياكى ئۈستى يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. بوشلۇق ياكى ENTER كۇنۇپكىسىدا تىزىم تۈرىنى تاللايدۇ.ESC كۇنۇپكىسىدا تىزىم قۇتىسىنى يىغىدۇ."},{name:"تەھرىرلىگۈچ ئېلېمېنت يول بالداق",legend:"${elementsPathFocus} بېسىلسا ئېلېمېنت يول بالداققا يېتەكلەيدۇ، TAB ياكى ئوڭ يا ئوقتا كېيىنكى ئېلېمېنت تاللىنىدۇ، SHIFT+TAB ياكى سول يا ئوقتا ئالدىنقى ئېلېمېنت تاللىنىدۇ، بوشلۇق ياكى Enter كۇنۇپكىسىدا تەھرىرلىگۈچتىكى ئېلېمېنت تاللىنىدۇ."}]},
{name:"بۇيرۇق",items:[{name:"بۇيرۇقتىن يېنىۋال",legend:"${undo} نى بېسىڭ"},{name:"قايتىلاش بۇيرۇقى",legend:"${redo} نى بېسىڭ"},{name:"توملىتىش بۇيرۇقى",legend:"${bold} نى بېسىڭ"},{name:"يانتۇ بۇيرۇقى",legend:"${italic} نى بېسىڭ"},{name:"ئاستى سىزىق بۇيرۇقى",legend:"${underline} نى بېسىڭ"},{name:"ئۇلانما بۇيرۇقى",legend:"${link} نى بېسىڭ"},{name:"قورال بالداق قاتلاش بۇيرۇقى",legend:"${toolbarCollapse} نى بېسىڭ"},{name:"ئالدىنقى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessPreviousSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ ئالدىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},
-{name:"كېيىنكى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessNextSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ كەينىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},{name:"توسالغۇسىز لايىھە چۈشەندۈرۈشى",legend:"${a11yHelp} نى بېسىڭ"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
-pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"سول يا ئوق",upArrow:"ئۈستى يا ئوق",rightArrow:"ئوڭ يا ئوق",downArrow:"ئاستى يا ئوق",insert:"قىستۇر","delete":"ئۆچۈر",leftWindowKey:"سول Windows كۇنۇپكىسى",rightWindowKey:"ئوڭ Windows كۇنۇپكىسى",selectKey:"تاللاش كۇنۇپكىسى",numpad0:"سان تاختا 0",numpad1:"سان تاختا 1",numpad2:"سان تاختا 2",numpad3:"سان تاختا 3",numpad4:"سان تاختا 4",numpad5:"سان تاختا 5",numpad6:"سان تاختا 6",numpad7:"سان تاختا 7",numpad8:"سان تاختا 8",numpad9:"سان تاختا 9",
-multiply:"يۇلتۇز كۇنۇپكىسى",add:"قوشۇش",subtract:"ئېلىش",decimalPoint:"كەسىر چېكىت",divide:"بۆلۈش",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"سان قۇلۇپ كۇنۇپكىسى",scrollLock:"سۈرگۈچ قۇلۇپ كۇنۇپكىسى",semiColon:"چېكىتلىك پەش",equalSign:"تەڭلىك بەلگىسى",comma:"پەش",dash:"سىزىقچە",period:"چېكىت",forwardSlash:"سولغا يانتۇ سىزىق",graveAccent:"ئۇرغۇ بەلگىسى",openBracket:"ئېچىلغان تىرناق",backSlash:"ئوڭغا يانتۇ سىزىق",closeBracket:"يېپىلغان تىرناق",
-singleQuote:"يالاڭ پەش"});
\ No newline at end of file
+{name:"كېيىنكى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessNextSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ كەينىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},{name:"توسالغۇسىز لايىھە چۈشەندۈرۈشى",legend:"${a11yHelp} نى بېسىڭ"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",
+pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"سول يا ئوق",upArrow:"ئۈستى يا ئوق",rightArrow:"ئوڭ يا ئوق",downArrow:"ئاستى يا ئوق",insert:"قىستۇر",leftWindowKey:"سول Windows كۇنۇپكىسى",rightWindowKey:"ئوڭ Windows كۇنۇپكىسى",selectKey:"تاللاش كۇنۇپكىسى",numpad0:"سان تاختا 0",numpad1:"سان تاختا 1",numpad2:"سان تاختا 2",numpad3:"سان تاختا 3",numpad4:"سان تاختا 4",numpad5:"سان تاختا 5",numpad6:"سان تاختا 6",numpad7:"سان تاختا 7",numpad8:"سان تاختا 8",
+numpad9:"سان تاختا 9",multiply:"يۇلتۇز كۇنۇپكىسى",add:"قوشۇش",subtract:"ئېلىش",decimalPoint:"كەسىر چېكىت",divide:"بۆلۈش",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"سان قۇلۇپ كۇنۇپكىسى",scrollLock:"سۈرگۈچ قۇلۇپ كۇنۇپكىسى",semiColon:"چېكىتلىك پەش",equalSign:"تەڭلىك بەلگىسى",comma:"پەش",dash:"سىزىقچە",period:"چېكىت",forwardSlash:"سولغا يانتۇ سىزىق",graveAccent:"ئۇرغۇ بەلگىسى",openBracket:"ئېچىلغان تىرناق",backSlash:"ئوڭغا يانتۇ سىزىق",
+closeBracket:"يېپىلغان تىرناق",singleQuote:"يالاڭ پەش"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","uk",{title:"Спеціальні Інструкції",contents:"Довідка. Натисніть ESC і вона зникне.",legend:[{name:"Основне",items:[{name:"Панель Редактора",legend:"Натисніть ${toolbarFocus} для переходу до панелі інструментів. Для переміщення між групами панелі інструментів використовуйте TAB і SHIFT+TAB. Для переміщення між кнопками панелі іструментів використовуйте кнопки СТРІЛКА ВПРАВО або ВЛІВО. Натисніть ПРОПУСК або ENTER для запуску кнопки панелі інструментів."},{name:"Діалог Редактора",
{name:"Контекстне Меню Редактора",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Потім перейдіть до наступного пункту меню за допомогою TAB або СТРІЛКИ ВНИЗ. Натисніть ПРОПУСК або ENTER для вибору параметру меню. Відкрийте підменю поточного параметру, натиснувши ПРОПУСК або ENTER або СТРІЛКУ ВПРАВО. Перейдіть до батьківського елемента меню, натиснувши ESC або СТРІЛКУ ВЛІВО. Закрийте контекстне меню, натиснувши ESC."},{name:"Скринька Списків Редактора",legend:"Усередині списку, перехід до наступного пункту списку виконується клавішею TAB або СТРІЛКА ВНИЗ. Перехід до попереднього елемента списку клавішею SHIFT+TAB або СТРІЛКА ВГОРУ. Натисніть ПРОПУСК або ENTER, щоб вибрати параметр списку. Натисніть клавішу ESC, щоб закрити список."},
{name:"Шлях до елемента редактора",legend:"Натисніть ${elementsPathFocus} для навігації між елементами панелі. Перейдіть до наступного елемента кнопкою TAB або СТРІЛКА ВПРАВО. Перейдіть до попереднього елемента кнопкою SHIFT+TAB або СТРІЛКА ВЛІВО. Натисніть ПРОПУСК або ENTER для вибору елемента в редакторі."}]},{name:"Команди",items:[{name:"Відмінити команду",legend:"Натисніть ${undo}"},{name:"Повторити",legend:"Натисніть ${redo}"},{name:"Жирний",legend:"Натисніть ${bold}"},{name:"Курсив",legend:"Натисніть ${italic}"},
{name:"Підкреслений",legend:"Натисніть ${underline}"},{name:"Посилання",legend:"Натисніть ${link}"},{name:"Згорнути панель інструментів",legend:"Натисніть ${toolbarCollapse}"},{name:"Доступ до попереднього місця фокусування",legend:"Натисніть ${accessNextSpace} для доступу до найближчої недосяжної області фокусування перед кареткою, наприклад: два сусідні елементи HR. Повторіть комбінацію клавіш для досягнення віддалених областей фокусування."},{name:"Доступ до наступного місця фокусування",legend:"Натисніть ${accessNextSpace} для доступу до найближчої недосяжної області фокусування після каретки, наприклад: два сусідні елементи HR. Повторіть комбінацію клавіш для досягнення віддалених областей фокусування."},
-{name:"Допомога з доступності",legend:"Натисніть ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Ліва стрілка",upArrow:"Стрілка вгору",rightArrow:"Права стрілка",downArrow:"Стрілка вниз",insert:"Вставити","delete":"Видалити",leftWindowKey:"Ліва клавіша Windows",rightWindowKey:"Права клавіша Windows",selectKey:"Виберіть клавішу",numpad0:"Numpad 0",
+{name:"Допомога з доступності",legend:"Натисніть ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Ліва стрілка",upArrow:"Стрілка вгору",rightArrow:"Права стрілка",downArrow:"Стрілка вниз",insert:"Вставити",leftWindowKey:"Ліва клавіша Windows",rightWindowKey:"Права клавіша Windows",selectKey:"Виберіть клавішу",numpad0:"Numpad 0",
numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Множення",add:"Додати",subtract:"Віднімання",decimalPoint:"Десяткова кома",divide:"Ділення",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Крапка з комою",equalSign:"Знак рівності",comma:"Кома",dash:"Тире",period:"Період",
forwardSlash:"Коса риска",graveAccent:"Гравіс",openBracket:"Відкрити дужку",backSlash:"Зворотна коса риска",closeBracket:"Закрити дужку",singleQuote:"Одинарні лапки"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","vi",{title:"Hướng dẫn trợ năng",contents:"Nội dung Hỗ trợ. Nhấn ESC để đóng hộp thoại.",legend:[{name:"Chung",items:[{name:"Thanh công cụ soạn thảo",legend:"Nhấn ${toolbarFocus} để điều hướng đến thanh công cụ. Nhấn TAB và SHIFT+TAB để chuyển đến nhóm thanh công cụ khác. Nhấn MŨI TÊN PHẢI hoặc MŨI TÊN TRÁI để chuyển sang nút khác trên thanh công cụ. Nhấn PHÍM CÁCH hoặc ENTER để kích hoạt nút trên thanh công cụ."},{name:"Hộp thoại Biên t",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
{name:"Trình đơn Ngữ cảnh cBộ soạn thảo",legend:"Nhấn ${contextMenu} hoặc PHÍM ỨNG DỤNG để mở thực đơn ngữ cảnh. Sau đó nhấn TAB hoặc MŨI TÊN XUỐNG để di chuyển đến tuỳ chọn tiếp theo của thực đơn. Nhấn SHIFT+TAB hoặc MŨI TÊN LÊN để quay lại tuỳ chọn trước. Nhấn DẤU CÁCH hoặc ENTER để chọn tuỳ chọn của thực đơn. Nhấn DẤU CÁCH hoặc ENTER hoặc MŨI TÊN SANG PHẢI để mở thực đơn con của tuỳ chọn hiện tại. Nhấn ESC hoặc MŨI TÊN SANG TRÁI để quay trở lại thực đơn gốc. Nhấn ESC để đóng thực đơn ngữ cảnh."},
{name:"Hộp danh sách trình biên tập",legend:"Trong một danh sách chọn, di chuyển đối tượng tiếp theo với phím TAB hoặc phím mũi tên hướng xuống. Di chuyển đến đối tượng trước đó bằng cách nhấn tổ hợp phím SHIFT+TAB hoặc mũi tên hướng lên. Phím khoảng cách hoặc phím ENTER để chọn các tùy chọn trong danh sách. Nhấn phím ESC để đóng lại danh sách chọn."},{name:"Thanh đường dẫn các đối tượng",legend:"Nhấn ${elementsPathFocus} để điều hướng các đối tượng trong thanh đường dẫn. Di chuyển đến đối tượng tiếp theo bằng phím TAB hoặc phím mũi tên bên phải. Di chuyển đến đối tượng trước đó bằng tổ hợp phím SHIFT+TAB hoặc phím mũi tên bên trái. Nhấn phím khoảng cách hoặc ENTER để chọn đối tượng trong trình soạn thảo."}]},
{name:"Lệnh",items:[{name:"Làm lại lện",legend:"Ấn ${undo}"},{name:"Làm lại lệnh",legend:"Ấn ${redo}"},{name:"Lệnh in đậm",legend:"Ấn ${bold}"},{name:"Lệnh in nghiêng",legend:"Ấn ${italic}"},{name:"Lệnh gạch dưới",legend:"Ấn ${underline}"},{name:"Lệnh liên kết",legend:"Nhấn ${link}"},{name:"Lệnh hiển thị thanh công cụ",legend:"Nhấn${toolbarCollapse}"},{name:"Truy cập đến lệnh tập trung vào khoảng cách trước đó",legend:"Ấn ${accessPreviousSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},
-{name:"Truy cập phần đối tượng lệnh khoảng trống",legend:"Ấn ${accessNextSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},{name:"Trợ giúp liên quan",legend:"Nhấn ${a11yHelp}"}]}],backspace:"Phím Backspace",tab:"Phím Tab",enter:"Phím Tab",shift:"Phím Shift",ctrl:"Phím Ctrl",alt:"Phím Alt",pause:"Phím Pause",capslock:"Phím Caps Lock",
-escape:"Phím Escape",pageUp:"Phím Page Up",pageDown:"Phím Page Down",end:"Phím End",home:"Phím Home",leftArrow:"Phím Left Arrow",upArrow:"Phím Up Arrow",rightArrow:"Phím Right Arrow",downArrow:"Phím Down Arrow",insert:"Chèn","delete":"Xóa",leftWindowKey:"Phím Left Windows",rightWindowKey:"Phím Right Windows ",selectKey:"Chọn phím",numpad0:"Phím 0",numpad1:"Phím 1",numpad2:"Phím 2",numpad3:"Phím 3",numpad4:"Phím 4",numpad5:"Phím 5",numpad6:"Phím 6",numpad7:"Phím 7",numpad8:"Phím 8",numpad9:"Phím 9",
-multiply:"Nhân",add:"Thêm",subtract:"Trừ",decimalPoint:"Điểm số thập phân",divide:"Chia",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Dấu chấm phẩy",equalSign:"Đăng nhập bằng",comma:"Dấu phẩy",dash:"Dấu gạch ngang",period:"Phím .",forwardSlash:"Phím /",graveAccent:"Phím `",openBracket:"Open Bracket",backSlash:"Dấu gạch chéo ngược",closeBracket:"Gần giá đỡ",singleQuote:"Trích dẫn"});
\ No newline at end of file
+{name:"Truy cập phần đối tượng lệnh khoảng trống",legend:"Ấn ${accessNextSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},{name:"Trợ giúp liên quan",legend:"Nhấn ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Phím Tab",pause:"Phím Pause",capslock:"Phím Caps Lock",
+escape:"Phím Escape",pageUp:"Phím Page Up",pageDown:"Phím Page Down",leftArrow:"Phím Left Arrow",upArrow:"Phím Up Arrow",rightArrow:"Phím Right Arrow",downArrow:"Phím Down Arrow",insert:"Chèn",leftWindowKey:"Phím Left Windows",rightWindowKey:"Phím Right Windows ",selectKey:"Chọn phím",numpad0:"Phím 0",numpad1:"Phím 1",numpad2:"Phím 2",numpad3:"Phím 3",numpad4:"Phím 4",numpad5:"Phím 5",numpad6:"Phím 6",numpad7:"Phím 7",numpad8:"Phím 8",numpad9:"Phím 9",multiply:"Nhân",add:"Thêm",subtract:"Trừ",decimalPoint:"Điểm số thập phân",
+divide:"Chia",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Dấu chấm phẩy",equalSign:"Đăng nhập bằng",comma:"Dấu phẩy",dash:"Dấu gạch ngang",period:"Phím .",forwardSlash:"Phím /",graveAccent:"Phím `",openBracket:"Open Bracket",backSlash:"Dấu gạch chéo ngược",closeBracket:"Gần giá đỡ",singleQuote:"Trích dẫn"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","zh-cn",{title:"辅助功能说明",contents:"帮助内容。要关闭此对话框请按 ESC 键。",legend:[{name:"常规",items:[{name:"编辑器工具栏",legend:"按 ${toolbarFocus} 切换到工具栏,使用 TAB 键和 SHIFT+TAB 组合键移动到上一个和下一个工具栏组。使用左右箭头键移动到上一个或下一个工具栏按钮。按空格键或回车键以选中工具栏按钮。"},{name:"编辑器对话框",legend:"在对话框内,按 TAB 键移动到下一个字段,按 SHIFT + TAB 组合键移动到上一个字段,按 ENTER 键提交对话框,按 ESC 键取消对话框。对于有多选项卡的对话框,可以按 ALT + F10 直接切换到或者按 TAB 键逐步移到选项卡列表,当焦点移到选项卡列表时可以用左右箭头键来移动到前后的选项卡。"},{name:"编辑器上下文菜单",legend:"用 ${contextMenu} 或者“应用程序键”打开上下文菜单。然后用 TAB 键或者下箭头键来移动到下一个菜单项;SHIFT + TAB 组合键或者上箭头键移动到上一个菜单项。用 SPACE 键或者 ENTER 键选择菜单项。用 SPACE 键,ENTER 键或者右箭头键打开子菜单。返回菜单用 ESC 键或者左箭头键。用 ESC 键关闭上下文菜单。"},
{name:"编辑器列表框",legend:"在列表框中,移到下一列表项用 TAB 键或者下箭头键。移到上一列表项用SHIFT+TAB 组合键或者上箭头键,用 SPACE 键或者 ENTER 键选择列表项。用 ESC 键收起列表框。"},{name:"编辑器元素路径栏",legend:"按 ${elementsPathFocus} 以导航到元素路径栏,使用 TAB 键或右箭头键选择下一个元素,使用 SHIFT+TAB 组合键或左箭头键选择上一个元素,按空格键或回车键以选定编辑器里的元素。"}]},{name:"命令",items:[{name:" 撤消命令",legend:"按 ${undo}"},{name:" 重做命令",legend:"按 ${redo}"},{name:" 加粗命令",legend:"按 ${bold}"},{name:" 倾斜命令",legend:"按 ${italic}"},{name:" 下划线命令",legend:"按 ${underline}"},{name:" 链接命令",legend:"按 ${link}"},{name:" 工具栏折叠命令",legend:"按 ${toolbarCollapse}"},
-{name:"访问前一个焦点区域的命令",legend:"按 ${accessPreviousSpace} 访问^符号前最近的不可访问的焦点区域,例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"访问下一个焦点区域命令",legend:"按 ${accessNextSpace} 以访问^符号后最近的不可访问的焦点区域。例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"辅助功能帮助",legend:"按 ${a11yHelp}"}]}],backspace:"退格键",tab:"Tab 键",enter:"回车键",shift:"Shift 键",ctrl:"Ctrl 键",alt:"Alt 键",pause:"暂停键",capslock:"大写锁定键",escape:"Esc 键",pageUp:"上翻页键",pageDown:"下翻页键",end:"行尾键",home:"行首键",leftArrow:"向左箭头键",upArrow:"向上箭头键",rightArrow:"向右箭头键",downArrow:"向下箭头键",
-insert:"插入键","delete":"删除键",leftWindowKey:"左 WIN 键",rightWindowKey:"右 WIN 键",selectKey:"选择键",numpad0:"小键盘 0 键",numpad1:"小键盘 1 键",numpad2:"小键盘 2 键",numpad3:"小键盘 3 键",numpad4:"小键盘 4 键",numpad5:"小键盘 5 键",numpad6:"小键盘 6 键",numpad7:"小键盘 7 键",numpad8:"小键盘 8 键",numpad9:"小键盘 9 键",multiply:"星号键",add:"加号键",subtract:"减号键",decimalPoint:"小数点键",divide:"除号键",f1:"F1 键",f2:"F2 键",f3:"F3 键",f4:"F4 键",f5:"F5 键",f6:"F6 键",f7:"F7 键",f8:"F8 键",f9:"F9 键",f10:"F10 键",f11:"F11 键",f12:"F12 键",numLock:"数字锁定键",scrollLock:"滚动锁定键",
-semiColon:"分号键",equalSign:"等号键",comma:"逗号键",dash:"短划线键",period:"句号键",forwardSlash:"斜杠键",graveAccent:"重音符键",openBracket:"左中括号键",backSlash:"反斜杠键",closeBracket:"右中括号键",singleQuote:"单引号键"});
\ No newline at end of file
+{name:"访问前一个焦点区域的命令",legend:"按 ${accessPreviousSpace} 访问^符号前最近的不可访问的焦点区域,例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"访问下一个焦点区域命令",legend:"按 ${accessNextSpace} 以访问^符号后最近的不可访问的焦点区域。例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"辅助功能帮助",legend:"按 ${a11yHelp}"},{name:"粘贴为纯文本",legend:"按 ${pastetext}",legendEdge:"按 ${pastetext},然后再按 ${paste}"}]}],tab:"Tab 键",pause:"暂停键",capslock:"大写锁定键",escape:"Esc 键",pageUp:"上翻页键",pageDown:"下翻页键",leftArrow:"向左箭头键",upArrow:"向上箭头键",rightArrow:"向右箭头键",downArrow:"向下箭头键",insert:"插入键",
+leftWindowKey:"左 WIN 键",rightWindowKey:"右 WIN 键",selectKey:"选择键",numpad0:"小键盘 0 键",numpad1:"小键盘 1 键",numpad2:"小键盘 2 键",numpad3:"小键盘 3 键",numpad4:"小键盘 4 键",numpad5:"小键盘 5 键",numpad6:"小键盘 6 键",numpad7:"小键盘 7 键",numpad8:"小键盘 8 键",numpad9:"小键盘 9 键",multiply:"星号键",add:"加号键",subtract:"减号键",decimalPoint:"小数点键",divide:"除号键",f1:"F1 键",f2:"F2 键",f3:"F3 键",f4:"F4 键",f5:"F5 键",f6:"F6 键",f7:"F7 键",f8:"F8 键",f9:"F9 键",f10:"F10 键",f11:"F11 键",f12:"F12 键",numLock:"数字锁定键",scrollLock:"滚动锁定键",semiColon:"分号键",equalSign:"等号键",
+comma:"逗号键",dash:"短划线键",period:"句号键",forwardSlash:"斜杠键",graveAccent:"重音符键",openBracket:"左中括号键",backSlash:"反斜杠键",closeBracket:"右中括号键",singleQuote:"单引号键"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang("a11yhelp","zh",{title:"輔助工具指南",contents:"說明內容。若要關閉此對話框請按「ESC」。",legend:[{name:"一般",items:[{name:"編輯器工具列",legend:"請按 ${toolbarFocus} 以導覽到工具列。利用 TAB 或 SHIFT+TAB 以便移動到下一個及前一個工具列群組。利用右方向鍵或左方向鍵以便移動到下一個及上一個工具列按鈕。按下空白鍵或 ENTER 鍵啟用工具列按鈕。"},{name:"編輯器對話方塊",legend:"在對話框中,按下 TAB 鍵以導覽到下一個對話框元素,按下 SHIFT+TAB 以移動到上一個對話框元素,按下 ENTER 以遞交對話框,按下 ESC 以取消對話框。當對話框有多個分頁時,可以使用 ALT+F10 或是在對話框分頁順序中的一部份按下 TAB 以使用分頁列表。焦點在分頁列表上時,分別使用右方向鍵及左方向鍵移動到下一個及上一個分頁。"},{name:"編輯器內容功能表",legend:"請按下「${contextMenu}」或是「應用程式鍵」以開啟內容選單。以「TAB」或是「↓」鍵移動到下一個選單選項。以「SHIFT + TAB」或是「↑」鍵移動到上一個選單選項。按下「空白鍵」或是「ENTER」鍵以選取選單選項。以「空白鍵」或「ENTER」或「→」開啟目前選項之子選單。以「ESC」或「←」回到父選單。以「ESC」鍵關閉內容選單」。"},
{name:"編輯器清單方塊",legend:"在清單方塊中,使用 TAB 或下方向鍵移動到下一個列表項目。使用 SHIFT+TAB 或上方向鍵移動到上一個列表項目。按下空白鍵或 ENTER 以選取列表選項。按下 ESC 以關閉清單方塊。"},{name:"編輯器元件路徑工具列",legend:"請按 ${elementsPathFocus} 以瀏覽元素路徑列。利用 TAB 或右方向鍵以便移動到下一個元素按鈕。利用 SHIFT 或左方向鍵以便移動到上一個按鈕。按下空白鍵或 ENTER 鍵來選取在編輯器中的元素。"}]},{name:"命令",items:[{name:"復原命令",legend:"請按下「${undo}」"},{name:"重複命令",legend:"請按下「 ${redo}」"},{name:"粗體命令",legend:"請按下「${bold}」"},{name:"斜體",legend:"請按下「${italic}」"},{name:"底線命令",legend:"請按下「${underline}」"},{name:"連結",legend:"請按下「${link}」"},
-{name:"隱藏工具列",legend:"請按下「${toolbarCollapse}」"},{name:"存取前一個焦點空間命令",legend:"請按下 ${accessPreviousSpace} 以存取最近但無法靠近之插字符號前的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"存取下一個焦點空間命令",legend:"請按下 ${accessNextSpace} 以存取最近但無法靠近之插字符號後的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"協助工具說明",legend:"請按下「${a11yHelp}」"}]}],backspace:"退格鍵",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",
-leftArrow:"向左箭號",upArrow:"向上鍵號",rightArrow:"向右鍵號",downArrow:"向下鍵號",insert:"插入","delete":"刪除",leftWindowKey:"左方 Windows 鍵",rightWindowKey:"右方 Windows 鍵",selectKey:"選擇鍵",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"乘號",add:"新增",subtract:"減號",decimalPoint:"小數點",divide:"除號",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",
-f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"分號",equalSign:"等號",comma:"逗號",dash:"虛線",period:"句點",forwardSlash:"斜線",graveAccent:"抑音符號",openBracket:"左方括號",backSlash:"反斜線",closeBracket:"右方括號",singleQuote:"單引號"});
\ No newline at end of file
+{name:"隱藏工具列",legend:"請按下「${toolbarCollapse}」"},{name:"存取前一個焦點空間命令",legend:"請按下 ${accessPreviousSpace} 以存取最近但無法靠近之插字符號前的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"存取下一個焦點空間命令",legend:"請按下 ${accessNextSpace} 以存取最近但無法靠近之插字符號後的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"協助工具說明",legend:"請按下「${a11yHelp}」"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",
+pageDown:"Page Down",leftArrow:"向左箭號",upArrow:"向上鍵號",rightArrow:"向右鍵號",downArrow:"向下鍵號",insert:"插入",leftWindowKey:"左方 Windows 鍵",rightWindowKey:"右方 Windows 鍵",selectKey:"選擇鍵",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"乘號",add:"新增",subtract:"減號",decimalPoint:"小數點",divide:"除號",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",
+f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"分號",equalSign:"等號",comma:"逗號",dash:"虛線",period:"句點",forwardSlash:"斜線",graveAccent:"抑音符號",openBracket:"左方括號",backSlash:"反斜線",closeBracket:"右方括號",singleQuote:"單引號"});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
--- /dev/null
+CKEDITOR.dialog.add("html5video",function(b){return{title:b.lang.html5video.title,minWidth:500,minHeight:100,contents:[{id:"info",label:b.lang.html5video.infoLabel,elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["365px","110px"],align:"right",children:[{type:"text",id:"url",label:b.lang.html5video.allowed,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(b.lang.html5video.urlMissing),setup:function(a){this.setValue(a.data.src)},commit:function(a){a.setData("src",this.getValue())}},
+{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:b.lang.common.browseServer,hidden:!0,filebrowser:"info:url"}]}]},{type:"checkbox",id:"responsive",label:b.lang.html5video.responsive,setup:function(a){this.setValue(a.data.responsive)},commit:function(a){a.setData("responsive",this.getValue()?"true":"")}},{type:"hbox",id:"size",children:[{type:"text",id:"width",label:b.lang.common.width,setup:function(a){a.data.width&&this.setValue(a.data.width)},commit:function(a){a.setData("width",
+this.getValue())}},{type:"text",id:"height",label:b.lang.common.height,setup:function(a){a.data.height&&this.setValue(a.data.height)},commit:function(a){a.setData("height",this.getValue())}}]},{type:"hbox",id:"alignment",children:[{type:"radio",id:"align",label:b.lang.common.align,items:[[b.lang.common.alignCenter,"center"],[b.lang.common.alignLeft,"left"],[b.lang.common.alignRight,"right"],[b.lang.common.alignNone,"none"]],"default":"center",setup:function(a){a.data.align&&this.setValue(a.data.align)},
+commit:function(a){a.setData("align",this.getValue())}}]}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:b.lang.html5video.upload,elements:[{type:"file",id:"upload",label:b.lang.html5video.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:url",label:b.lang.html5video.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:b.lang.html5video.advanced,elements:[{type:"vbox",padding:0,children:[{type:"hbox",children:[{type:"radio",id:"autoplay",
+label:b.lang.html5video.autoplay,items:[[b.lang.html5video.yes,"yes"],[b.lang.html5video.no,"no"]],"default":"no",setup:function(a){a.data.autoplay&&this.setValue(a.data.autoplay)},commit:function(a){a.setData("autoplay",this.getValue())}}]}]}]}]}});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function(){function c(b){var c=this instanceof CKEDITOR.ui.dialog.checkbox;b.hasAttribute(this.id)&&(b=b.getAttribute(this.id),c?this.setValue(e[this.id]["true"]==b.toLowerCase()):this.setValue(b))}function d(b){var c=""===this.getValue(),a=this instanceof CKEDITOR.ui.dialog.checkbox,d=this.getValue();c?b.removeAttribute(this.att||this.id):a?b.setAttribute(this.id,e[this.id][d]):b.setAttribute(this.att||this.id,d)}var e={scrolling:{"true":"yes","false":"no"},frameborder:{"true":"1","false":"0"}};
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function(){var v=function(d,l){function v(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function k(a){if(!w){w=1;var b=this.getDialog(),c=b.imageElement;if(c){this.commit(1,c);a=[].concat(a);for(var d=a.length,f,g=0;g<d;g++)(f=b.getContentElement.apply(b,a[g].split(":")))&&f.setup(1,c)}w=0}}var m=/^\s*(\d+)((px)|\%)?\s*$/i,z=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,r=/^\d+px$/,
d.removeClass("cke_btn_unlocked"):d.addClass("cke_btn_unlocked");d.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&d.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢");return a.lockRatio},B=function(a,b){var c=a.originalElement;if("true"==c.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),f=a.getContentElement("info","txtHeight"),g;b?c=g=0:(g=c.$.width,c=c.$.height);d&&d.setValue(g);f&&f.setValue(c)}e(a)},C=function(a,b){function c(a,b){var c=
a.match(m);return c?("%"==c[2]&&(c[1]+="%",n(d,!1)),c[1]):b}if(1==a){var d=this.getDialog(),f="",g="txtWidth"==this.id?"width":"height",e=b.getAttribute(g);e&&(f=c(e,f));f=c(b.getStyle(g),f);this.setValue(f)}},x,u=function(){var a=this.originalElement,b=CKEDITOR.document.getById(p);a.setCustomData("isReady","true");a.removeListener("load",u);a.removeListener("error",h);a.removeListener("abort",h);b&&b.setStyle("display","none");this.dontResetSize||B(this,!1===d.config.image_prefillDimensions);this.firstLoad&&
CKEDITOR.tools.setTimeout(function(){n(this,"check")},0,this);this.dontResetSize=this.firstLoad=!1;e(this)},h=function(){var a=this.originalElement,b=CKEDITOR.document.getById(p);a.removeListener("load",u);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);b&&b.setStyle("display","none");n(this,!1)},q=function(a){return CKEDITOR.tools.getNextId()+"_"+a},t=q("btnLockSizes"),
-y=q("btnResetSize"),p=q("ImagePreviewLoader"),E=q("previewLink"),D=q("previewImage");return{title:d.lang.image["image"==l?"title":"titleButton"],minWidth:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),c=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",1),d=CKEDITOR.document.getById(p);
-d&&d.setStyle("display","none");x=new CKEDITOR.dom.element("img",a.document);this.preview=CKEDITOR.document.getById(D);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");c&&(this.linkElement=c,this.addLink=this.linkEditMode=!0,a=c.getChildren(),1==a.count()&&(d=a.getItem(0),d.type==CKEDITOR.NODE_ELEMENT&&(d.is("img")||d.is("input"))&&(this.imageElement=a.getItem(0),this.imageElement.is("img")?this.imageEditMode=
-"img":this.imageElement.is("input")&&(this.imageEditMode="input"))),"image"==l&&this.setupContent(2,c));if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode&&(this.cleanImageElement=this.imageElement,this.imageElement=this.cleanImageElement.clone(!0,
-!0),this.setupContent(1,this.imageElement));n(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==l&&"input"==a&&confirm(d.lang.image.button2Img)?(this.imageElement=d.document.createElement("img"),this.imageElement.setAttribute("alt",""),d.insertElement(this.imageElement)):"image"!=l&&"img"==a&&confirm(d.lang.image.img2Button)?(this.imageElement=
-d.document.createElement("input"),this.imageElement.setAttributes({type:"image",alt:""}),d.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==l?this.imageElement=d.document.createElement("img"):(this.imageElement=d.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=d.document.createElement("a"));this.commitContent(1,this.imageElement);
-this.commitContent(2,this.linkElement);this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(d.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(d.getSelection().selectElement(this.linkElement),d.insertElement(this.imageElement)):this.addLink?this.linkEditMode?this.linkElement.equals(d.getSelection().getSelectedElement())?(this.linkElement.setHtml(""),this.linkElement.append(this.imageElement,
-!1)):d.insertElement(this.imageElement):(d.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):d.insertElement(this.imageElement)},onLoad:function(){"image"!=l&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(y),5),this.addFocusable(a.getById(t),5));this.commitContent=v},onHide:function(){this.preview&&this.commitContent(8,this.preview);this.originalElement&&(this.originalElement.removeListener("load",
-u),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement=!1);delete this.imageElement},contents:[{id:"info",label:d.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",children:[{id:"txtUrl",type:"text",label:d.lang.common.url,required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),
-c=a.originalElement;a.preview&&a.preview.removeStyle("display");c.setCustomData("isReady","false");var d=CKEDITOR.document.getById(p);d&&d.setStyle("display","");c.on("load",u,a);c.on("error",h,a);c.on("abort",h,a);c.setAttribute("src",b);a.preview&&(x.setAttribute("src",b),a.preview.setAttribute("src",x.$.src),e(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display","none"))},setup:function(a,b){if(1==a){var c=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=
-!0;this.setValue(c);this.setInitValue()}},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()),b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(d.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:d.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:d.lang.image.alt,
-accessKey:"T","default":"",onChange:function(){e(this.getDialog())},setup:function(a,b){1==a&&this.setValue(b.getAttribute("alt"))},commit:function(a,b){1==a?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",
-id:"txtWidth",label:d.lang.common.width,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||alert(d.lang.common.invalidWidth);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(c)):b.removeStyle("width"),b.removeAttribute("width")):4==a?c.match(m)?b.setStyle("width",CKEDITOR.tools.cssLength(c)):
-(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("width",c.$.width+"px")):8==a&&(b.removeAttribute("width"),b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:d.lang.common.height,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||alert(d.lang.common.invalidHeight);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?
-b.setStyle("height",CKEDITOR.tools.cssLength(c)):b.removeStyle("height"),b.removeAttribute("height")):4==a?c.match(m)?b.setStyle("height",CKEDITOR.tools.cssLength(c)):(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("height",c.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",type:"html",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(y),b=CKEDITOR.document.getById(t);
-a&&(a.on("click",function(a){B(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover",function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){n(this);var b=this.originalElement,d=this.getValueOf("info","txtWidth");"true"==b.getCustomData("isReady")&&d&&(b=b.$.height/b.$.width*d,isNaN(b)||(this.setValueOf("info","txtHeight",Math.round(b)),e(this)));a.data&&a.data.preventDefault()},this.getDialog()),
-b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")},b))},html:'\x3cdiv\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.lockRatio+'" class\x3d"cke_btn_locked" id\x3d"'+t+'" role\x3d"checkbox"\x3e\x3cspan class\x3d"cke_icon"\x3e\x3c/span\x3e\x3cspan class\x3d"cke_label"\x3e'+d.lang.image.lockRatio+'\x3c/span\x3e\x3c/a\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.resetSize+
-'" class\x3d"cke_btn_reset" id\x3d"'+y+'" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3e'+d.lang.image.resetSize+"\x3c/span\x3e\x3c/a\x3e\x3c/div\x3e"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}",width:"60px",label:d.lang.image.border,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateBorder),setup:function(a,b){if(1==
-a){var c;c=(c=(c=b.getStyle("border-width"))&&c.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(c[1],10);isNaN(parseInt(c,10))&&(c=b.getAttribute("border"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style","solid")),1==a&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),
-b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:d.lang.image.hSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateHSpace),setup:function(a,b){if(1==a){var c,d;c=b.getStyle("margin-left");d=b.getStyle("margin-right");c=c&&c.match(r);d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;
-isNaN(parseInt(c,10))&&(c=b.getAttribute("hspace"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")):(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("hspace")):8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",
-requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:d.lang.image.vSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateVSpace),setup:function(a,b){if(1==a){var c,d;c=b.getStyle("margin-top");d=b.getStyle("margin-bottom");c=c&&c.match(r);d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},
-commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",
-label:d.lang.common.align,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.alignLeft,"left"],[d.lang.common.alignRight,"right"]],onChange:function(){e(this.getDialog());k.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(1==a){var c=b.getStyle("float");switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,b){var c=this.getValue();if(1==a||4==a){if(c?b.setStyle("float",c):b.removeStyle("float"),1==a)switch(c=
-(b.getAttribute("align")||"").toLowerCase(),c){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"\x3cdiv\x3e"+CKEDITOR.tools.htmlEncode(d.lang.common.preview)+'\x3cbr\x3e\x3cdiv id\x3d"'+p+'" class\x3d"ImagePreviewLoader" style\x3d"display:none"\x3e\x3cdiv class\x3d"loading"\x3e\x26nbsp;\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"ImagePreviewBox"\x3e\x3ctable\x3e\x3ctr\x3e\x3ctd\x3e\x3ca href\x3d"javascript:void(0)" target\x3d"_blank" onclick\x3d"return false;" id\x3d"'+
+y=q("btnResetSize"),p=q("ImagePreviewLoader"),E=q("previewLink"),D=q("previewImage");return{title:d.lang.image["image"==l?"title":"titleButton"],minWidth:"moono-lisa"==(CKEDITOR.skinName||d.config.skin)?500:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),c=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",
+1),d=CKEDITOR.document.getById(p);d&&d.setStyle("display","none");x=new CKEDITOR.dom.element("img",a.document);this.preview=CKEDITOR.document.getById(D);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");c&&(this.linkElement=c,this.addLink=this.linkEditMode=!0,a=c.getChildren(),1==a.count()&&(d=a.getItem(0),d.type==CKEDITOR.NODE_ELEMENT&&(d.is("img")||d.is("input"))&&(this.imageElement=a.getItem(0),
+this.imageElement.is("img")?this.imageEditMode="img":this.imageElement.is("input")&&(this.imageEditMode="input"))),"image"==l&&this.setupContent(2,c));if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode&&(this.cleanImageElement=this.imageElement,
+this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(1,this.imageElement));n(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==l&&"input"==a&&confirm(d.lang.image.button2Img)?(this.imageElement=d.document.createElement("img"),this.imageElement.setAttribute("alt",""),d.insertElement(this.imageElement)):"image"!=l&&"img"==
+a&&confirm(d.lang.image.img2Button)?(this.imageElement=d.document.createElement("input"),this.imageElement.setAttributes({type:"image",alt:""}),d.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==l?this.imageElement=d.document.createElement("img"):(this.imageElement=d.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=d.document.createElement("a"));
+this.commitContent(1,this.imageElement);this.commitContent(2,this.linkElement);this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(d.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(d.getSelection().selectElement(this.linkElement),d.insertElement(this.imageElement)):this.addLink?this.linkEditMode?this.linkElement.equals(d.getSelection().getSelectedElement())?
+(this.linkElement.setHtml(""),this.linkElement.append(this.imageElement,!1)):d.insertElement(this.imageElement):(d.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):d.insertElement(this.imageElement)},onLoad:function(){"image"!=l&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(y),5),this.addFocusable(a.getById(t),5));this.commitContent=v},onHide:function(){this.preview&&this.commitContent(8,
+this.preview);this.originalElement&&(this.originalElement.removeListener("load",u),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement=!1);delete this.imageElement},contents:[{id:"info",label:d.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",className:"cke_dialog_image_url",children:[{id:"txtUrl",type:"text",label:d.lang.common.url,
+required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),c=a.originalElement;a.preview&&a.preview.removeStyle("display");c.setCustomData("isReady","false");var d=CKEDITOR.document.getById(p);d&&d.setStyle("display","");c.on("load",u,a);c.on("error",h,a);c.on("abort",h,a);c.setAttribute("src",b);a.preview&&(x.setAttribute("src",b),a.preview.setAttribute("src",x.$.src),e(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display",
+"none"))},setup:function(a,b){if(1==a){var c=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(c);this.setInitValue()}},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()),b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(d.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",
+align:"center",label:d.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:d.lang.image.alt,accessKey:"T","default":"",onChange:function(){e(this.getDialog())},setup:function(a,b){1==a&&this.setValue(b.getAttribute("alt"))},commit:function(a,b){1==a?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",
+requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",id:"txtWidth",label:d.lang.common.width,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||alert(d.lang.common.invalidWidth);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(c)):
+b.removeStyle("width"),b.removeAttribute("width")):4==a?c.match(m)?b.setStyle("width",CKEDITOR.tools.cssLength(c)):(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("width",c.$.width+"px")):8==a&&(b.removeAttribute("width"),b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:d.lang.common.height,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||
+alert(d.lang.common.invalidHeight);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?b.setStyle("height",CKEDITOR.tools.cssLength(c)):b.removeStyle("height"),b.removeAttribute("height")):4==a?c.match(m)?b.setStyle("height",CKEDITOR.tools.cssLength(c)):(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("height",c.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",
+type:"html",className:"cke_dialog_image_ratiolock",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(y),b=CKEDITOR.document.getById(t);a&&(a.on("click",function(a){B(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover",function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){n(this);var b=this.originalElement,d=this.getValueOf("info","txtWidth");"true"==
+b.getCustomData("isReady")&&d&&(b=b.$.height/b.$.width*d,isNaN(b)||(this.setValueOf("info","txtHeight",Math.round(b)),e(this)));a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")},b))},html:'\x3cdiv\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.lockRatio+'" class\x3d"cke_btn_locked" id\x3d"'+t+'" role\x3d"checkbox"\x3e\x3cspan class\x3d"cke_icon"\x3e\x3c/span\x3e\x3cspan class\x3d"cke_label"\x3e'+
+d.lang.image.lockRatio+'\x3c/span\x3e\x3c/a\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.resetSize+'" class\x3d"cke_btn_reset" id\x3d"'+y+'" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3e'+d.lang.image.resetSize+"\x3c/span\x3e\x3c/a\x3e\x3c/div\x3e"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}",width:"60px",label:d.lang.image.border,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,
+"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateBorder),setup:function(a,b){if(1==a){var c;c=(c=(c=b.getStyle("border-width"))&&c.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(c[1],10);isNaN(parseInt(c,10))&&(c=b.getAttribute("border"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style",
+"solid")),1==a&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:d.lang.image.hSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateHSpace),setup:function(a,b){if(1==a){var c,
+d;c=b.getStyle("margin-left");d=b.getStyle("margin-right");c=c&&c.match(r);d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("hspace"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")):(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("hspace")):
+8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:d.lang.image.vSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateVSpace),setup:function(a,b){if(1==a){var c,d;c=b.getStyle("margin-top");d=b.getStyle("margin-bottom");c=c&&c.match(r);
+d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},
+{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",label:d.lang.common.align,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.alignLeft,"left"],[d.lang.common.alignRight,"right"]],onChange:function(){e(this.getDialog());k.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(1==a){var c=b.getStyle("float");switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,
+b){var c=this.getValue();if(1==a||4==a){if(c?b.setStyle("float",c):b.removeStyle("float"),1==a)switch(c=(b.getAttribute("align")||"").toLowerCase(),c){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"\x3cdiv\x3e"+CKEDITOR.tools.htmlEncode(d.lang.common.preview)+'\x3cbr\x3e\x3cdiv id\x3d"'+p+'" class\x3d"ImagePreviewLoader" style\x3d"display:none"\x3e\x3cdiv class\x3d"loading"\x3e\x26nbsp;\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"ImagePreviewBox"\x3e\x3ctable\x3e\x3ctr\x3e\x3ctd\x3e\x3ca href\x3d"javascript:void(0)" target\x3d"_blank" onclick\x3d"return false;" id\x3d"'+
E+'"\x3e\x3cimg id\x3d"'+D+'" alt\x3d"" /\x3e\x3c/a\x3e'+(d.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+
"\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/div\x3e"}]}]}]},{id:"Link",requiredContent:"a[href]",label:d.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:d.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var c=this.getValue();b.data("cke-saved-href",c);b.setAttribute("href",c);this.getValue()||
-!d.config.image_removeLinkByEmptyURL?this.getDialog().addLink=!0:this.getDialog().addLink=!1}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:d.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:d.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:d.lang.common.target,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.targetNew,"_blank"],[d.lang.common.targetTop,"_top"],[d.lang.common.targetSelf,
-"_self"],[d.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:d.lang.image.upload,elements:[{type:"file",id:"upload",label:d.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:d.lang.image.btnUpload,"for":["Upload",
-"upload"]}]},{id:"advanced",label:d.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:d.lang.common.id,setup:function(a,b){1==a&&this.setValue(b.getAttribute("id"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:d.lang.common.langDir,"default":"",items:[[d.lang.common.notSet,
+!d.config.image_removeLinkByEmptyURL?this.getDialog().addLink=!0:this.getDialog().addLink=!1}}},{type:"button",id:"browse",className:"cke_dialog_image_browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:d.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:d.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:d.lang.common.target,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.targetNew,"_blank"],[d.lang.common.targetTop,
+"_top"],[d.lang.common.targetSelf,"_self"],[d.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:d.lang.image.upload,elements:[{type:"file",id:"upload",label:d.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:d.lang.image.btnUpload,
+"for":["Upload","upload"]}]},{id:"advanced",label:d.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:d.lang.common.id,setup:function(a,b){1==a&&this.setValue(b.getAttribute("id"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:d.lang.common.langDir,"default":"",items:[[d.lang.common.notSet,
""],[d.lang.common.langDirLtr,"ltr"],[d.lang.common.langDirRtl,"rtl"]],setup:function(a,b){1==a&&this.setValue(b.getAttribute("dir"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:d.lang.common.langCode,"default":"",setup:function(a,b){1==a&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},
{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:d.lang.common.longDescr,setup:function(a,b){1==a&&this.setValue(b.getAttribute("longDesc"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:d.lang.common.cssClass,"default":"",setup:function(a,b){1==a&&this.setValue(b.getAttribute("class"))},commit:function(a,
b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:d.lang.common.advisoryTitle,"default":"",onChange:function(){e(this.getDialog())},setup:function(a,b){1==a&&this.setValue(b.getAttribute("title"))},commit:function(a,b){1==a?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-CKEDITOR.dialog.add("anchor",function(c){function d(a,b){return a.createFakeElement(a.document.createElement("a",{attributes:b}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=d(c,a),a.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(a)):
-this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(a=d(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement(),d=b&&b.data("cke-realelement"),e=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b):CKEDITOR.plugins.link.getSelectedLink(c);
-if(e){this._.selectedElement=e;var f=e.data("cke-saved-name");this.setValueOf("info","txtName",f||"");!d&&a.selectElement(e);b&&(this._.selectedElement=b)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()?!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}});
\ No newline at end of file
+CKEDITOR.dialog.add("anchor",function(c){function e(b,a){return b.createFakeElement(b.document.createElement("a",{attributes:a}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var b=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:b,name:b,"data-cke-saved-name":b};this._.selectedElement?this._.selectedElement.data("cke-realelement")?(b=e(c,a),b.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(b)):this._.selectedElement.setAttributes(a):
+(b=(b=c.getSelection())&&b.getRanges()[0],b.collapsed?(a=e(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,a.applyToRange(b)))},onHide:function(){delete this._.selectedElement},onShow:function(){var b=c.getSelection(),a;a=b.getRanges()[0];var d=b.getSelectedElement();a.shrink(CKEDITOR.SHRINK_ELEMENT);a=(d=a.getEnclosedNode())&&d.type===CKEDITOR.NODE_ELEMENT&&("anchor"===d.data("cke-real-element-type")||
+d.is("a"))?d:void 0;var f=(d=a&&a.data("cke-realelement"))?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a):CKEDITOR.plugins.link.getSelectedLink(c);if(f){this._.selectedElement=f;var e=f.data("cke-saved-name");this.setValueOf("info","txtName",e||"");!d&&b.selectElement(f);a&&(this._.selectedElement=a)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()?
+!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}});
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-(function(){CKEDITOR.dialog.add("link",function(g){var n=CKEDITOR.plugins.link,p=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),m=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),m){case "frame":a.setLabel(g.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(g.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(m),a.getElement().hide()}},
-f=function(a){a.target&&this.setValue(a.target[this.id]||"")},h=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},k=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},l=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},c=g.lang.common,b=g.lang.link,d;return{title:b.title,minWidth:350,minHeight:230,contents:[{id:"info",label:b.info,title:b.info,elements:[{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],
-[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],m=this.getValue(),e=a.definition.getContents("upload"),e=e&&e.hidden;"url"==m?(g.config.linkShowTargetTab&&a.showPage("target"),e||a.showPage("upload")):(a.hidePage("target"),e||a.hidePage("upload"));for(e=0;e<b.length;e++){var c=a.getContentElement("info",b[e]);c&&(c=c.getElement().getParent().getParent(),b[e]==m+"Options"?c.show():c.hide())}a.layout()},setup:function(a){this.setValue(a.type||
-"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",label:c.protocol,"default":"http://",items:[["http://","http://"],["https://","https://"],["ftp://","ftp://"],["news://","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:c.url,required:!0,onLoad:function(){this.allowOnChange=
-!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),m=/^((javascript:)|[#\/\.\?])/i,c=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);c?(this.setValue(b.substr(c[0].length)),a.setValue(c[0].toLowerCase())):m.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")?
-!0:!g.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(c.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button",
-id:"browse",hidden:"true",filebrowser:"info:url",label:c.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",label:b.selectAnchor,setup:function(){d=n.getEditorAnchors(g);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=
-0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor||(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor||
-(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'\x3cdiv role\x3d"note" tabIndex\x3d"-1"\x3e'+CKEDITOR.tools.htmlEncode(b.noAnchors)+"\x3c/div\x3e",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",
-id:"emailAddress",label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"email"==a.getValueOf("info","linkType")?CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this):!0},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",
-label:b.emailSubject,setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,
-title:b.target,elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:c.target,"default":"notSet",style:"width : 100%;",items:[[c.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[c.targetNew,"_blank"],[c.targetTop,"_top"],[c.targetSelf,"_self"],[c.targetParent,"_parent"]],onChange:p,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");p.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",
-id:"linkTargetName",label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/([^\x00-\x7F]|\s)/gi,"")}}]},{type:"vbox",width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:f,commit:k},{type:"checkbox",id:"status",label:b.popupStatusBar,
-setup:f,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:f,commit:k},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:f,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",label:b.popupMenuBar,setup:f,commit:k},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:f,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:f,commit:k},{type:"checkbox",id:"dependent",label:b.popupDependent,
-setup:f,commit:k}]},{type:"hbox",children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:c.width,id:"width",setup:f,commit:k},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",setup:f,commit:k}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:c.height,id:"height",setup:f,commit:k},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:f,commit:k}]}]}]}]},{id:"upload",
-label:b.upload,title:b.upload,hidden:!0,filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:c.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:c.uploadSubmit,filebrowser:"info:url","for":["upload","upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:h,commit:l},{type:"select",id:"advLangDir",
-requiredContent:"a[dir]",label:b.langDir,"default":"",style:"width:110px",items:[[c.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:h,commit:l},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,maxLength:1,setup:h,commit:l}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:h,commit:l},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px",
-"default":"",setup:h,commit:l},{type:"text",label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:h,commit:l}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,requiredContent:"a[title]","default":"",id:"advTitle",setup:h,commit:l},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:h,commit:l}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",
-label:b.cssClasses,requiredContent:"a(cke-xyz)","default":"",id:"advCSSClasses",setup:h,commit:l},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:h,commit:l}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:h,commit:l},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(g.lang.common.invalidInlineStyle),
-setup:h,commit:l}]}]}]}],onShow:function(){var a=this.getParentEditor(),b=a.getSelection(),c=null;(c=n.getSelectedLink(a))&&c.hasAttribute("href")?b.getSelectedElement()||b.selectElement(c):c=null;a=n.parseLinkAttributes(a,c);this._.selectedElement=c;this.setupContent(a)},onOk:function(){var a={};this.commitContent(a);var b=g.getSelection(),c=n.getLinkAttributes(g,a);if(this._.selectedElement){var e=this._.selectedElement,d=e.data("cke-saved-href"),f=e.getHtml();e.setAttributes(c.set);e.removeAttributes(c.removed);
-if(d==f||"email"==a.type&&-1!=f.indexOf("@"))e.setHtml("email"==a.type?a.email.address:c.set["data-cke-saved-href"]),b.selectElement(e);delete this._.selectedElement}else b=b.getRanges()[0],b.collapsed&&(a=new CKEDITOR.dom.text("email"==a.type?a.email.address:c.set["data-cke-saved-href"],g.document),b.insertNode(a),b.selectNodeContents(a)),c=new CKEDITOR.style({element:"a",attributes:c.set}),c.type=CKEDITOR.STYLE_INLINE,c.applyToRange(b,g),b.select()},onLoad:function(){g.config.linkShowAdvancedTab||
-this.hidePage("advanced");g.config.linkShowTargetTab||this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})();
\ No newline at end of file
+(function(){CKEDITOR.dialog.add("link",function(c){function t(a,b){var c=a.createRange();c.setStartBefore(b);c.setEndAfter(b);return c}var n=CKEDITOR.plugins.link,q,r=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),p=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),p){case "frame":a.setLabel(c.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(c.lang.link.targetPopupName);
+a.getElement().show();break;default:a.setValue(p),a.getElement().hide()}},l=function(a){a.target&&this.setValue(a.target[this.id]||"")},e=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},k=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},m=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},g=c.lang.common,b=c.lang.link,d;return{title:b.title,minWidth:"moono-lisa"==(CKEDITOR.skinName||c.config.skin)?450:350,minHeight:240,contents:[{id:"info",
+label:b.info,title:b.info,elements:[{type:"text",id:"linkDisplayText",label:b.displayText,setup:function(){this.enable();this.setValue(c.getSelection().getSelectedText());q=this.getValue()},commit:function(a){a.linkText=this.isEnabled()?this.getValue():""}},{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],p=this.getValue(),f=a.definition.getContents("upload"),
+f=f&&f.hidden;"url"==p?(c.config.linkShowTargetTab&&a.showPage("target"),f||a.showPage("upload")):(a.hidePage("target"),f||a.hidePage("upload"));for(f=0;f<b.length;f++){var h=a.getContentElement("info",b[f]);h&&(h=h.getElement().getParent().getParent(),b[f]==p+"Options"?h.show():h.hide())}a.layout()},setup:function(a){this.setValue(a.type||"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",
+label:g.protocol,"default":"http://",items:[["http://","http://"],["https://","https://"],["ftp://","ftp://"],["news://","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:g.url,required:!0,onLoad:function(){this.allowOnChange=!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),c=/^((javascript:)|[#\/\.\?])/i,
+f=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);f?(this.setValue(b.substr(f[0].length)),a.setValue(f[0].toLowerCase())):c.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")?!0:!c.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(g.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},
+setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button",id:"browse",hidden:"true",filebrowser:"info:url",label:g.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",
+label:b.selectAnchor,setup:function(){d=n.getEditorAnchors(c);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor||
+(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor||(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'\x3cdiv role\x3d"note" tabIndex\x3d"-1"\x3e'+
+CKEDITOR.tools.htmlEncode(b.noAnchors)+"\x3c/div\x3e",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",id:"emailAddress",label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"email"==a.getValueOf("info","linkType")?CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this):
+!0},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",label:b.emailSubject,setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&
+this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,title:b.target,elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:g.target,"default":"notSet",style:"width : 100%;",items:[[g.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[g.targetNew,
+"_blank"],[g.targetTop,"_top"],[g.targetSelf,"_self"],[g.targetParent,"_parent"]],onChange:r,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");r.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",id:"linkTargetName",label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/([^\x00-\x7F]|\s)/gi,"")}}]},{type:"vbox",
+width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:l,commit:k},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:l,commit:k},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",
+label:b.popupMenuBar,setup:l,commit:k},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:l,commit:k},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:l,commit:k}]},{type:"hbox",children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:g.width,id:"width",setup:l,commit:k},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",
+setup:l,commit:k}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:g.height,id:"height",setup:l,commit:k},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:l,commit:k}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,hidden:!0,filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:g.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:g.uploadSubmit,filebrowser:"info:url","for":["upload",
+"upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:e,commit:m},{type:"select",id:"advLangDir",requiredContent:"a[dir]",label:b.langDir,"default":"",style:"width:110px",items:[[g.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:e,commit:m},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,
+maxLength:1,setup:e,commit:m}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:e,commit:m},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:e,commit:m},{type:"text",label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:e,commit:m}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,
+requiredContent:"a[title]","default":"",id:"advTitle",setup:e,commit:m},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,requiredContent:"a(cke-xyz)","default":"",id:"advCSSClasses",setup:e,commit:m},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",
+label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:e,commit:m},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"checkbox",id:"download",requiredContent:"a[download]",label:b.download,setup:function(a){void 0!==a.download&&this.setValue("checked","checked")},commit:function(a){this.getValue()&&(a.download=
+this.getValue())}}]}]}]}],onShow:function(){var a=this.getParentEditor(),b=a.getSelection(),c=this.getContentElement("info","linkDisplayText").getElement().getParent().getParent(),f=n.getSelectedLink(a,!0),h=f[0]||null;h&&h.hasAttribute("href")&&(b.getSelectedElement()||b.isInTable()||b.selectElement(h));b=n.parseLinkAttributes(a,h);1>=f.length&&n.showDisplayTextForElement(h,a)?c.show():c.hide();this._.selectedElements=f;this.setupContent(b)},onOk:function(){var a={};this.commitContent(a);if(this._.selectedElements.length){var b=
+this._.selectedElements,g=n.getLinkAttributes(c,a),f=[],h,d,l,e,k;for(k=0;k<b.length;k++){h=b[k];d=h.data("cke-saved-href");l=h.getHtml();h.setAttributes(g.set);h.removeAttributes(g.removed);if(a.linkText&&q!=a.linkText)e=a.linkText;else if(d==l||"email"==a.type&&-1!=l.indexOf("@"))e="email"==a.type?a.email.address:g.set["data-cke-saved-href"];e&&h.setText(e);f.push(t(c,h))}c.getSelection().selectRanges(f);delete this._.selectedElements}else{b=n.getLinkAttributes(c,a);g=c.getSelection().getRanges();
+f=new CKEDITOR.style({element:"a",attributes:b.set});h=[];f.type=CKEDITOR.STYLE_INLINE;for(l=0;l<g.length;l++){d=g[l];d.collapsed?(e=new CKEDITOR.dom.text(a.linkText||("email"==a.type?a.email.address:b.set["data-cke-saved-href"]),c.document),d.insertNode(e),d.selectNodeContents(e)):q!==a.linkText&&(e=new CKEDITOR.dom.text(a.linkText,c.document),d.shrink(CKEDITOR.SHRINK_TEXT),c.editable().extractHtmlFromRange(d),d.insertNode(e));e=d._find("a");for(k=0;k<e.length;k++)e[k].remove(!0);f.applyToRange(d,
+c);h.push(d)}c.getSelection().selectRanges(h)}},onLoad:function(){c.config.linkShowAdvancedTab||this.hidePage("advanced");c.config.linkShowTargetTab||this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})();
\ No newline at end of file
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function(){function d(c,d){var b;try{b=c.getSelection().getRanges()[0]}catch(f){return null}b.shrink(CKEDITOR.SHRINK_TEXT);return c.elementPath(b.getCommonAncestor()).contains(d,1)}function e(c,e){var b=c.lang.liststyle;if("bulletedListStyle"==e)return{title:b.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"select",label:b.type,id:"type",align:"center",style:"width:150px",items:[[b.notset,""],[b.circle,"circle"],[b.disc,"disc"],[b.square,"square"]],setup:function(a){a=
--- /dev/null
+The MIT License (MIT)\r
+\r
+Copyright (c) Ingo Herbote\r
+\r
+Permission is hereby granted, free of charge, to any person obtaining a copy\r
+of this software and associated documentation files (the "Software"), to deal\r
+in the Software without restriction, including without limitation the rights\r
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+copies of the Software, and to permit persons to whom the Software is\r
+furnished to do so, subject to the following conditions:\r
+\r
+The above copyright notice and this permission notice shall be included in all\r
+copies or substantial portions of the Software.\r
+\r
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+SOFTWARE.\r
--- /dev/null
+CKEditor-oEmbed-Plugin\r
+======================\r
+\r
+oEmbed Plugin for CKEditor\r
+\r
+This Plugin allows to insert embedded content (such as photos, videos, audio, and other rich media) via the OEmbed API. You only have to provide the url to the site (It works also when the url is shortened) you want to embed and the plugin does the rest.\r
+\r
+This Plugin uses the jquery-oembed-all Plugin located at https://github.com/starfishmod/jquery-oembed-all.\r
+\r
+####Demo\r
+\r
+http://w8tcha.github.com/CKEditor-oEmbed-Plugin/\r
+\r
+####Currently Supported Sites...\r
+\r
+###Video\r
+* Youtube - oembed - YQL\r
+* Blip - oEmbed\r
+* Hulu - oEmbed\r
+* Vimeo - oEmbed\r
+* National film board of Canada - oEmbed\r
+* Qik - oEmbed\r
+* Dotsub - oEmbed\r
+* Clikthrough - oEmbed\r
+* Kino Map - oEmbed\r
+* Funny Or Die - Embedded\r
+* College Humour - Embedded\r
+* Metacafe - Embedded\r
+* embedr - Embedded\r
+* 5min - oEmbed is XML only - using YQL to translate it\r
+* ustream.tv - oEmbed is not JSONP enabled - using YQL to translate it\r
+* viddler - OGP\r
+* twitvid - Embedded\r
+* bambuser - Embedded\r
+* xtranormal - Embedded\r
+* Gametrailers - Embedded\r
+* Vzarr - Embedded\r
+* VHX - oembed\r
+* bambuser - oembed\r
+* dailymotion.com - oembed\r
+* animoto - oembed\r
+* justin.tv - YQL JSON\r
+* livestream - OGP\r
+* scivee - embedded\r
+* veoh - embedded\r
+* minoto-video - oembed using YQL\r
+* TrailerAddict - OGP\r
+* vodpod - oembed YQL - broken as the oembed has absolute positioning which breaks the display\r
+* fora.tv -OGP YQL\r
+* TED - OGP YQL\r
+* Aniboom - embedded\r
+* Comedy Central - OGP\r
+* snotr - embedded\r
+* zapiks - OGP\r
+* youku - embedded\r
+* wistia - Oembed\r
+\r
+###Audio\r
+* Soundcloud - oEmbed\r
+* HuffDuffer - oEmbed\r
+* BandCamp - YQL and Embedded\r
+* podomatic - OGP\r
+* rdio.com - oEmbed\r
+* hark.com - OGP\r
+* chirb.it - YQL and oembed\r
+* official.fm - YQL and oembed\r
+* mixcloud - YQL and oembed\r
+* shoudio - oembed\r
+* audioboo.fm - OGP\r
+* Spotify - OGP YQL\r
+\r
+###Photo\r
+* flickr - oEmbed\r
+* photobucket - oEmbed\r
+* instagram - oEmbed\r
+* yfrog - oEmbed\r
+* 23HQ - oEmbed\r
+* Smugmug - oEmbed\r
+* twitpic - OGP YQL\r
+* 500px.com - OGP\r
+* visual.ly - YQL Lookup\r
+* img.ly - Thumbnail view\r
+* imgur.com - Thumbnail view\r
+* twitgoo.com - Thumbnail view\r
+* gravatar - Thumbnail view when using mailto\r
+* pintrest - YQL - Embedded view of a sort.\r
+* circuitlab - image view\r
+* skitch - YQL oembed\r
+* graphic.ly - OGP\r
+* dribble - jsonp lookup\r
+* Lockerz - YQL lookup\r
+* AsciiArtFarts - YQL Lookup\r
+* lego cusoo - OGP over YQL\r
+* plannary - OGP over YQL\r
+* propic - OGP\r
+* avairy.com - OGP\r
+* lomography - ogp\r
+* weheartit - ogp\r
+* glogster - ogp\r
+* chart.ly - embedded\r
+* twitrpix - OGP\r
+* chictopia - OGP\r
+\r
+###Rich\r
+* Meetup - oEmbed\r
+* gigapans - Embedded\r
+* Slideshare - oEmbed\r
+* ebay - Embedded\r
+* scribd - Embedded\r
+* screenr - Embedded\r
+* tumblr- JSONP lookup\r
+* imdb - JSONP lookup via imdbapi.com\r
+* wikipedia- JSONP lookup\r
+* github- JSONP lookup (CSS)\r
+* eventful - OGP\r
+* myspace - OGP\r
+* live Journal - JSONP Lookup (CSS)\r
+* wordpress - oEmbed (wordpress.com, wp.me, blogs.cnn.com, techcrunch.com). I can add other wordpress sites as well.\r
+* circuitbee -Embedded\r
+* stack overflow - JSONP Lookup (CSS)\r
+* Facebook - JSONP Lookup (CSS)\r
+* Pastebin - Embedded\r
+* Pastie - YQL lookup\r
+* kickstarter - Embedded\r
+* issuu - OGP\r
+* reelapp.com - Embedded\r
+* Etsy - OGP over YQL\r
+* Amazon - Embedded - Requires Affiliate code\r
+* linkedin - Embedded IFRAME - found a link that works :)\r
+* Lanyrd - YQL (CSS)\r
+* twitter - Oembed - status only - but that is ok I think\r
+* github gist - oembed\r
+* speakerdeck - yql oembed\r
+* dipity - yql oembed\r
+* dailymile - oembed\r
+* deviantart - oembed\r
+* Roomshare Japan - oembed\r
+* mobypictures - oembed\r
+* prezi - embedded\r
+* popplet - embedded\r
+* authorstream - OGP\r
+* googlecalendar - Iframe\r
+* cacoo - oembed\r
+* pearltrees - embedded\r
+* urtak - oembed - is broken in iframe return atm -seems to be an embed.ly issue??\r
+* jotform - embedded\r
+* Urban Dictionary - YQL lookup\r
+* Ars Technica - YQL Lookup\r
+* Eventbrite - OGP YQL\r
+* last.fm OGP YQL\r
+* Rotten Tomatoes - OGP YQL\r
+* iFixit - OGP\r
+* qwiki - OGP\r
+* brighttalk - Meta info\r
+* tinychat - OGP\r
+* tourwrist - embedded\r
+* bnter - OGP\r
+* bigthink - OGP\r
+* wirewax - OGP\r
+* whosay - OGP\r
+* timetoast - embedded\r
+* tripline - OGP\r
+* jsfiddle - embedded\r
+\r
+\r
+####License\r
+\r
+Licensed under the terms of the MIT License.\r
+\r
+####Dependencies\r
+This Plugin requires the following plugins to work: Widget, Dialog.\r
+\r
+####Installation\r
+\r
+ 1. Before you can use the plugin you also need to download & install the widget plugin, if you have it not installed. http://ckeditor.com/addon/widget\r
+ 2. Extract the contents of the file into the "plugins" folder of CKEditor.\r
+ 3. In the CKEditor configuration file (config.js) add the following code:\r
+\r
+````js\r
+config.extraPlugins = 'oembed,widget';\r
+````\r
+\r
+2a. Additionally you can also set the default values vor the Max. Width/Height Values\r
+\r
+````js\r
+config.oembed_maxWidth = '560';\r
+config.oembed_maxHeight = '315';\r
+````\r
+\r
+and also you can define an css class for the embeded content wrapper (div), by default there is no Class defined\r
+\r
+````js\r
+config.oembed_WrapperClass = 'embededContent';\r
+````\r
+\r
+\r
+3. and also include the plugin in the toolbar\r
+\r
+````js\r
+toolbar :[ ... ['oembed']...]\r
+````\r
--- /dev/null
+(function(b){function m(){return"file:"===window.location.protocol?"http://":"//"}function o(a,b){return b=b?b:"",a?o(--a,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(60*Math.random()))+b):b}function q(a,b){var h=a.apiendpoint,d="",c,h=h+(0>=h.indexOf("?")?"?":"&"),h=h.replace("#","%23");null!==a.maxWidth&&("undefined"==typeof a.params.maxwidth||null===a.params.maxwidth)&&(a.params.maxwidth=a.maxWidth);null!==a.maxHeight&&("undefined"==typeof a.params.maxheight||
+null===a.params.maxheight)&&(a.params.maxheight=a.maxHeight);for(c in a.params)c!=a.callbackparameter&&null!==a.params[c]&&(d+="&"+escape(c)+"="+a.params[c]);return h+="format="+a.format+"&url="+escape(b)+d,"json"!=a.dataType&&(h+="&"+a.callbackparameter+"=?"),h}function n(a,l,h){b("#jqoembeddata").data(l,a.code);j.beforeEmbed.call(h,a);j.onEmbed.call(h,a);j.afterEmbed.call(h,a)}function e(a,l,h){var d,c,f;if(void 0!=b("#jqoembeddata").data(l)&&"iframe"!=h.embedtag.tag)c={code:b("#jqoembeddata").data(l)},
+n(c,l,a);else if(h.yql){c=h.yql.from||"htmlstring";var g=h.yql.url?h.yql.url(l):l;f="SELECT * FROM "+c+' WHERE url="'+g+'" and '+(/html/.test(c)?"xpath":"itemPath")+"='"+(h.yql.xpath||"/")+"'";"html"==c&&(f+=" and compat='html5'");f=b.extend({url:m()+"query.yahooapis.com/v1/public/yql",dataType:"jsonp",data:{q:f,format:"json",env:"store://datatables.org/alltableswithkeys",callback:"?"},success:function(c){var d,f,e,k,j;if(h.yql.xpath&&"//meta|//title|//link"==h.yql.xpath){d={};null==c.query.results&&
+(c.query.results={meta:[]});e=0;for(k=c.query.results.meta.length;e<k;e++)(f=c.query.results.meta[e].name||c.query.results.meta[e].property||null,null!=f)&&(d[f.toLowerCase()]=c.query.results.meta[e].content);if(d.hasOwnProperty("title")&&d.hasOwnProperty("og:title")||null!=c.query.results.title&&(d.title=c.query.results.title),!d.hasOwnProperty("og:image")&&c.query.results.hasOwnProperty("link")){e=0;for(k=c.query.results.link.length;e<k;e++)c.query.results.link[e].hasOwnProperty("rel")&&"apple-touch-icon"==
+c.query.results.link[e].rel&&(d["og:image"]="/"==c.query.results.link[e].href.charAt(0)?g.match(/^(([a-z]+:)?(\/\/)?[^\/]+\/).*$/)[1]+c.query.results.link[e].href:c.query.results.link[e].href)}c=h.yql.datareturn(d)}else c=h.yql.datareturn?h.yql.datareturn(c.query.results):c.query.results.result;!1!==c&&(j=b.extend({},c),j.code=c,n(j,l,a))},error:function(){j.onError.call(a,l,h)}},j.ajaxOptions||{});b.ajax(f)}else if(h.templateRegex)if(""!==h.embedtag.tag){c=h.embedtag.flashvars||"";f=h.embedtag.tag||
+"embed";d=h.embedtag.width||"auto";var e=h.embedtag.height||"auto",p=l.replace(h.templateRegex,h.apiendpoint);if(h.nocache||(p+="&jqoemcache="+o(5)),h.apikey&&(p=p.replace("_APIKEY_",j.apikeys[h.name])),j.maxHeight&&j.maxWidth)if(j.useResponsiveResize){var r=0,s=d,t=e;d>j.maxWidth&&(r=j.maxWidth/d,s=j.maxWidth,t=e*r,e*=r,d*=r);e>j.maxHeight&&(r=j.maxHeight/e,t=j.maxHeight,s=d*r,d*=r);e=t;d=s}else e=j.maxHeight,d=j.maxWidth;d=b("<"+f+"/>").attr("src",p).attr("width",d).attr("height",e).attr("allowfullscreen",
+h.embedtag.allowfullscreen||"true").attr("allowscriptaccess",h.embedtag.allowfullscreen||"always").css("max-height",j.maxHeight||"auto").css("max-width",j.maxWidth||"auto");"embed"==f&&d.attr("type",h.embedtag.type||"application/x-shockwave-flash").attr("flashvars",l.replace(h.templateRegex,c));"iframe"==f&&d.attr("scrolling",h.embedtag.scrolling||"no").attr("frameborder",h.embedtag.frameborder||"0");c={code:d};n(c,l,a)}else h.apiendpoint?(h.apikey&&(h.apiendpoint=h.apiendpoint.replace("_APIKEY_",
+j.apikeys[h.name])),f=b.extend({url:l.replace(h.templateRegex,h.apiendpoint),dataType:"jsonp",success:function(c){var d=b.extend({},c);d.code=h.templateData(c);n(d,l,a)},error:function(){j.onError.call(a,l,h)}},j.ajaxOptions||{}),b.ajax(f)):(c={code:l.replace(h.templateRegex,h.template)},n(c,l,a));else c=q(h,l),f=b.extend({url:c,dataType:h.dataType||"jsonp",success:function(c){c=b.extend({},c);switch(c.type){case "file":case "photo":c.code=b.fn.oembed.getPhotoCode(l,c);break;case "link":c.code="Flickr"==
+c.provider_name?b.fn.oembed.getPhotoCode(l,c):b.fn.oembed.getGenericCode(l,c);break;case "video":case "rich":c.code=b.fn.oembed.getRichCode(l,c);break;default:c.code=b.fn.oembed.getGenericCode(l,c)}n(c,l,a)},error:function(){j.onError.call(a,l,h)}},j.ajaxOptions||{}),b.ajax(f)}function p(a){if(null===a)return null;var b,e={};for(b in a)null!==b&&(e[b.toLowerCase()]=a[b]);return e}b.fn.oembed=function(a,l,h){j=b.extend(!0,b.fn.oembed.defaults,l);var d="0rz.tw 1link.in 1url.com 2.gp 2big.at 2tu.us 3.ly 307.to 4ms.me 4sq.com 4url.cc 6url.com 7.ly a.gg a.nf aa.cx abcurl.net ad.vu adf.ly adjix.com afx.cc all.fuseurl.com alturl.com amzn.to ar.gy arst.ch atu.ca azc.cc b23.ru b2l.me bacn.me bcool.bz binged.it bit.ly bizj.us bloat.me bravo.ly bsa.ly budurl.com canurl.com chilp.it chzb.gr cl.lk cl.ly clck.ru cli.gs cliccami.info clickthru.ca clop.in conta.cc cort.as cot.ag crks.me ctvr.us cutt.us dai.ly decenturl.com dfl8.me digbig.com http://digg.com/[^/]+$ disq.us dld.bz dlvr.it do.my doiop.com dopen.us easyuri.com easyurl.net eepurl.com eweri.com fa.by fav.me fb.me fbshare.me ff.im fff.to fire.to firsturl.de firsturl.net flic.kr flq.us fly2.ws fon.gs freak.to fuseurl.com fuzzy.to fwd4.me fwib.net g.ro.lt gizmo.do gl.am go.9nl.com go.ign.com go.usa.gov goo.gl goshrink.com gurl.es hex.io hiderefer.com hmm.ph href.in hsblinks.com htxt.it huff.to hulu.com hurl.me hurl.ws icanhaz.com idek.net ilix.in is.gd its.my ix.lt j.mp jijr.com kl.am klck.me korta.nu krunchd.com l9k.net lat.ms liip.to liltext.com linkbee.com linkbun.ch liurl.cn ln-s.net ln-s.ru lnk.gd lnk.ms lnkd.in lnkurl.com lru.jp lt.tl lurl.no macte.ch mash.to merky.de migre.me miniurl.com minurl.fr mke.me moby.to moourl.com mrte.ch myloc.me myurl.in n.pr nbc.co nblo.gs nn.nf not.my notlong.com nsfw.in nutshellurl.com nxy.in nyti.ms o-x.fr oc1.us om.ly omf.gd omoikane.net on.cnn.com on.mktw.net onforb.es orz.se ow.ly ping.fm pli.gs pnt.me politi.co post.ly pp.gg profile.to ptiturl.com pub.vitrue.com qlnk.net qte.me qu.tc qy.fi r.ebay.com r.im rb6.me read.bi readthis.ca reallytinyurl.com redir.ec redirects.ca redirx.com retwt.me ri.ms rickroll.it riz.gd rt.nu ru.ly rubyurl.com rurl.org rww.tw s4c.in s7y.us safe.mn sameurl.com sdut.us shar.es shink.de shorl.com short.ie short.to shortlinks.co.uk shorturl.com shout.to show.my shrinkify.com shrinkr.com shrt.fr shrt.st shrten.com shrunkin.com simurl.com slate.me smallr.com smsh.me smurl.name sn.im snipr.com snipurl.com snurl.com sp2.ro spedr.com srnk.net srs.li starturl.com stks.co su.pr surl.co.uk surl.hu t.cn t.co t.lh.com ta.gd tbd.ly tcrn.ch tgr.me tgr.ph tighturl.com tiniuri.com tiny.cc tiny.ly tiny.pl tinylink.in tinyuri.ca tinyurl.com tk. tl.gd tmi.me tnij.org tnw.to tny.com to.ly togoto.us totc.us toysr.us tpm.ly tr.im tra.kz trunc.it twhub.com twirl.at twitclicks.com twitterurl.net twitterurl.org twiturl.de twurl.cc twurl.nl u.mavrev.com u.nu u76.org ub0.cc ulu.lu updating.me ur1.ca url.az url.co.uk url.ie url360.me url4.eu urlborg.com urlbrief.com urlcover.com urlcut.com urlenco.de urli.nl urls.im urlshorteningservicefortwitter.com urlx.ie urlzen.com usat.ly use.my vb.ly vevo.ly vgn.am vl.am vm.lc w55.de wapo.st wapurl.co.uk wipi.es wp.me x.vu xr.com xrl.in xrl.us xurl.es xurl.jp y.ahoo.it yatuc.com ye.pe yep.it yfrog.com yhoo.it yiyd.com youtu.be yuarel.com z0p.de zi.ma zi.mu zipmyurl.com zud.me zurl.ws zz.gd zzang.kr ›.ws ✩.ws ✿.ws ❥.ws ➔.ws ➞.ws ➡.ws ➨.ws ➯.ws ➹.ws ➽.ws".split(" ");
+return 0===b("#jqoembeddata").length&&b('<span id="jqoembeddata"></span>').appendTo("body"),this.each(function(){var c=b(this),f=a&&(!a.indexOf("http://")||!a.indexOf("https://"))?a:c.attr("href"),g,l,m,n,o;if(h?j.onEmbed=h:j.onEmbed||(j.onEmbed=function(a){b.fn.oembed.insertCode(this,j.embedMethod,a)}),null!==f&&void 0!==f){l=0;for(m=d.length;l<m;l++)if(n=RegExp("://"+d[l]+"/","i"),null!==f.match(n))return o=b.extend({url:"http://api.longurl.org/v2/expand",dataType:"jsonp",data:{url:f,format:"json"},
+success:function(a){f=a["long-url"];g=b.fn.oembed.getOEmbedProvider(a["long-url"]);null!==g?(g.params=p(j[g.name])||{},g.maxWidth=j.maxWidth,g.maxHeight=j.maxHeight,e(c,f,g)):j.onProviderNotFound.call(c,f)}},j.ajaxOptions||{}),b.ajax(o),c;g=b.fn.oembed.getOEmbedProvider(f);null!==g?(g.params=p(j[g.name])||{},g.maxWidth=j.maxWidth,g.maxHeight=j.maxHeight,e(c,f,g)):j.onProviderNotFound.call(c,f)}return c})};var j;b.fn.oembed.defaults={maxWidth:null,maxHeight:null,useResponsiveResize:!1,includeHandle:!0,
+embedMethod:"auto",onProviderNotFound:function(){},beforeEmbed:function(){},afterEmbed:function(){},onEmbed:!1,onError:function(){},ajaxOptions:{timeout:2E3}};b.fn.oembed.insertCode=function(a,l,e){if(null!==e)switch("auto"==l&&null!==a.attr("href")?l="append":"auto"==l&&(l="replace"),l){case "replace":a.replaceWith(e.code);break;case "fill":a.html(e.code);break;case "append":a.wrap('<div class="oembedall-container"></div>');l=a.parent();j.includeHandle&&b('<span class="oembedall-closehide">↓</span>').insertBefore(a).click(function(){var a=
+encodeURIComponent(b(this).text());b(this).html("%E2%86%91"==a?"↓":"↑");b(this).parent().children().last().toggle()});l.append("<br/>");try{e.code.clone().appendTo(l)}catch(d){l.append(e.code)}}};b.fn.oembed.getPhotoCode=function(a,b){var e,d=b.title?b.title:"",c;return d+=b.author_name?" - "+b.author_name:"",d+=b.provider_name?" - "+b.provider_name:"",b.url?e='<div><a href="'+a+"\" target='_blank'><img src=\""+b.url+'" alt="'+d+'"/></a></div>':b.thumbnail_url?(c=b.thumbnail_url.replace("_s",
+"_b"),e='<div><a href="'+a+"\" target='_blank'><img src=\""+c+'" alt="'+d+'"/></a></div>'):e="Flickr"==b.provider_name?'<p><a href="'+a+"\" target='_blank'>"+a+"</a></p>":"<div>Error loading this picture</div>",e};b.fn.oembed.getRichCode=function(a,b){return b.html};b.fn.oembed.getGenericCode=function(a,b){var e='<a href="'+a+'">'+(null!==b.title?b.title:a)+"</a>";return b.html&&(e+="<div>"+b.html+"</div>"),e};b.fn.oembed.getOEmbedProvider=function(a){for(var e,h,d,c=0;c<b.fn.oembed.providers.length;c++){e=
+0;for(h=b.fn.oembed.providers[c].urlschemes.length;e<h;e++)if(d=RegExp(b.fn.oembed.providers[c].urlschemes[e],"i"),null!==a.match(d))return b.fn.oembed.providers[c]}return null};b.fn.oembed.OEmbedProvider=function(a,e,h,d,c){this.name=a;this.type=e;this.urlschemes=h;this.apiendpoint=d;this.maxWidth=500;this.maxHeight=400;c=c||{};c.useYQL&&(c.yql="xml"==c.useYQL?{xpath:"//oembed/html",from:"xml",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=xml&url="+a},datareturn:function(a){return a.html.replace(/.*\[CDATA\[(.*)\]\]>$/,
+"$1")||""}}:{from:"json",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=json&url="+a},datareturn:function(a){var c,d,e;if("video"!=a.json.type&&(a.json.url||a.json.thumbnail_url)&&!a.json.html.indexOf("iframe"))return'<img src="'+(a.json.url||a.json.thumbnail_url)+'" />';if(a.json.html.indexOf("iframe")){a.json.html.indexOf("allowfullscreen>")&&(a.json.html=a.json.html.replace("allowfullscreen>",'allowfullscreen="false">'));var a=b.parseHTML(a.json.html),f=a[0].width,
+l=a[0].height;return j.maxHeight&&j.maxWidth&&(j.useResponsiveResize?(d=f,e=l,f>j.maxWidth&&(c=j.maxWidth/f,d=j.maxWidth,e=l*c,l*=c,f*=c),l>j.maxHeight&&(c=j.maxHeight/l,e=j.maxHeight,d=f*c),l=e,f=d):(l=j.maxHeight,f=j.maxWidth)),a[0].width=f,a[0].height=l,a[0].outerHTML}return a.json.html||""}},this.apiendpoint=null);for(var f in c)this[f]=c[f];this.format=this.format||"json";this.callbackparameter=this.callbackparameter||"callback";this.embedtag=this.embedtag||{tag:""}};b.fn.updateOEmbedProvider=
+function(a,e,h,d,c){for(var f,g=0;g<b.fn.oembed.providers.length;g++)if(b.fn.oembed.providers[g].name===a&&(null!==e&&(b.fn.oembed.providers[g].type=e),null!==h&&(b.fn.oembed.providers[g].urlschemes=h),null!==d&&(b.fn.oembed.providers[g].apiendpoint=d),null!==c))for(f in b.fn.oembed.providers[g].extraSettings=c,c)null!==c[f]&&(b.fn.oembed.providers[g][f]=c[f])};b.fn.oembed.providers=[new b.fn.oembed.OEmbedProvider("youtube","video",["youtube\\.com/watch.+v=[\\w-]+&?","youtu\\.be/[\\w-]+","youtube.com/embed"],
+m()+"www.youtube.com/embed/$1?wmode=transparent",{templateRegex:/.*(?:v\=|be\/|embed\/)([\w\-]+)&?.*/,embedtag:{tag:"iframe",width:"425",height:"349"}}),new b.fn.oembed.OEmbedProvider("youtubeiframe","video",["youtube.com/embed"],"$1?wmode=transparent",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"425",height:"349"}}),new b.fn.oembed.OEmbedProvider("wistia","video",["wistia.com/m/.+","wistia.com/embed/.+","wi.st/m/.+","wi.st/embed/.+"],"http://fast.wistia.com/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("xtranormal",
+"video",["xtranormal\\.com/watch/.+"],"http://www.xtranormal.com/xtraplayr/$1/$2",{templateRegex:/.*com\/watch\/([\w\-]+)\/([\w\-]+).*/,embedtag:{tag:"iframe",width:"320",height:"269"}}),new b.fn.oembed.OEmbedProvider("scivee","video",["scivee.tv/node/.+"],"http://www.scivee.tv/flash/embedCast.swf?",{templateRegex:/.*tv\/node\/(.+)/,embedtag:{width:"480",height:"400",flashvars:"id=$1&type=3"}}),new b.fn.oembed.OEmbedProvider("veoh","video",["veoh.com/watch/.+"],"http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1337&permalinkId=$1&player=videodetailsembedded&videoAutoPlay=0&id=anonymous",
+{templateRegex:/.*watch\/([^\?]+).*/,embedtag:{width:"410",height:"341"}}),new b.fn.oembed.OEmbedProvider("gametrailers","video",["gametrailers\\.com/video/.+"],"http://media.mtvnservices.com/mgid:moses:video:gametrailers.com:$2",{templateRegex:/.*com\/video\/([\w\-]+)\/([\w\-]+).*/,embedtag:{width:"512",height:"288"}}),new b.fn.oembed.OEmbedProvider("funnyordie","video",["funnyordie\\.com/videos/.+"],"http://player.ordienetworks.com/flash/fodplayer.swf?",{templateRegex:/.*videos\/([^\/]+)\/([^\/]+)?/,
+embedtag:{width:512,height:328,flashvars:"key=$1"}}),new b.fn.oembed.OEmbedProvider("colledgehumour","video",["collegehumor\\.com/video/.+"],"http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=$1&use_node_id=true&fullscreen=1",{templateRegex:/.*video\/([^\/]+).*/,embedtag:{width:600,height:338}}),new b.fn.oembed.OEmbedProvider("metacafe","video",["metacafe\\.com/watch/.+"],"http://www.metacafe.com/fplayer/$1/$2.swf",{templateRegex:/.*watch\/(\d+)\/(\w+)\/.*/,embedtag:{width:400,height:345}}),
+new b.fn.oembed.OEmbedProvider("bambuser","video",["bambuser\\.com/channel/.*/broadcast/.*"],"http://static.bambuser.com/r/player.swf?vid=$1",{templateRegex:/.*bambuser\.com\/channel\/.*\/broadcast\/(\w+).*/,embedtag:{width:512,height:339}}),new b.fn.oembed.OEmbedProvider("twitvid","video",["twitvid\\.com/.+"],"http://www.twitvid.com/embed.php?guid=$1&autoplay=0",{templateRegex:/.*twitvid\.com\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360}}),new b.fn.oembed.OEmbedProvider("aniboom","video",
+["aniboom\\.com/animation-video/.+"],"http://api.aniboom.com/e/$1",{templateRegex:/.*animation-video\/(\d+).*/,embedtag:{width:594,height:334}}),new b.fn.oembed.OEmbedProvider("vzaar","video",["vzaar\\.com/videos/.+","vzaar.tv/.+"],"http://view.vzaar.com/$1/player?",{templateRegex:/.*\/(\d+).*/,embedtag:{tag:"iframe",width:576,height:324}}),new b.fn.oembed.OEmbedProvider("snotr","video",["snotr\\.com/video/.+"],"http://www.snotr.com/embed/$1",{templateRegex:/.*\/(\d+).*/,embedtag:{tag:"iframe",width:400,
+height:330,nocache:1}}),new b.fn.oembed.OEmbedProvider("youku","video",["v.youku.com/v_show/id_.+"],"http://player.youku.com/player.php/sid/$1/v.swf",{templateRegex:/.*id_(.+)\.html.*/,embedtag:{width:480,height:400,nocache:1}}),new b.fn.oembed.OEmbedProvider("tudou","video",["tudou.com/programs/view/.+/"],"http://www.tudou.com/v/$1/v.swf",{templateRegex:/.*view\/(.+)\//,embedtag:{width:480,height:400,nocache:1}}),new b.fn.oembed.OEmbedProvider("embedr","video",["embedr\\.com/playlist/.+"],"http://embedr.com/swf/slider/$1/425/520/default/false/std?",
+{templateRegex:/.*playlist\/([^\/]+).*/,embedtag:{width:425,height:520}}),new b.fn.oembed.OEmbedProvider("blip","video",["blip\\.tv/.+"],"http://blip.tv/oembed/"),new b.fn.oembed.OEmbedProvider("minoto-video","video",["http://api.minoto-video.com/publishers/.+/videos/.+","http://dashboard.minoto-video.com/main/video/details/.+","http://embed.minoto-video.com/.+"],"http://api.minoto-video.com/services/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("animoto","video",["animoto.com/play/.+"],
+"http://animoto.com/services/oembed"),new b.fn.oembed.OEmbedProvider("hulu","video",["hulu\\.com/watch/.*"],"http://www.hulu.com/api/oembed.json"),new b.fn.oembed.OEmbedProvider("ustream","video",["ustream\\.tv/recorded/.*"],"http://www.ustream.tv/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("videojug","video",["videojug\\.com/(film|payer|interview).*"],"http://www.videojug.com/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("sapo","video",["videos\\.sapo\\.pt/.*"],"http://videos.sapo.pt/oembed",
+{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("vodpod","video",["vodpod.com/watch/.*"],"http://vodpod.com/oembed.js",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("vimeo","video",["www.vimeo.com/groups/.*/videos/.*","www.vimeo.com/.*","vimeo.com/groups/.*/videos/.*","vimeo.com/.*"],"//vimeo.com/api/oembed.json"),new b.fn.oembed.OEmbedProvider("dailymotion","video",["dailymotion\\.com/.+"],"http://www.dailymotion.com/services/oembed"),new b.fn.oembed.OEmbedProvider("5min","video",["www\\.5min\\.com/.+"],
+"http://api.5min.com/oembed.xml",{useYQL:"xml"}),new b.fn.oembed.OEmbedProvider("National Film Board of Canada","video",["nfb\\.ca/film/.+"],"http://www.nfb.ca/remote/services/oembed/",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("qik","video",["qik\\.com/\\w+"],"http://qik.com/api/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("revision3","video",["revision3\\.com"],"http://revision3.com/api/oembed/"),new b.fn.oembed.OEmbedProvider("dotsub","video",["dotsub\\.com/view/.+"],"http://dotsub.com/services/oembed",
+{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("clikthrough","video",["clikthrough\\.com/theater/video/\\d+"],"http://clikthrough.com/services/oembed"),new b.fn.oembed.OEmbedProvider("Kinomap","video",["kinomap\\.com/.+"],"http://www.kinomap.com/oembed"),new b.fn.oembed.OEmbedProvider("VHX","video",["vhx.tv/.+"],"http://vhx.tv/services/oembed.json"),new b.fn.oembed.OEmbedProvider("bambuser","video",["bambuser.com/.+"],"http://api.bambuser.com/oembed/iframe.json"),new b.fn.oembed.OEmbedProvider("justin.tv",
+"video",["justin.tv/.+"],"http://api.justin.tv/api/embed/from_url.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("official.fm","rich",["official.fm/.+"],"http://official.fm/services/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("chirbit","rich",["chirb.it/.+"],"http://chirb.it/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("Huffduffer","rich",["huffduffer.com/[-.\\w@]+/\\d+"],"http://huffduffer.com/oembed"),new b.fn.oembed.OEmbedProvider("Spotify","rich",["open.spotify.com/(track|album|user)/"],
+"https://embed.spotify.com/oembed/"),new b.fn.oembed.OEmbedProvider("shoudio","rich",["shoudio.com/.+","shoud.io/.+"],"http://shoudio.com/api/oembed"),new b.fn.oembed.OEmbedProvider("mixcloud","rich",["mixcloud.com/.+"],m()+"www.mixcloud.com/oembed/",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("rdio.com","rich",["rd.io/.+","rdio.com"],m()+"www.rdio.com/api/oembed/"),new b.fn.oembed.OEmbedProvider("Soundcloud","rich",["soundcloud.com/.+","snd.sc/.+"],m()+"soundcloud.com/oembed",{format:"js"}),
+new b.fn.oembed.OEmbedProvider("bandcamp","rich",["bandcamp\\.com/album/.+"],null,{yql:{xpath:"//meta[contains(@content, \\'EmbeddedPlayer\\')]",from:"html",datareturn:function(a){return a.meta?'<iframe width="400" height="100" src="'+a.meta.content+'" allowtransparency="true" frameborder="0"></iframe>':!1}}}),new b.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"http://backend.deviantart.com/oembed",{format:"jsonp"}),new b.fn.oembed.OEmbedProvider("skitch",
+"photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(a){return"http://skitch.com/oembed/?format=json&url="+a},datareturn:function(a){return b.fn.oembed.getPhotoCode(a.json.url,a.json)}}}),new b.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new b.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"http://flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new b.fn.oembed.OEmbedProvider("photobucket",
+"photo",["photobucket\\.com/(albums|groups)/.+"],m()+"photobucket.com/oembed/"),new b.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],m()+"api.instagram.com/oembed"),new b.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new b.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(a){return a.image_teaser_url?
+'<img src="'+a.image_teaser_url+'"/>':!1}}),new b.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"],
+"http://www.23hq.com/23/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"http://img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],m()+"imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/,
+embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new b.fn.oembed.OEmbedProvider("gravtar","photo",["mailto:.+"],null,{templateRegex:/mailto:([^\/]+).*/,template:function(a,b){return'<img src="http://gravatar.com/avatar/'+b.md5()+'.jpg" alt="on Gravtar" class="jqoaImg">'}}),new b.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json?id="),
+new b.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new b.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new b.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new b.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new b.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"],
+"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}),
+new b.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&embedId=pt-embed-$1-693&treeId=$1&pearlId=$2&treeTitle=Diagrams%2FVisualization&site=www.pearltrees.com%2FF"}}),new b.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"http://prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550,
+height:400,flashvars:"prezi_id=$1&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"}}),new b.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(a,b){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2E3),"<div id='"+b+"' class='tourwrist-tour-embed direct'></div> <script type='text/javascript' src='http://tourwrist.com/tour_embed.js'><\/script>"}}),new b.fn.oembed.OEmbedProvider("meetup","rich",
+["meetup\\.(com|ps)/.+"],m()+"api.meetup.com/oembed"),new b.fn.oembed.OEmbedProvider("ebay","rich",["ebay\\.*"],m()+"togo.ebay.com/togo/togo.swf?2008013100",{templateRegex:/.*\/([^\/]+)\/(\d{10,13}).*/,embedtag:{width:355,height:300,flashvars:"base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1"}}),new b.fn.oembed.OEmbedProvider("wikipedia","rich",["wikipedia.org/wiki/.+"],"http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json§ion=0&callback=?",{templateRegex:/.*\/\/([\w]+).*\/wiki\/([^\/]+).*/,
+templateData:function(a){if(!a.parse)return!1;var b=a.parse.text["*"].replace(/href="\/wiki/g,'href="http://en.wikipedia.org/wiki');return'<div id="content"><h3><a class="nav-link" href="http://en.wikipedia.org/wiki/'+a.parse.displaytitle+'">'+a.parse.displaytitle+"</a></h3>"+b+"</div>"}}),new b.fn.oembed.OEmbedProvider("imdb","rich",["imdb.com/title/.+"],"http://www.imdbapi.com/?i=$1&callback=?",{templateRegex:/.*\/title\/([^\/]+).*/,templateData:function(a){return a.Title?'<div id="content"><h3><a class="nav-link" href="http://imdb.com/title/'+
+a.ID+'/">'+a.Title+"</a> ("+a.Year+")</h3><p>Starring: "+a.Actors+'</p><div id="photo-wrap" style="margin: auto;width:600px;height:450px;"><img class="photo" id="photo-display" src="'+a.Poster+'" alt="'+a.Title+'"></div> <div id="view-photo-caption">'+a.Plot+"</div></div>":!1}}),new b.fn.oembed.OEmbedProvider("livejournal","rich",["livejournal.com/"],"http://ljpic.seacrow.com/json/$2$4?jsonp=?",{templateRegex:/(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/,templateData:function(a){return!!a.username&&
+'<div><img src="'+a.image+'" align="left" style="margin-right: 1em;" /><span class="oembedall-ljuser"><a href="http://'+a.username+'.livejournal.com/profile"><img src="http://www.livejournal.com/img/userinfo.gif" alt="[info]" width="17" height="17" /></a><a href="http://'+a.username+'.livejournal.com/">'+a.username+"</a></span><br />"+a.name+"</div>"}}),new b.fn.oembed.OEmbedProvider("circuitbee","rich",["circuitbee\\.com/circuit/view/.+"],"http://c.circuitbee.com/build/r/schematic-embed.html?id=$1",
+{templateRegex:/.*circuit\/view\/(\d+).*/,embedtag:{tag:"iframe",width:"500",height:"350"}}),new b.fn.oembed.OEmbedProvider("googlecalendar","rich",["www.google.com/calendar/embed?.+"],"$1",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"800",height:"600"}}),new b.fn.oembed.OEmbedProvider("jsfiddle","rich",["jsfiddle.net/[^/]+/?"],"http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?",{templateRegex:/.*net\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new b.fn.oembed.OEmbedProvider("jsbin",
+"rich",["jsbin.com/.+"],"http://jsbin.com/$1/?",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new b.fn.oembed.OEmbedProvider("jotform","rich",["form.jotform.co/form/.+"],"$1?",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"100%",height:"507"}}),new b.fn.oembed.OEmbedProvider("reelapp","rich",["reelapp\\.com/.+"],"http://www.reelapp.com/$1/embed",{templateRegex:/.*com\/(\S{6}).*/,embedtag:{tag:"iframe",width:"400",height:"338"}}),new b.fn.oembed.OEmbedProvider("linkedin",
+"rich",["linkedin.com/pub/.+"],"https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"368px",height:"auto"}}),new b.fn.oembed.OEmbedProvider("timetoast","rich",["timetoast.com/timelines/[0-9]+"],"http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1",{templateRegex:/.*timelines\/([0-9]*)/,embedtag:{width:550,height:400,nocache:1}}),new b.fn.oembed.OEmbedProvider("pastebin","rich",["pastebin\\.com/[\\S]{8}"],
+"http://pastebin.com/embed_iframe.php?i=$1",{templateRegex:/.*\/(\S{8}).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new b.fn.oembed.OEmbedProvider("mixlr","rich",["mixlr.com/.+"],"http://mixlr.com/embed/$1?autoplay=ae",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new b.fn.oembed.OEmbedProvider("pastie","rich",["pastie\\.org/pastes/.+"],null,{yql:{xpath:'//pre[@class="textmate-source"]'}}),new b.fn.oembed.OEmbedProvider("github","rich",["gist.github.com/.+"],
+"https://github.com/api/oembed"),new b.fn.oembed.OEmbedProvider("github","rich",["github.com/[-.\\w@]+/[-.\\w@]+"],"https://api.github.com/repos/$1/$2?callback=?",{templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,templateData:function(a){return a.data.html_url?'<div class="oembedall-githubrepos"><ul class="oembedall-repo-stats"><li>'+a.data.language+'</li><li class="oembedall-watchers"><a title="Watchers" href="'+a.data.html_url+'/watchers">◉ '+a.data.watchers+'</a></li><li class="oembedall-forks"><a title="Forks" href="'+
+a.data.html_url+'/network">ɥ '+a.data.forks+'</a></li></ul><h3><a href="'+a.data.html_url+'">'+a.data.name+'</a></h3><div class="oembedall-body"><p class="oembedall-description">'+a.data.description+'</p><p class="oembedall-updated-at">Last updated: '+a.data.pushed_at+"</p></div></div>":!1}}),new b.fn.oembed.OEmbedProvider("facebook","rich",["facebook.com/(people/[^\\/]+/\\d+|[^\\/]+$)"],"https://graph.facebook.com/$2$3/?callback=?",{templateRegex:/.*facebook.com\/(people\/[^\/]+\/(\d+).*|([^\/]+$))/,
+templateData:function(a){if(!a.id)return!1;var b='<div class="oembedall-facebook1"><div class="oembedall-facebook2"><a href="http://www.facebook.com/">facebook</a> ';return b+=a.from?'<a href="http://www.facebook.com/'+a.from.id+'">'+a.from.name+"</a>":a.link?'<a href="'+a.link+'">'+a.name+"</a>":a.username?'<a href="http://www.facebook.com/'+a.username+'">'+a.name+"</a>":'<a href="http://www.facebook.com/'+a.id+'">'+a.name+"</a>",b+='</div><div class="oembedall-facebookBody"><div class="contents">',
+b+=a.picture?'<a href="'+a.link+'"><img src="'+a.picture+'"></a>':'<img src="https://graph.facebook.com/'+a.id+'/picture">',a.from&&(b+='<a href="'+a.link+'">'+a.name+"</a>"),a.founded&&(b+="Founded: <strong>"+a.founded+"</strong><br>"),a.category&&(b+="Category: <strong>"+a.category+"</strong><br>"),a.website&&(b+='Website: <strong><a href="'+a.website+'">'+a.website+"</a></strong><br>"),a.gender&&(b+="Gender: <strong>"+a.gender+"</strong><br>"),a.description&&(b+=a.description+"<br>"),b+"</div></div>"}}),
+new b.fn.oembed.OEmbedProvider("stackoverflow","rich",["stackoverflow.com/questions/[\\d]+"],"http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?",{templateRegex:/.*questions\/([\d]+).*/,templateData:function(a){if(!a.questions)return!1;var a=a.questions[0],e=b(a.body).text(),e='<div class="oembedall-stoqembed"><div class="oembedall-statscontainer"><div class="oembedall-statsarrow"></div><div class="oembedall-stats"><div class="oembedall-vote"><div class="oembedall-votes"><span class="oembedall-vote-count-post"><strong>'+
+(a.up_vote_count-a.down_vote_count)+'</strong></span><div class="oembedall-viewcount">vote(s)</div></div></div><div class="oembedall-status"><strong>'+a.answer_count+'</strong>answer</div></div><div class="oembedall-views">'+a.view_count+' view(s)</div></div><div class="oembedall-summary"><h3><a class="oembedall-question-hyperlink" href="http://stackoverflow.com/questions/'+a.question_id+'/">'+a.title+'</a></h3><div class="oembedall-excerpt">'+e.substring(0,100)+'...</div><div class="oembedall-tags">';
+for(i in a.tags)e+='<a title="" class="oembedall-post-tag" href="http://stackoverflow.com/questions/tagged/'+a.tags[i]+'">'+a.tags[i]+"</a>";return e+('</div><div class="oembedall-fr"><div class="oembedall-user-info"><div class="oembedall-user-gravatar32"><a href="http://stackoverflow.com/users/'+a.owner.user_id+"/"+a.owner.display_name+'"><img width="32" height="32" alt="" src="http://www.gravatar.com/avatar/'+a.owner.email_hash+'?s=32&d=identicon&r=PG"></a></div><div class="oembedall-user-details"><a href="http://stackoverflow.com/users/'+
+a.owner.user_id+"/"+a.owner.display_name+'">'+a.owner.display_name+'</a><br><span title="reputation score" class="oembedall-reputation-score">'+a.owner.reputation+"</span></div></div></div></div></div>")}}),new b.fn.oembed.OEmbedProvider("wordpress","rich",["wordpress\\.com/.+","blogs\\.cnn\\.com/.+","techcrunch\\.com/.+","wp\\.me/.+"],"http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"),new b.fn.oembed.OEmbedProvider("screenr","rich",["screenr.com"],"http://www.screenr.com/embed/$1",
+{templateRegex:/.*\/([^\/]+).*/,embedtag:{tag:"iframe",width:"650",height:396}}),new b.fn.oembed.OEmbedProvider("gigpans","rich",["gigapan\\.org/[-.\\w@]+/\\d+"],"http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html",{templateRegex:/.*\/(\d+)\/?.*/,embedtag:{tag:"iframe",width:"100%",height:400}}),new b.fn.oembed.OEmbedProvider("scribd","rich",["scribd\\.com/.+"],m()+"www.scribd.com/embeds/$1/content?start_page=1&view_mode=list",{templateRegex:/.*doc\/([^\/]+).*/,embedtag:{tag:"iframe",
+width:"100%",height:600}}),new b.fn.oembed.OEmbedProvider("kickstarter","rich",["kickstarter\\.com/projects/.+"],"$1/widget/card.html",{templateRegex:/([^\?]+).*/,embedtag:{tag:"iframe",width:"220",height:380}}),new b.fn.oembed.OEmbedProvider("amazon","rich",["amzn.com/B+","amazon.com.*/(B\\S+)($|\\/.*)"],m()+"rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr",{apikey:!0,templateRegex:/.*\/(B[0-9A-Z]+)($|\/.*)/,
+embedtag:{tag:"iframe",width:"120px",height:"240px"}}),new b.fn.oembed.OEmbedProvider("slideshare","rich",["slideshare.net"],m()+"www.slideshare.net/api/oembed/2",{format:"jsonp"}),new b.fn.oembed.OEmbedProvider("roomsharejp","rich",["roomshare\\.jp/(en/)?post/.*"],"http://roomshare.jp/oembed.json"),new b.fn.oembed.OEmbedProvider("lanyard","rich",["lanyrd.com/\\d+/.+"],null,{yql:{xpath:'(//div[@class="primary"])[1]',from:"htmlstring",datareturn:function(a){return a.result?'<div class="oembedall-lanyard">'+
+a.result+"</div>":!1}}}),new b.fn.oembed.OEmbedProvider("asciiartfarts","rich",["asciiartfarts.com/\\d+.html"],null,{yql:{xpath:"//pre/font",from:"htmlstring",datareturn:function(a){return a.result?'<pre style="background-color:000;">'+a.result+"</div>":!1}}}),new b.fn.oembed.OEmbedProvider("opengraph","rich",[".*"],null,{yql:{xpath:"//meta|//title|//link",from:"html",datareturn:function(a){var e,h,d;return(!a["og:title"]&&a.title&&a.description&&(a["og:title"]=a.title),!a["og:title"]&&!a.title)?
+!1:(e=b("<p/>"),a["og:video"]?(h=b('<embed src="'+a["og:video"]+'"/>'),h.attr("type",a["og:video:type"]||"application/x-shockwave-flash").css("max-height",j.maxHeight||"auto").css("max-width",j.maxWidth||"auto"),a["og:video:width"]&&h.attr("width",a["og:video:width"]),a["og:video:height"]&&h.attr("height",a["og:video:height"]),e.append(h)):a["og:image"]&&(d=b('<img src="'+a["og:image"]+'">'),d.css("max-height",j.maxHeight||"auto").css("max-width",j.maxWidth||"auto"),a["og:image:width"]&&d.attr("width",
+a["og:image:width"]),a["og:image:height"]&&d.attr("height",a["og:image:height"]),e.append(d)),a["og:title"]&&e.append("<b>"+a["og:title"]+"</b><br/>"),a["og:description"]?e.append(a["og:description"]+"<br/>"):a.description&&e.append(a.description+"<br/>"),e)}}})]})(jQuery);
+String.prototype.md5=function(){var b=function(b,m){var j=(b&65535)+(m&65535);return(b>>16)+(m>>16)+(j>>16)<<16|j&65535},m=function(e,m,j,a,l,h){e=b(b(m,e),b(a,h));return b(e<<l|e>>>32-l,j)},o=function(b,p,j,a,l,h,d){return m(p&j|~p&a,b,p,l,h,d)},q=function(b,p,j,a,l,h,d){return m(p&a|j&~a,b,p,l,h,d)},n=function(b,p,j,a,l,h,d){return m(j^(p|~a),b,p,l,h,d)};return function(b){for(var m="",j=4*b.length,a=0;a<j;a++)m+="0123456789abcdef".charAt(b[a>>2]>>8*(a%4)+4&15)+"0123456789abcdef".charAt(b[a>>2]>>
+8*(a%4)&15);return m}(function(e){for(var p,j,a,l,h=e.length,d=1732584193,c=-271733879,f=-1732584194,g=271733878,k=0;k<h;k+=16)p=d,j=c,a=f,l=g,d=o(d,c,f,g,e[k+0],7,-680876936),g=o(g,d,c,f,e[k+1],12,-389564586),f=o(f,g,d,c,e[k+2],17,606105819),c=o(c,f,g,d,e[k+3],22,-1044525330),d=o(d,c,f,g,e[k+4],7,-176418897),g=o(g,d,c,f,e[k+5],12,1200080426),f=o(f,g,d,c,e[k+6],17,-1473231341),c=o(c,f,g,d,e[k+7],22,-45705983),d=o(d,c,f,g,e[k+8],7,1770035416),g=o(g,d,c,f,e[k+9],12,-1958414417),f=o(f,g,d,c,e[k+10],
+17,-42063),c=o(c,f,g,d,e[k+11],22,-1990404162),d=o(d,c,f,g,e[k+12],7,1804603682),g=o(g,d,c,f,e[k+13],12,-40341101),f=o(f,g,d,c,e[k+14],17,-1502002290),c=o(c,f,g,d,e[k+15],22,1236535329),d=q(d,c,f,g,e[k+1],5,-165796510),g=q(g,d,c,f,e[k+6],9,-1069501632),f=q(f,g,d,c,e[k+11],14,643717713),c=q(c,f,g,d,e[k+0],20,-373897302),d=q(d,c,f,g,e[k+5],5,-701558691),g=q(g,d,c,f,e[k+10],9,38016083),f=q(f,g,d,c,e[k+15],14,-660478335),c=q(c,f,g,d,e[k+4],20,-405537848),d=q(d,c,f,g,e[k+9],5,568446438),g=q(g,d,c,f,e[k+
+14],9,-1019803690),f=q(f,g,d,c,e[k+3],14,-187363961),c=q(c,f,g,d,e[k+8],20,1163531501),d=q(d,c,f,g,e[k+13],5,-1444681467),g=q(g,d,c,f,e[k+2],9,-51403784),f=q(f,g,d,c,e[k+7],14,1735328473),c=q(c,f,g,d,e[k+12],20,-1926607734),d=m(c^f^g,d,c,e[k+5],4,-378558),g=m(d^c^f,g,d,e[k+8],11,-2022574463),f=m(g^d^c,f,g,e[k+11],16,1839030562),c=m(f^g^d,c,f,e[k+14],23,-35309556),d=m(c^f^g,d,c,e[k+1],4,-1530992060),g=m(d^c^f,g,d,e[k+4],11,1272893353),f=m(g^d^c,f,g,e[k+7],16,-155497632),c=m(f^g^d,c,f,e[k+10],23,-1094730640),
+d=m(c^f^g,d,c,e[k+13],4,681279174),g=m(d^c^f,g,d,e[k+0],11,-358537222),f=m(g^d^c,f,g,e[k+3],16,-722521979),c=m(f^g^d,c,f,e[k+6],23,76029189),d=m(c^f^g,d,c,e[k+9],4,-640364487),g=m(d^c^f,g,d,e[k+12],11,-421815835),f=m(g^d^c,f,g,e[k+15],16,530742520),c=m(f^g^d,c,f,e[k+2],23,-995338651),d=n(d,c,f,g,e[k+0],6,-198630844),g=n(g,d,c,f,e[k+7],10,1126891415),f=n(f,g,d,c,e[k+14],15,-1416354905),c=n(c,f,g,d,e[k+5],21,-57434055),d=n(d,c,f,g,e[k+12],6,1700485571),g=n(g,d,c,f,e[k+3],10,-1894986606),f=n(f,g,d,c,
+e[k+10],15,-1051523),c=n(c,f,g,d,e[k+1],21,-2054922799),d=n(d,c,f,g,e[k+8],6,1873313359),g=n(g,d,c,f,e[k+15],10,-30611744),f=n(f,g,d,c,e[k+6],15,-1560198380),c=n(c,f,g,d,e[k+13],21,1309151649),d=n(d,c,f,g,e[k+4],6,-145523070),g=n(g,d,c,f,e[k+11],10,-1120210379),f=n(f,g,d,c,e[k+2],15,718787259),c=n(c,f,g,d,e[k+9],21,-343485551),d=b(d,p),c=b(c,j),f=b(f,a),g=b(g,l);return[d,c,f,g]}(function(b){for(var m=(b.length+8>>6)+1,j=[],a=16*m,l=b.length,h=0;h<a;h++)j.push(0);for(a=0;a<l;a++)j[a>>2]|=(b.charCodeAt(a)&
+255)<<8*(a%4);return j[a>>2]|=128<<8*(a%4),j[16*m-2]=8*l,j}(this)))};
\ No newline at end of file
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
@media (max-width: 900px) {\r
}\r
.navigation-a {\r
height: 30px;\r
- background: #3d3d3d;\r
+ background: #3D3D3D;\r
position: absolute;\r
left: 0;\r
right: 0;\r
line-height: 1.13rem;\r
line-height: 30px;\r
float: left;\r
- color: #dddddd;\r
+ color: #ddd;\r
font-weight: bold;\r
text-decoration: none;\r
text-transform: uppercase;\r
}\r
.navigation-a ul li a:hover {\r
cursor: pointer;\r
- color: #ffffff;\r
+ color: #fff;\r
}\r
.icon-navigation-a-github:before,\r
.icon-navigation-a-github:after {\r
color: #8a8a8a;\r
}\r
.footer-a a {\r
- color: #27c0d8;\r
+ color: #27C0D8;\r
text-decoration: none;\r
- border-bottom: 1px dotted #27c0d8;\r
+ border-bottom: 1px dotted #27C0D8;\r
}\r
.footer-a a:hover {\r
color: #23adc2;\r
.content blockquote,\r
.content pre {\r
background: none;\r
- border-left: 4px solid #27c0d8;\r
+ border-left: 4px solid #27C0D8;\r
padding: 1.5em 2.25em;\r
}\r
.content p a,\r
.content h3 a,\r
.content h4 a,\r
.content h5 a {\r
- color: #27c0d8;\r
+ color: #27C0D8;\r
text-decoration: none;\r
- border-bottom: 1px dotted #27c0d8;\r
+ border-bottom: 1px dotted #27C0D8;\r
}\r
.content p a:hover,\r
.content ul a:hover,\r
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);\r
font: inherit;\r
color: inherit;\r
- border: 1px solid #d9d9d9;\r
+ border: 1px solid #D9D9D9;\r
padding: .2em .5em;\r
}\r
.content input:focus,\r
}\r
.content hr {\r
border: 0;\r
- border-top: 4px solid #d9d9d9;\r
+ border-top: 4px solid #D9D9D9;\r
margin: 1.5em 0;\r
}\r
.content input[type="text"] {\r
line-height: 1.35rem;\r
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;\r
padding: 2px 6px;\r
- -webkit-box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;\r
- -moz-box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;\r
- box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;\r
+ -webkit-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;\r
+ -moz-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;\r
+ box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;\r
}\r
.content p img {\r
vertical-align: middle;\r
body button.navigation-b ul li a:hover,\r
body input.navigation-b ul li a:hover {\r
color: #fff;\r
- background: #27c0d8;\r
+ background: #27C0D8;\r
}\r
body a.button-a-background:active,\r
body button.button-a-background:active,\r
line-height: 25.2px;\r
line-height: 1.57rem;\r
font-weight: bold;\r
- background-color: #27c0d8;\r
+ background-color: #27C0D8;\r
overflow: hidden;\r
display: inline-block;\r
padding: 0.75em 0.25em;\r
margin-top: 30px;\r
}\r
.footer-a {\r
- border-top: 1px solid #d9d9d9;\r
+ border-top: 1px solid #D9D9D9;\r
}\r
.adjoined-top {\r
- background-color: #27c0d8;\r
+ background-color: #27C0D8;\r
color: #fff;\r
}\r
.adjoined-top .content h1,\r
}\r
.adjoined-top .content code {\r
font-size: inherit;\r
- color: #27c0d8;\r
+ color: #27C0D8;\r
}\r
.adjoined-bottom {\r
position: relative;\r
.adjoined-bottom:before {\r
z-index: -1;\r
content: '';\r
- background: #27c0d8;\r
+ background: #27C0D8;\r
position: absolute;\r
top: 0;\r
left: 0;\r
#main #editor {\r
background: #FFF;\r
padding: 2% 4%;\r
- border: dashed 5px #27c0d8;\r
-}\r
-div.cke a.cke_button,\r
-div.cke .cke_combo_button {\r
- border-bottom: none;\r
-}\r
-div.cke a.cke_button.cke_combo_button,\r
-div.cke .cke_combo_button.cke_combo_button {\r
- border-bottom: 1px solid #a6a6a6;\r
+ border: dashed 5px #27C0D8;\r
}\r
#main .adjoined-top:before {\r
height: 335px;\r
div.toolbarModifier > ul {\r
padding: 0;\r
margin: 0;\r
- border-top: 1px solid #cccccc;\r
+ border-top: 1px solid #ccc;\r
width: 100%;\r
}\r
div.toolbarModifier > ul[data-type="table-header"] {\r
}\r
div.toolbarModifier > ul > li[data-type="group"],\r
div.toolbarModifier > ul > li[data-type="separator"] {\r
- border-bottom: 1px solid #cccccc;\r
+ border-bottom: 1px solid #ccc;\r
}\r
div.toolbarModifier > ul > li[data-type="subgroup"] {\r
border-top: 1px solid #eee;\r
line-height: 1;\r
}\r
div.toolbarModifier > ul > li ul li[data-type="subgroup"] {\r
- border-top: 1px solid #dddddd;\r
+ border-top: 1px solid #ddd;\r
}\r
div.toolbarModifier > ul > li ul li[data-type="subgroup"]:first-child {\r
border-top: 0;\r
line-height: 2.03rem;\r
padding: 0.36em 1.5em;\r
background: #f5f5f5;\r
- border-bottom: 1px solid #dddddd;\r
+ border-bottom: 1px solid #ddd;\r
margin-top: 0;\r
margin-bottom: 1.2em;\r
}\r
width: 9em;\r
clear: both;\r
text-align: right;\r
- border-top: 1px solid #dddddd;\r
+ border-top: 1px solid #ddd;\r
padding-left: 1.5em;\r
padding-right: .1em;\r
-webkit-box-sizing: border-box;\r
#help-content {\r
display: none;\r
}\r
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBR2pDLFNJM0NDO0lBSUUsa0JBQUE7OztBQVZILFNBTUMsZUFPQztFQUNDLG1CQUFBOztBQ1ZIO0VBQ0MsWUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7O0FMcUNELFFBSGlDO0VBR2pDO0lLbENFLGtCQUFBOzs7QUFYRixhQWNDO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7O0FBakJGLGFBY0MsR0FLQztBQW5CRixhQWNDLEdBS0ssR0FBRztFQUNOLHFCQUFBOztBTHlCSCxRQUhpQztFQUdqQyxhSy9CQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUFHakMsYUsvQkMsR0FxQkUsYUFDQztJQUlDLGdCQUFBOzs7QUFJRixhQTlCRixHQXFCRSxhQVNDO0VBQ0EsaUJBQUE7O0FMQUosUUFIaUM7RUFHakMsYUsvQkMsR0FxQkUsYUFTQztJQUlDLGtCQUFBOzs7QUFNRixhQXhDRixHQXVDQyxHQUNHO0VBQ0QsaUJBQUE7O0FBdkRKLGFBY0MsR0F1Q0MsR0FLQztFTHhDRixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VLdUNHLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7O0FBRUEsYUFyREgsR0F1Q0MsR0FLQyxFQVNFO0VBQ0EsZUFBQTtFQUNBLGNBQUE7O0FBUUoseUJBQUM7QUFBUyx5QkFBQztFQUNWLHNCQUFrQixxckJBQWxCOztBQ3BGRjtFQUNDLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTs7QU5nREQsUUFIaUM7RUFHakM7SU03Q0Usa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQUdqQyxhTXRDQztJQVdFLGNBQUE7SUFDQSxXQUFBO0lBQ0EscUJBQUE7OztBTnlCSCxRQUhpQztFQUdqQyxhTXRDQyxHQWdCQztJQUVFLGtCQUFBOzs7QUFHRCxhQXJCRixHQWdCQyxHQUtHO0VBQ0QsaUJBQUE7O0FOZ0JKLFFBSGlDO0VBR2pDLGFNdENDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQUdqQyxhTXRDQyxHQWdCQyxHQWFDO0lBT0UsV0FBQTtJSHFPSCx3QkFBQTtJQUFpQyxvQ0FBQTtJQUNqQyxxQkFBQTtJQUE4Qiw2QkFBQTtJQUM5QixnQkFBQTtJQUF5Qiw0QkFBQTs7O0FJeFIzQjtFUHdCQyxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VPeEJBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7O0FBTkQsU1A0RUM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxTQU5ELEVBTUU7RUFDQSxjQUFBOztBT25GSCxTQVFDO0VBQ0MsU0FBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7O0FDWEY7RVJ3QkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUXpCQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7O0FBSkQsUUFTQztFQUNDLGdCQUFBOztBQVZGLFFBYUM7QUFiRCxRQWFLO0FBYkwsUUFhUztBQWJULFFBYWM7QUFiZCxRQWEwQixTQUFRLElBQUk7QUFidEMsUUFhd0Q7RUFDdEQsaUJBQUE7O0FBZEYsUUFpQkM7QUFqQkQsUUFpQk87RUxxUUwsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUtyUXpCLGdCQUFBOztBQW5CRixRQXNCQztBQXRCRCxRQXNCTTtBQXRCTixRQXNCWTtBQXRCWixRQXNCaUI7RUFDZixtQkFBQTs7QUF2QkYsUUEwQkM7QUExQkQsUUEwQmE7RUFDWCxnQkFBQTtFQUNBLDhCQUFBO0VBQ0EscUJBQUE7O0FBN0JGLFFBb0NDLEVSd0NBO0FRNUVELFFBb0NJLEdSd0NIO0FRNUVELFFBb0NRLEdSd0NQO0FRNUVELFFBb0NZLFdSd0NYO0FRNUVELFFBb0N3QixHUndDdkI7QVE1RUQsUUFvQzRCLEdSd0MzQjtBUTVFRCxRQW9DZ0MsR1J3Qy9CO0FRNUVELFFBb0NvQyxHUndDbkM7QVE1RUQsUUFvQ3dDLEdSd0N2QztFQUNDLGNBQUE7RUFDQSxxQkFBQTtFQUVBLGlDQUFBOztBQUVBLFFROUNELEVSd0NBLEVBTUU7QUFBRCxRUTlDRSxHUndDSCxFQU1FO0FBQUQsUVE5Q00sR1J3Q1AsRUFNRTtBQUFELFFROUNVLFdSd0NYLEVBTUU7QUFBRCxRUTlDc0IsR1J3Q3ZCLEVBTUU7QUFBRCxRUTlDMEIsR1J3QzNCLEVBTUU7QUFBRCxRUTlDOEIsR1J3Qy9CLEVBTUU7QUFBRCxRUTlDa0MsR1J3Q25DLEVBTUU7QUFBRCxRUTlDc0MsR1J3Q3ZDLEVBTUU7RUFDQSxjQUFBOztBUW5GSCxRQXdDQztBQXhDRCxRQXdDSztBQXhDTCxRQXdDUztBQXhDVCxRQXdDYTtBQXhDYixRQXdDaUI7RUFDZixXQUFBO0VBQ0EsZ0JBQUE7O0FBMUNGLFFBd0NDLEdBS0M7QUE3Q0YsUUF3Q0ssR0FLSDtBQTdDRixRQXdDUyxHQUtQO0FBN0NGLFFBd0NhLEdBS1g7QUE3Q0YsUUF3Q2lCLEdBS2Y7QUE3Q0YsUUF3Q0MsR0FLTztBQTdDUixRQXdDSyxHQUtHO0FBN0NSLFFBd0NTLEdBS0Q7QUE3Q1IsUUF3Q2EsR0FLTDtBQTdDUixRQXdDaUIsR0FLVDtFQUNMLGtCQUFBOztBQTlDSCxRQXdDQyxHQVVDLEVBQUM7QUFsREgsUUF3Q0ssR0FVSCxFQUFDO0FBbERILFFBd0NTLEdBVVAsRUFBQztBQWxESCxRQXdDYSxHQVVYLEVBQUM7QUFsREgsUUF3Q2lCLEdBVWYsRUFBQztFQUNBLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTs7QUFHRCxRQWpCRCxHQWlCRSxNQUNBLEVBQUM7QUFERixRQWpCRyxHQWlCRixNQUNBLEVBQUM7QUFERixRQWpCTyxHQWlCTixNQUNBLEVBQUM7QUFERixRQWpCVyxHQWlCVixNQUNBLEVBQUM7QUFERixRQWpCZSxHQWlCZCxNQUNBLEVBQUM7RUFDQSxVQUFBOztBQUlGLFFBdkJELEdBdUJFLE9BQ0E7QUFERCxRQXZCRyxHQXVCRixPQUNBO0FBREQsUUF2Qk8sR0F1Qk4sT0FDQTtBQURELFFBdkJXLEdBdUJWLE9BQ0E7QUFERCxRQXZCZSxHQXVCZCxPQUNBO0VMOERELDBEQUFBO0VBQ0EsdURBQUE7RUFDQSxxREFBQTtFQUNBLGtEQUFBO0VLL0RFLFVBQUE7O0FBbEVKLFFBdUVDO0FBdkVELFFBdUVRO0FBdkVSLFFBdUVnQixTQUFRLElBQUk7RUwrTTFCLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VBbUJ6Qix1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7RUtsT0EsYUFBQTtFQUNBLGNBQUE7RUFFQSx5QkFBQTtFQUNBLGtCQUFBOztBQUVBLFFBVkQsTUFVRTtBQUFELFFBVk0sT0FVTDtBQUFELFFBVmMsU0FBUSxJQUFJLGdCQVV6QjtFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTHdORCx3RUFBQTtFQUNBLHFFQUFBO0VBQ0EsZ0VBQUE7O0FLN1NGLFFBOEZDO0VBQ0MsOEJBQUE7RUFDQSxlQUFBOztBQWhHRixRQW1HQztFQUNDLGtCQUFBO0VBQ0EsNkJSbkcyQyx3QlFtRzNDO0VSN0VELGVBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTs7QVEzQkQsUUF5R0M7RUFDQyxrQkFBQTs7QUExR0YsUUE2R0M7RVJyRkEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW9GQyxtQkFBQTs7QUEvR0YsUUFrSEM7RVIxRkEsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVF5RkMsaUJBQUE7O0FBcEhGLFFBdUhDO0VSL0ZBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RVE4RkMsZ0JBQUE7RUFDQSxrQkFBQTs7QUExSEYsUUE2SEM7RVJyR0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVFvR0MsZ0JBQUE7RUFDQSxrQkFBQTs7QUFoSUYsUUFtSUM7RVIzR0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVEwR0MsZ0JBQUE7RUFDQSxrQkFBQTs7QUF0SUYsUUF5SUM7RUFDQyxTQUFBO0VBQ0EsNkJBQUE7RUFDQSxlQUFBOztBQUlBLFFBREQsTUFDRTtFQUNBLGFBQUE7RUFDQSxrQkFBQTs7QUFHRCxRQU5ELE1BTUU7RUxpREQsMEJBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBOztBS3hNRixRQTRKQztFUnBJQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VRbUlDLG9CUjdKOEIsdUNRNko5QjtFQUNBLGdCQUFBO0VMNElBLDBEQUFBO0VBQ0EsdURBQUE7RUFDQSxrREFBQTs7QUs3U0YsUUF1S0MsRUFDQztFQUNDLHNCQUFBOztBQXpLSCxRQXVLQyxFQUtDO0VBQ0MsY0FBQTs7QUE3S0gsUUFpTEM7RUFDQyxVQUFBO0VBQ0EsU0FBQTtFQUVBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7O0FBdkxGLFFBMExDO0FBMUxELFFBMExNO0VSbEtMLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VRa0tDLGdKQUFBOztBQTdMRixRQTBMQyxJQUtDO0FBL0xGLFFBMExNLEtBS0o7RUFDQyxTQUFBOztBQWhNSCxRQXFNQyxJQUFJO0VBQ0gsZUFBQTtFQUNBLGNBQUE7O0FBdk1GLFFBME1DO0VBQ0MsV0FBQTs7QUEzTUYsUUE4TUMsR0FFQztBQWhORixRQThNSyxHQUVIO0FBaE5GLFFBOE1DLEdBRUs7QUFoTk4sUUE4TUssR0FFQztFQUNILGdCQUFBOztBQWpOSCxRQThNQyxHQU1DO0FBcE5GLFFBOE1LLEdBTUg7RVI1TEQsZUFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTs7QVEzQkQsUUEwTkMsU0FBUSxJQUFJO0VBQ1gsV0FBQTs7QUEzTkYsUUE4TkMsSUFBRztFQUNGLHVCQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBOzs7QUFHQSxRQU5ELElBQUcsS0FNRDtFQUNBLFNBQVMsTUFBVDtFQUNBLGlCQUFBOztBQ2pPRCxJQURELEVBQ0U7QUFBRCxJQURFLE9BQ0Q7QUFBRCxJQURVLE1BQ1Q7RU5pUkQsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUhoUTFCLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVNuQkUsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBSUEsYUFBQTtFQUdBLHVCQUFBOztBQUVBLElBdkJGLEVBQ0UsU0FzQkM7QUFBRCxJQXZCQyxPQUNELFNBc0JDO0FBQUQsSUF2QlMsTUFDVCxTQXNCQztFQUNBLGtCQUFBOztBQUdELElBM0JGLEVBQ0UsU0EwQkM7QUFBRCxJQTNCQyxPQUNELFNBMEJDO0FBQUQsSUEzQlMsTUFDVCxTQTBCQztFQUNBLG1CQUFBOztBQW9CRCxJQWhERixFQUNFLFNBK0NDO0FBQUQsSUFoREMsT0FDRCxTQStDQztBQUFELElBaERTLE1BQ1QsU0ErQ0M7RU5rT0YsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RU1uUHZCLFdBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7O0FBRUEsSUF4Q0gsRUFDRSxTQStDQyxpQkFSQztBQUFELElBeENBLE9BQ0QsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDUSxNQUNULFNBK0NDLGlCQVJDO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLHFCQUFBOztBVEdMLFFBSGlDO0VBR2pDLElTL0NDLEVBQ0UsU0FtREM7RVRMSixJUy9DSSxPQUNELFNBbURDO0VUTEosSVMvQ1ksTUFDVCxTQW1EQztJTjhORiw0QkFBQTtJQUFpQyxvQ0FBQTtJQUNqQyx5QkFBQTtJQUE4Qiw2QkFBQTtJQUM5QixvQkFBQTtJQUF5Qiw0QkFBQTtJTW5QdkIsV0FBQTtJQUNBLFVBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0lBQ0Esa0JBQUE7SUFDQSxrQkFBQTs7RUFFQSxJQXhDSCxFQUNFLFNBbURDLDBCQVpDO0VBQUQsSUF4Q0EsT0FDRCxTQW1EQywwQkFaQztFQUFELElBeENRLE1BQ1QsU0FtREMsMEJBWkM7SUFDQSxrQkFBQTtJQUNBLFNBQUE7SUFDQSxRQUFBO0lBQ0EscUJBQUE7O0VBSkQsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOzs7QUFjRixJQTFERixFQUNFLFNBeURDO0FBQUQsSUExREMsT0FDRCxTQXlEQztBQUFELElBMURTLE1BQ1QsU0F5REM7QUFDRCxJQTNERixFQUNFLFNBMERDO0FBQUQsSUEzREMsT0FDRCxTQTBEQztBQUFELElBM0RTLE1BQ1QsU0EwREM7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7O0FBR0QsSUFoRUYsRUFDRSxTQStEQztBQUFELElBaEVDLE9BQ0QsU0ErREM7QUFBRCxJQWhFUyxNQUNULFNBK0RDO0VBQ0EscUJBQUE7RUFDQSxVQUFBO0VOcU9GLHlFQUFBO0VBQ0Esc0VBQUE7RUFDQSxpRUFBQTs7QU01TkEsSUE3RUQsRUE2RUU7QUFBRCxJQTdFRSxPQTZFRDtBQUFELElBN0VVLE1BNkVUO0VBQ0EsbUJBQUE7O0FBRUEsSUFoRkYsRUE2RUUsY0FHQztBQUFELElBaEZDLE9BNkVELGNBR0M7QUFBRCxJQWhGUyxNQTZFVCxjQUdDO0FBQ0QsSUFqRkYsRUE2RUUsY0FJQztBQUFELElBakZDLE9BNkVELGNBSUM7QUFBRCxJQWpGUyxNQTZFVCxjQUlDO0VBQ0EsY0FBQTtFQUNBLG1CQUFBOztBQUlGLElBdkZELEVBdUZFO0FBQUQsSUF2RkUsT0F1RkQ7QUFBRCxJQXZGVSxNQXVGVDtBQUFELElBdkZELEVIaURHLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtBR3NDSCxJQXZGRSxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RlUsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0VHdUNGLFdBQUE7RUFDQSxtQkFBQTs7QUFFQSxJQTNGRixFQXVGRSxvQkFJQztBQUFELElBM0ZDLE9BdUZELG9CQUlDO0FBQUQsSUEzRlMsTUF1RlQsb0JBSUM7QUFDRCxJQTVGRixFQXVGRSxvQkFLQztBQUFELElBNUZDLE9BdUZELG9CQUtDO0FBQUQsSUE1RlMsTUF1RlQsb0JBS0M7QUFERCxJQTNGRixFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFBRCxJQTNGQyxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFBRCxJQTNGUyxNSGlEUixhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFDRCxJQTVGRixFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7QUFBRCxJQTVGQyxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7QUFBRCxJQTVGUyxNSGlEUixhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7O0FDaEdKO0VWc0JDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUcyUEMsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RU9uUjFCLGdDQUFBO0VBRUEsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBO0VBQ0EsY0FBQTs7QUFFQSxVQUFDO0VBQ0EsY0FBQTs7QUFHRCxVQUFDO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsVUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxhQUFBO0VBQ0EsOEJBQUE7RUFDQSx5REFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxXQUFBOztBQ3ZERixjQUFjO0FBQ2QsZUFBZTtFQUNkLFNBQVMsRUFBVDtFQUNBLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLDRCQUFBOztBQUdELGNBQWM7RUFDYixrQkFBQTs7QUFHRCxlQUFlO0VBQ2QsaUJBQUE7O0FBSUEsY0FBQztBQUFTLGNBQUM7RUFDVixzQkFBa0IsNmNBQWxCOztBQUtELG1CQUFDO0FBQVMsbUJBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUFLRCxXQUFDO0FBQVMsV0FBQztFQUNWLHNCQUFrQiw2aUJBQWxCOztBQzVCRixJQUFLLFFBRUo7RUFDQyxzQkFBQTs7QUFIRixJQUFLLFFBTUosTUFBSztFQUNKLGdCQUFBO0VBQ0EscUJBQUE7O0FBUkYsSUFBSyxRQVdKO0VBQ0MseUJBQUE7RUFDQSwwQkFBQTs7QUFFQSxJQWZHLFFBV0osTUFJRTtFQUNBLFdBQUE7O0FBR0QsSUFuQkcsUUFXSixNQVFFO0VBQ0EsWUFBQTs7QUFwQkgsSUFBSyxRQXdCSjtFQUNDLGFBQUE7O0FBSUY7RVpaQyxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VZV0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RVQyT0MsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RVMzTzFCLGtCQUFBOztBQVRELE9BV0MsTUFBSztFQUNKLGFBQUE7O0FBWkYsT0FlQztFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7O0FBRUEsT0FQRCxNQU9FO0VBQ0EsMEJBQUE7O0FBdkJILE9BMkJDO0VBQ0MsV0FBQTtFQUNBLHNCQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RVRpTkEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7O0FTcFAzQixPQTJCQyxjQVNDO0VBQ0MsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VUd01ELDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3ZNeEIsT0FsQkYsY0FTQyxTQVNFO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxXQUFBO0VBQ0EsT0FBQTtFQUVBLHlCQUFBO0VUc0tGLHdDQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTtFQUtBLHlDQUFBO0VBQThDLG9DQUFBO0VBQzlDLHFDQUFBO0VBQTBDLDZCQUFBO0VBQzFDLGlDQUFBO0VBQXNDLDRCQUFBOztBU3ZLdkMsT0FBQyxNQUNBLGNBQWMsU0FBUTtFQUNyQixtQkFBQTs7QUFoRUgsT0FvRUMsTUFBSyxjQUFnQixRQUVwQixnQkFBZ0I7RUFDZixpQkFBQTs7QUF2RUgsT0FvRUMsTUFBSyxjQUFnQixRQVNwQixRQUFPO0VBQ04sc0JBQUE7RUFDQSxzQkFBQTs7QUEvRUgsT0FtRkMsTUFBSyxjQUFnQixRQUFTLFFBQU87RUFDcEMscUJBQUE7RUFDQSxxQkFBQTs7QUN6SEY7RVZrM0JFLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBOztBVXIzQkYsUUFHQztFQUNDLGVBQUE7O0FBSkYsUUFNQztFQUNDLGdCQUFBOztBQVBGLFFBVUM7RUFDQyxhQUFBOztBQUdELFFBQUMsVUFDQTtFQUNDLGFBQUE7O0FBRkYsUUFBQyxVQUtBO0VBQ0MsZ0JBQUE7O0FBS0g7RUFDQyxnQkFBQTs7QUFFQSxrQkFBQztFQUNBLFNBQUE7O0FBTUQsc0JBQUM7QUFBRCx1QkFBQztBQUFTLHNCQUFDO0FBQUQsdUJBQUM7RUFDVixzQkFBa0IseXNCQUFsQjs7QUFJQSxzQkFEQSxXQUNDO0FBQUQsdUJBREEsV0FDQztBQUFTLHNCQURWLFdBQ1c7QUFBRCx1QkFEVixXQUNXO0VBQ1Ysc0JBQWtCLHF0QkFBbEI7O0FBTUYsc0JBQUM7QUFDRCxzQkFBQztFQUNBLDZCQUFBOztBQUtELHVCQUFDO0FBQ0QsdUJBQUM7RUFDQSxnQ0FBQTs7QUN0REY7RUFDQyxhQUFBO0VBQ0Esa0JBQUE7RUFDQSx1QkFBQTtFQUNBLGdCQUFBO0VYNFNDLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFV3pTRCxxQkFBQTtFQUNBLG1CQUFBO0VYZ3ZCQyx3Q0FBQTtFQUNBLHFDQUFBO0VBQ0EsbUNBQUE7RUFDQSxvQ0FBQTtFQUNBLGdDQUFBOztBV2p2QkQsTUFBQztFWHVRQSw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTtFV3ZRekIsZUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7O0FDekJGLElBQUs7QUFDTCxNQUFPO0FBQ1AsYUFBYztBQUNkLE1BQU87RUFDTixnQkFBQTs7QUFJRDtFQUNDLGdCQUFBOztBQUdEO0VBQ0MsNkJBQUE7O0FDWEEsU0FBQztFQUNBLHlCQUFBO0VBQ0EsV0FBQTs7QUFGRCxTQUFDLElBSUEsU0FDQztBQUxGLFNBQUMsSUFJQSxTQUNLO0FBTE4sU0FBQyxJQUlBLFNBQ1M7QUFMVixTQUFDLElBSUEsU0FDYTtBQUxkLFNBQUMsSUFJQSxTQUNpQjtFQUNmLFdBQUE7O0FBTkgsU0FBQyxJQUlBLFNBS0M7RWhCWUYsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFZ0JiRyxnQkFBQTs7QUFYSCxTQUFDLElBSUEsU0FLQyxFQUlDO0VBQ0MscUJBQUE7RUFDQSw4QkFBQTtFQUNBLGNBQUE7O0FBRUEsU0FsQkgsSUFJQSxTQUtDLEVBSUMsRUFLRTtFQUNBLGNBQUE7O0FBbkJMLFNBQUMsSUFJQSxTQW9CQztFQUNDLFdBQUE7O0FBekJILFNBQUMsSUFJQSxTQXdCQztFQUNDLFdBQUE7O0FBN0JILFNBQUMsSUFJQSxTQTRCQztFQUNDLGtCQUFBO0VBQ0EsY0FBQTs7QUFLSCxTQUFDO0VBQ0Esa0JBQUE7O0FBRUEsU0FIQSxPQUdDO0VBQ0EsV0FBQTtFQUNBLFNBQVMsRUFBVDtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxXQUFBOztBQ3hESCxJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04saUJBQUE7O0FBR0QsSUFBSyxnQkFBZTtFQUNuQixlQUFBOztBQUdEO0VBQ0MsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7O0FBSEQsT0FNQztFQUVDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtFQUdBLG1CQUFBO0VBQ0EsNEJBQUE7O0FBRUEsT0FYRCxXQVdFO0VBQ0EseURBQUE7O0FBS0gsUUFBUztFQUNSLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLHdCQUFBOztBQUVBLFFBTFEsbUJBS1A7RUFDQSxZQUFBOztBQUtGLEtBQU07RUFDTCxnQkFBQTtFQUNBLGNBQUE7RUFDQSwwQkFBQTs7QUFJRCxHQUFHLElBQUssRUFBQztBQUNULEdBQUcsSUFBSztFQUNQLG1CQUFBOztBQUVBLEdBSkUsSUFBSyxFQUFDLFdBSVA7QUFBRCxHQUhFLElBQUssa0JBR047RUFDQSxnQ0FBQTs7QUFJRixLQUFNLGNBQWE7RUFDbEIsYUFBQTs7QUFJQSxRQURRLGNBQ1A7RUFDQSxhQUFBOztBQUZGLFFBQVMsY0FLUjtFQUNDLGFBQUE7O0FBSUYsUUFDQztFQUNDLGlCQUFBOztBQUlGO0VBQ0MsaUJBQUE7O0FBREQsU0FHQztFQUNDLFdBQUE7RUFDQSxpQkFBQTs7QUFMRixTQUdDLE1BSUM7RUFDQyxnQkFBQTs7QUFFQSxTQVBGLE1BSUMsU0FHRTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTs7QUFGRCxTQVBGLE1BSUMsU0FHRSxNQUlBO0VBQ0MsMEJBQUE7O0FBZkwsU0FHQyxNQWlCQztFQUNDLFdBQUE7RUFDQSxhQUFBOztBQUdELFNBdEJELE1Bc0JFO0VBQ0EsZ0JBQUE7O0FBS0g7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JBQUE7O0FBRUEsdUJBQUM7RUFDQSxZQUFBO0VBQ0EsVUFBQTs7QUFLRjtFQUNDLGlCQUFBOztBQURELE1BR0MsSUFBRztFQUNGLGlCQUFBOztBQUpGLE1BT0M7RUFDQyxpQkFBQTs7QUFSRixNQU9DLGNBR0M7RUFDQyxpQkFBQTs7QUFYSCxNQU9DLGNBT0M7RUFFQyxrQkFBQTs7QUFoQkgsTUFvQkM7RUFDQyxrQkFBQTtFQUNBLFNBQUE7RUFFQSxTQUFBO0VBQ0Esa0JBQUE7O0FqQmhHRixRQUhpQztFQUdqQyxNaUIyRkM7SUFVRSxVQUFBO0lBQ0EsaUJBQUE7SUFFQSxVQUFBO0lBQ0EsbUJBQUE7O0VBRUEsTUFoQkYsV0FnQkc7SUFDQSxVQUFBO0lBQ0EsV0FBQTs7O0FqQjdHSixRQUhpQztFQUdqQyxNaUIyRkM7SUF3QkUsYUFBQTs7O0FDeEpILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSxnQ0FBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSw2QkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdDQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDZCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */\r
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBNkNqQyxTSXJGQztJQUlFLGtCQUFBOzs7QUFWSCxTQU1DLGVBT0M7RUFDQyxtQkFBQTs7QUNWSDtFQUNDLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBOztBTHFDRCxRQUhpQztFQTZDakM7SUs1RUUsa0JBQUE7OztBQVhGLGFBY0M7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTs7QUFqQkYsYUFjQyxHQUtDO0FBbkJGLGFBY0MsR0FLSyxHQUFHO0VBQ04scUJBQUE7O0FMeUJILFFBSGlDO0VBNkNqQyxhS3pFQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUE2Q2pDLGFLekVDLEdBcUJFLGFBQ0M7SUFJQyxnQkFBQTs7O0FBSUYsYUE5QkYsR0FxQkUsYUFTQztFQUNBLGlCQUFBOztBTEFKLFFBSGlDO0VBNkNqQyxhS3pFQyxHQXFCRSxhQVNDO0lBSUMsa0JBQUE7OztBQU1GLGFBeENGLEdBdUNDLEdBQ0c7RUFDRCxpQkFBQTs7QUF2REosYUFjQyxHQXVDQyxHQUtDO0VMeENGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUt1Q0csaUJBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSx5QkFBQTs7QUFFQSxhQXJESCxHQXVDQyxHQUtDLEVBU0U7RUFDQSxlQUFBO0VBQ0EsV0FBQTs7QUFRSix5QkFBQztBQUFTLHlCQUFDO0VBQ1Ysc0JBQWtCLHFyQkFBbEI7O0FDcEZGO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBOztBTmdERCxRQUhpQztFQTZDakM7SU12RkUsa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQTZDakMsYU1oRkM7SUFXRSxjQUFBO0lBQ0EsV0FBQTtJQUNBLHFCQUFBOzs7QU55QkgsUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDO0lBRUUsa0JBQUE7OztBQUdELGFBckJGLEdBZ0JDLEdBS0c7RUFDRCxpQkFBQTs7QU5nQkosUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQTZDakMsYU1oRkMsR0FnQkMsR0FhQztJQU9FLFdBQUE7SUhxT0gsd0JBQUE7SUFBaUMsb0NBQUE7SUFDakMscUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsZ0JBQUE7SUFBeUIsNEJBQUE7OztBSXhSM0I7RVB3QkMsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFT3hCQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBOztBQU5ELFNQNEVDO0VBQ0MsY0FBQTtFQUNBLHFCQUFBO0VBRUEsaUNBQUE7O0FBRUEsU0FORCxFQU1FO0VBQ0EsY0FBQTs7QU9uRkgsU0FRQztFQUNDLFNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBOztBQ1hGO0VSd0JDLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVF6QkEsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBOztBQUpELFFBU0M7RUFDQyxnQkFBQTs7QUFWRixRQWFDO0FBYkQsUUFhSztBQWJMLFFBYVM7QUFiVCxRQWFjO0FBYmQsUUFhMEIsU0FBUSxJQUFJO0FBYnRDLFFBYXdEO0VBQ3RELGlCQUFBOztBQWRGLFFBaUJDO0FBakJELFFBaUJPO0VMcVFMLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VLclF6QixnQkFBQTs7QUFuQkYsUUFzQkM7QUF0QkQsUUFzQk07QUF0Qk4sUUFzQlk7QUF0QlosUUFzQmlCO0VBQ2YsbUJBQUE7O0FBdkJGLFFBMEJDO0FBMUJELFFBMEJhO0VBQ1gsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBOztBQTdCRixRQW9DQyxFUndDQTtBUTVFRCxRQW9DSSxHUndDSDtBUTVFRCxRQW9DUSxHUndDUDtBUTVFRCxRQW9DWSxXUndDWDtBUTVFRCxRQW9Dd0IsR1J3Q3ZCO0FRNUVELFFBb0M0QixHUndDM0I7QVE1RUQsUUFvQ2dDLEdSd0MvQjtBUTVFRCxRQW9Db0MsR1J3Q25DO0FRNUVELFFBb0N3QyxHUndDdkM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxRUTlDRCxFUndDQSxFQU1FO0FBQUQsUVE5Q0UsR1J3Q0gsRUFNRTtBQUFELFFROUNNLEdSd0NQLEVBTUU7QUFBRCxRUTlDVSxXUndDWCxFQU1FO0FBQUQsUVE5Q3NCLEdSd0N2QixFQU1FO0FBQUQsUVE5QzBCLEdSd0MzQixFQU1FO0FBQUQsUVE5QzhCLEdSd0MvQixFQU1FO0FBQUQsUVE5Q2tDLEdSd0NuQyxFQU1FO0FBQUQsUVE5Q3NDLEdSd0N2QyxFQU1FO0VBQ0EsY0FBQTs7QVFuRkgsUUF3Q0M7QUF4Q0QsUUF3Q0s7QUF4Q0wsUUF3Q1M7QUF4Q1QsUUF3Q2E7QUF4Q2IsUUF3Q2lCO0VBQ2YsV0FBQTtFQUNBLGdCQUFBOztBQTFDRixRQXdDQyxHQUtDO0FBN0NGLFFBd0NLLEdBS0g7QUE3Q0YsUUF3Q1MsR0FLUDtBQTdDRixRQXdDYSxHQUtYO0FBN0NGLFFBd0NpQixHQUtmO0FBN0NGLFFBd0NDLEdBS087QUE3Q1IsUUF3Q0ssR0FLRztBQTdDUixRQXdDUyxHQUtEO0FBN0NSLFFBd0NhLEdBS0w7QUE3Q1IsUUF3Q2lCLEdBS1Q7RUFDTCxrQkFBQTs7QUE5Q0gsUUF3Q0MsR0FVQyxFQUFDO0FBbERILFFBd0NLLEdBVUgsRUFBQztBQWxESCxRQXdDUyxHQVVQLEVBQUM7QUFsREgsUUF3Q2EsR0FVWCxFQUFDO0FBbERILFFBd0NpQixHQVVmLEVBQUM7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsUUFqQkQsR0FpQkUsTUFDQSxFQUFDO0FBREYsUUFqQkcsR0FpQkYsTUFDQSxFQUFDO0FBREYsUUFqQk8sR0FpQk4sTUFDQSxFQUFDO0FBREYsUUFqQlcsR0FpQlYsTUFDQSxFQUFDO0FBREYsUUFqQmUsR0FpQmQsTUFDQSxFQUFDO0VBQ0EsVUFBQTs7QUFJRixRQXZCRCxHQXVCRSxPQUNBO0FBREQsUUF2QkcsR0F1QkYsT0FDQTtBQURELFFBdkJPLEdBdUJOLE9BQ0E7QUFERCxRQXZCVyxHQXVCVixPQUNBO0FBREQsUUF2QmUsR0F1QmQsT0FDQTtFTDhERCwwREFBQTtFQUNBLHVEQUFBO0VBQ0EscURBQUE7RUFDQSxrREFBQTtFSy9ERSxVQUFBOztBQWxFSixRQXVFQztBQXZFRCxRQXVFUTtBQXZFUixRQXVFZ0IsU0FBUSxJQUFJO0VMK00xQiwwQkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx1QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixrQkFBQTtFQUF5Qiw0QkFBQTtFQW1CekIsdURBQUE7RUFDQSxvREFBQTtFQUNBLCtDQUFBO0VLbE9BLGFBQUE7RUFDQSxjQUFBO0VBRUEseUJBQUE7RUFDQSxrQkFBQTs7QUFFQSxRQVZELE1BVUU7QUFBRCxRQVZNLE9BVUw7QUFBRCxRQVZjLFNBQVEsSUFBSSxnQkFVekI7RUFDQSxxQkFBQTtFQUNBLFVBQUE7RUx3TkQsd0VBQUE7RUFDQSxxRUFBQTtFQUNBLGdFQUFBOztBSzdTRixRQThGQztFQUNDLDhCQUFBO0VBQ0EsZUFBQTs7QUFoR0YsUUFtR0M7RUFDQyxrQkFBQTtFQUNBLDZCUm5HMkMsd0JRbUczQztFUjdFRCxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7O0FRM0JELFFBeUdDO0VBQ0Msa0JBQUE7O0FBMUdGLFFBNkdDO0VSckZBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVFvRkMsbUJBQUE7O0FBL0dGLFFBa0hDO0VSMUZBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VReUZDLGlCQUFBOztBQXBIRixRQXVIQztFUi9GQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VROEZDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBMUhGLFFBNkhDO0VSckdBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRb0dDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBaElGLFFBbUlDO0VSM0dBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRMEdDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBdElGLFFBeUlDO0VBQ0MsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTs7QUFJQSxRQURELE1BQ0U7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7O0FBR0QsUUFORCxNQU1FO0VMaURELDBCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTs7QUt4TUYsUUE0SkM7RVJwSUEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW1JQyxvQlI3SjhCLHVDUTZKOUI7RUFDQSxnQkFBQTtFTDRJQSx1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7O0FLN1NGLFFBdUtDLEVBQ0M7RUFDQyxzQkFBQTs7QUF6S0gsUUF1S0MsRUFLQztFQUNDLGNBQUE7O0FBN0tILFFBaUxDO0VBQ0MsVUFBQTtFQUNBLFNBQUE7RUFFQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBOztBQXZMRixRQTBMQztBQTFMRCxRQTBMTTtFUmxLTCxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUWtLQyxnSkFBQTs7QUE3TEYsUUEwTEMsSUFLQztBQS9MRixRQTBMTSxLQUtKO0VBQ0MsU0FBQTs7QUFoTUgsUUFxTUMsSUFBSTtFQUNILGVBQUE7RUFDQSxjQUFBOztBQXZNRixRQTBNQztFQUNDLFdBQUE7O0FBM01GLFFBOE1DLEdBRUM7QUFoTkYsUUE4TUssR0FFSDtBQWhORixRQThNQyxHQUVLO0FBaE5OLFFBOE1LLEdBRUM7RUFDSCxnQkFBQTs7QUFqTkgsUUE4TUMsR0FNQztBQXBORixRQThNSyxHQU1IO0VSNUxELGVBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7O0FRM0JELFFBME5DLFNBQVEsSUFBSTtFQUNYLFdBQUE7O0FBM05GLFFBOE5DLElBQUc7RUFDRix1QkFBQTtFQUNBLGFBQUE7RUFDQSxxQkFBQTs7O0FBR0EsUUFORCxJQUFHLEtBTUQ7RUFDQSxTQUFTLE1BQVQ7RUFDQSxpQkFBQTs7QUNqT0QsSUFERCxFQUNFO0FBQUQsSUFERSxPQUNEO0FBQUQsSUFEVSxNQUNUO0VOaVJELDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VIaFExQixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VTbkJFLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUlBLGFBQUE7RUFHQSx1QkFBQTs7QUFFQSxJQXZCRixFQUNFLFNBc0JDO0FBQUQsSUF2QkMsT0FDRCxTQXNCQztBQUFELElBdkJTLE1BQ1QsU0FzQkM7RUFDQSxrQkFBQTs7QUFHRCxJQTNCRixFQUNFLFNBMEJDO0FBQUQsSUEzQkMsT0FDRCxTQTBCQztBQUFELElBM0JTLE1BQ1QsU0EwQkM7RUFDQSxtQkFBQTs7QUFvQkQsSUFoREYsRUFDRSxTQStDQztBQUFELElBaERDLE9BQ0QsU0ErQ0M7QUFBRCxJQWhEUyxNQUNULFNBK0NDO0VOa09GLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBO0VNblB2QixXQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBOztBQUVBLElBeENILEVBQ0UsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDQSxPQUNELFNBK0NDLGlCQVJDO0FBQUQsSUF4Q1EsTUFDVCxTQStDQyxpQkFSQztFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxxQkFBQTs7QVRHTCxRQUhpQztFQTZDakMsSVN6RkMsRUFDRSxTQW1EQztFVHFDSixJU3pGSSxPQUNELFNBbURDO0VUcUNKLElTekZZLE1BQ1QsU0FtREM7SU44TkYsNEJBQUE7SUFBaUMsb0NBQUE7SUFDakMseUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsb0JBQUE7SUFBeUIsNEJBQUE7SU1uUHZCLFdBQUE7SUFDQSxVQUFBO0lBQ0EsbUJBQUE7SUFDQSxnQkFBQTtJQUNBLGtCQUFBO0lBQ0Esa0JBQUE7O0VBRUEsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOztFQUpELElBeENILEVBQ0UsU0FtREMsMEJBWkM7RUFBRCxJQXhDQSxPQUNELFNBbURDLDBCQVpDO0VBQUQsSUF4Q1EsTUFDVCxTQW1EQywwQkFaQztJQUNBLGtCQUFBO0lBQ0EsU0FBQTtJQUNBLFFBQUE7SUFDQSxxQkFBQTs7O0FBY0YsSUExREYsRUFDRSxTQXlEQztBQUFELElBMURDLE9BQ0QsU0F5REM7QUFBRCxJQTFEUyxNQUNULFNBeURDO0FBQ0QsSUEzREYsRUFDRSxTQTBEQztBQUFELElBM0RDLE9BQ0QsU0EwREM7QUFBRCxJQTNEUyxNQUNULFNBMERDO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQUdELElBaEVGLEVBQ0UsU0ErREM7QUFBRCxJQWhFQyxPQUNELFNBK0RDO0FBQUQsSUFoRVMsTUFDVCxTQStEQztFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTnFPRix5RUFBQTtFQUNBLHNFQUFBO0VBQ0EsaUVBQUE7O0FNNU5BLElBN0VELEVBNkVFO0FBQUQsSUE3RUUsT0E2RUQ7QUFBRCxJQTdFVSxNQTZFVDtFQUNBLG1CQUFBOztBQUVBLElBaEZGLEVBNkVFLGNBR0M7QUFBRCxJQWhGQyxPQTZFRCxjQUdDO0FBQUQsSUFoRlMsTUE2RVQsY0FHQztBQUNELElBakZGLEVBNkVFLGNBSUM7QUFBRCxJQWpGQyxPQTZFRCxjQUlDO0FBQUQsSUFqRlMsTUE2RVQsY0FJQztFQUNBLGNBQUE7RUFDQSxtQkFBQTs7QUFJRixJQXZGRCxFQXVGRTtBQUFELElBdkZFLE9BdUZEO0FBQUQsSUF2RlUsTUF1RlQ7QUFBRCxJQXZGRCxFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RkUsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0FHc0NILElBdkZVLE1IaURSLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtFR3VDRixXQUFBO0VBQ0EsbUJBQUE7O0FBRUEsSUEzRkYsRUF1RkUsb0JBSUM7QUFBRCxJQTNGQyxPQXVGRCxvQkFJQztBQUFELElBM0ZTLE1BdUZULG9CQUlDO0FBQ0QsSUE1RkYsRUF1RkUsb0JBS0M7QUFBRCxJQTVGQyxPQXVGRCxvQkFLQztBQUFELElBNUZTLE1BdUZULG9CQUtDO0FBREQsSUEzRkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQ0QsSUE1RkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQ2hHSjtFVnNCQyxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VHMlBDLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VPblIxQixnQ0FBQTtFQUVBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLGNBQUE7O0FBRUEsVUFBQztFQUNBLGNBQUE7O0FBR0QsVUFBQztFQUNBLFNBQVMsRUFBVDtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7RUFDQSw4QkFBQTtFQUNBLHlEQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxVQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsV0FBQTs7QUN2REYsY0FBYztBQUNkLGVBQWU7RUFDZCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTs7QUFHRCxjQUFjO0VBQ2Isa0JBQUE7O0FBR0QsZUFBZTtFQUNkLGlCQUFBOztBQUlBLGNBQUM7QUFBUyxjQUFDO0VBQ1Ysc0JBQWtCLDZjQUFsQjs7QUFLRCxtQkFBQztBQUFTLG1CQUFDO0VBQ1Ysc0JBQWtCLDZpQkFBbEI7O0FBS0QsV0FBQztBQUFTLFdBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUM1QkYsSUFBSyxRQUVKO0VBQ0Msc0JBQUE7O0FBSEYsSUFBSyxRQU1KLE1BQUs7RUFDSixnQkFBQTtFQUNBLHFCQUFBOztBQVJGLElBQUssUUFXSjtFQUNDLHlCQUFBO0VBQ0EsMEJBQUE7O0FBRUEsSUFmRyxRQVdKLE1BSUU7RUFDQSxXQUFBOztBQUdELElBbkJHLFFBV0osTUFRRTtFQUNBLFlBQUE7O0FBcEJILElBQUssUUF3Qko7RUFDQyxhQUFBOztBQUlGO0VaWkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFWVdBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VUMk9DLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VTM08xQixrQkFBQTs7QUFURCxPQVdDLE1BQUs7RUFDSixhQUFBOztBQVpGLE9BZUM7RUFDQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBOztBQUVBLE9BUEQsTUFPRTtFQUNBLDBCQUFBOztBQXZCSCxPQTJCQztFQUNDLFdBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VUaU5BLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3BQM0IsT0EyQkMsY0FTQztFQUNDLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFVHdNRCw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTs7QVN2TXhCLE9BbEJGLGNBU0MsU0FTRTtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RUFFQSx5QkFBQTtFVHNLRix3Q0FBQTtFQUNBLG9DQUFBO0VBQ0EsZ0NBQUE7RUFLQSx5Q0FBQTtFQUE4QyxvQ0FBQTtFQUM5QyxxQ0FBQTtFQUEwQyw2QkFBQTtFQUMxQyxpQ0FBQTtFQUFzQyw0QkFBQTs7QVN2S3ZDLE9BQUMsTUFDQSxjQUFjLFNBQVE7RUFDckIsbUJBQUE7O0FBaEVILE9Bb0VDLE1BQUssY0FBZ0IsUUFFcEIsZ0JBQWdCO0VBQ2YsaUJBQUE7O0FBdkVILE9Bb0VDLE1BQUssY0FBZ0IsUUFTcEIsUUFBTztFQUNOLHNCQUFBO0VBQ0Esc0JBQUE7O0FBL0VILE9BbUZDLE1BQUssY0FBZ0IsUUFBUyxRQUFPO0VBQ3BDLHFCQUFBO0VBQ0EscUJBQUE7O0FDekhGO0VWazNCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QVVyM0JGLFFBR0M7RUFDQyxlQUFBOztBQUpGLFFBTUM7RUFDQyxnQkFBQTs7QUFQRixRQVVDO0VBQ0MsYUFBQTs7QUFHRCxRQUFDLFVBQ0E7RUFDQyxhQUFBOztBQUZGLFFBQUMsVUFLQTtFQUNDLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7O0FBRUEsa0JBQUM7RUFDQSxTQUFBOztBQU1ELHNCQUFDO0FBQUQsdUJBQUM7QUFBUyxzQkFBQztBQUFELHVCQUFDO0VBQ1Ysc0JBQWtCLHlzQkFBbEI7O0FBSUEsc0JBREEsV0FDQztBQUFELHVCQURBLFdBQ0M7QUFBUyxzQkFEVixXQUNXO0FBQUQsdUJBRFYsV0FDVztFQUNWLHNCQUFrQixxdEJBQWxCOztBQU1GLHNCQUFDO0FBQ0Qsc0JBQUM7RUFDQSw2QkFBQTs7QUFLRCx1QkFBQztBQUNELHVCQUFDO0VBQ0EsZ0NBQUE7O0FDdERGO0VBQ0MsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtFWDRTQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RVd6U0QscUJBQUE7RUFDQSxtQkFBQTtFWGd2QkMsd0NBQUE7RUFDQSxxQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTs7QVdqdkJELE1BQUM7RVh1UUEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RVd2UXpCLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBOztBQ3pCRixJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04sZ0JBQUE7O0FBSUQ7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLDZCQUFBOztBQ1hBLFNBQUM7RUFDQSx5QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FBQyxJQUlBLFNBQ0M7QUFMRixTQUFDLElBSUEsU0FDSztBQUxOLFNBQUMsSUFJQSxTQUNTO0FBTFYsU0FBQyxJQUlBLFNBQ2E7QUFMZCxTQUFDLElBSUEsU0FDaUI7RUFDZixXQUFBOztBQU5ILFNBQUMsSUFJQSxTQUtDO0VoQllGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RWdCYkcsZ0JBQUE7O0FBWEgsU0FBQyxJQUlBLFNBS0MsRUFJQztFQUNDLHFCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBOztBQUVBLFNBbEJILElBSUEsU0FLQyxFQUlDLEVBS0U7RUFDQSxjQUFBOztBQW5CTCxTQUFDLElBSUEsU0FvQkM7RUFDQyxXQUFBOztBQXpCSCxTQUFDLElBSUEsU0F3QkM7RUFDQyxXQUFBOztBQTdCSCxTQUFDLElBSUEsU0E0QkM7RUFDQyxrQkFBQTtFQUNBLGNBQUE7O0FBS0gsU0FBQztFQUNBLGtCQUFBOztBQUVBLFNBSEEsT0FHQztFQUNBLFdBQUE7RUFDQSxTQUFTLEVBQVQ7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTs7QUN4REgsSUFBSztBQUNMLE1BQU87QUFDUCxhQUFjO0FBQ2QsTUFBTztFQUNOLGlCQUFBOztBQUdELElBQUssZ0JBQWU7RUFDbkIsZUFBQTs7QUFHRDtFQUNDLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBOztBQUhELE9BTUM7RUFFQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFHQSxtQkFBQTtFQUNBLDRCQUFBOztBQUVBLE9BWEQsV0FXRTtFQUNBLHlEQUFBOztBQUtILFFBQVM7RUFDUixnQkFBQTtFQUNBLFNBQUE7RUFDQSx3QkFBQTs7QUFFQSxRQUxRLG1CQUtQO0VBQ0EsWUFBQTs7QUFLRixLQUFNO0VBQ0wsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsMEJBQUE7O0FBR0QsS0FBTSxjQUFhO0VBQ2xCLGFBQUE7O0FBSUEsUUFEUSxjQUNQO0VBQ0EsYUFBQTs7QUFGRixRQUFTLGNBS1I7RUFDQyxhQUFBOztBQUlGLFFBQ0M7RUFDQyxpQkFBQTs7QUFJRjtFQUNDLGlCQUFBOztBQURELFNBR0M7RUFDQyxXQUFBO0VBQ0EsaUJBQUE7O0FBTEYsU0FHQyxNQUlDO0VBQ0MsZ0JBQUE7O0FBRUEsU0FQRixNQUlDLFNBR0U7RUFDQSx1QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FQRixNQUlDLFNBR0UsTUFJQTtFQUNDLDBCQUFBOztBQWZMLFNBR0MsTUFpQkM7RUFDQyxXQUFBO0VBQ0EsYUFBQTs7QUFHRCxTQXRCRCxNQXNCRTtFQUNBLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBOztBQUVBLHVCQUFDO0VBQ0EsWUFBQTtFQUNBLFVBQUE7O0FBS0Y7RUFDQyxpQkFBQTs7QUFERCxNQUdDLElBQUc7RUFDRixpQkFBQTs7QUFKRixNQU9DO0VBQ0MsaUJBQUE7O0FBUkYsTUFPQyxjQUdDO0VBQ0MsaUJBQUE7O0FBWEgsTUFPQyxjQU9DO0VBRUMsa0JBQUE7O0FBaEJILE1Bb0JDO0VBQ0Msa0JBQUE7RUFDQSxTQUFBO0VBRUEsU0FBQTtFQUNBLGtCQUFBOztBakJ0RkYsUUFIaUM7RUE2Q2pDLE1pQnVDQztJQVVFLFVBQUE7SUFDQSxpQkFBQTtJQUVBLFVBQUE7SUFDQSxtQkFBQTs7RUFFQSxNQWhCRixXQWdCRztJQUNBLFVBQUE7SUFDQSxXQUFBOzs7QWpCbkdKLFFBSGlDO0VBNkNqQyxNaUJ1Q0M7SUF3QkUsYUFBQTs7O0FDOUlILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSw2QkFBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSwwQkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
<div class="grid-container">\r
<ul class="navigation-a-left grid-width-70">\r
<li><a href="http://ckeditor.com">Project Homepage</a></li>\r
- <li><a href="http://dev.ckeditor.com/">I found a bug</a></li>\r
+ <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li>\r
<li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>\r
</ul>\r
<ul class="navigation-a-right grid-width-30">\r
CKEditor – The text editor for the Internet – <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p class="grid-width-100" id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.\r
</p>\r
</div>\r
</footer>\r
/**\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
var SF=function(){function d(a){return(a=a.attributes?a.attributes.getNamedItem("class"):null)?a.value.split(" "):[]}function c(a){var e=document.createAttribute("class");e.value=a.join(" ");return e}var b={attachListener:function(a,e,b){if(a.addEventListener)a.addEventListener(e,b,!1);else if(a.attachEvent)a.attachEvent("on"+e,function(){b.apply(a,arguments)});else throw Error("Could not attach event.");}};b.indexOf=function(){var a=Array.prototype.indexOf;return"function"===a?function(e,b){return a.call(e,
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
/*\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*\r
* Styles used by the XHTML 1.1 sample page (xhtml.html).\r
<!DOCTYPE html>\r
<?php\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
?>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.\r
</p>\r
</div>\r
</body>\r
/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German","de-ch":"German (Switzerland)",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",
-hr:"Croatian",hu:"Hungarian",id:"Indonesian",is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",
-ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name<b.name?-1:1});return b}();
\ No newline at end of file
+var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",az:"Azerbaijani",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German","de-ch":"German (Switzerland)",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish","es-mx":"Spanish (Mexico)",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",
+gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian",is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",oc:"Occitan",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",
+sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name<b.name?-1:1});return b}();
\ No newline at end of file
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
<div class="description">\r
<p>\r
This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>.\r
- It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" target="_blank">\r
+ It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank">\r
Disallowed Content</a> property of the filter to eliminate all <code>title</code> attributes.\r
</p>\r
\r
<div class="description">\r
<p>\r
This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>.\r
- It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" target="_blank">\r
+ It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank">\r
Disallowed Content</a> property of the filter to eliminate all <code>a</code> and <code>img</code> tags,\r
while allowing all other tags.\r
</p>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
/**\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.\r
</p>\r
</div>\r
</body>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>\r
- Frederico Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>\r
- Frederico Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>\r
- Frederico Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
To save the content created with CKEditor you need to read the POST data on the server\r
side and write it to a file or the database.\r
\r
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-------------------------------------------------------------------------------------------\r
\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<!--[if IE 8]><html class="ie8"><![endif]-->\r
<div class="grid-container">\r
<ul class="navigation-a-left grid-width-70">\r
<li><a href="http://ckeditor.com">Project Homepage</a></li>\r
- <li><a href="http://dev.ckeditor.com/">I found a bug</a></li>\r
+ <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li>\r
<li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>\r
</ul>\r
<ul class="navigation-a-right grid-width-30">\r
CKEditor – The text editor for the Internet – <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p class="grid-width-100" id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.\r
</p>\r
</footer>\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
"Moono" Skin\r
====================\r
\r
-This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor\r
-[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by\r
+This skin has been chosen for the **default skin** of CKEditor 4.x (replaced by "Moono-lisa" skin since CKEditor 4.6.0),\r
+elected from the CKEditor [skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by\r
the CKEditor team. "Moono" is maintained by the core developers.\r
\r
For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK)\r
License\r
-------\r
\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
\r
For licensing, see LICENSE.md or [http://ckeditor.com/license](http://ckeditor.com/license)\r
/**\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
// This file contains style definitions that can be used by CKEditor plugins.\r
//\r
-// The most common use for it is the "stylescombo" plugin, which shows a combo\r
-// in the editor toolbar, containing all styles. Other plugins instead, like\r
-// the div plugin, use a subset of the styles on their feature.\r
+// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down\r
+// list containing all styles in the editor toolbar. Other plugins, like\r
+// the "div" plugin, use a subset of the styles for their features.\r
//\r
-// If you don't have plugins that depend on this file, you can simply ignore it.\r
-// Otherwise it is strongly recommended to customize this file to match your\r
+// If you do not have plugins that depend on this file in your editor build, you can simply\r
+// ignore it. Otherwise it is strongly recommended to customize this file to match your\r
// website requirements and design properly.\r
+//\r
+// For more information refer to: http://docs.ckeditor.com/#!/guide/dev_styles-section-style-rules\r
\r
CKEDITOR.stylesSet.add( 'default', [\r
- /* Block Styles */\r
+ /* Block styles */\r
\r
- // These styles are already available in the "Format" combo ("format" plugin),\r
+ // These styles are already available in the "Format" drop-down list ("format" plugin),\r
// so they are not needed here by default. You may enable them to avoid\r
// placing the "Format" combo in the toolbar, maintaining the same features.\r
/*\r
}\r
},\r
\r
- /* Inline Styles */\r
+ /* Inline styles */\r
\r
// These are core styles available as toolbar buttons. You may opt enabling\r
- // some of them in the Styles combo, removing them from the toolbar.\r
- // (This requires the "stylescombo" plugin)\r
+ // some of them in the Styles drop-down list, removing them from the toolbar.\r
+ // (This requires the "stylescombo" plugin.)\r
/*\r
{ name: 'Strong', element: 'strong', overrides: 'b' },\r
{ name: 'Emphasis', element: 'em' , overrides: 'i' },\r
{ name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },\r
{ name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },\r
\r
- /* Object Styles */\r
+ /* Object styles */\r
\r
{\r
- name: 'Styled image (left)',\r
+ name: 'Styled Image (left)',\r
element: 'img',\r
attributes: { 'class': 'left' }\r
},\r
\r
{\r
- name: 'Styled image (right)',\r
+ name: 'Styled Image (right)',\r
element: 'img',\r
attributes: { 'class': 'right' }\r
},\r
\r
{\r
- name: 'Compact table',\r
+ name: 'Compact Table',\r
element: 'table',\r
attributes: {\r
cellpadding: '5',\r
},\r
\r
{ name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },\r
- { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } }\r
+ { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } },\r
+\r
+ /* Widget styles */\r
+\r
+ { name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } },\r
+ { name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } },\r
+\r
+ { name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },\r
+\r
+ { name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } },\r
+\r
+ { name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' }, group: 'size' },\r
+ { name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' }, group: 'size' },\r
+ { name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' }, group: 'size' },\r
+ { name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' }, group: 'size' },\r
+ { name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' }, group: 'size' },\r
+\r
+ // Adding space after the style name is an intended workaround. For now, there\r
+ // is no option to create two styles with the same name for different widget types. See http://dev.ckeditor.com/ticket/16664.\r
+ { name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' }, group: 'size' },\r
+ { name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' }, group: 'size' },\r
+ { name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' }, group: 'size' },\r
+ { name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' }, group: 'size' },\r
+ { name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' }, group: 'size' }\r
+\r
] );\r
\r
-CKEditor 4 Changelog
+CKEditor 4 Changelog
====================
+## CKEditor 4.7.3
+
+New Features:
+
+* [#568](https://github.com/ckeditor/ckeditor-dev/issues/568): Added possibility to adjust nested editables' filters using the [`CKEDITOR.filter.disallowedContent`](https://docs.ckeditor.com/#!/api/CKEDITOR.filter-property-disallowedContent) property.
+
+Fixed Issues:
+
+* [#554](https://github.com/ckeditor/ckeditor-dev/issues/554): Fixed: [`change`](https://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event not fired when typing the first character after pasting into the editor. Thanks to [Daniel Miller](https://github.com/millerdev)!
+* [#566](https://github.com/ckeditor/ckeditor-dev/issues/566): Fixed: The CSS `border` shorthand property with zero width (`border: 0px solid #000;`) causes the table to have the border attribute set to 1.
+* [#779](https://github.com/ckeditor/ckeditor-dev/issues/779): Fixed: The [Remove Format](https://ckeditor.com/addon/removeformat) plugin removes elements with language definition inserted by the [Language](https://ckeditor.com/addon/language) plugin.
+* [#423](https://github.com/ckeditor/ckeditor-dev/issues/423): Fixed: The [Paste from Word](https://ckeditor.com/addon/pastefromword) plugin pastes paragraphs into the editor even if [`CKEDITOR.config.enterMode`](https://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) is set to `CKEDITOR.ENTER_BR`.
+* [#719](https://github.com/ckeditor/ckeditor-dev/issues/719): Fixed: Image inserted using the [Enhanced Image](https://ckeditor.com/addon/image2) plugin can be resized when the editor is in [read-only mode](https://docs.ckeditor.com/#!/guide/dev_readonly).
+* [#577](https://github.com/ckeditor/ckeditor-dev/issues/577): Fixed: The "Delete Columns" command provided by the [Table Tools](https://ckeditor.com/addon/tabletools) plugin throws an error when trying to delete columns.
+* [#867](https://github.com/ckeditor/ckeditor-dev/issues/867): Fixed: Typing into a selected table throws an error.
+* [#817](https://github.com/ckeditor/ckeditor-dev/issues/817): Fixed: The [Save](https://ckeditor.com/addon/save) plugin does not work in [Source Mode](https://ckeditor.com/addon/sourcearea).
+
+Other Changes:
+
+* Updated the [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin:
+ * [#40](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/40): Fixed: IE10 throws an error when spell checking is started.
+* [#800](https://github.com/ckeditor/ckeditor-dev/issues/800): Added the [`CKEDITOR.dom.selection.isCollapsed`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-isCollapsed) method which is a simpler way to check if the selection is collapsed.
+* [#830](https://github.com/ckeditor/ckeditor-dev/issues/830): Added an option to define which dialog tab should be shown by default when creating [`CKEDITOR.dialogCommand`](https://docs.ckeditor.com/#!/api/CKEDITOR.dialogCommand).
+
+## CKEditor 4.7.2
+
+New Features:
+
+* [#455](https://github.com/ckeditor/ckeditor-dev/issues/455): Added [Advanced Content Filter](https://docs.ckeditor.com/#!/guide/dev_acf) integration with the [Justify](http://ckeditor.com/addon/justify) plugin.
+
+Fixed Issues:
+
+* [#663](https://github.com/ckeditor/ckeditor-dev/issues/663): [Chrome] Fixed: Clicking the scrollbar throws an `Uncaught TypeError: element.is is not a function` error.
+* [#694](https://github.com/ckeditor/ckeditor-dev/pull/694): Refactoring in the [Table Selection](http://ckeditor.com/addon/tableselection) plugin:
+ * [#520](https://github.com/ckeditor/ckeditor-dev/issues/520): Fixed: Widgets cannot be properly pasted into a table cell.
+ * [#460](https://github.com/ckeditor/ckeditor-dev/issues/460): Fixed: Editor gone after pasting into an editor within a table.
+* [#579](https://github.com/ckeditor/ckeditor-dev/issues/579): Fixed: Internal `cke_table-faked-selection-table` class is visible in the Stylesheet Classes field of the [Table Properties](http://ckeditor.com/addon/table) dialog.
+* [#545](https://github.com/ckeditor/ckeditor-dev/issues/545): [Edge] Fixed: Error thrown when pressing the [Select All](https://ckeditor.com/addon/selectall) button in [Source Mode](http://ckeditor.com/addon/sourcearea).
+* [#582](https://github.com/ckeditor/ckeditor-dev/issues/582): Fixed: Double slash in the path to stylesheet needed by the [Table Selection](http://ckeditor.com/addon/tableselection) plugin. Thanks to [Marius Dumitru Florea](https://github.com/mflorea)!
+* [#491](https://github.com/ckeditor/ckeditor-dev/issues/491): Fixed: Unnecessary dependency on the [Editor Toolbar](http://ckeditor.com/addon/toolbar) plugin inside the [Notification](http://ckeditor.com/addon/notification) plugin.
+* [#646](https://github.com/ckeditor/ckeditor-dev/issues/646): Fixed: Error thrown into the browser console after opening the [Styles Combo](http://ckeditor.com/addon/stylescombo) plugin menu in the editor without any selection.
+* [#501](https://github.com/ckeditor/ckeditor-dev/issues/501): Fixed: Double click does not open the dialog for modifying anchors inserted via the [Link](http://ckeditor.com/addon/link) plugin.
+* [#9780](https://dev.ckeditor.com/ticket/9780): [IE8-9] Fixed: Clicking inside an empty [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) editor throws an error.
+* [#16820](https://dev.ckeditor.com/ticket/16820): [IE10] Fixed: Clicking below a single horizontal rule throws an error.
+* [#426](https://github.com/ckeditor/ckeditor-dev/issues/426): Fixed: The [`range.cloneContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents) method selects the whole element when the selection starts at the beginning of that element.
+* [#644](https://github.com/ckeditor/ckeditor-dev/issues/644): Fixed: The [`range.extractContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-extractContents) method returns an incorrect result when multiple nodes are selected.
+* [#684](https://github.com/ckeditor/ckeditor-dev/issues/684): Fixed: The [`elementPath.contains`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.elementPath-method-contains) method incorrectly excludes the last element instead of root when the `fromTop` parameter is set to `true`.
+
+Other Changes:
+
+* Updated the [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) plugin:
+ * [#148](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/148): Fixed: SCAYT leaves underlined word after the CKEditor Replace dialog corrects it.
+* [#751](https://github.com/ckeditor/ckeditor-dev/issues/751): Added the [`CKEDITOR.dom.nodeList.toArray`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList-method-toArray) method which returns an array representation of a [node list](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList).
+
+## CKEditor 4.7.1
+
+New Features:
+
+* Added a new Mexican Spanish localization. Thanks to [David Alexandro Rodriguez](https://www.transifex.com/user/profile/darsco16/)!
+* [#413](https://github.com/ckeditor/ckeditor-dev/issues/413): Added Paste as Plain Text keyboard shortcut to the [Accessibility Help](http://ckeditor.com/addon/a11yhelp) instructions.
+
+Fixed Issues:
+
+* [#515](https://github.com/ckeditor/ckeditor-dev/issues/515): [Chrome] Fixed: Mouse actions on CKEditor scrollbar throw an exception when the [Table Selection](http://ckeditor.com/addon/tableselection) plugin is loaded.
+* [#493](https://github.com/ckeditor/ckeditor-dev/issues/493): Fixed: Selection started from a nested table causes an error in the browser while scrolling down.
+* [#415](https://github.com/ckeditor/ckeditor-dev/issues/415): [Firefox] Fixed: <kbd>Enter</kbd> key breaks the table structure when pressed in a table selection.
+* [#457](https://github.com/ckeditor/ckeditor-dev/issues/457): Fixed: Error thrown when deleting content from the editor with no selection.
+* [#478](https://github.com/ckeditor/ckeditor-dev/issues/478): [Chrome] Fixed: Error thrown by the [Enter Key](http://ckeditor.com/addon/enterkey) plugin when pressing <kbd>Enter</kbd> with no selection.
+* [#424](https://github.com/ckeditor/ckeditor-dev/issues/424): Fixed: Error thrown by [Tab Key Handling](http://ckeditor.com/addon/tab) and [Indent List](http://ckeditor.com/addon/indentlist) plugins when pressing <kbd>Tab</kbd> with no selection in inline editor.
+* [#476](https://github.com/ckeditor/ckeditor-dev/issues/476): Fixed: Anchors inserted with the [Link](http://ckeditor.com/addon/link) plugin on collapsed selection cannot be edited.
+* [#417](https://github.com/ckeditor/ckeditor-dev/issues/417): Fixed: The [Table Resize](http://ckeditor.com/addon/tableresize) plugin throws an error when used with a table with only header or footer rows.
+* [#523](https://github.com/ckeditor/ckeditor-dev/issues/523): Fixed: The [`editor.getCommandKeystroke`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getCommandKeystroke) method does not obtain the correct keystroke.
+* [#534](https://github.com/ckeditor/ckeditor-dev/issues/534): [IE] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not work in Quirks Mode.
+* [#450](https://github.com/ckeditor/ckeditor-dev/issues/450): Fixed: [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter) incorrectly transforms the `margin` CSS property.
+
+## CKEditor 4.7
+
+**Important Notes:**
+
+* [#13793](http://dev.ckeditor.com/ticket/13793): The [`embed_provider`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-embed_provider) configuration option for the [Media Embed](http://ckeditor.com/addon/embed) and [Semantic Media Embed](http://ckeditor.com/addon/embedsemantic) plugins is no longer preset by default.
+* The [UI Color](http://ckeditor.com/addon/uicolor) plugin now uses a custom color picker instead of the `YUI 2.7.0` library which has some known vulnerabilities (it's a security precaution, there was no security issue in CKEditor due to the way it was used).
+
+New Features:
+
+* [#16755](http://dev.ckeditor.com/ticket/16755): Added the [Table Selection](http://ckeditor.com/addon/tableselection) plugin that lets you select and manipulate an arbitrary rectangular table fragment (a few cells, a row or a column).
+* [#16961](http://dev.ckeditor.com/ticket/16961): Added support for pasting from Microsoft Excel.
+* [#13381](http://dev.ckeditor.com/ticket/13381): Dynamic code evaluation call in [`CKEDITOR.template`](http://docs.ckeditor.com/#!/api/CKEDITOR.template) removed. CKEditor can now be used without the `unsafe-eval` Content Security Policy. Thanks to [Caridy Patiño](http://caridy.name)!
+* [#16971](http://dev.ckeditor.com/ticket/16971): Added support for color in the `background` property containing also other styles for table cells in the [Table Tools](http://ckeditor.com/addon/tabletools) plugin.
+* [#16847](http://dev.ckeditor.com/ticket/16847): Added support for parsing and inlining any formatting created using the Microsoft Word style system to the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.
+* [#16818](http://dev.ckeditor.com/ticket/16818): Added table cell height parsing in the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.
+* [#16850](http://dev.ckeditor.com/ticket/16850): Added a new [`config.enableContextMenu`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enableContextMenu) configuration option for enabling and disabling the [context menu](http://ckeditor.com/addon/contextmenu).
+* [#16937](http://dev.ckeditor.com/ticket/16937): The `command` parameter in [CKEDITOR.editor.getCommandKeystroke](http://docs.ckeditor.dev/#!/api/CKEDITOR.editor-method-getCommandKeystroke) now also accepts a command name as an argument.
+* [#17010](http://dev.ckeditor.com/ticket/17010): The [`CKEDITOR.dom.range.shrink`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-shrink) method now allows for skipping bogus `<br>` elements.
+
+Fixed Issues:
+
+* [#16935](http://dev.ckeditor.com/ticket/16935): [Chrome] Fixed: Blurring the editor in [Source Mode](http://ckeditor.com/addon/sourcearea) throws an error.
+* [#16825](http://dev.ckeditor.com/ticket/16825): [Chrome] Fixed: Error thrown when destroying a focused inline editor.
+* [#16857](http://dev.ckeditor.com/ticket/16857): Fixed: <kbd>Ctrl+Shift+V</kbd> blocked by [Copy Formatting](http://ckeditor.com/addon/copyformatting).
+* [#16845](https://dev.ckeditor.com/ticket/16845): [IE] Fixed: Cursor jumps to the top of the scrolled editor after focusing it when the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin is enabled.
+* [#16786](http://dev.ckeditor.com/ticket/16786): Fixed: Added missing translations for the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin.
+* [#14714](http://dev.ckeditor.com/ticket/14714): [WebKit/Blink] Fixed: Exception thrown on refocusing a blurred inline editor.
+* [#16913](http://dev.ckeditor.com/ticket/16913): [Firefox, IE] Fixed: [Paste as Plain Text](http://ckeditor.com/addon/pastetext) keystroke does not work.
+* [#16968](http://dev.ckeditor.com/ticket/16968): Fixed: [Safari] [Paste as Plain Text](http://ckeditor.com/addon/pastetext) is not handled by the editor.
+* [#16912](http://dev.ckeditor.com/ticket/16912): Fixed: Exception thrown when a single image is pasted using [Paste from Word](http://ckeditor.com/addon/pastefromword).
+* [#16821](http://dev.ckeditor.com/ticket/16821): Fixed: Extraneous `<span>` elements with `height` style stacked when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#16866](http://dev.ckeditor.com/ticket/16866): [IE, Edge] Fixed: Whitespaces not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#16860](http://dev.ckeditor.com/ticket/16860): Fixed: Paragraphs which only look like lists incorrectly transformed into them when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#16817](http://dev.ckeditor.com/ticket/16817): Fixed: When [pasting from Word](http://ckeditor.com/addon/pastefromword), paragraphs are transformed into lists with some corrupted data.
+* [#16833](http://dev.ckeditor.com/ticket/16833): [IE11] Fixed: Malformed list with headers [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#16826](http://dev.ckeditor.com/ticket/16826): [IE] Fixed: Superfluous paragraphs within lists [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#12465](http://dev.ckeditor.com/ticket/12465): Fixed: Cannot change the state of checkboxes or radio buttons if the properties dialog was invoked with a double-click.
+* [#13062](http://dev.ckeditor.com/ticket/13062): Fixed: Impossible to unlink when the caret is at the edge of the link.
+* [#13585](http://dev.ckeditor.com/ticket/13585): Fixed: Error when wrapping two adjacent `<div>` elements with a `<div>`.
+* [#16811](http://dev.ckeditor.com/ticket/16811): Fixed: Table alignment is not preserved by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.
+* [#16810](http://dev.ckeditor.com/ticket/16810): Fixed: Vertical align in tables is not supported by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.
+* [#11956](http://dev.ckeditor.com/ticket/11956): [Blink, IE] Fixed: [Link](http://ckeditor.com/addon/link) dialog does not open on a double click on the second word of the link with a background color or other styles.
+* [#10472](http://dev.ckeditor.com/ticket/10472): Fixed: Unable to use [Table Resize](http://ckeditor.com/addon/tableresize) on table header and footer.
+* [#14762](http://dev.ckeditor.com/ticket/14762): Fixed: Hovering over an empty table (without rows or cells) throws an error when the [Table Resize](http://ckeditor.com/addon/tableresize) plugin is active.
+* [#16777](https://dev.ckeditor.com/ticket/16777): [Edge] Fixed: The [Clipboard](http://ckeditor.com/addon/clipboard) plugin does not allow to drop widgets into the editor.
+* [#14894](https://dev.ckeditor.com/ticket/14894): [Chrome] Fixed: The editor scrolls to the top after focusing or when a dialog is opened.
+* [#14769](https://dev.ckeditor.com/ticket/14769): Fixed: URLs with '-' in host are not detected by the [Auto Link](http://ckeditor.com/addon/autolink) plugin.
+* [#16804](https://dev.ckeditor.com/ticket/16804): Fixed: Focus is not on the first menu item when the user opens a context menu or a drop-down list from the editor toolbar.
+* [#14407](https://dev.ckeditor.com/ticket/14407): [IE] Fixed: Non-editable widgets can be edited.
+* [#16927](https://dev.ckeditor.com/ticket/16927): Fixed: An error thrown if a bundle containing the [Color Button](http://ckeditor.com/addon/colorbutton) plugin is run in ES5 strict mode. Thanks to [Igor Rubinovich](https://github.com/IgorRubinovich)!
+* [#16920](http://dev.ckeditor.com/ticket/16920): Fixed: Several plugins not using the [Dialog](http://ckeditor.com/addon/dialog) plugin as a direct dependency.
+* [PR#336](https://github.com/ckeditor/ckeditor-dev/pull/336): Fixed: Typo in [`CKEDITOR.getCss`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getCss) API documentation. Thanks to [knusperpixel](https://github.com/knusperpixel)!
+* [#17027](http://dev.ckeditor.com/ticket/17027): Fixed: Command event data should be initialized as an empty object.
+* Fixed the behavior of HTML parser when parsing `src`/`srcdoc` attributes of the `<iframe>` element in a CKEditor setup with ACF turned off and without the [Iframe Dialog](http://ckeditor.com/addon/iframe) plugin. The issue was originally reported as a security issue by [Sriramk21](https://twitter.com/sriramk21) from Pegasystems and was later downgraded by the security team into a normal issue due to the requirement of having ACF turned off. Disabling [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) is against [security best practices](http://docs.ckeditor.com/#!/guide/dev_best_practices-section-security), so the problem described above has not been considered a security issue as such.
+
+Other Changes:
+
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins:
+ * Fixed: DOM Exception after clicking "Remove Language" on a selected word with enabled [Language](http://ckeditor.com/addon/language) plugin in SCAYT.
+* [#16958](http://dev.ckeditor.com/ticket/16958): Switched the default MathJax CDN provider for the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin from `cdn.mathjax.org` to [cdnjs](https://cdnjs.com/), due to closing of `cdn.mathjax.org` scheduled for April 30, 2017.
+* [#16954](http://dev.ckeditor.com/ticket/16954): Removed the paste dialog.
+* [#16982](http://dev.ckeditor.com/ticket/16982): Latest Safari now supports enhanced Clipboard API introduced in CKEditor 4.5.0.
+* [#17025](http://dev.ckeditor.com/ticket/17025): Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.4.2.
+
+## CKEditor 4.6.2
+
+New Features:
+
+* [#16733](http://dev.ckeditor.com/ticket/16733): Added a new pastel color palette for the [Color Button](http://ckeditor.com/addon/colorbutton) plugin and a new [`config.colorButton_colorsPerRow`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-colorButton_colorsPerRow) configuration option for setting the number of rows in the color selector.
+* [#16752](http://dev.ckeditor.com/ticket/16752): Added a new Azerbaijani localization. Thanks to the [Azerbaijani language team](https://www.transifex.com/ckeditor/teams/11143/az/)!
+* [#13818](http://dev.ckeditor.com/ticket/13818): It is now possible to group [Widget](http://ckeditor.com/addon/widget) [style definitions](http://docs.ckeditor.com/#!/guide/dev_styles-section-widget-styles), so applying one style disables the other.
+
+Fixed Issues:
+
+* [#13446](http://dev.ckeditor.com/ticket/13446): [Chrome] Fixed: It is possible to type in an unfocused inline editor.
+* [#14856](http://dev.ckeditor.com/ticket/14856): Fixed: [Font size and font family](http://ckeditor.com/addon/font) reset each other when modified at certain positions.
+* [#16745](http://dev.ckeditor.com/ticket/16745): [Edge] Fixed: List items are lost when [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#16682](http://dev.ckeditor.com/ticket/16682): [Edge] Fixed: A list gets [pasted from Word](http://ckeditor.com/addon/pastefromword) as a set of paragraphs. Added the [`config.pasteFromWord_heuristicsEdgeList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWord_heuristicsEdgeList) configuration option.
+* [#10373](http://dev.ckeditor.com/ticket/10373): Fixed: Context menu items can be dragged into the editor.
+* [#16728](http://dev.ckeditor.com/ticket/16728): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Quirks Mode.
+* [#16795](http://dev.ckeditor.com/ticket/16795): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Compatibility Mode.
+* [#16675](http://dev.ckeditor.com/ticket/16675): Fixed: Styles applied with [Copy Formatting](http://ckeditor.com/addon/copyformatting) to a single table cell are applied to the whole table.
+* [#16753](http://dev.ckeditor.com/ticket/16753): Fixed: [`element.setSize`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-setSize) sets incorrect editor dimensions if the border width is represented as a fraction of pixels.
+* [#16705](http://dev.ckeditor.com/ticket/16705): [Firefox] Fixed: Unable to paste images as Base64 strings when using [Clipboard](http://ckeditor.com/addon/clipboard).
+* [#14869](http://dev.ckeditor.com/ticket/14869): Fixed: JavaScript error is thrown when trying to use [Find](http://ckeditor.com/addon/find) in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).
+
+## CKEditor 4.6.1
+
+New Features:
+
+* [#16639](http://dev.ckeditor.com/ticket/16639): The `callback` parameter in the [CKEDITOR.ajax.post](http://docs.ckeditor.com/#!/api/CKEDITOR.ajax-method-post) method became optional.
+
+Fixed Issues:
+
+* [#11064](http://dev.ckeditor.com/ticket/11064): [Blink, WebKit] Fixed: Cannot select all editor content when a widget or a non-editable element is the first or last element of the content. Also fixes this issue in the [Select All](http://ckeditor.com/addon/selectall) plugin.
+* [#14755](http://dev.ckeditor.com/ticket/14755): [Blink, WebKit, IE8] Fixed: Browser hangs when a table is inserted in the place of a selected list with an empty last item.
+* [#16624](http://dev.ckeditor.com/ticket/16624): Fixed: Improved the [Color Button](http://ckeditor.com/addon/colorbutton) plugin which will now normalize the CSS `background` property if it only contains a color value. This fixes missing background colors when using [Paste from Word](http://ckeditor.com/addon/pastefromword).
+* [#16600](http://dev.ckeditor.com/ticket/16600): [Blink, WebKit] Fixed: Error thrown occasionally by an uninitialized editable for multiple CKEditor instances on the same page.
+
+## CKEditor 4.6
+
+New Features:
+
+* [#14569](http://dev.ckeditor.com/ticket/14569): Added a new, flat, default CKEditor skin called [Moono-Lisa](http://ckeditor.com/addon/moono-lisa). Refreshed default colors available in the [Color Button](http://ckeditor.com/addon/colorbutton) plugin ([Text Color and Background Color](http://docs.ckeditor.com/#!/guide/dev_colorbutton) feature).
+* [#14707](http://dev.ckeditor.com/ticket/14707): Added a new [Copy Formatting](http://ckeditor.com/addon/copyformatting) feature to enable easy copying of styles between your document parts.
+* Introduced the completely rewritten [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin:
+ * Backward incompatibility: The [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) option now defaults to `false`. This option will be deprecated in the future. Use [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_acf) to replicate the effect of setting it to `true`.
+ * Backward incompatibility: The [`config.pasteFromWordNumberedHeadingToList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordNumberedHeadingToList) and [`config.pasteFromWordRemoveStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveStyles) options were dropped and no longer have any effect on pasted content.
+ * Major improvements in preservation of list numbering, styling and indentation (nested lists with multiple levels).
+ * Major improvements in document structure parsing that fix plenty of issues with distorted or missing content after paste.
+* Added new translation: Occitan. Thanks to [Cédric Valmary](https://totenoc.eu/)!
+* [#10015](http://dev.ckeditor.com/ticket/10015): Keyboard shortcuts (relevant to the operating system in use) will now be displayed in tooltips and context menus.
+* [#13794](http://dev.ckeditor.com/ticket/13794): The [Upload Image](http://ckeditor.com/addon/uploadimage) feature now uses `uploaded.width/height` if set.
+* [#12541](http://dev.ckeditor.com/ticket/12541): Added the [Upload File](http://ckeditor.com/addon/uploadfile) plugin that lets you upload a file by drag&dropping it into the editor content.
+* [#14449](http://dev.ckeditor.com/ticket/14449): Introduced the [Balloon Panel](http://ckeditor.com/addon/balloonpanel) plugin that lets you create stylish floating UI elements for the editor.
+* [#12077](https://dev.ckeditor.com/ticket/12077): Added support for the HTML5 `download` attribute in link (`<a>`) elements. Selecting the "Force Download" checkbox in the [Link](http://ckeditor.com/addon/link) dialog will cause the linked file to be downloaded automatically. Thanks to [sbusse](https://github.com/sbusse)!
+* [#13518](http://dev.ckeditor.com/ticket/13518): Introduced the [`additionalRequestParameters`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition-property-additionalRequestParameters) property for file uploads to make it possible to send additional information about the uploaded file to the server.
+* [#14889](http://dev.ckeditor.com/ticket/14889): Added the [`config.image2_altRequired`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_altRequired) option for the [Enhanced Image](http://ckeditor.com/addon/image2) plugin to allow making alternative text a mandatory field. Thanks to [Andrey Fedoseev](https://github.com/andreyfedoseev)!
+
+Fixed Issues:
+
+* [#9991](http://dev.ckeditor.com/ticket/9991): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) should only normalize input data.
+* [#7209](http://dev.ckeditor.com/ticket/7209): Fixed: Lists with 3 levels not [pasted from Word](http://ckeditor.com/addon/pastefromword) correctly.
+* [#14335](http://dev.ckeditor.com/ticket/14335): Fixed: Pasting a numbered list starting with a value different from "1" from Microsoft Word does not work correctly.
+* [#14542](http://dev.ckeditor.com/ticket/14542): Fixed: Copying a numbered list from Microsoft Word does not preserve list formatting.
+* [#14544](http://dev.ckeditor.com/ticket/14544): Fixed: Copying a nested list from Microsoft Word results in an empty list.
+* [#14660](http://dev.ckeditor.com/ticket/14660): Fixed: [Pasting text from Word](http://ckeditor.com/addon/pastefromword) breaks the styling in some cases.
+* [#14867](http://dev.ckeditor.com/ticket/14867): [Firefox] Fixed: Text gets stripped when [pasting content from Word](http://ckeditor.com/addon/pastefromword).
+* [#2507](http://dev.ckeditor.com/ticket/2507): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not detect pasting a part of a paragraph.
+* [#3336](http://dev.ckeditor.com/ticket/3336): Fixed: Extra blank row added on top of the content [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#6115](http://dev.ckeditor.com/ticket/6115): Fixed: When Right-to-Left text direction is applied to a table [pasted from Word](http://ckeditor.com/addon/pastefromword), borders are missing on one side.
+* [#6342](http://dev.ckeditor.com/ticket/6342): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) filters out a basic text style when it is [configured to use attributes](http://docs.ckeditor.com/#!/guide/dev_basicstyles-section-custom-basic-text-style-definition).
+* [#6457](http://dev.ckeditor.com/ticket/6457): [IE] Fixed: [Pasting from Word](http://ckeditor.com/addon/pastefromword) is extremely slow.
+* [#6789](http://dev.ckeditor.com/ticket/6789): Fixed: The `mso-list: ignore` style is not handled properly when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#7262](http://dev.ckeditor.com/ticket/7262): Fixed: Lists in preformatted body disappear when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#7662](http://dev.ckeditor.com/ticket/7662): [Opera] Fixed: Extra empty number/bullet shown in the editor body when editing a multi-level list [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#7807](http://dev.ckeditor.com/ticket/7807): Fixed: Last item in a list not converted to a `<li>` element after [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#7950](http://dev.ckeditor.com/ticket/7950): [IE] Fixed: Content [from Word pasted](http://ckeditor.com/addon/pastefromword) differently than in other browsers.
+* [#7982](http://dev.ckeditor.com/ticket/7982): Fixed: Multi-level lists get split into smaller ones when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#8231](http://dev.ckeditor.com/ticket/8231): [WebKit, Opera] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts empty paragraphs.
+* [#8266](http://dev.ckeditor.com/ticket/8266): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts a blank line at the top.
+* [#8341](http://dev.ckeditor.com/ticket/8341), [#7646](http://dev.ckeditor.com/ticket/7646): Fixed: Faulty removal of empty `<span>` elements in [Paste from Word](http://ckeditor.com/addon/pastefromword) content cleanup breaking content formatting.
+* [#8754](http://dev.ckeditor.com/ticket/8754): [Firefox] Fixed: Incorrect pasting of multiple nested lists in [Paste from Word](http://ckeditor.com/addon/pastefromword).
+* [#8983](http://dev.ckeditor.com/ticket/8983): Fixed: Alignment lost when [pasting from Word](http://ckeditor.com/addon/pastefromword) with [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) set to [`CKEDITOR.ENTER_BR`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-ENTER_BR).
+* [#9331](http://dev.ckeditor.com/ticket/9331): [IE] Fixed: [Pasting text from Word](http://ckeditor.com/addon/pastefromword) creates a simple Caesar cipher.
+* [#9422](http://dev.ckeditor.com/ticket/9422): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) leaves an unwanted `color:windowtext` style.
+* [#10011](http://dev.ckeditor.com/ticket/10011): [IE9-10] Fixed: [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) is ignored under certain conditions.
+* [#10643](http://dev.ckeditor.com/ticket/10643): Fixed: Differences between using <kbd>Ctrl+V</kbd> and pasting from the [Paste from Word](http://ckeditor.com/addon/pastefromword) dialog.
+* [#10784](http://dev.ckeditor.com/ticket/10784): Fixed: Lines missing when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#11294](http://dev.ckeditor.com/ticket/11294): [IE10] Fixed: Font size is not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#11627](http://dev.ckeditor.com/ticket/11627): Fixed: Missing words when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#12784](http://dev.ckeditor.com/ticket/12784): Fixed: Bulleted list with custom bullets gets changed to a numbered list when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#13174](http://dev.ckeditor.com/ticket/13174): Fixed: Data loss after [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#13828](http://dev.ckeditor.com/ticket/13828): Fixed: Widget classes should be added to the wrapper rather than the widget element.
+* [#13829](http://dev.ckeditor.com/ticket/13829): Fixed: No class in [Widget](http://ckeditor.com/addon/widget) wrapper to identify the widget type.
+* [#13519](http://dev.ckeditor.com/ticket/13519): Server response received when uploading files should be more flexible.
+
+Other Changes:
+
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins:
+ * Support for the new default Moono-Lisa skin.
+ * [#121](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/121): Fixed: [Basic Styles](http://ckeditor.com/addon/basicstyles) do not work when SCAYT is enabled.
+ * [#125](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/125): Fixed: Inline styles are not continued when writing multiple lines of styled text with SCAYT enabled.
+ * [#127](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/127): Fixed: Uncaught TypeError after enabling SCAYT in the CKEditor `<div>` element.
+ * [#128](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/128): Fixed: Error thrown after enabling SCAYT caused by conflicts with RequireJS.
+
+## CKEditor 4.5.11
+
+**Security Updates:**
+
+* [Severity: minor] Fixed the `target="_blank"` vulnerability reported by James Gaskell.
+
+ Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL.
+
+ An upgrade is recommended.
+
+New Features:
+
+* [#14747](http://dev.ckeditor.com/ticket/14747): The [Enhanced Image](http://ckeditor.com/addon/image2) caption now supports the link `target` attribute.
+* [#7154](http://dev.ckeditor.com/ticket/7154): Added support for the "Display Text" field to the [Link](http://ckeditor.com/addon/link) dialog. Thanks to [Ryan Guill](https://github.com/ryanguill)!
+
+Fixed Issues:
+
+* [#13362](http://dev.ckeditor.com/ticket/13362): [Blink, WebKit] Fixed: Active widget element is not cached when it is losing focus and it is inside an editable element.
+* [#13755](http://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images does not work.
+* [#13548](http://dev.ckeditor.com/ticket/13548): [IE] Fixed: Clicking the [elements path](http://ckeditor.com/addon/elementspath) disables Cut and Copy icons.
+* [#13812](http://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left.
+* [#14659](http://dev.ckeditor.com/ticket/14659): [Blink] Fixed: Content scrolled to the top after closing the dialog in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).
+* [#14825](http://dev.ckeditor.com/ticket/14825): [Edge] Fixed: Focusing the editor causes unwanted scrolling due to dropped support for the `setActive` method.
+
+## CKEditor 4.5.10
+
+Fixed Issues:
+
+* [#10750](http://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names.
+* [#14413](http://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](http://ckeditor.com/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible.
+* [#14451](http://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)!
+* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!
+* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget.
+* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](http://ckeditor.com/addon/image2) and [Placeholder](http://ckeditor.com/addon/placeholder) widgets.
+* [#14667](http://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph.
+* [#14252](http://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line.
+* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically.
+
+## CKEditor 4.5.9
+
+Fixed Issues:
+
+* [#10685](http://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor-dev/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor-dev](https://github.com/ckeditor/ckeditor-dev) and [6c9189f4](https://github.com/ckeditor/ckeditor-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor-presets](https://github.com/ckeditor/ckeditor-presets).
+* [#14573](https://dev.ckeditor.com/ticket/14573): Fixed: Missing [Widget](http://ckeditor.com/addon/widget) drag handler CSS when there are multiple editor instances.
+* [#14620](https://dev.ckeditor.com/ticket/14620): Fixed: Setting both the `min-height` style for the `<body>` element and the `height` style for the `<html>` element breaks the [Auto Grow](http://ckeditor.com/addon/autogrow) plugin.
+* [#14538](http://dev.ckeditor.com/ticket/14538): Fixed: Keyboard focus goes into an embedded `<iframe>` element.
+* [#14602](http://dev.ckeditor.com/ticket/14602): Fixed: The [`dom.element.removeAttribute()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeAttribute) method does not remove all attributes if no parameter is given.
+* [#8679](http://dev.ckeditor.com/ticket/8679): Fixed: Better focus indication and ability to style the selected color in the [color picker dialog](http://ckeditor.com/addon/colordialog).
+* [#11697](http://dev.ckeditor.com/ticket/11697): Fixed: Content is replaced ignoring the letter case setting in the [Find and Replace](http://ckeditor.com/addon/find) dialog window.
+* [#13886](http://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) instance with the `styles` property by [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).
+* [#14535](http://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)!
+
## CKEditor 4.5.8
New Features:
* Notification system:
* [#11580](http://dev.ckeditor.com/ticket/11580): Introduced the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification).
* [#12810](http://dev.ckeditor.com/ticket/12810): Introduced a [notification aggregator](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notificationAggregator) for the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification) which simplifies displaying progress of many concurrent tasks.
-* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it — [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.deleteSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml).
+* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it — [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.extractSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-extractSelectedHtml).
* [#12416](http://dev.ckeditor.com/ticket/12416): Added the [`widget.definition.upcastPriority`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-upcastPriority) property which gives more control over widget upcasting order to the widget author.
* [#12036](http://dev.ckeditor.com/ticket/12036): Initialize the editor in [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) mode when the `<textarea>` element has a `readonly` attribute.
* [#11905](http://dev.ckeditor.com/ticket/11905): The [`resize` event](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-resize) passes the current dimensions in its data.
==========================
CKEditor - The text editor for Internet - http://ckeditor.com
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
Licensed under the terms of any of the following licenses at your
choice:
The following libraries are included in CKEditor under the MIT license (see Appendix D):
-* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
+* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
* PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca.
* CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others.
The following libraries are included only in the development version of CKEditor under the MIT license (see Appendix D):
-* CKBuilder - Copyright (c) 2012-2016, CKSource - Frederico Knabben.
-* CKLangTool - Copyright (c) 2012-2016, CKSource - Frederico Knabben.
+* CKBuilder - Copyright (c) 2012-2017, CKSource - Frederico Knabben.
+* CKLangTool - Copyright (c) 2012-2017, CKSource - Frederico Knabben.
* Optimist - Copyright 2010 James Halliday (mail@substack.net).
* Q - Copyright 2009–2014 Kristopher Michael Kowal.
* Tmp - Copyright (c) 2014 KARASZI István.
* Mkdirp - Copyright 2010 James Halliday (mail@substack.net).
-* Bender.js - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* benderjs-coverage - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* benderjs-jquery - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* benderjs-sinon - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* benderjs-yui - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
+* Bender.js - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
+* benderjs-coverage - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
+* benderjs-jquery - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
+* benderjs-sinon - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
+* benderjs-yui - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
* Grunt - Copyright (c) 2015 "Cowboy" Ben Alman.
* grunt-contrib-imagemin - Copyright (c) 2014 Sindre Sorhus, contributors.
* grunt-jscs - Copyright (c) 2014 Gustavo Henke, contributors.
CKEditor 4
==========
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
http://ckeditor.com - See LICENSE.md for license information.
CKEditor is a text editor to be used inside web pages. It's not a replacement
--- /dev/null
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR_Adapters.jQuery jQuery Adapter}.
+ */
+
+/**
+ * @class CKEDITOR_Adapters.jQuery
+ * @singleton
+ *
+ * The jQuery Adapter allows for easy use of basic CKEditor functions and access to the internal API.
+ * To find more information about the jQuery Adapter, go to the [jQuery Adapter section](#!/guide/dev_jquery)
+ * of the Developer's Guide or see the "Create Editors with jQuery" sample.
+ *
+ * @aside guide dev_jquery
+ */
+
+( function( $ ) {
+ if ( typeof $ == 'undefined' ) {
+ throw new Error( 'jQuery should be loaded before CKEditor jQuery adapter.' );
+ }
+
+ if ( typeof CKEDITOR == 'undefined' ) {
+ throw new Error( 'CKEditor should be loaded before CKEditor jQuery adapter.' );
+ }
+
+ /**
+ * Allows CKEditor to override `jQuery.fn.val()`. When set to `true`, the `val()` function
+ * used on textarea elements replaced with CKEditor uses the CKEditor API.
+ *
+ * This configuration option is global and is executed during the loading of the jQuery Adapter.
+ * It cannot be customized across editor instances.
+ *
+ * Read more in the [documentation](#!/guide/dev_jquery).
+ *
+ * <script>
+ * CKEDITOR.config.jqueryOverrideVal = true;
+ * </script>
+ *
+ * <!-- Important: The jQuery Adapter is loaded *after* setting jqueryOverrideVal. -->
+ * <script src="/ckeditor/adapters/jquery.js"></script>
+ *
+ * <script>
+ * $( 'textarea' ).ckeditor();
+ * // ...
+ * $( 'textarea' ).val( 'New content' );
+ * </script>
+ *
+ * @cfg {Boolean} [jqueryOverrideVal=true]
+ * @member CKEDITOR.config
+ */
+ CKEDITOR.config.jqueryOverrideVal =
+ typeof CKEDITOR.config.jqueryOverrideVal == 'undefined' ? true : CKEDITOR.config.jqueryOverrideVal;
+
+ // jQuery object methods.
+ $.extend( $.fn, {
+ /**
+ * Returns an existing CKEditor instance for the first matched element.
+ * Allows to easily use the internal API. Does not return a jQuery object.
+ *
+ * Raises an exception if the editor does not exist or is not ready yet.
+ *
+ * @returns CKEDITOR.editor
+ * @deprecated Use {@link #editor editor property} instead.
+ */
+ ckeditorGet: function() {
+ var instance = this.eq( 0 ).data( 'ckeditorInstance' );
+
+ if ( !instance )
+ throw 'CKEditor is not initialized yet, use ckeditor() with a callback.';
+
+ return instance;
+ },
+
+ /**
+ * A jQuery function which triggers the creation of CKEditor with `<textarea>` and
+ * {@link CKEDITOR.dtd#$editable editable} elements.
+ * Every `<textarea>` element will be converted to a classic (`iframe`-based) editor,
+ * while any other supported element will be converted to an inline editor.
+ * This method binds the callback to the `instanceReady` event of all instances.
+ * If the editor has already been created, the callback is fired straightaway.
+ * You can also create multiple editors at once by using `$( '.className' ).ckeditor();`.
+ *
+ * **Note**: jQuery chaining and mixed parameter order is allowed.
+ *
+ * @param {Function} callback
+ * Function to be run on the editor instance. Callback takes the source element as a parameter.
+ *
+ * $( 'textarea' ).ckeditor( function( textarea ) {
+ * // Callback function code.
+ * } );
+ *
+ * @param {Object} config
+ * Configuration options for new instance(s) if not already created.
+ *
+ * $( 'textarea' ).ckeditor( {
+ * uiColor: '#9AB8F3'
+ * } );
+ *
+ * @returns jQuery.fn
+ */
+ ckeditor: function( callback, config ) {
+ if ( !CKEDITOR.env.isCompatible )
+ throw new Error( 'The environment is incompatible.' );
+
+ // Reverse the order of arguments if the first one isn't a function.
+ if ( !$.isFunction( callback ) ) {
+ var tmp = config;
+ config = callback;
+ callback = tmp;
+ }
+
+ // An array of instanceReady callback promises.
+ var promises = [];
+
+ config = config || {};
+
+ // Iterate over the collection.
+ this.each( function() {
+ var $element = $( this ),
+ editor = $element.data( 'ckeditorInstance' ),
+ instanceLock = $element.data( '_ckeditorInstanceLock' ),
+ element = this,
+ dfd = new $.Deferred();
+
+ promises.push( dfd.promise() );
+
+ if ( editor && !instanceLock ) {
+ if ( callback )
+ callback.apply( editor, [ this ] );
+
+ dfd.resolve();
+ } else if ( !instanceLock ) {
+ // CREATE NEW INSTANCE
+
+ // Handle config.autoUpdateElement inside this plugin if desired.
+ if ( config.autoUpdateElement || ( typeof config.autoUpdateElement == 'undefined' && CKEDITOR.config.autoUpdateElement ) ) {
+ config.autoUpdateElementJquery = true;
+ }
+
+ // Always disable config.autoUpdateElement.
+ config.autoUpdateElement = false;
+ $element.data( '_ckeditorInstanceLock', true );
+
+ // Set instance reference in element's data.
+ if ( $( this ).is( 'textarea' ) )
+ editor = CKEDITOR.replace( element, config );
+ else
+ editor = CKEDITOR.inline( element, config );
+
+ $element.data( 'ckeditorInstance', editor );
+
+ // Register callback.
+ editor.on( 'instanceReady', function( evt ) {
+ var editor = evt.editor;
+
+ setTimeout( function() {
+ // Delay bit more if editor is still not ready.
+ if ( !editor.element ) {
+ setTimeout( arguments.callee, 100 );
+ return;
+ }
+
+ // Remove this listener. Triggered when new instance is ready.
+ evt.removeListener();
+
+ /**
+ * Forwards the CKEditor {@link CKEDITOR.editor#event-dataReady dataReady event} as a jQuery event.
+ *
+ * @event dataReady
+ * @param {CKEDITOR.editor} editor Editor instance.
+ */
+ editor.on( 'dataReady', function() {
+ $element.trigger( 'dataReady.ckeditor', [ editor ] );
+ } );
+
+ /**
+ * Forwards the CKEditor {@link CKEDITOR.editor#event-setData setData event} as a jQuery event.
+ *
+ * @event setData
+ * @param {CKEDITOR.editor} editor Editor instance.
+ * @param data
+ * @param {String} data.dataValue The data that will be used.
+ */
+ editor.on( 'setData', function( evt ) {
+ $element.trigger( 'setData.ckeditor', [ editor, evt.data ] );
+ } );
+
+ /**
+ * Forwards the CKEditor {@link CKEDITOR.editor#event-getData getData event} as a jQuery event.
+ *
+ * @event getData
+ * @param {CKEDITOR.editor} editor Editor instance.
+ * @param data
+ * @param {String} data.dataValue The data that will be returned.
+ */
+ editor.on( 'getData', function( evt ) {
+ $element.trigger( 'getData.ckeditor', [ editor, evt.data ] );
+ }, 999 );
+
+ /**
+ * Forwards the CKEditor {@link CKEDITOR.editor#event-destroy destroy event} as a jQuery event.
+ *
+ * @event destroy
+ * @param {CKEDITOR.editor} editor Editor instance.
+ */
+ editor.on( 'destroy', function() {
+ $element.trigger( 'destroy.ckeditor', [ editor ] );
+ } );
+
+ // Overwrite save button to call jQuery submit instead of javascript submit.
+ // Otherwise jQuery.forms does not work properly
+ editor.on( 'save', function() {
+ $( element.form ).submit();
+ return false;
+ }, null, null, 20 );
+
+ // Integrate with form submit.
+ if ( editor.config.autoUpdateElementJquery && $element.is( 'textarea' ) && $( element.form ).length ) {
+ var onSubmit = function() {
+ $element.ckeditor( function() {
+ editor.updateElement();
+ } );
+ };
+
+ // Bind to submit event.
+ $( element.form ).submit( onSubmit );
+
+ // Bind to form-pre-serialize from jQuery Forms plugin.
+ $( element.form ).bind( 'form-pre-serialize', onSubmit );
+
+ // Unbind when editor destroyed.
+ $element.bind( 'destroy.ckeditor', function() {
+ $( element.form ).unbind( 'submit', onSubmit );
+ $( element.form ).unbind( 'form-pre-serialize', onSubmit );
+ } );
+ }
+
+ // Garbage collect on destroy.
+ editor.on( 'destroy', function() {
+ $element.removeData( 'ckeditorInstance' );
+ } );
+
+ // Remove lock.
+ $element.removeData( '_ckeditorInstanceLock' );
+
+ /**
+ * Forwards the CKEditor {@link CKEDITOR.editor#event-instanceReady instanceReady event} as a jQuery event.
+ *
+ * @event instanceReady
+ * @param {CKEDITOR.editor} editor Editor instance.
+ */
+ $element.trigger( 'instanceReady.ckeditor', [ editor ] );
+
+ // Run given (first) code.
+ if ( callback )
+ callback.apply( editor, [ element ] );
+
+ dfd.resolve();
+ }, 0 );
+ }, null, null, 9999 );
+ } else {
+ // Editor is already during creation process, bind our code to the event.
+ editor.once( 'instanceReady', function() {
+ setTimeout( function() {
+ // Delay bit more if editor is still not ready.
+ if ( !editor.element ) {
+ setTimeout( arguments.callee, 100 );
+ return;
+ }
+
+ // Run given code.
+ if ( editor.element.$ == element && callback )
+ callback.apply( editor, [ element ] );
+
+ dfd.resolve();
+ }, 0 );
+ }, null, null, 9999 );
+ }
+ } );
+
+ /**
+ * The [jQuery Promise object]((http://api.jquery.com/promise/)) that handles the asynchronous constructor.
+ * This promise will be resolved after **all** of the constructors.
+ *
+ * @property {Function} promise
+ */
+ var dfd = new $.Deferred();
+
+ this.promise = dfd.promise();
+
+ $.when.apply( this, promises ).then( function() {
+ dfd.resolve();
+ } );
+
+ /**
+ * Existing CKEditor instance. Allows to easily use the internal API.
+ *
+ * **Note**: This is not a jQuery object.
+ *
+ * var editor = $( 'textarea' ).ckeditor().editor;
+ *
+ * @property {CKEDITOR.editor} editor
+ */
+ this.editor = this.eq( 0 ).data( 'ckeditorInstance' );
+
+ return this;
+ }
+ } );
+
+ /**
+ * Overwritten jQuery `val()` method for `<textarea>` elements that have bound CKEditor instances.
+ * This method gets or sets editor content by using the {@link CKEDITOR.editor#method-getData editor.getData()}
+ * or {@link CKEDITOR.editor#method-setData editor.setData()} methods. To handle
+ * the {@link CKEDITOR.editor#method-setData editor.setData()} callback (as `setData` is asynchronous),
+ * `val( 'some data' )` will return a [jQuery Promise object](http://api.jquery.com/promise/).
+ *
+ * @method val
+ * @returns String|Number|Array|jQuery.fn|function(jQuery Promise)
+ */
+ if ( CKEDITOR.config.jqueryOverrideVal ) {
+ $.fn.val = CKEDITOR.tools.override( $.fn.val, function( oldValMethod ) {
+ return function( value ) {
+ // Setter, i.e. .val( "some data" );
+ if ( arguments.length ) {
+ var _this = this,
+ promises = [], //use promise to handle setData callback
+
+ result = this.each( function() {
+ var $elem = $( this ),
+ editor = $elem.data( 'ckeditorInstance' );
+
+ // Handle .val for CKEditor.
+ if ( $elem.is( 'textarea' ) && editor ) {
+ var dfd = new $.Deferred();
+
+ editor.setData( value, function() {
+ dfd.resolve();
+ } );
+
+ promises.push( dfd.promise() );
+ return true;
+ // Call default .val function for rest of elements
+ } else {
+ return oldValMethod.call( $elem, value );
+ }
+ } );
+
+ // If there is no promise return default result (jQuery object of chaining).
+ if ( !promises.length )
+ return result;
+ // Create one promise which will be resolved when all of promises will be done.
+ else {
+ var dfd = new $.Deferred();
+
+ $.when.apply( this, promises ).done( function() {
+ dfd.resolveWith( _this );
+ } );
+
+ return dfd.promise();
+ }
+ }
+ // Getter .val();
+ else {
+ var $elem = $( this ).eq( 0 ),
+ editor = $elem.data( 'ckeditorInstance' );
+
+ if ( $elem.is( 'textarea' ) && editor )
+ return editor.getData();
+ else
+ return oldValMethod.call( $elem );
+ }
+ };
+ } );
+ }
+} )( window.jQuery );
--- /dev/null
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * This file was added automatically by CKEditor builder.
+ * You may re-use it at any time to build CKEditor again.
+ *
+ * If you would like to build CKEditor online again
+ * (for example to upgrade), visit one the following links:
+ *
+ * (1) http://ckeditor.com/builder
+ * Visit online builder to build CKEditor from scratch.
+ *
+ * (2) http://ckeditor.com/builder/9323150a85589a6899021c19376669e6
+ * Visit online builder to build CKEditor, starting with the same setup as before.
+ *
+ * (3) http://ckeditor.com/builder/download/9323150a85589a6899021c19376669e6
+ * Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
+ *
+ * NOTE:
+ * This file is not used by CKEditor, you may remove it.
+ * Changing this file will not change your CKEditor configuration.
+ */
+
+var CKBUILDER_CONFIG = {
+ skin: 'moono',
+ preset: 'full',
+ ignore: [
+ '.DS_Store',
+ '.bender',
+ '.editorconfig',
+ '.gitattributes',
+ '.gitignore',
+ '.idea',
+ '.jscsrc',
+ '.jshintignore',
+ '.jshintrc',
+ '.mailmap',
+ '.travis.yml',
+ 'bender-err.log',
+ 'bender-out.log',
+ 'bender.ci.js',
+ 'bender.js',
+ 'dev',
+ 'gruntfile.js',
+ 'less',
+ 'node_modules',
+ 'package.json',
+ 'tests'
+ ],
+ plugins : {
+ 'Audio' : 1,
+ 'a11yhelp' : 1,
+ 'basicstyles' : 1,
+ 'contextmenu' : 1,
+ 'dialogadvtab' : 1,
+ 'elementspath' : 1,
+ 'enterkey' : 1,
+ 'entities' : 1,
+ 'filebrowser' : 1,
+ 'floatingspace' : 1,
+ 'format' : 1,
+ 'horizontalrule' : 1,
+ 'html5video' : 1,
+ 'htmlwriter' : 1,
+ 'iframe' : 1,
+ 'image' : 1,
+ 'indentblock' : 1,
+ 'indentlist' : 1,
+ 'justify' : 1,
+ 'link' : 1,
+ 'list' : 1,
+ 'liststyle' : 1,
+ 'magicline' : 1,
+ 'maximize' : 1,
+ 'oembed' : 1,
+ 'removeformat' : 1,
+ 'resize' : 1,
+ 'showborders' : 1,
+ 'sourcearea' : 1,
+ 'tab' : 1,
+ 'toolbar' : 1,
+ 'wysiwygarea' : 1
+ },
+ languages : {
+ 'en' : 1,
+ 'fr' : 1
+ }
+};
\ No newline at end of file
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*
* CKEDITOR.skinName = 'myskin,/customstuff/myskin/';
*
- * @cfg {String} [skinName='moono']
+ * @cfg {String} [skinName='moono-lisa']
* @member CKEDITOR
*/
-CKEDITOR.skinName = 'moono';
+CKEDITOR.skinName = 'moono-lisa';
/**
- * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
\r
// %REMOVE_START%\r
// The configuration options below are needed when running CKEditor from source files.\r
- config.plugins = 'dialogui,dialog,a11yhelp,basicstyles,panel,floatpanel,menu,contextmenu,dialogadvtab,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,button,richcombo,format,horizontalrule,htmlwriter,fakeobjects,iframe,image,indent,indentblock,indentlist,justify,link,list,liststyle,magicline,maximize,removeformat,resize,showborders,sourcearea,tab,toolbar,wysiwygarea';\r
+ config.plugins = 'dialogui,dialog,a11yhelp,dialogadvtab,basicstyles,panel,floatpanel,menu,contextmenu,resize,button,toolbar,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,richcombo,format,horizontalrule,htmlwriter,fakeobjects,iframe,wysiwygarea,image,indent,indentblock,indentlist,justify,link,list,liststyle,magicline,maximize,removeformat,showborders,sourcearea,tab,lineutils,notification,clipboard,widgetselection,widget,oembed,Audio,html5video';\r
config.skin = 'moono';\r
// %REMOVE_END%\r
\r
/*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
border: none;
outline: 1px solid #0782C1;
}
+
+/* Widget Styles */
+.code-featured
+{
+ border: 5px solid red;
+}
+
+.math-featured
+{
+ padding: 20px;
+ box-shadow: 0 0 2px rgba(200, 0, 0, 1);
+ background-color: rgba(255, 0, 0, 0.05);
+ margin: 10px;
+}
+
+.image-clean
+{
+ border: 0;
+ background: none;
+ padding: 0;
+}
+
+.image-clean > figcaption
+{
+ font-size: .9em;
+ text-align: right;
+}
+
+.image-grayscale
+{
+ background-color: white;
+ color: #666;
+}
+
+.image-grayscale img, img.image-grayscale
+{
+ filter: grayscale(100%);
+}
+
+.embed-240p
+{
+ max-width: 426px;
+ max-height: 240px;
+ margin:0 auto;
+}
+
+.embed-360p
+{
+ max-width: 640px;
+ max-height: 360px;
+ margin:0 auto;
+}
+
+.embed-480p
+{
+ max-width: 854px;
+ max-height: 480px;
+ margin:0 auto;
+}
+
+.embed-720p
+{
+ max-width: 1280px;
+ max-height: 720px;
+ margin:0 auto;
+}
+
+.embed-1080p
+{
+ max-width: 1920px;
+ max-height: 1080px;
+ margin:0 auto;
+}
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
( function() {
- // Disable HC detection in WebKit. (#5429)
+ // Disable HC detection in WebKit. (http://dev.ckeditor.com/ticket/5429)
if ( CKEDITOR.env.webkit )
CKEDITOR.env.hc = false;
else {
hcDetect.appendTo( CKEDITOR.document.getHead() );
// Update CKEDITOR.env.
- // Catch exception needed sometimes for FF. (#4230)
+ // Catch exception needed sometimes for FF. (http://dev.ckeditor.com/ticket/4230)
try {
var top = hcDetect.getComputedStyle( 'border-top-color' ),
right = hcDetect.getComputedStyle( 'border-right-color' );
// We need to check if getComputedStyle returned any value, because on FF
- // it returnes empty string if CKEditor is loaded in hidden iframe. (#11121)
+ // it returnes empty string if CKEditor is loaded in hidden iframe. (http://dev.ckeditor.com/ticket/11121)
CKEDITOR.env.hc = !!( top && top == right );
} catch ( e ) {
CKEDITOR.env.hc = false;
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
};
/**
- * Returns a string will all CSS rules passed to the {@link CKEDITOR#addCss} method.
+ * Returns a string with all CSS rules passed to the {@link CKEDITOR#addCss} method.
*
* @returns {String} A string containing CSS rules.
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
* by the editor code, guaranteeing clean cache results when
* upgrading.
*
+ * **Note:** There is [a known issue where "icons.png" does not include
+ * timestamp](http://dev.ckeditor.com/ticket/10685) and might get cached.
+ * We are working on having it fixed.
+ *
* alert( CKEDITOR.timestamp ); // e.g. '87dm'
*/
timestamp: '', // %REMOVE_LINE%
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
if ( this.state == CKEDITOR.TRISTATE_DISABLED || !this.checkAllowed() )
return false;
- if ( this.editorFocus ) // Give editor focus if necessary (#4355).
+ if ( this.editorFocus ) // Give editor focus if necessary (http://dev.ckeditor.com/ticket/4355).
editor.focus();
if ( this.fire( 'exec' ) === false )
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @fileOverview Defines the "virtual" {@link CKEDITOR.commandDefinition} class,
+ * @fileOverview Defines the "virtual" {@link CKEDITOR.commandDefinition} class
* which contains the defintion of a command. This file is for
* documentation purposes only.
*/
* } );
*
* @method exec
- * @param {CKEDITOR.editor} editor The editor within which run the command.
+ * @param {CKEDITOR.editor} editor The editor within which to run the command.
* @param {Object} [data] Additional data to be used to execute the command.
* @returns {Boolean} Whether the command has been successfully executed.
- * Defaults to `true`, if nothing is returned.
+ * Defaults to `true` if nothing is returned.
*/
/**
- * Whether the command need to be hooked into the redo/undo system.
+ * Whether the command needs to be hooked into the redo/undo system.
*
* editorInstance.addCommand( 'alertName', {
* exec: function( editor ) {
* command itself manually, and that the return value of this command is not to
* be returned by the {@link #exec} function.
*
- * editorInstance.addCommand( 'loadOptions', {
+ * editorInstance.addCommand( 'loadoptions', {
* exec: function( editor ) {
+ * var cmd = this;
* // Asynchronous operation below.
* CKEDITOR.ajax.loadXml( 'data.xml', function() {
- * editor.fire( 'afterCommandExec' );
+ * editor.fire( 'afterCommandExec', {
+ * name: 'loadoptions',
+ * command: cmd
+ * } );
* } );
* },
- * async: true // The command need some time to complete after exec function returns.
+ * async: true // The command needs some time to complete after the exec function returns.
* } );
*
* @property {Boolean} [async=false]
* exec: function( editor ) {
* // ...
* },
- * editorFocus: false // The command doesn't require focusing the editing document.
+ * editorFocus: false // The command does not require focusing the editing document.
* } );
*
* See also {@link CKEDITOR.command#editorFocus}.
* exec: function( editor ) {
* // ...
* },
- * startDisabled: true // Command is unavailable until selection is inside a link.
+ * startDisabled: true // The command is unavailable until the selection is inside a link.
* } );
*
* @property {Boolean} [startDisabled=false]
*/
/**
- * Indicates that this command is sensible to the selection context.
+ * Indicates that this command is sensitive to the selection context.
* If `true`, the {@link CKEDITOR.command#method-refresh} method will be
* called for this command on selection changes, with a single parameter
* representing the current elements path.
*/
/**
- * Defined by command definition a function to determinate the command state, it will be invoked
- * when editor has it's `states` or `selection` changed.
+ * Defined by the command definition, a function to determine the command state. It will be invoked
+ * when the editor has its `states` or `selection` changed.
*
- * **Note:** The function provided must be calling {@link CKEDITOR.command#setState} in all circumstance,
+ * **Note:** The function provided must be calling {@link CKEDITOR.command#setState} in all circumstances
* if it is intended to update the command state.
*
* @method refresh
* exec: function( editor ) {
* // ...
* },
- * modes: { wysiwyg:1 } // Command is available in wysiwyg mode only.
+ * modes: { wysiwyg:1 } // The command is available in wysiwyg mode only.
* } );
*
* See also {@link CKEDITOR.command#modes}.
* @since 4.0
* @property {Boolean} [readOnly=false]
*/
+
+/**
+ * A property that should be set when a command has no keystroke assigned by {@link CKEDITOR.editor#setKeystroke}, but
+ * the keystroke is still supported. For example: `cut`, `copy` and `paste` commands are handled that way.
+ * This property is used when displaying keystroke information in tooltips and context menus. It is used by
+ * {@link CKEDITOR.editor#getCommandKeystroke}.
+ *
+ * @since 4.6.0
+ * @property {Number} fakeKeystroke
+ */
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
* Replaces a `<textarea>` or a DOM element (`<div>`) with a CKEditor
* instance. For textareas, the initial value in the editor will be the
* textarea value. For DOM elements, their `innerHTML` will be used
- * instead. We recommend using `<textarea>` and `<div>` elements only.
+ * instead. It is recommended to use `<textarea>` and `<div>` elements only.
*
* <textarea id="myfield" name="myfield"></textarea>
* ...
* // Replace all <textarea class="myClassName"> elements in the page.
* CKEDITOR.replaceAll( 'myClassName' );
*
- * // Selectively replace <textarea> elements, based on custom assertions.
+ * // Selectively replace <textarea> elements, based on a custom evaluation function.
* CKEDITOR.replaceAll( function( textarea, config ) {
- * // An assertion function that needs to be evaluated for the <textarea>
- * // to be replaced. It must explicitely return "false" to ignore a
+ * // A function that needs to be evaluated for the <textarea>
+ * // to be replaced. It must explicitly return "false" to ignore a
* // specific <textarea>.
* // You can also customize the editor instance by having the function
* // modify the "config" parameter.
* </html>
*
* @param {String} [className] The `<textarea>` class name.
- * @param {Function} [function] An assertion function that must return `true` for a `<textarea>`
+ * @param {Function} [evaluator] An evaluation function that must return `true` for a `<textarea>`
* to be replaced with the editor. If the function returns `false`, the `<textarea>` element
* will not be replaced.
*/
if ( !classRegex.test( textarea.className ) )
continue;
} else if ( typeof arguments[ 0 ] == 'function' ) {
- // An assertion function could be passed as the function parameter.
+ // An evaluation function could be passed as the function parameter.
// It must explicitly return "false" to ignore a specific <textarea>.
config = {};
if ( arguments[ 0 ]( textarea, config ) === false )
outer = container;
}
- // Set as border box width. (#5353)
+ // Set as border box width. (http://dev.ckeditor.com/ticket/5353)
outer.setSize( 'width', width, true );
- // WebKit needs to refresh the iframe size to avoid rendering issues. (1/2) (#8348)
+ // WebKit needs to refresh the iframe size to avoid rendering issues. (1/2) (http://dev.ckeditor.com/ticket/8348)
contentsFrame && ( contentsFrame.style.width = '1%' );
// Get the height delta between the outer table and the content area.
contents.setStyle( 'height', resultContentsHeight + 'px' );
- // WebKit needs to refresh the iframe size to avoid rendering issues. (2/2) (#8348)
+ // WebKit needs to refresh the iframe size to avoid rendering issues. (2/2) (http://dev.ckeditor.com/ticket/8348)
contentsFrame && ( contentsFrame.style.width = '100%' );
// Emit a resize event.
/**
* Gets the element that can be used to check the editor size. This method
- * is mainly used by the `resize` plugin, which adds a UI handle that can be used
- * to resize the editor.
+ * is mainly used by the [Editor Resize](http://ckeditor.com/addon/resize) plugin, which adds
+ * a UI handle that can be used to resize the editor.
*
* @param {Boolean} forContents Whether to return the "contents" part of the theme instead of the container.
* @returns {CKEDITOR.dom.element} The resizable element.
// replacement will be done later in the editor creation lifecycle.
element.setStyle( 'visibility', 'hidden' );
- // #8031 Remember if textarea was required and remove the attribute.
+ // http://dev.ckeditor.com/ticket/8031 Remember if textarea was required and remove the attribute.
editor._.required = element.hasAttribute( 'required' );
element.removeAttribute( 'required' );
}
topHtml: topHtml ? '<span id="' + editor.ui.spaceId( 'top' ) + '" class="cke_top cke_reset_all" role="presentation" style="height:auto">' + topHtml + '</span>' : '',
contentId: editor.ui.spaceId( 'contents' ),
bottomHtml: bottomHtml ? '<span id="' + editor.ui.spaceId( 'bottom' ) + '" class="cke_bottom cke_reset_all" role="presentation">' + bottomHtml + '</span>' : '',
- outerEl: CKEDITOR.env.ie ? 'span' : 'div' // #9571
+ outerEl: CKEDITOR.env.ie ? 'span' : 'div' // http://dev.ckeditor.com/ticket/9571
} ) );
if ( elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ) {
// Disable browser context menu for editor's chrome.
container.disableContextMenu();
- // Redirect the focus into editor for webkit. (#5713)
+ // Redirect the focus into editor for webkit. (http://dev.ckeditor.com/ticket/5713)
CKEDITOR.env.webkit && container.on( 'focus', function() {
editor.focus();
} );
/**
* The current editing mode. An editing mode basically provides
- * different ways of editing or viewing the contents.
+ * different ways of editing or viewing the editor content.
*
* alert( CKEDITOR.instances.editor1.mode ); // (e.g.) 'wysiwyg'
*
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
* @param {String} html The HTML defining the document content.
*/
write: function( html ) {
- // Don't leave any history log in IE. (#5657)
+ // Don't leave any history log in IE. (http://dev.ckeditor.com/ticket/5657)
this.$.open( 'text/html', 'replace' );
// Support for custom document.domain in IE.
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
return function( domEvent ) {
// In FF, when reloading the page with the editor focused, it may
// throw an error because the CKEDITOR global is not anymore
- // available. So, we check it here first. (#2923)
+ // available. So, we check it here first. (http://dev.ckeditor.com/ticket/2923)
if ( typeof CKEDITOR != 'undefined' )
domObject.fire( eventName, new CKEDITOR.dom.event( domEvent ) );
};
}
// Remove events from events object so fire() method will not call
- // listeners (#11400).
+ // listeners (http://dev.ckeditor.com/ticket/11400).
CKEDITOR.event.prototype.removeAllListeners.call( this );
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
appendText: function( text ) {
// On IE8 it is impossible to append node to script tag, so we use its text.
- // On the contrary, on Safari the text property is unpredictable in links. (#13232)
+ // On the contrary, on Safari the text property is unpredictable in links. (http://dev.ckeditor.com/ticket/13232)
if ( this.$.text != null && CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
this.$.text += text;
else
range.setEndAfter( parent );
// Extract it.
- var docFrag = range.extractContents( false, cloneId || false );
+ var docFrag = range.extractContents( false, cloneId || false ),
+ tmpElement,
+ current;
// Move the element outside the broken element.
range.insertNode( this.remove() );
- // Re-insert the extracted piece after the element.
- docFrag.insertAfterNode( this );
+ // In case of Internet Explorer, we must check if there is no background-color
+ // added to the element. In such case, we have to overwrite it to prevent "switching it off"
+ // by a browser (http://dev.ckeditor.com/ticket/14667).
+ if ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) {
+ tmpElement = new CKEDITOR.dom.element( 'div' );
+
+ while ( current = docFrag.getFirst() ) {
+ if ( current.$.style.backgroundColor ) {
+ // This is a necessary hack to make sure that IE will track backgroundColor CSS property, see
+ // http://dev.ckeditor.com/ticket/14667#comment:8 for more details.
+ current.$.style.backgroundColor = current.$.style.backgroundColor;
+ }
+
+ tmpElement.append( current );
+ }
+
+ // Re-insert the extracted piece after the element.
+ tmpElement.insertAfter( this );
+ tmpElement.remove( true );
+ } else {
+ // Re-insert the extracted piece after the element.
+ docFrag.insertAfterNode( this );
+ }
},
/**
*/
getHtml: function() {
var retval = this.$.innerHTML;
- // Strip <?xml:namespace> tags in IE. (#3341).
+ // Strip <?xml:namespace> tags in IE. (http://dev.ckeditor.com/ticket/3341).
return CKEDITOR.env.ie ? retval.replace( /<\?[^>]*>/g, '' ) : retval;
},
getOuterHtml: function() {
if ( this.$.outerHTML ) {
// IE includes the <?xml:namespace> tag in the outerHTML of
- // namespaced element. So, we must strip it here. (#3341)
+ // namespaced element. So, we must strip it here. (http://dev.ckeditor.com/ticket/3341)
return this.$.outerHTML.replace( /<\?[^>]*>/, '' );
}
return this.$[ name ];
case 'style':
- // IE does not return inline styles via getAttribute(). See #2947.
+ // IE does not return inline styles via getAttribute(). See http://dev.ckeditor.com/ticket/2947.
return this.$.style.cssText;
case 'contenteditable':
}
} )(),
+ /**
+ * Gets the values of all element attributes.
+ *
+ * @param {Array} exclude The names of attributes to be excluded from the returned object.
+ * @return {Object} An object containing all element attributes with their values.
+ */
+ getAttributes: function( exclude ) {
+ var attributes = {},
+ attrDefs = this.$.attributes,
+ i;
+
+ exclude = CKEDITOR.tools.isArray( exclude ) ? exclude : [];
+
+ for ( i = 0; i < attrDefs.length; i++ ) {
+ if ( CKEDITOR.tools.indexOf( exclude, attrDefs[ i ].name ) === -1 ) {
+ attributes[ attrDefs[ i ].name ] = attrDefs[ i ].value;
+ }
+ }
+
+ return attributes;
+ },
+
/**
* Gets the nodes list containing all children of this element.
*
function( propertyName ) {
var style = this.getWindow().$.getComputedStyle( this.$, null );
- // Firefox may return null if we call the above on a hidden iframe. (#9117)
+ // Firefox may return null if we call the above on a hidden iframe. (http://dev.ckeditor.com/ticket/9117)
return style ? style.getPropertyValue( propertyName ) : '';
} : function( propertyName ) {
return this.$.currentStyle[ CKEDITOR.tools.cssStyleToDomStyle( propertyName ) ];
elementWindow, elementWindowFrame;
// Webkit and Opera report non-zero offsetHeight despite that
- // element is inside an invisible iframe. (#4542)
+ // element is inside an invisible iframe. (http://dev.ckeditor.com/ticket/4542)
if ( isVisible && CKEDITOR.env.webkit ) {
elementWindow = this.getWindow();
// attribute, which will be marked as "specified", even if the
// outerHTML of the element is not displaying the class attribute.
// Note : I was not able to reproduce it outside the editor,
- // but I've faced it while working on the TC of #1391.
+ // but I've faced it while working on the TC of http://dev.ckeditor.com/ticket/1391.
if ( this.getAttribute( 'class' ) ) {
return true;
}
var attrs = this.$.attributes,
attrsNum = attrs.length;
- // The _moz_dirty attribute might get into the element after pasting (#5455)
+ // The _moz_dirty attribute might get into the element after pasting (http://dev.ckeditor.com/ticket/5455)
var execludeAttrs = { 'data-cke-expando': 1, _moz_dirty: 1 };
return attrsNum > 0 && ( attrsNum > 2 || !execludeAttrs[ attrs[ 0 ].nodeName ] || ( attrsNum == 2 && !execludeAttrs[ attrs[ 1 ].nodeName ] ) );
function mergeElements( element, sibling, isNext ) {
if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT ) {
// Jumping over bookmark nodes and empty inline elements, e.g. <b><i></i></b>,
- // queuing them to be moved later. (#5567)
+ // queuing them to be moved later. (http://dev.ckeditor.com/ticket/5567)
var pendingNodes = [];
while ( sibling.data( 'cke-bookmark' ) || sibling.isEmptyInlineRemoveable() ) {
}
return function( inlineOnly ) {
- // Merge empty links and anchors also. (#5567)
+ // Merge empty links and anchors also. (http://dev.ckeditor.com/ticket/5567)
if ( !( inlineOnly === false || CKEDITOR.dtd.$removeEmpty[ this.getName() ] || this.is( 'a' ) ) ) {
return;
}
};
} else if ( CKEDITOR.env.ie8Compat && CKEDITOR.env.secure ) {
return function( name, value ) {
- // IE8 throws error when setting src attribute to non-ssl value. (#7847)
+ // IE8 throws error when setting src attribute to non-ssl value. (http://dev.ckeditor.com/ticket/7847)
if ( name == 'src' && value.match( /^http:\/\// ) ) {
try {
standard.apply( this, arguments );
*/
removeAttributes: function( attributes ) {
if ( CKEDITOR.tools.isArray( attributes ) ) {
- for ( var i = 0; i < attributes.length; i++ )
+ for ( var i = 0; i < attributes.length; i++ ) {
this.removeAttribute( attributes[ i ] );
+ }
} else {
- for ( var attr in attributes )
+ attributes = attributes || this.getAttributes();
+
+ for ( var attr in attributes ) {
attributes.hasOwnProperty( attr ) && this.removeAttribute( attr );
+ }
}
},
body = doc.getBody(),
quirks = doc.$.compatMode == 'BackCompat';
- if ( document.documentElement.getBoundingClientRect ) {
+ if ( document.documentElement.getBoundingClientRect &&
+ ( CKEDITOR.env.ie ? CKEDITOR.env.version !== 8 : true ) ) {
var box = this.$.getBoundingClientRect(),
$doc = doc.$,
$docElem = $doc.documentElement;
clientLeft = $docElem.clientLeft || body.$.clientLeft || 0,
needAdjustScrollAndBorders = true;
- // #3804: getBoundingClientRect() works differently on IE and non-IE
+ // http://dev.ckeditor.com/ticket/3804: getBoundingClientRect() works differently on IE and non-IE
// browsers, regarding scroll positions.
//
// On IE, the top position of the <html> element is always 0, no matter
needAdjustScrollAndBorders = ( quirks && inBody ) || ( !quirks && inDocElem );
}
- // #12747.
+ // http://dev.ckeditor.com/ticket/12747.
if ( needAdjustScrollAndBorders ) {
var scrollRelativeLeft,
scrollRelativeTop;
- // See #12758 to know more about document.(documentElement|body).scroll(Left|Top) in Webkit.
+ // See http://dev.ckeditor.com/ticket/12758 to know more about document.(documentElement|body).scroll(Left|Top) in Webkit.
if ( CKEDITOR.env.webkit || ( CKEDITOR.env.ie && CKEDITOR.env.version >= 12 ) ) {
scrollRelativeLeft = body.$.scrollLeft || $docElem.scrollLeft;
scrollRelativeTop = body.$.scrollTop || $docElem.scrollTop;
parent.$.clientHeight && parent.$.clientHeight < parent.$.scrollHeight;
// Skip body element, which will report wrong clientHeight when containing
- // floated content. (#9523)
+ // floated content. (http://dev.ckeditor.com/ticket/9523)
if ( overflowed && !parent.is( 'body' ) )
this.scrollIntoParent( parent, alignToTop, 1 );
return parseInt( element.getComputedStyle( 'margin-' + side ) || 0, 10 ) || 0;
}
+ // [WebKit] Reset stored scrollTop value to not break scrollIntoView() method flow.
+ // Scrolling breaks when range.select() is used right after element.scrollIntoView(). (http://dev.ckeditor.com/ticket/14659)
+ if ( CKEDITOR.env.webkit ) {
+ var editor = this.getEditor( false );
+
+ if ( editor ) {
+ editor._.previousScrollTop = null;
+ }
+ }
+
var win = parent.getWindow();
var thisPos = screenPos( this, win ),
this.getParent( true ) && this.$.parentNode.replaceChild( newNode.$, this.$ );
newNode.$[ 'data-cke-expando' ] = this.$[ 'data-cke-expando' ];
this.$ = newNode.$;
- // Bust getName's cache. (#8663)
+ // Bust getName's cache. (http://dev.ckeditor.com/ticket/8663)
delete this.getName;
},
* CKEDITOR.replace( element );
* alert( element.getEditor().name ); // 'editor1'
*
+ * By default this method considers only original DOM elements upon which the editor
+ * was created. Setting `optimized` parameter to `false` will consider editor editable
+ * and its children.
+ *
+ * @param {Boolean} [optimized=true] If set to `false` it will scan every editor editable.
* @returns {CKEDITOR.editor} An editor instance or null if nothing has been found.
*/
- getEditor: function() {
+ getEditor: function( optimized ) {
var instances = CKEDITOR.instances,
- name, instance;
+ name, instance, editable;
+
+ optimized = optimized || optimized === undefined;
for ( name in instances ) {
instance = instances[ name ];
if ( instance.element.equals( this ) && instance.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO )
return instance;
+
+ if ( !optimized ) {
+ editable = instance.editable();
+
+ if ( editable && ( editable.equals( this ) || editable.contains( this ) ) ) {
+ return instance;
+ }
+ }
}
return null;
}
function getContextualizedSelector( element, selector ) {
- return '#' + element.$.id + ' ' + selector.split( /,\s*/ ).join( ', #' + element.$.id + ' ' );
+ var id = CKEDITOR.tools.escapeCss( element.$.id );
+ return '#' + id + ' ' + selector.split( /,\s*/ ).join( ', #' + id + ' ' );
}
var sides = {
function marginAndPaddingSize( type ) {
var adjustment = 0;
for ( var i = 0, len = sides[ type ].length; i < len; i++ )
- adjustment += parseInt( this.getComputedStyle( sides[ type ][ i ] ) || 0, 10 ) || 0;
+ adjustment += parseFloat( this.getComputedStyle( sides[ type ][ i ] ) || 0, 10 ) || 0;
return adjustment;
}
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
// Backward compact.
root = root || startNode.getDocument().getBody();
+ // Assign root value if startNode is null (#424)(https://dev.ckeditor.com/ticket/17028).
+ if ( !e ) {
+ e = root;
+ }
+
do {
if ( e.type == CKEDITOR.NODE_ELEMENT ) {
elements.push( e );
block = e;
if ( pathBlockLimitElements[ elementName ] ) {
- // End level DIV is considered as the block, if no block is available. (#525)
+ // End level DIV is considered as the block, if no block is available. (http://dev.ckeditor.com/ticket/525)
// But it must NOT be the root element (checked above).
if ( !block && elementName == 'div' && !checkHasBlock( e ) )
block = e;
* @returns {CKEDITOR.dom.element} The first matched dom element or `null`.
*/
contains: function( query, excludeRoot, fromTop ) {
- var evaluator;
+ var i = 0,
+ evaluator;
+
if ( typeof query == 'string' )
evaluator = function( node ) {
return node.getName() == query;
var elements = this.elements,
length = elements.length;
- excludeRoot && length--;
+
+ if ( excludeRoot ) {
+ if ( !fromTop ) {
+ length -= 1;
+ } else {
+ i += 1;
+ }
+ }
if ( fromTop ) {
elements = Array.prototype.slice.call( elements, 0 );
elements.reverse();
}
- for ( var i = 0; i < length; i++ ) {
+ for ( ; i < length; i++ ) {
if ( evaluator( elements[ i ] ) )
return elements[ i ];
}
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
this.forceBrBreak = 0;
- // (#3730).
+ // (http://dev.ckeditor.com/ticket/3730).
/**
* Whether to include `<br>` elements in the enlarged range. Should be
* set to `false` when using the iterator in the {@link CKEDITOR#ENTER_BR} mode.
*/
var beginWhitespaceRegex = /^[\r\n\t ]+$/,
- // Ignore bookmark nodes.(#3783)
+ // Ignore bookmark nodes.(http://dev.ckeditor.com/ticket/3783)
bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true ),
whitespacesGuard = CKEDITOR.dom.walker.whitespaces( true ),
skipGuard = function( node ) {
}
// The range must finish right before the boundary,
- // including possibly skipped empty spaces. (#1603)
+ // including possibly skipped empty spaces. (http://dev.ckeditor.com/ticket/1603)
if ( range ) {
range.setEndAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
// The found boundary must be set as the next one at this
- // point. (#1717)
+ // point. (http://dev.ckeditor.com/ticket/1717)
if ( nodeName != 'br' ) {
this._.nextNode = currentNode;
}
closeRange = 1;
includeNode = 0;
isLast = isLast || ( parentNode.equals( lastNode ) );
- // Make sure range includes bookmarks at the end of the block. (#7359)
+ // Make sure range includes bookmarks at the end of the block. (http://dev.ckeditor.com/ticket/7359)
range.setEndAt( parentNode, CKEDITOR.POSITION_BEFORE_END );
break;
}
// Here we are checking in guard function whether current element
// reach lastNode(default behaviour) and root node to prevent against
// getting out of editor instance root DOM object.
- // #12484
+ // http://dev.ckeditor.com/ticket/12484
function guardFunction( node ) {
return !( node.equals( lastNode ) || node.equals( rootNode ) );
}
// Indicate at least one of the range boundaries is inside a preformat block.
touchPre,
- // (#12178)
+ // (http://dev.ckeditor.com/ticket/12178)
// Remember if following situation takes place:
// * startAtInnerBoundary: <p>foo[</p>...
// * endAtInnerBoundary: ...<p>]bar</p>
// Note that we test only if path block exist, because we must properly shrink
// range containing table and/or table cells.
// Note: When range is collapsed there's no way it can be shrinked.
- // By checking if range is collapsed we also prevent #12308.
+ // By checking if range is collapsed we also prevent http://dev.ckeditor.com/ticket/12308.
startPath = range.startPath(),
endPath = range.endPath(),
startAtInnerBoundary = !range.collapsed && rangeAtInnerBlockBoundary( range, startPath.block ),
endAtInnerBoundary = !range.collapsed && rangeAtInnerBlockBoundary( range, endPath.block, 1 );
- // Shrink the range to exclude harmful "noises" (#4087, #4450, #5435).
+ // Shrink the range to exclude harmful "noises" (http://dev.ckeditor.com/ticket/4087, http://dev.ckeditor.com/ticket/4450, http://dev.ckeditor.com/ticket/5435).
range.shrink( CKEDITOR.SHRINK_ELEMENT, true );
if ( startAtInnerBoundary )
// We may have an empty text node at the end of block due to [3770].
// If that node is the lastNode, it would cause our logic to leak to the
- // next block.(#3887)
+ // next block.(http://dev.ckeditor.com/ticket/3887)
if ( this._.lastNode && this._.lastNode.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.trim( this._.lastNode.getText() ) && this._.lastNode.getParent().isBlockBoundary() ) {
var testRange = this.range.clone();
testRange.moveToPosition( this._.lastNode, CKEDITOR.POSITION_AFTER_END );
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
}
// IE8 rename HTML5 nodes by adding `:` at the begging of the tag name when the node is cloned,
- // so `<figure>` will be `<:figure>` after 'cloneNode'. We need to fix it (#13101).
+ // so `<figure>` will be `<:figure>` after 'cloneNode'. We need to fix it (http://dev.ckeditor.com/ticket/13101).
function renameNodes( node ) {
if ( node.type != CKEDITOR.NODE_ELEMENT && node.type != CKEDITOR.NODE_DOCUMENT_FRAGMENT )
return;
} else if ( trimmed.length < originalLength ) {
child.split( originalLength - trimmed.length );
- // IE BUG: child.remove() may raise JavaScript errors here. (#81)
+ // IE BUG: child.remove() may raise JavaScript errors here. (http://dev.ckeditor.com/ticket/81)
this.$.removeChild( this.$.firstChild );
}
}
child.split( trimmed.length );
// IE BUG: child.getNext().remove() may raise JavaScript errors here.
- // (#81)
+ // (http://dev.ckeditor.com/ticket/81)
this.$.lastChild.parentNode.removeChild( this.$.lastChild );
}
}
child = this.$.lastChild;
if ( child && child.type == 1 && child.nodeName.toLowerCase() == 'br' ) {
- // Use "eChildNode.parentNode" instead of "node" to avoid IE bug (#324).
+ // Use "eChildNode.parentNode" instead of "node" to avoid IE bug (http://dev.ckeditor.com/ticket/324).
child.parentNode.removeChild( child );
}
}
if ( this.type != CKEDITOR.NODE_ELEMENT )
element = this.getParent();
- // Prevent Edge crash (#13609, #13919).
+ // Prevent Edge crash (http://dev.ckeditor.com/ticket/13609, http://dev.ckeditor.com/ticket/13919).
if ( CKEDITOR.env.edge && element && element.is( 'textarea', 'input' ) ) {
checkOnlyAttributes = true;
}
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* Represents a list of {@link CKEDITOR.dom.node} objects.
- * It's a wrapper for native nodes list.
+ * It is a wrapper for a native nodes list.
*
* var nodeList = CKEDITOR.document.getBody().getChildren();
* alert( nodeList.count() ); // number [0;N]
CKEDITOR.dom.nodeList.prototype = {
/**
- * Get count of nodes in this list.
+ * Gets the count of nodes in this list.
*
* @returns {Number}
*/
},
/**
- * Get node from the list.
+ * Gets the node from the list.
*
* @returns {CKEDITOR.dom.node}
*/
var $node = this.$[ index ];
return $node ? new CKEDITOR.dom.node( $node ) : null;
+ },
+
+ /**
+ * Returns a node list as an array.
+ *
+ * @returns {CKEDITOR.dom.node[]}
+ */
+ toArray: function() {
+ return CKEDITOR.tools.array.map( this.$, function( nativeEl ) {
+ return new CKEDITOR.dom.node( nativeEl );
+ } );
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
// This allows us to not think about startNode == endNode case later on.
// We do that only when cloning, because in other cases we can safely split this text node
// and hence we can easily handle this case as many others.
- if ( isClone && endNode.type == CKEDITOR.NODE_TEXT && startNode.equals( endNode ) ) {
- startNode = range.document.createText( startNode.substring( startOffset, endOffset ) );
- docFrag.append( startNode );
+
+ // We need to handle situation when selection startNode is type of NODE_ELEMENT (#426).
+ if ( isClone &&
+ endNode.type == CKEDITOR.NODE_TEXT &&
+ ( startNode.equals( endNode ) || ( startNode.type === CKEDITOR.NODE_ELEMENT && startNode.getFirst().equals( endNode ) ) ) ) {
+
+ // Here we should always be inside one text node.
+ docFrag.append( range.document.createText( endNode.substring( startOffset, endOffset ) ) );
return;
}
// second part. The removal will be handled by the rest of the code.
if ( endNode.type == CKEDITOR.NODE_TEXT ) {
// If Extract or Delete we can split the text node,
- // but if Clone (2), then we cannot modify the DOM (#11586) so we mark the text node for cloning.
+ // but if Clone (2), then we cannot modify the DOM (http://dev.ckeditor.com/ticket/11586) so we mark the text node for cloning.
if ( !isClone ) {
endNode = endNode.split( endOffset );
} else {
// be handled by the rest of the code .
if ( startNode.type == CKEDITOR.NODE_TEXT ) {
// If Extract or Delete we can split the text node,
- // but if Clone (2), then we cannot modify the DOM (#11586) so we mark
+ // but if Clone (2), then we cannot modify the DOM (http://dev.ckeditor.com/ticket/11586) so we mark
// the text node for cloning.
if ( !isClone ) {
startNode.split( startOffset );
// If we don't do that, in next iterations nodes will be appended to wrong parent.
//
// We can just take first child because the algorithm guarantees
- // that this will be the only child on this level. (#13568)
+ // that this will be the only child on this level. (http://dev.ckeditor.com/ticket/13568)
levelParent = levelParent.getChild( 0 );
}
}
// When Extracting, move the removed node to the docFrag.
if ( isExtract ) {
- newParent.append( node );
+ newParent.append( node, toStart );
}
}
// Tolerant bogus br when checking at the end of block.
// Reject any text node unless it's being bookmark
// OR it's spaces.
- // Reject any element unless it's being invisible empty. (#3883)
+ // Reject any element unless it's being invisible empty. (http://dev.ckeditor.com/ticket/3883)
return !checkStart && isBogus( node ) ||
node.type == CKEDITOR.NODE_ELEMENT &&
node.is( CKEDITOR.dtd.$removeEmpty );
}
// Sometimes the endNode will come right before startNode for collapsed
- // ranges. Fix it. (#3780)
+ // ranges. Fix it. (http://dev.ckeditor.com/ticket/3780)
if ( startNode.getPosition( endNode ) & CKEDITOR.POSITION_FOLLOWING )
startNode = endNode;
/**
* Expands the range so that partial units are completely contained.
*
- * @param unit {Number} The unit type to expand with.
+ * @param {Number} unit The unit type to expand with. Use one of following values: {@link CKEDITOR#ENLARGE_BLOCK_CONTENTS},
+ * {@link CKEDITOR#ENLARGE_ELEMENT}, {@link CKEDITOR#ENLARGE_INLINE}, {@link CKEDITOR#ENLARGE_LIST_ITEM_CONTENTS}.
* @param {Boolean} [excludeBrs=false] Whether include line-breaks when expanding.
*/
enlarge: function( unit, excludeBrs ) {
isWhiteSpace = /[\s\ufeff]$/.test( siblingText );
} else {
- // #12221 (Chrome) plus #11111 (Safari).
+ // http://dev.ckeditor.com/ticket/12221 (Chrome) plus http://dev.ckeditor.com/ticket/11111 (Safari).
var offsetWidth0 = CKEDITOR.env.webkit ? 1 : 0;
// If this is a visible element.
// We need to check for the bookmark attribute because IE insists on
- // rendering the display:none nodes we use for bookmarks. (#3363)
- // Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
+ // rendering the display:none nodes we use for bookmarks. (http://dev.ckeditor.com/ticket/3363)
+ // Line-breaks (br) are rendered with zero width, which we don't want to include. (http://dev.ckeditor.com/ticket/7041)
if ( ( sibling.$.offsetWidth > offsetWidth0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) ) {
// We'll accept it only if we need
// whitespace, and this is an inline
// Process the end boundary. This is basically the same
// code used for the start boundary, with small changes to
- // make it work in the oposite side (to the right). This
+ // make it work in the opposite side (to the right). This
// makes it difficult to reuse the code here. So, fixes to
// the above code are likely to be replicated here.
}
}
} else {
- // Get the node right after the boudary to be checked
+ // Get the node right after the boundary to be checked
// first.
sibling = container.getChild( offset );
} else if ( sibling.type == CKEDITOR.NODE_ELEMENT ) {
// If this is a visible element.
// We need to check for the bookmark attribute because IE insists on
- // rendering the display:none nodes we use for bookmarks. (#3363)
- // Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
+ // rendering the display:none nodes we use for bookmarks. (http://dev.ckeditor.com/ticket/3363)
+ // Line-breaks (br) are rendered with zero width, which we don't want to include. (http://dev.ckeditor.com/ticket/7041)
if ( ( sibling.$.offsetWidth > 0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) ) {
// We'll accept it only if we need
// whitespace, and this is an inline
boundaryGuard = function( node ) {
// We should not check contents of non-editable elements. It may happen
// that inline widget has display:table child which should not block range#enlarge.
- // When encoutered non-editable element...
+ // When encountered non-editable element...
if ( node.type == CKEDITOR.NODE_ELEMENT && node.getAttribute( 'contenteditable' ) == 'false' ) {
if ( inNonEditable ) {
// ... in which we already were, reset it (because we're leaving it) and return.
blockBoundary = node;
return retval;
},
- // Record the encounted 'tailBr' for later use.
+ // Record the encountered 'tailBr' for later use.
tailBrGuard = function( node ) {
var retval = boundaryGuard( node );
if ( !retval && node.is && node.is( 'br' ) )
this.setStartAt( blockBoundary, !blockBoundary.is( 'br' ) && ( !enlargeable && this.checkStartOfBlock() ||
enlargeable && blockBoundary.contains( enlargeable ) ) ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_AFTER_END );
- // Avoid enlarging the range further when end boundary spans right after the BR. (#7490)
+ // Avoid enlarging the range further when end boundary spans right after the BR. (http://dev.ckeditor.com/ticket/7490)
if ( unit == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ) {
var theRange = this.clone();
walker = new CKEDITOR.dom.walker( theRange );
},
/**
- * Descrease the range to make sure that boundaries
- * always anchor beside text nodes or innermost element.
+ * Decreases the range to make sure that boundaries
+ * always anchor beside text nodes or the innermost element.
*
* @param {Number} mode The shrinking mode ({@link CKEDITOR#SHRINK_ELEMENT} or {@link CKEDITOR#SHRINK_TEXT}).
*
- * * {@link CKEDITOR#SHRINK_ELEMENT} - Shrink the range boundaries to the edge of the innermost element.
- * * {@link CKEDITOR#SHRINK_TEXT} - Shrink the range boudaries to anchor by the side of enclosed text
- * node, range remains if there's no text nodes on boundaries at all.
- *
- * @param {Boolean} selectContents Whether result range anchors at the inner OR outer boundary of the node.
+ * * {@link CKEDITOR#SHRINK_ELEMENT} – Shrinks the range boundaries to the edge of the innermost element.
+ * * {@link CKEDITOR#SHRINK_TEXT} – Shrinks the range boundaries to anchor by the side of enclosed text
+ * node. The range remains if there are no text nodes available on boundaries.
+ *
+ * @param {Boolean} [selectContents=false] Whether the resulting range anchors at the inner OR outer boundary of the node.
+ * @param {Boolean/Object} [options=true] If this parameter is of a Boolean type, it is treated as
+ * `options.shrinkOnBlockBoundary`. This parameter was added in 4.7.0.
+ * @param {Boolean} [options.shrinkOnBlockBoundary=true] Whether the block boundary should be included in
+ * the shrunk range.
+ * @param {Boolean} [options.skipBogus=false] Whether bogus `<br>` elements should be ignored while
+ * `mode` is set to {@link CKEDITOR#SHRINK_TEXT}. This option was added in 4.7.0.
*/
- shrink: function( mode, selectContents, shrinkOnBlockBoundary ) {
+ shrink: function( mode, selectContents, options ) {
+ var shrinkOnBlockBoundary = typeof options === 'boolean' ? options :
+ ( options && typeof options.shrinkOnBlockBoundary === 'boolean' ? options.shrinkOnBlockBoundary : true ),
+ skipBogus = options && options.skipBogus;
+
// Unable to shrink a collapsed range.
if ( !this.collapsed ) {
mode = mode || CKEDITOR.SHRINK_TEXT;
walkerRange.setStartAfter( startContainer );
else {
// Enlarge the range properly to avoid walker making
- // DOM changes caused by triming the text nodes later.
+ // DOM changes caused by trimming the text nodes later.
walkerRange.setStartBefore( startContainer );
moveStart = 0;
}
}
var walker = new CKEDITOR.dom.walker( walkerRange ),
- isBookmark = CKEDITOR.dom.walker.bookmark();
+ isBookmark = CKEDITOR.dom.walker.bookmark(),
+ isBogus = CKEDITOR.dom.walker.bogus();
walker.evaluator = function( node ) {
return node.type == ( mode == CKEDITOR.SHRINK_ELEMENT ? CKEDITOR.NODE_ELEMENT : CKEDITOR.NODE_TEXT );
var currentElement;
walker.guard = function( node, movingOut ) {
+ // Skipping bogus before other cases (http://dev.ckeditor.com/ticket/17010).
+ if ( skipBogus && isBogus( node ) ) {
+ return true;
+ }
+
if ( isBookmark( node ) )
return true;
/**
* Inserts a node at the start of the range. The range will be expanded
- * the contain the node.
+ * to contain the node.
*
* @param {CKEDITOR.dom.node} node
*/
},
/**
- * Moves the range to given position according to specified node.
+ * Moves the range to a given position according to the specified node.
*
* // HTML: <p>Foo <b>bar</b></p>
* range.moveToPosition( elB, CKEDITOR.POSITION_BEFORE_START );
*
* See also {@link #setStartAt} and {@link #setEndAt}.
*
- * @param {CKEDITOR.dom.node} node The node according to which position will be set.
+ * @param {CKEDITOR.dom.node} node The node according to which the position will be set.
* @param {Number} position One of {@link CKEDITOR#POSITION_BEFORE_START},
* {@link CKEDITOR#POSITION_AFTER_START}, {@link CKEDITOR#POSITION_BEFORE_END},
* {@link CKEDITOR#POSITION_AFTER_END}.
// So even if the initial range was placed before the bogus <br>, after creating the bookmark it
// is placed before the bookmark.
// Fortunately, getBogus() is able to skip the bookmark so it finds the bogus <br> in this case.
- // We remove incorrectly placed one and add a brand new one. (#13001)
+ // We remove incorrectly placed one and add a brand new one. (http://dev.ckeditor.com/ticket/13001)
var bogus = fixedBlock.getBogus();
if ( bogus ) {
bogus.remove();
this.trim( 0, 1 );
}
- // Antecipate the trim() call here, so the walker will not make
+ // Anticipate the trim() call here, so the walker will not make
// changes to the DOM, which would not get reflected into this
// range otherwise.
this.trim();
this.trim( 1, 0 );
}
- // Antecipate the trim() call here, so the walker will not make
+ // Anticipate the trim() call here, so the walker will not make
// changes to the DOM, which would not get reflected into this
// range otherwise.
this.trim();
getEnclosedNode: function() {
var walkerRange = this.clone();
- // Optimize and analyze the range to avoid DOM destructive nature of walker. (#5780)
+ // Optimize and analyze the range to avoid DOM destructive nature of walker. (http://dev.ckeditor.com/ticket/5780)
walkerRange.optimize();
if ( walkerRange.startContainer.type != CKEDITOR.NODE_ELEMENT || walkerRange.endContainer.type != CKEDITOR.NODE_ELEMENT )
return null;
*/
getPreviousEditableNode: getNextEditableNode( 1 ),
+ /**
+ * Returns any table element, like `td`, `tbody`, `table` etc. from a given range. The element
+ * is returned only if the range is contained within one table (might be a nested
+ * table, but it cannot be two different tables on the same DOM level).
+ *
+ * @private
+ * @since 4.7
+ * @param {Object} [tableElements] Mapping of element names that should be considered.
+ * @returns {CKEDITOR.dom.element/null}
+ */
+ _getTableElement: function( tableElements ) {
+ tableElements = tableElements || {
+ td: 1,
+ th: 1,
+ tr: 1,
+ tbody: 1,
+ thead: 1,
+ tfoot: 1,
+ table: 1
+ };
+
+ var start = this.startContainer,
+ end = this.endContainer,
+ startTable = start.getAscendant( 'table', true ),
+ endTable = end.getAscendant( 'table', true );
+
+ // Super weird edge case in Safari: if there is a table with only one cell inside and that cell
+ // is selected, then the end boundary of the table is moved into editor's editable.
+ // That case is also present when selecting the last cell inside nested table.
+ if ( CKEDITOR.env.safari && startTable && end.equals( this.root ) ) {
+ return start.getAscendant( tableElements, true );
+ }
+
+ if ( this.getEnclosedNode() ) {
+ return this.getEnclosedNode().getAscendant( tableElements, true );
+ }
+
+ // Ensure that selection starts and ends in the same table or one of the table is inside the other.
+ if ( startTable && endTable && ( startTable.equals( endTable ) || startTable.contains( endTable ) ||
+ endTable.contains( startTable ) ) ) {
+
+ return start.getAscendant( tableElements, true );
+ }
+
+ return null;
+ },
+
/**
* Scrolls the start of current range into view.
*/
}
// %REMOVE_END%
this.endContainer = endContainer;
+ },
+
+ /**
+ * Looks for elements matching the `query` selector within a range.
+ *
+ * @since 4.5.11
+ * @private
+ * @param {String} query
+ * @param {Boolean} [includeNonEditables=false] Whether elements with `contenteditable` set to `false` should
+ * be included.
+ * @returns {CKEDITOR.dom.element[]}
+ */
+ _find: function( query, includeNonEditables ) {
+ var ancestor = this.getCommonAncestor(),
+ boundaries = this.getBoundaryNodes(),
+ // Contrary to CKEDITOR.dom.element#find we're returning array, that's because NodeList is immutable, and we need
+ // to do some filtering in returned list.
+ ret = [],
+ curItem,
+ i,
+ initialMatches,
+ isStartGood,
+ isEndGood;
+
+ if ( ancestor && ancestor.find ) {
+ initialMatches = ancestor.find( query );
+
+ for ( i = 0; i < initialMatches.count(); i++ ) {
+ curItem = initialMatches.getItem( i );
+
+ // Using isReadOnly() method to filterout non editables. It checks isContentEditable including all browser quirks.
+ if ( !includeNonEditables && curItem.isReadOnly() ) {
+ continue;
+ }
+
+ // It's not enough to get elements from common ancestor, because it might contain too many matches.
+ // We need to ensure that returned items are between boundary points.
+ isStartGood = ( curItem.getPosition( boundaries.startNode ) & CKEDITOR.POSITION_FOLLOWING ) || boundaries.startNode.equals( curItem );
+ isEndGood = ( curItem.getPosition( boundaries.endNode ) & ( CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IS_CONTAINED ) ) || boundaries.endNode.equals( curItem );
+
+ if ( isStartGood && isEndGood ) {
+ ret.push( curItem );
+ }
+ }
+ }
+
+ return ret;
}
};
+ /**
+ * Merges every subsequent range in given set, returning a smaller array of ranges.
+ *
+ * Note that each range in the returned value will be enlarged with `CKEDITOR.ENLARGE_ELEMENT` value.
+ *
+ * @since 4.7.0
+ * @static
+ * @param {CKEDITOR.dom.range[]} ranges
+ * @returns {CKEDITOR.dom.range[]} Set of merged ranges.
+ * @member CKEDITOR.dom.range
+ */
+ CKEDITOR.dom.range.mergeRanges = function( ranges ) {
+ return CKEDITOR.tools.array.reduce( ranges, function( ret, rng ) {
+ // Last range ATM.
+ var lastRange = ret[ ret.length - 1 ],
+ isContinuation = false;
+
+ // Make a clone, we don't want to modify input.
+ rng = rng.clone();
+ rng.enlarge( CKEDITOR.ENLARGE_ELEMENT );
+
+ if ( lastRange ) {
+ // The trick is to create a range spanning the gap between the two ranges. Then iterate over
+ // each node found in this gap. If it contains anything other than whitespace, then it means it
+ // is not a continuation.
+ var gapRange = new CKEDITOR.dom.range( rng.root ),
+ walker = new CKEDITOR.dom.walker( gapRange ),
+ isWhitespace = CKEDITOR.dom.walker.whitespaces(),
+ nodeInBetween;
+
+ gapRange.setStart( lastRange.endContainer, lastRange.endOffset );
+ gapRange.setEnd( rng.startContainer, rng.startOffset );
+
+ nodeInBetween = walker.next();
+
+ while ( isWhitespace( nodeInBetween ) || rng.endContainer.equals( nodeInBetween ) ) {
+ // We don't care about whitespaces, and range container. Also we skip the endContainer,
+ // as it will also be provided by the iterator (as it visits it's opening tag).
+ nodeInBetween = walker.next();
+ }
+
+ // Simply, if anything has been found there's a content in between the two.
+ isContinuation = !nodeInBetween;
+ }
+
+ if ( isContinuation ) {
+ // If last range ends, where the current range starts, then let's merge it.
+ lastRange.setEnd( rng.endContainer, rng.endOffset );
+ } else {
+ // In other case just push cur range into the stack.
+ ret.push( rng );
+ }
+
+ return ret;
+ }, [] );
+ };
} )();
*/
CKEDITOR.POSITION_AFTER_END = 4;
+/**
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=1]
+ */
CKEDITOR.ENLARGE_ELEMENT = 1;
+
+/**
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=2]
+ */
CKEDITOR.ENLARGE_BLOCK_CONTENTS = 2;
+
+/**
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=3]
+ */
CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS = 3;
+
+/**
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=4]
+ */
CKEDITOR.ENLARGE_INLINE = 4;
// Check boundary types.
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
};
// Update the specified range which has been mangled by previous insertion of
- // range bookmark nodes.(#3256)
+ // range bookmark nodes.(http://dev.ckeditor.com/ticket/3256)
function updateDirtyRange( bookmark, dirtyRange, checkEnd ) {
var serializable = bookmark.serializable,
container = dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ],
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
retval.insertAfter( this );
} else {
// IE BUG: IE8+ does not update the childNodes array in DOM after splitText(),
- // we need to make some DOM changes to make it update. (#3436)
+ // we need to make some DOM changes to make it update. (http://dev.ckeditor.com/ticket/3436)
var workaround = doc.createText( '' );
workaround.insertAfter( retval );
workaround.remove();
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
CKEDITOR.dom.element.prototype.isBlockBoundary = function( customNodeNames ) {
// Whether element is in normal page flow. Floated or positioned elements are out of page flow.
- // Don't consider floated or positioned formatting as block boundary, fall back to dtd check in that case. (#6297)
+ // Don't consider floated or positioned formatting as block boundary, fall back to dtd check in that case. (http://dev.ckeditor.com/ticket/6297)
var inPageFlow = this.getComputedStyle( 'float' ) == 'none' && !( this.getComputedStyle( 'position' ) in outOfFlowPositions );
if ( inPageFlow && blockBoundaryDisplayMatch[ this.getComputedStyle( 'display' ) ] )
return function( node ) {
var isWhitespace;
if ( node && node.type == CKEDITOR.NODE_TEXT ) {
- // Whitespace, as well as the Filling Char Sequence text node used in Webkit. (#9384, #13816)
+ // Whitespace, as well as the Filling Char Sequence text node used in Webkit. (http://dev.ckeditor.com/ticket/9384, http://dev.ckeditor.com/ticket/13816)
isWhitespace = !CKEDITOR.tools.trim( node.getText() ) ||
CKEDITOR.env.webkit && node.getText() == CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE;
}
*/
CKEDITOR.dom.walker.invisible = function( isReject ) {
var whitespace = CKEDITOR.dom.walker.whitespaces(),
- // #12221 (Chrome) plus #11111 (Safari).
+ // http://dev.ckeditor.com/ticket/12221 (Chrome) plus http://dev.ckeditor.com/ticket/11111 (Safari).
offsetWidth0 = CKEDITOR.env.webkit ? 1 : 0;
return function( node ) {
// Nodes that take no spaces in wysiwyg:
// 1. White-spaces but not including NBSP.
// 2. Empty inline elements, e.g. <b></b>.
- // 3. <br> elements (bogus, surrounded by text) (#12423).
+ // 3. <br> elements (bogus, surrounded by text) (http://dev.ckeditor.com/ticket/12423).
invisible = node.$.offsetWidth <= offsetWidth0;
}
* @returns {CKEDITOR.dom.node/Boolean} Bogus node or `false`.
*/
CKEDITOR.dom.element.prototype.getBogus = function() {
- // Bogus are not always at the end, e.g. <p><a>text<br /></a></p> (#7070).
+ // Bogus are not always at the end, e.g. <p><a>text<br /></a></p> (http://dev.ckeditor.com/ticket/7070).
var tail = this;
do {
tail = tail.getPreviousSourceNode();
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
( function() {
+ var isNotWhitespace, isNotBookmark, isEmpty, isBogus, emptyParagraphRegexp,
+ insert, fixTableAfterContentsDeletion, fixListAfterContentsDelete, getHtmlFromRangeHelpers, extractHtmlFromRangeHelpers;
+
/**
* Editable class which provides all editing related activities by
* the `contenteditable` element, dynamically get attached to editor instance.
}
}
- // [IE] Use instead "setActive" method to focus the editable if it belongs to
- // the host page document, to avoid bringing an unexpected scroll.
+ // [Edge] Starting from EdgeHTML 14.14393, it does not support `setActive`. We need to use focus which
+ // causes unexpected scroll. Store scrollTop value so it can be restored after focusing editor.
+ // Scroll only happens if the editor is focused for the first time. (http://dev.ckeditor.com/ticket/14825)
+ if ( CKEDITOR.env.edge && CKEDITOR.env.version > 14 && !this.hasFocus && this.getDocument().equals( CKEDITOR.document ) ) {
+ this.editor._.previousScrollTop = this.$.scrollTop;
+ }
+
+ // [IE] Use instead "setActive" method to focus the editable if it belongs to the host page document,
+ // to avoid bringing an unexpected scroll.
try {
- this.$[ CKEDITOR.env.ie && this.getDocument().equals( CKEDITOR.document ) ? 'setActive' : 'focus' ]();
+ if ( CKEDITOR.env.ie && !( CKEDITOR.env.edge && CKEDITOR.env.version > 14 ) && this.getDocument().equals( CKEDITOR.document ) ) {
+ this.$.setActive();
+ } else {
+ // We have no control over exactly what happens when the native `focus` method is called,
+ // so save the scroll position and restore it later.
+ if ( CKEDITOR.env.chrome ) {
+ var scrollPos = this.$.scrollTop;
+ this.$.focus();
+ this.$.scrollTop = scrollPos;
+ } else {
+ this.$.focus();
+ }
+ }
} catch ( e ) {
// IE throws unspecified error when focusing editable after closing dialog opened on nested editable.
if ( !CKEDITOR.env.ie )
throw e;
}
- // Remedy if Safari doens't applies focus properly. (#279)
+ // Remedy if Safari doens't applies focus properly. (http://dev.ckeditor.com/ticket/279)
if ( CKEDITOR.env.safari && !this.isInline() ) {
active = CKEDITOR.document.getActive();
if ( !active.equals( this.getWindow().getFrame() ) )
// The "focusin/focusout" events bubbled, e.g. If there are elements with layout
// they fire this event when clicking in to edit them but it must be ignored
- // to allow edit their contents. (#4682)
+ // to allow edit their contents. (http://dev.ckeditor.com/ticket/4682)
fn = isNotBubbling( fn, this );
args[ 0 ] = name;
args[ 1 ] = fn;
* @param {String} text
*/
insertText: function( text ) {
- // Focus the editor before calling transformPlainTextToHtml. (#12726)
+ // Focus the editor before calling transformPlainTextToHtml. (http://dev.ckeditor.com/ticket/12726)
this.editor.focus();
this.insertHtml( this.transformPlainTextToHtml( text ), 'text' );
},
insertElement: function( element, range ) {
var editor = this.editor;
- // Prepare for the insertion. For example - focus editor (#11848).
+ // Prepare for the insertion. For example - focus editor (http://dev.ckeditor.com/ticket/11848).
editor.focus();
editor.fire( 'saveSnapshot' );
range = selection.getRanges()[ 0 ];
}
- // Insert element into first range only and ignore the rest (#11183).
+ // Insert element into first range only and ignore the rest (http://dev.ckeditor.com/ticket/11183).
if ( this.insertElementIntoRange( element, range ) ) {
range.moveToPosition( element, CKEDITOR.POSITION_AFTER_END );
// If we're inserting a block element, the new cursor position must be
- // optimized. (#3100,#5436,#8950)
+ // optimized. (http://dev.ckeditor.com/ticket/3100,http://dev.ckeditor.com/ticket/5436,http://dev.ckeditor.com/ticket/8950)
if ( isBlock ) {
// Find next, meaningful element.
var next = element.getNext( function( node ) {
// Remove the original contents, merge split nodes.
range.deleteContents( 1 );
- // If range is placed in inermediate element (not td or th), we need to do three things:
- // * fill emptied <td/th>s with if browser needs them,
- // * remove empty text nodes so IE8 won't crash (http://dev.ckeditor.com/ticket/11183#comment:8),
- // * fix structure and move range into the <td/th> element.
- if ( range.startContainer.type == CKEDITOR.NODE_ELEMENT && range.startContainer.is( { tr: 1, table: 1, tbody: 1, thead: 1, tfoot: 1 } ) )
- fixTableAfterContentsDeletion( range );
+ if ( range.startContainer.type == CKEDITOR.NODE_ELEMENT ) {
+ // If range is placed in intermediate element (not td or th), we need to do three things:
+ // * fill emptied <td/th>s with if browser needs them,
+ // * remove empty text nodes so IE8 won't crash
+ // (http://dev.ckeditor.com/ticket/11183#comment:8),
+ // * fix structure and move range into the <td/th> element.
+ if ( range.startContainer.is( { tr: 1, table: 1, tbody: 1, thead: 1, tfoot: 1 } ) ) {
+ fixTableAfterContentsDeletion( range );
+ } else if ( range.startContainer.is( CKEDITOR.dtd.$list ) ) {
+ // Similarly there's a need for lists.
+ fixListAfterContentsDelete( range );
+ }
+ }
// If we're inserting a block at dtd-violated position, split
// the parent blocks until we reach blockLimit.
range.splitElement( current );
// If we're in an empty block which indicate a new paragraph,
- // simply replace it with the inserting block.(#3664)
+ // simply replace it with the inserting block.(http://dev.ckeditor.com/ticket/3664)
else if ( range.checkStartOfBlock() && range.checkEndOfBlock() ) {
range.setStartBefore( current );
range.collapse( true );
range.checkEndOfBlock() &&
path.block &&
!range.root.equals( path.block ) &&
- // Do not remove a block with bookmarks. (#13465)
+ // Do not remove a block with bookmarks. (http://dev.ckeditor.com/ticket/13465)
!hasBookmarks( path.block ) ) {
range.moveToPosition( path.block, CKEDITOR.POSITION_BEFORE_START );
path.block.remove();
// IE considers control-type element as separate
// focus host when selected, avoid destroying the
- // selection in such case. (#5812) (#8949)
+ // selection in such case. (http://dev.ckeditor.com/ticket/5812) (http://dev.ckeditor.com/ticket/8949)
if ( ieSel && ieSel.type == 'Control' )
return;
this.hasFocus = true;
}, null, null, -1 );
+ if ( CKEDITOR.env.webkit ) {
+ // [WebKit] Save scrollTop value so it can be used when restoring locked selection. (http://dev.ckeditor.com/ticket/14659)
+ this.on( 'scroll', function() {
+ editor._.previousScrollTop = editor.editable().$.scrollTop;
+ }, null, null, -1 );
+ }
+
+ // [Edge] This is the other part of the workaround for Edge which restores saved
+ // scrollTop value and removes listener which is not needed anymore. (http://dev.ckeditor.com/ticket/14825)
+ if ( CKEDITOR.env.edge && CKEDITOR.env.version > 14 ) {
+
+ var fixScrollOnFocus = function() {
+ var editable = editor.editable();
+
+ if ( editor._.previousScrollTop != null && editable.getDocument().equals( CKEDITOR.document ) ) {
+ editable.$.scrollTop = editor._.previousScrollTop;
+ editor._.previousScrollTop = null;
+ this.removeListener( 'scroll', fixScrollOnFocus );
+ }
+ };
+
+ this.on( 'scroll', fixScrollOnFocus );
+ }
+
// Register to focus manager.
editor.focusManager.add( this );
// Create the content stylesheet for this document.
var styles = CKEDITOR.getCss();
if ( styles ) {
- var head = doc.getHead();
- if ( !head.getCustomData( 'stylesheet' ) ) {
+ var head = doc.getHead(),
+ stylesElement = head.getCustomData( 'stylesheet' );
+
+ if ( !stylesElement ) {
var sheet = doc.appendStyleText( styles );
sheet = new CKEDITOR.dom.element( sheet.ownerNode || sheet.owningElement );
head.setCustomData( 'stylesheet', sheet );
sheet.data( 'cke-temp', 1 );
+ } else if ( styles != stylesElement.getText() ) {
+ CKEDITOR.env.ie && CKEDITOR.env.version < 9 ? stylesElement.$.styleSheet.cssText = styles : stylesElement.setText( styles );
}
}
// Pass this configuration to styles system.
this.setCustomData( 'cke_includeReadonly', !editor.config.disableReadonlyStyling );
- // Prevent the browser opening read-only links. (#6032 & #10912)
+ // Prevent the browser opening read-only links. (http://dev.ckeditor.com/ticket/6032 & http://dev.ckeditor.com/ticket/10912)
this.attachListener( this, 'click', function( evt ) {
evt = evt.data;
var backspaceOrDelete = { 8: 1, 46: 1 };
// Override keystrokes which should have deletion behavior
- // on fully selected element . (#4047) (#7645)
+ // on fully selected element . (http://dev.ckeditor.com/ticket/4047) (http://dev.ckeditor.com/ticket/7645)
this.attachListener( editor, 'key', function( evt ) {
if ( editor.readOnly )
return true;
var keyCode = evt.data.domEvent.getKey(),
isHandled;
+ // Prevent of reading path of empty range (http://dev.ckeditor.com/ticket/13096, #457).
+ var sel = editor.getSelection();
+ if ( sel.getRanges().length === 0 ) {
+ return;
+ }
+
// Backspace OR Delete.
if ( keyCode in backspaceOrDelete ) {
- var sel = editor.getSelection(),
- selected,
+ var selected,
range = sel.getRanges()[ 0 ],
path = range.startPath(),
block,
next,
rtl = keyCode == 8;
+
if (
- // [IE<11] Remove selected image/anchor/etc here to avoid going back in history. (#10055)
+ // [IE<11] Remove selected image/anchor/etc here to avoid going back in history. (http://dev.ckeditor.com/ticket/10055)
( CKEDITOR.env.ie && CKEDITOR.env.version < 11 && ( selected = sel.getSelectedElement() ) ) ||
- // Remove the entire list/table on fully selected content. (#7645)
+ // Remove the entire list/table on fully selected content. (http://dev.ckeditor.com/ticket/7645)
( selected = getSelectedTableList( sel ) ) ) {
// Make undo snapshot.
editor.fire( 'saveSnapshot' );
// Delete any element that 'hasLayout' (e.g. hr,table) in IE8 will
- // break up the selection, safely manage it here. (#4795)
+ // break up the selection, safely manage it here. (http://dev.ckeditor.com/ticket/4795)
range.moveToPosition( selected, CKEDITOR.POSITION_BEFORE_START );
// Remove the control manually.
selected.remove();
isHandled = 1;
} else if ( range.collapsed ) {
- // Handle the following special cases: (#6217)
+ // Handle the following special cases: (http://dev.ckeditor.com/ticket/6217)
// 1. Del/Backspace key before/after table;
// 2. Backspace Key after start of table.
if ( ( block = path.block ) &&
editor.fire( 'doubleclick', data );
} );
- // Prevent automatic submission in IE #6336
+ // Prevent automatic submission in IE http://dev.ckeditor.com/ticket/6336
CKEDITOR.env.ie && this.attachListener( this, 'click', blockInputClick );
- // Gecko/Webkit need some help when selecting control type elements. (#3448)
- // We apply same behavior for IE Edge. (#13386)
+ // Gecko/Webkit need some help when selecting control type elements. (http://dev.ckeditor.com/ticket/3448)
+ // We apply same behavior for IE Edge. (http://dev.ckeditor.com/ticket/13386)
if ( !CKEDITOR.env.ie || CKEDITOR.env.edge ) {
this.attachListener( this, 'mousedown', function( ev ) {
var control = ev.data.getTarget();
- // #11727. Note: htmlDP assures that input/textarea/select have contenteditable=false
+ // http://dev.ckeditor.com/ticket/11727. Note: htmlDP assures that input/textarea/select have contenteditable=false
// attributes. However, they also have data-cke-editable attribute, so isReadOnly() returns false,
// and therefore those elements are correctly selected by this code.
if ( control.is( 'img', 'hr', 'input', 'textarea', 'select' ) && !control.isReadOnly() ) {
editor.getSelection().selectElement( control );
- // Prevent focus from stealing from the editable. (#9515)
+ // Prevent focus from stealing from the editable. (http://dev.ckeditor.com/ticket/9515)
if ( control.is( 'input', 'textarea', 'select' ) )
ev.data.preventDefault();
}
} );
}
- // For some reason, after click event is done, IE Edge loses focus on the selected element. (#13386)
+ // For some reason, after click event is done, IE Edge loses focus on the selected element. (http://dev.ckeditor.com/ticket/13386)
if ( CKEDITOR.env.edge ) {
this.attachListener( this, 'mouseup', function( ev ) {
var selectedElement = ev.data.getTarget();
}
// Prevent right click from selecting an empty block even
- // when selection is anchored inside it. (#5845)
+ // when selection is anchored inside it. (http://dev.ckeditor.com/ticket/5845)
if ( CKEDITOR.env.gecko ) {
this.attachListener( this, 'mouseup', function( ev ) {
if ( ev.data.$.button == 2 ) {
}
// Prevent Webkit/Blink from going rogue when joining
- // blocks on BACKSPACE/DEL (#11861,#9998).
+ // blocks on BACKSPACE/DEL (http://dev.ckeditor.com/ticket/11861,http://dev.ckeditor.com/ticket/9998).
if ( CKEDITOR.env.webkit ) {
this.attachListener( editor, 'key', function( evt ) {
if ( editor.readOnly ) {
if ( !( key in backspaceOrDelete ) )
return;
+ // Prevent of reading path of empty range (http://dev.ckeditor.com/ticket/13096, #457).
+ var sel = editor.getSelection();
+ if ( sel.getRanges().length === 0 ) {
+ return;
+ }
+
var backspace = key == 8,
- range = editor.getSelection().getRanges()[ 0 ],
+ range = sel.getRanges()[ 0 ],
startPath = range.startPath();
if ( range.collapsed ) {
return;
}
- // Scroll to the new position of the caret (#11960).
+ // Scroll to the new position of the caret (http://dev.ckeditor.com/ticket/11960).
editor.getSelection().scrollIntoView();
editor.fire( 'saveSnapshot' );
*
* @method editable
* @member CKEDITOR.editor
- * @param {CKEDITOR.dom.element/CKEDITOR.editable} elementOrEditable The
+ * @param {CKEDITOR.dom.element/CKEDITOR.editable} [elementOrEditable] The
* DOM element to become the editable or a {@link CKEDITOR.editable} object.
+ * @returns {CKEDITOR.dom.element/null} The editor's editable element, or `null` if not available.
*/
CKEDITOR.editor.prototype.editable = function( element ) {
var editable = this._.editable;
CKEDITOR.on( 'instanceLoaded', function( evt ) {
var editor = evt.editor;
- // and flag that the element was locked by our code so it'll be editable by the editor functions (#6046).
+ // and flag that the element was locked by our code so it'll be editable by the editor functions (http://dev.ckeditor.com/ticket/6046).
editor.on( 'insertElement', function( evt ) {
var element = evt.data;
if ( element.type == CKEDITOR.NODE_ELEMENT && ( element.is( 'input' ) || element.is( 'textarea' ) ) ) {
if ( editor.readOnly )
return;
- // Auto fixing on some document structure weakness to enhance usabilities. (#3190 and #3189)
+ // Auto fixing on some document structure weakness to enhance usabilities. (http://dev.ckeditor.com/ticket/3190 and http://dev.ckeditor.com/ticket/3189)
var sel = editor.getSelection();
- // Do it only when selection is not locked. (#8222)
+ // Do it only when selection is not locked. (http://dev.ckeditor.com/ticket/8222)
if ( sel && !sel.isLocked ) {
var isDirty = editor.checkDirty();
} );
} );
- // #9222: Show text cursor in Gecko.
+ // http://dev.ckeditor.com/ticket/9222: Show text cursor in Gecko.
// Show default cursor over control elements on all non-IEs.
CKEDITOR.addCss( '.cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}' );
//
//
- var isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true ),
- isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true ),
- isEmpty = CKEDITOR.dom.walker.empty(),
- isBogus = CKEDITOR.dom.walker.bogus(),
- // Matching an empty paragraph at the end of document.
- emptyParagraphRegexp = /(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;
+ isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true ),
+ isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true ),
+ isEmpty = CKEDITOR.dom.walker.empty(),
+ isBogus = CKEDITOR.dom.walker.bogus(),
+ // Matching an empty paragraph at the end of document.
+ emptyParagraphRegexp = /(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;
- // Auto-fixing block-less content by wrapping paragraph (#3190), prevent
- // non-exitable-block by padding extra br.(#3189)
+ // Auto-fixing block-less content by wrapping paragraph (http://dev.ckeditor.com/ticket/3190), prevent
+ // non-exitable-block by padding extra br.(http://dev.ckeditor.com/ticket/3189)
// Returns truly value when dom was changed, falsy otherwise.
function fixDom( evt ) {
var editor = evt.editor,
}
// When we're in block enter mode, a new paragraph will be established
- // to encapsulate inline contents inside editable. (#3657)
+ // to encapsulate inline contents inside editable. (http://dev.ckeditor.com/ticket/3657)
// Don't autoparagraph if browser (namely - IE) incorrectly anchored selection
// inside non-editable content. This happens e.g. if non-editable block is the only
// content of editable.
selectionUpdateNeeded = 1;
- // Cancel this selection change in favor of the next (correct). (#6811)
+ // Cancel this selection change in favor of the next (correct). (http://dev.ckeditor.com/ticket/6811)
evt.cancel();
}
}
if ( selection.isFake )
return 0;
- // Ensure bogus br could help to move cursor (out of styles) to the end of block. (#7041)
+ // Ensure bogus br could help to move cursor (out of styles) to the end of block. (http://dev.ckeditor.com/ticket/7041)
var pathBlock = path.block || path.blockLimit,
lastNode = pathBlock && pathBlock.getLast( isNotEmpty );
// Check some specialities of the current path block:
- // 1. It is really displayed as block; (#7221)
- // 2. It doesn't end with one inner block; (#7467)
+ // 1. It is really displayed as block; (http://dev.ckeditor.com/ticket/7221)
+ // 2. It doesn't end with one inner block; (http://dev.ckeditor.com/ticket/7467)
// 3. It doesn't have bogus br yet.
if (
pathBlock && pathBlock.isBlockBoundary() &&
// Whether in given context (pathBlock, pathBlockLimit and editor settings)
// editor should automatically wrap inline contents with blocks.
function shouldAutoParagraph( editor, pathBlock, pathBlockLimit ) {
- // Check whether pathBlock equals pathBlockLimit to support nested editable (#12162).
+ // Check whether pathBlock equals pathBlockLimit to support nested editable (http://dev.ckeditor.com/ticket/12162).
return editor.config.autoParagraph !== false &&
editor.activeEnterMode != CKEDITOR.ENTER_BR &&
(
//
// Functions related to insertXXX methods
//
- var insert = ( function() {
+ insert = ( function() {
'use strict';
var DTD = CKEDITOR.dtd;
// Select range and stop execution.
// If data has been totally emptied after the filtering,
- // any insertion is pointless (#10339).
+ // any insertion is pointless (http://dev.ckeditor.com/ticket/10339).
if ( data && processDataForInsertion( that, data ) ) {
// DATA INSERTION
insertDataIntoRange( that );
nodeName = node.getName();
// Extract only the list items, when insertion happens
- // inside of a list, reads as rearrange list items. (#7957)
+ // inside of a list, reads as rearrange list items. (http://dev.ckeditor.com/ticket/7957)
if ( insideOfList && nodeName in CKEDITOR.dtd.$list ) {
nodesData = nodesData.concat( extractNodesData( node, that ) );
continue;
}
// Don't use String.replace because it fails in IE7 if special replacement
- // characters ($$, $&, etc.) are in data (#10367).
+ // characters ($$, $&, etc.) are in data (http://dev.ckeditor.com/ticket/10367).
return wrapper.getOuterHtml().split( '{cke-peak}' ).join( data );
}
// 1. Fixes a range which is a result of deleteContents() and is placed in an intermediate element (see dtd.$intermediate),
// inside a table. A goal is to find a closest <td> or <th> element and when this fails, recreate the structure of the table.
// 2. Fixes empty cells by appending bogus <br>s or deleting empty text nodes in IE<=8 case.
- var fixTableAfterContentsDeletion = ( function() {
+ fixTableAfterContentsDeletion = ( function() {
// Creates an element walker which can only "go deeper". It won't
// move out from any element. Therefore it can be used to find <td>x</td> in cases like:
// <table><tbody><tr><td>x</td></tr></tbody>^<tfoot>...
};
} )();
+ fixListAfterContentsDelete = ( function() {
+ // Creates an element walker which operates only within lists.
+ function getFixListSelectionWalker( testRange ) {
+ var walker = new CKEDITOR.dom.walker( testRange );
+ walker.guard = function( node, isMovingOut ) {
+ if ( isMovingOut )
+ return false;
+ if ( node.type == CKEDITOR.NODE_ELEMENT )
+ return node.is( CKEDITOR.dtd.$list ) || node.is( CKEDITOR.dtd.$listItem );
+ };
+ walker.evaluator = function( node ) {
+ return node.type == CKEDITOR.NODE_ELEMENT && node.is( CKEDITOR.dtd.$listItem );
+ };
+
+ return walker;
+ }
+
+ return function( range ) {
+ var container = range.startContainer,
+ appendToStart = false,
+ testRange,
+ deeperSibling;
+
+ // Look left.
+ testRange = range.clone();
+ testRange.setStart( container, 0 );
+ deeperSibling = getFixListSelectionWalker( testRange ).lastBackward();
+
+ // If left is empty, look right.
+ if ( !deeperSibling ) {
+ testRange = range.clone();
+ testRange.setEndAt( container, CKEDITOR.POSITION_BEFORE_END );
+ deeperSibling = getFixListSelectionWalker( testRange ).lastForward();
+ appendToStart = true;
+ }
+
+ // If there's no deeper nested element in both direction - container is empty - we'll use it then.
+ if ( !deeperSibling )
+ deeperSibling = container;
+
+ // We found a list what means that it's empty - remove it completely.
+ if ( deeperSibling.is( CKEDITOR.dtd.$list ) ) {
+ range.setStartAt( deeperSibling, CKEDITOR.POSITION_BEFORE_START );
+ range.collapse( true );
+ deeperSibling.remove();
+ return;
+ }
+
+ // To avoid setting selection after bogus, remove it from the target list item.
+ // We can safely do that, because we'll insert element into that cell.
+ var bogus = deeperSibling.getBogus();
+ if ( bogus )
+ bogus.remove();
+
+ range.moveToPosition( deeperSibling, appendToStart ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_BEFORE_END );
+ range.select();
+ };
+ } )();
+
function mergeBlocksCollapsedSelection( editor, range, backspace, startPath ) {
var startBlock = startPath.block;
if ( ( bogus = startBlock.getBogus() ) )
bogus.remove();
- // Changing end container to element from text node (#12503).
+ // Changing end container to element from text node (http://dev.ckeditor.com/ticket/12503).
range.enlarge( CKEDITOR.ENLARGE_INLINE );
// Delete range contents. Do NOT merge. Merging is weird.
range = editor.getSelection().getRanges()[ 0 ];
range.collapse( 1 );
- // Optimizing range containers from text nodes to elements (#12503).
+ // Optimizing range containers from text nodes to elements (http://dev.ckeditor.com/ticket/12503).
range.optimize();
if ( range.startContainer.getHtml() === '' ) {
range.startContainer.appendBogus();
//
// Helpers for editable.getHtmlFromRange.
//
- var getHtmlFromRangeHelpers = {
+ getHtmlFromRangeHelpers = {
eol: {
detect: function( that, editable ) {
var range = that.range,
//
// Helpers for editable.extractHtmlFromRange.
//
- var extractHtmlFromRangeHelpers = ( function() {
+ extractHtmlFromRangeHelpers = ( function() {
function optimizeBookmarkNode( node, toStart ) {
var parent = node.getParent();
while ( ( next = endBookmark.getNext() ) ) {
next.insertAfter( startBookmark );
- // Update startBookmark after insertion to avoid the reversal of nodes (#13449).
+ // Update startBookmark after insertion to avoid the reversal of nodes (http://dev.ckeditor.com/ticket/13449).
startBookmark = next;
}
walker.guard = function( node, leaving ) {
// Guard may be executed on some node boundaries multiple times,
- // what results in creating more than one range for each selected cell. (#12964)
+ // what results in creating more than one range for each selected cell. (http://dev.ckeditor.com/ticket/12964)
if ( node.type == CKEDITOR.NODE_ELEMENT ) {
var key = 'visited_' + ( leaving ? 'out' : 'in' );
if ( node.getCustomData( key ) ) {
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
// Call the CKEDITOR.event constructor to initialize this instance.
CKEDITOR.event.call( this );
- // Make a clone of the config object, to avoid having it touched by our code. (#9636)
+ // Make a clone of the config object, to avoid having it touched by our code. (http://dev.ckeditor.com/ticket/9636)
instanceConfig = instanceConfig && CKEDITOR.tools.clone( instanceConfig );
// if editor is created off one page element.
function updateCommandsContext( editor, path, forceRefresh ) {
// Commands cannot be refreshed without a path. In edge cases
// it may happen that there's no selection when this function is executed.
- // For example when active filter is changed in #10877.
+ // For example when active filter is changed in http://dev.ckeditor.com/ticket/10877.
if ( !path )
return;
} else {
// Load the custom configuration file.
// To resolve customConfig race conflicts, use scriptLoader#queue
- // instead of scriptLoader#load (#6504).
+ // instead of scriptLoader#load (http://dev.ckeditor.com/ticket/6504).
CKEDITOR.scriptLoader.queue( customConfig, function() {
// If the CKEDITOR.editorConfig function has been properly
// defined in the custom configuration file, cache it.
return editor.blockless ? CKEDITOR.ENTER_BR : enterMode;
}
- // Create DocumentFragment from specified ranges. For now it handles only tables in Firefox
- // and returns DocumentFragment from the 1. range for other cases. (#13884)
+ // Create DocumentFragment from specified ranges. For now it handles only tables
+ // and returns DocumentFragment from the 1. range for other cases. (http://dev.ckeditor.com/ticket/13884)
function createDocumentFragmentFromRanges( ranges, editable ) {
var docFragment = new CKEDITOR.dom.documentFragment(),
tableClone,
currentRow,
currentRowClone;
+ // We must handle two cases here:
+ // 1. <tr>[<td>Cell</td>]</tr> (IE9+, Edge, Chrome, Firefox)
+ // 2. <td>[Cell]</td> (IE8-, Safari)
+ function isSelectedCell( range ) {
+ var start = range.startContainer,
+ end = range.endContainer;
+
+ if ( start.is && ( start.is( 'tr' ) ||
+ ( start.is( 'td' ) && start.equals( end ) && range.endOffset === start.getChildCount() ) ) ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ function cloneCell( range ) {
+ var start = range.startContainer;
+
+ if ( start.is( 'tr' ) ) {
+ return range.cloneContents();
+ }
+
+ return start.clone( true );
+ }
+
for ( var i = 0; i < ranges.length; i++ ) {
var range = ranges[ i ],
- container = range.startContainer;
+ container = range.startContainer.getAscendant( 'tr', true );
- if ( container.getName && container.getName() == 'tr' ) {
+ if ( isSelectedCell( range ) ) {
if ( !tableClone ) {
tableClone = container.getAscendant( 'table' ).clone();
- tableClone.append( container.getAscendant( 'tbody' ).clone() );
+ tableClone.append( container.getAscendant( { thead: 1, tbody: 1, tfoot: 1 } ).clone() );
docFragment.append( tableClone );
- tableClone = tableClone.findOne( 'tbody' );
+ tableClone = tableClone.findOne( 'thead, tbody, tfoot' );
}
if ( !( currentRow && currentRow.equals( container ) ) ) {
tableClone.append( currentRowClone );
}
- currentRowClone.append( range.cloneContents() );
+ currentRowClone.append( cloneCell( range ) );
} else {
// If there was something else copied with table,
// append it to DocumentFragment.
// This guarantees that commands added before first editor#mode
// aren't immediately updated, but waits for editor#mode and that
// commands added later are immediately refreshed, even when added
- // before instanceReady. #10103, #10249
+ // before instanceReady. http://dev.ckeditor.com/ticket/10103, http://dev.ckeditor.com/ticket/10249
if ( this.mode )
updateCommand( this, cmd );
} );
}
- // Remove 'submit' events registered on form element before destroying.(#3988)
+ // Remove 'submit' events registered on form element before destroying.(http://dev.ckeditor.com/ticket/3988)
editor.on( 'destroy', function() {
form.removeListener( 'submit', onSubmit );
} );
function onSubmit( evt ) {
editor.updateElement();
- // #8031 If textarea had required attribute and editor is empty fire 'required' event and if
+ // http://dev.ckeditor.com/ticket/8031 If textarea had required attribute and editor is empty fire 'required' event and if
// it was cancelled, prevent submitting the form.
if ( editor._.required && !element.getValue() && editor.fire( 'required' ) === false ) {
// When user press save button event (evt) is undefined (see save plugin).
*
* editorInstance.execCommand( 'bold' );
*
- * @param {String} commandName The indentifier name of the command.
- * @param {Object} [data] The data to be passed to the command.
- * @returns {Boolean} `true` if the command was executed
- * successfully, otherwise `false`.
+ * @param {String} commandName The identifier name of the command.
+ * @param {Object} [data] The data to be passed to the command. It defaults to
+ * an empty object starting from 4.7.0.
+ * @returns {Boolean} `true` if the command was executed successfully, `false` otherwise.
* @see CKEDITOR.editor#addCommand
*/
execCommand: function( commandName, data ) {
var eventData = {
name: commandName,
- commandData: data,
+ commandData: data || {},
command: command
};
}
else {
// If we don't have a proper element, set data to an empty string,
- // as this method is expected to return a string. (#13385)
+ // as this method is expected to return a string. (http://dev.ckeditor.com/ticket/13385)
data = '';
}
}
this.readOnly = isReadOnly;
// Block or release BACKSPACE key according to current read-only
- // state to prevent browser's history navigation (#9761).
+ // state to prevent browser's history navigation (http://dev.ckeditor.com/ticket/9761).
this.keystrokeHandler.blockedKeystrokes[ 8 ] = +isReadOnly;
this.editable().setReadOnly( isReadOnly );
*/
extractSelectedHtml: function( toString, removeEmptyBlock ) {
var editable = this.editable(),
- ranges = this.getSelection().getRanges();
+ ranges = this.getSelection().getRanges(),
+ docFragment = new CKEDITOR.dom.documentFragment(),
+ i;
if ( !editable || ranges.length === 0 ) {
return null;
}
- var range = ranges[ 0 ],
- docFragment = editable.extractHtmlFromRange( range, removeEmptyBlock );
+ for ( i = 0; i < ranges.length; i++ ) {
+ docFragment.append( editable.extractHtmlFromRange( ranges[ i ], removeEmptyBlock ) );
+ }
if ( !removeEmptyBlock ) {
- this.getSelection().selectRanges( [ range ] );
+ this.getSelection().selectRanges( [ ranges[ 0 ] ] );
}
return toString ? docFragment.getHtml() : docFragment;
}
},
+ /**
+ * Returns the keystroke that is assigned to a specified {@link CKEDITOR.command}. If no keystroke is assigned,
+ * it returns `null`.
+ *
+ * Since version 4.7.0 this function also accepts a `command` parameter as a string.
+ *
+ * @since 4.6.0
+ * @param {CKEDITOR.command/String} command The {@link CKEDITOR.command} instance or a string with the command name.
+ * @returns {Number/null} The keystroke assigned to the provided command or `null` if there is no keystroke.
+ */
+ getCommandKeystroke: function( command ) {
+ var commandInstance = ( typeof command === 'string' ? this.getCommand( command ) : command );
+
+ if ( commandInstance ) {
+ var commandName = CKEDITOR.tools.object.findKey( this.commands, commandInstance ),
+ keystrokes = this.keystrokeHandler.keystrokes,
+ key;
+
+ // Some commands have a fake keystroke - for example CUT/COPY/PASTE commands are handled natively.
+ if ( commandInstance.fakeKeystroke ) {
+ return commandInstance.fakeKeystroke;
+ }
+
+ for ( key in keystrokes ) {
+ if ( keystrokes.hasOwnProperty( key ) && keystrokes[ key ] == commandName ) {
+ return key;
+ }
+ }
+ }
+ return null;
+ },
+
/**
* Shorthand for {@link CKEDITOR.filter#addFeature}.
*
* @member CKEDITOR.config
*/
- /**
+/**
* Customizes the {@link CKEDITOR.editor#title human-readable title} of this editor. This title is displayed in
* tooltips and impacts various [accessibility aspects](#!/guide/dev_a11y-section-announcing-the-editor-on-the-page),
* e.g. it is commonly used by screen readers for distinguishing editor instances and for navigation.
* @param {CKEDITOR.editor} editor This editor instance.
*/
+/**
+ * Event fired when the {@link #method-destroy} method is called,
+ * but before destroying the editor.
+ *
+ * @event beforeDestroy
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
/**
* Internal event to get the current data.
*
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
var domain = document.domain,
hostname = window.location.hostname;
- return domain != hostname && domain != ( '[' + hostname + ']' ); // IPv6 IP support (#5434)
+ return domain != hostname && domain != ( '[' + hostname + ']' ); // IPv6 IP support (http://dev.ckeditor.com/ticket/5434)
},
/**
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
},
// Object: element name => array of transformations groups.
transformations: {},
- cachedTests: {}
+ cachedTests: {},
+ cachedChecks: {}
};
// Register filter instance.
if ( el.attributes[ 'data-cke-filter' ] == 'off' )
return false;
- // (#10260) Don't touch elements like spans with data-cke-* attribute since they're
+ // (http://dev.ckeditor.com/ticket/10260) Don't touch elements like spans with data-cke-* attribute since they're
// responsible e.g. for placing markers, bookmarks, odds and stuff.
// We love 'em and we don't wanna lose anything during the filtering.
// '|' is to avoid tricky joints like data-="foo" + cke-="bar". Yes, they're possible.
if ( !element.parent )
continue;
- // Handle custom elements as inline elements (#12683).
+ // Handle custom elements as inline elements (http://dev.ckeditor.com/ticket/12683).
parentDtd = DTD[ element.parent.name ] || DTD.span;
switch ( check.check ) {
};
} )(),
+ /**
+ * Returns a clone of this filter instance.
+ *
+ * @since 4.7.3
+ * @returns {CKEDITOR.filter}
+ */
+ clone: function() {
+ var ret = new CKEDITOR.filter(),
+ clone = CKEDITOR.tools.clone;
+
+ // Cloning allowed content related things.
+ ret.allowedContent = clone( this.allowedContent );
+ ret._.allowedRules = clone( this._.allowedRules );
+
+ // Disallowed content rules.
+ ret.disallowedContent = clone( this.disallowedContent );
+ ret._.disallowedRules = clone( this._.disallowedRules );
+
+ ret._.transformations = clone( this._.transformations );
+
+ ret.disabled = this.disabled;
+ ret.editor = this.editor;
+
+ return ret;
+ },
+
/**
* Destroys the filter instance and removes it from the global {@link CKEDITOR.filter#instances} object.
*
styles = styleDef.styles,
attrs = styleDef.attributes || {};
- if ( styles ) {
+ if ( styles && !CKEDITOR.tools.isEmpty( styles ) ) {
styles = copy( styles );
attrs.style = CKEDITOR.tools.writeCssText( styles, true );
} else {
styles = {};
}
- var el = {
+ return {
name: styleDef.element,
attributes: attrs,
classes: attrs[ 'class' ] ? attrs[ 'class' ].split( /\s+/ ) : [],
styles: styles,
children: []
};
-
- return el;
}
// Mock hash based on string.
//
// TRANSFORMATIONS --------------------------------------------------------
//
+ var transformationsTools;
// Apply given transformations group to the element.
function applyTransformationsGroup( filter, element, group ) {
* @class CKEDITOR.filter.transformationsTools
* @singleton
*/
- var transformationsTools = CKEDITOR.filter.transformationsTools = {
+ transformationsTools = CKEDITOR.filter.transformationsTools = {
/**
* Converts `width` and `height` attributes to styles.
*
* Converts length in the `styleName` style to a valid length attribute (like `width` or `height`).
*
* @param {CKEDITOR.htmlParser.element} element
- * @param {String} styleName Name of the style that will be converted.
- * @param {String} [attrName=styleName] Name of the attribute into which the style will be converted.
+ * @param {String} styleName The name of the style that will be converted.
+ * @param {String} [attrName=styleName] The name of the attribute into which the style will be converted.
*/
lengthToAttribute: function( element, styleName, attrName ) {
attrName = attrName || styleName;
},
/**
- * Converts the `align` attribute to the `float` style if not set. Attribute
+ * Converts the `align` attribute to the `float` style if not set. The attribute
* is always removed.
*
* @param {CKEDITOR.htmlParser.element} element
/**
* Converts the `float` style to the `align` attribute if not set.
- * Style is always removed.
+ * The style is always removed.
*
* @param {CKEDITOR.htmlParser.element} element
*/
delete element.styles[ 'float' ]; // Uh... GCC doesn't like the 'float' prop name.
},
+ /**
+ * Converts the shorthand form of the `border` style to seperate styles.
+ *
+ * @param {CKEDITOR.htmlParser.element} element
+ */
+ splitBorderShorthand: function( element ) {
+ if ( !element.styles.border ) {
+ return;
+ }
+
+ var widths = element.styles.border.match( /([\.\d]+\w+)/g ) || [ '0px' ];
+ switch ( widths.length ) {
+ case 1:
+ element.styles[ 'border-width' ] = widths[0];
+ break;
+ case 2:
+ mapStyles( [ 0, 1, 0, 1 ] );
+ break;
+ case 3:
+ mapStyles( [ 0, 1, 2, 1 ] );
+ break;
+ case 4:
+ mapStyles( [ 0, 1, 2, 3 ] );
+ break;
+ }
+
+ element.styles[ 'border-style' ] = element.styles[ 'border-style' ] ||
+ ( element.styles.border.match( /(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|initial|inherit)/ ) || [] )[ 0 ];
+ if ( !element.styles[ 'border-style' ] )
+ delete element.styles[ 'border-style' ];
+
+ delete element.styles.border;
+
+ function mapStyles( map ) {
+ element.styles['border-top-width'] = widths[ map[0] ];
+ element.styles['border-right-width'] = widths[ map[1] ];
+ element.styles['border-bottom-width'] = widths[ map[2] ];
+ element.styles['border-left-width'] = widths[ map[3] ];
+ }
+ },
+
+ listTypeToStyle: function( element ) {
+ if ( element.attributes.type ) {
+ switch ( element.attributes.type ) {
+ case 'a':
+ element.styles[ 'list-style-type' ] = 'lower-alpha';
+ break;
+ case 'A':
+ element.styles[ 'list-style-type' ] = 'upper-alpha';
+ break;
+ case 'i':
+ element.styles[ 'list-style-type' ] = 'lower-roman';
+ break;
+ case 'I':
+ element.styles[ 'list-style-type' ] = 'upper-roman';
+ break;
+ case '1':
+ element.styles[ 'list-style-type' ] = 'decimal';
+ break;
+ default:
+ element.styles[ 'list-style-type' ] = element.attributes.type;
+ }
+ }
+ },
+
+ /**
+ * Converts the shorthand form of the `margin` style to seperate styles.
+ *
+ * @param {CKEDITOR.htmlParser.element} element
+ */
+ splitMarginShorthand: function( element ) {
+ if ( !element.styles.margin ) {
+ return;
+ }
+
+ var widths = element.styles.margin.match( /(\-?[\.\d]+\w+)/g ) || [ '0px' ];
+ switch ( widths.length ) {
+ case 1:
+ mapStyles( [ 0, 0, 0, 0 ] );
+ break;
+ case 2:
+ mapStyles( [ 0, 1, 0, 1 ] );
+ break;
+ case 3:
+ mapStyles( [ 0, 1, 2, 1 ] );
+ break;
+ case 4:
+ mapStyles( [ 0, 1, 2, 3 ] );
+ break;
+ }
+
+ delete element.styles.margin;
+
+ function mapStyles( map ) {
+ element.styles['margin-top'] = widths[ map[0] ];
+ element.styles['margin-right'] = widths[ map[1] ];
+ element.styles['margin-bottom'] = widths[ map[2] ];
+ element.styles['margin-left'] = widths[ map[3] ];
+ }
+ },
+
/**
* Checks whether an element matches a given {@link CKEDITOR.style}.
* The element can be a "superset" of a style, e.g. it may have
matchesStyle: elementMatchesStyle,
/**
- * Transforms element to given form.
+ * Transforms an element to a given form.
*
* Form may be a:
*
* * {@link CKEDITOR.style},
- * * string – the new name of an element.
+ * * string – the new name of the element.
*
* @param {CKEDITOR.htmlParser.element} el
* @param {CKEDITOR.style/String} form
* * {@link CKEDITOR.filter.allowedContentRules} – defined rules will be added
* to the {@link CKEDITOR.editor#filter}.
* * `true` – will disable the filter (data will not be filtered,
- * all features will be activated).
+ * all features will be activated). Reading [security best practices](#!/guide/dev_best_practices) before setting `true` is recommended.
* * default – the filter will be configured by loaded features
* (toolbar items, commands, etc.).
*
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
* @member CKEDITOR.focusManager
*/
blur: function( noDelay ) {
- if ( this._.locked )
+ if ( this._.locked ) {
return;
+ }
function doBlur() {
if ( this.hasFocus ) {
}
}
- if ( this._.timer )
+ if ( this._.timer ) {
clearTimeout( this._.timer );
+ }
var delay = CKEDITOR.focusManager._.blurDelay;
- if ( noDelay || !delay )
+ if ( noDelay || !delay ) {
doBlur.call( this );
- else {
+ } else {
this._.timer = CKEDITOR.tools.setTimeout( function() {
delete this._.timer;
doBlur.call( this );
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
// it up and apply the filter.
data = protectSource( data, editor );
- // Protect content of textareas. (#9995)
+ // Protect content of textareas. (http://dev.ckeditor.com/ticket/9995)
// Do this before protecting attributes to avoid breaking:
// <textarea><img src="..." /></textarea>
data = protectElements( data, protectTextareaRegex );
data = protectAttributes( data );
// Protect elements than can't be set inside a DIV. E.g. IE removes
- // style tags from innerHTML. (#3710)
+ // style tags from innerHTML. (http://dev.ckeditor.com/ticket/3710)
data = protectElements( data, protectElementsRegex );
// Certain elements has problem to go through DOM operation, protect
- // them by prefixing 'cke' namespace. (#3591)
+ // them by prefixing 'cke' namespace. (http://dev.ckeditor.com/ticket/3591)
data = protectElementsNames( data );
// All none-IE browsers ignore self-closed custom elements,
- // protecting them into open-close. (#3591)
+ // protecting them into open-close. (http://dev.ckeditor.com/ticket/3591)
data = protectSelfClosingElements( data );
// Compensate one leading line break after <pre> open as browsers
- // eat it up. (#5789)
+ // eat it up. (http://dev.ckeditor.com/ticket/5789)
data = protectPreFormatted( data );
// There are attributes which may execute JavaScript code inside fixBin.
- // Encode them greedily. They will be unprotected right after getting HTML from fixBin. (#10)
+ // Encode them greedily. They will be unprotected right after getting HTML from fixBin. (http://dev.ckeditor.com/ticket/10)
data = protectInsecureAttributes( data );
var fixBin = evtData.context || editor.editable().getName(),
// Call the browser to help us fixing a possibly invalid HTML
// structure.
var el = editor.document.createElement( fixBin );
- // Add fake character to workaround IE comments bug. (#3801)
+ // Add fake character to workaround IE comments bug. (http://dev.ckeditor.com/ticket/3801)
el.setHtml( 'a' + data );
data = el.getHtml().substr( 1 );
data = CKEDITOR.htmlParser.fragment.fromHtml( data, evtData.context, fixBodyTag );
// The empty root element needs to be fixed by adding 'p' or 'div' into it.
- // This avoids the need to create that element on the first focus (#12630).
+ // This avoids the need to create that element on the first focus (http://dev.ckeditor.com/ticket/12630).
if ( fixBodyTag ) {
fixEmptyRoot( data, fixBodyTag );
}
editor.on( 'toDataFormat', function( evt ) {
var data = evt.data.dataValue;
- // #10854 - we need to strip leading blockless <br> which FF adds
+ // http://dev.ckeditor.com/ticket/10854 - we need to strip leading blockless <br> which FF adds
// automatically when editable contains only non-editable content.
// We do that for every browser (so it's a constant behavior) and
// not in BR mode, in which chance of valid leading blockless <br> is higher.
data.writeChildrenHtml( writer );
data = writer.getHtml( true );
- // Restore those non-HTML protected source. (#4475,#4880)
+ // Restore those non-HTML protected source. (http://dev.ckeditor.com/ticket/4475,http://dev.ckeditor.com/ticket/4880)
data = unprotectRealComments( data );
data = unprotectSource( data, editor );
return false;
// 1. For IE version >=8, empty blocks are displayed correctly themself in wysiwiyg;
- // 2. For the rest, at least table cell and list item need no filler space. (#6248)
+ // 2. For the rest, at least table cell and list item need no filler space. (http://dev.ckeditor.com/ticket/6248)
if ( !isOutput && !CKEDITOR.env.needsBrFiller &&
( document.documentMode > 7 ||
block.name in CKEDITOR.dtd.tr ||
}
// Regex to scan for at the end of blocks, which are actually placeholders.
- // Safari transforms the to \xa0. (#4172)
+ // Safari transforms the to \xa0. (http://dev.ckeditor.com/ticket/4172)
var tailNbspRegex = /(?: |\xa0)$/;
var protectedSourceMarker = '{cke_protected}';
// active in the editing area (IE|WebKit).
[ ( /^on/ ), 'data-cke-pa-on' ],
+ // Prevent iframe's srcdoc attribute from being evaluated in the editable.
+ [ ( /^srcdoc/ ), 'data-cke-pa-srcdoc' ],
+
// Don't let some old expando enter editor. Concerns only IE8,
// but for consistency remove on all browsers.
[ ( /^data-cke-expando$/ ), '' ]
- ]
+ ],
+
+ elements: {
+ // Prevent iframe's src attribute with javascript code or data protocol from being evaluated in the editable.
+ iframe: function( element ) {
+ if ( element.attributes && element.attributes.src ) {
+
+ var src = element.attributes.src.toLowerCase().replace( /[^a-z]/gi, '' );
+ if ( src.indexOf( 'javascript' ) === 0 || src.indexOf( 'data' ) === 0 ) {
+ element.attributes[ 'data-cke-pa-src' ] = element.attributes.src;
+ delete element.attributes.src;
+ }
+ }
+ }
+ }
};
- // Disable form elements editing mode provided by some browsers. (#5746)
+ // Disable form elements editing mode provided by some browsers. (http://dev.ckeditor.com/ticket/5746)
function protectReadOnly( element ) {
var attrs = element.attributes;
// We should flag that the element was locked by our code so
- // it'll be editable by the editor functions (#6046).
+ // it'll be editable by the editor functions (http://dev.ckeditor.com/ticket/6046).
if ( attrs.contenteditable != 'false' )
attrs[ 'data-cke-editable' ] = attrs.contenteditable ? 'true' : 1;
}
},
- // Remove empty link but not empty anchor. (#3829, #13516)
+ // Remove empty link but not empty anchor. (http://dev.ckeditor.com/ticket/3829, http://dev.ckeditor.com/ticket/13516)
a: function( element ) {
var attrs = element.attributes;
if ( attribs[ 'data-cke-temp' ] )
return false;
- // Remove duplicated attributes - #3789.
+ // Remove duplicated attributes - http://dev.ckeditor.com/ticket/3789.
var attributeNames = [ 'name', 'href', 'src' ],
savedAttributeName;
for ( var i = 0; i < attributeNames.length; i++ ) {
return element;
},
- // The contents of table should be in correct order (#4809).
+ // The contents of table should be in correct order (http://dev.ckeditor.com/ticket/4809).
table: function( element ) {
// Clone the array as it would become empty during the sort call.
var children = element.children.slice( 0 );
title: function( element ) {
var titleText = element.children[ 0 ];
- // Append text-node to title tag if not present (i.e. non-IEs) (#9882).
+ // Append text-node to title tag if not present (i.e. non-IEs) (http://dev.ckeditor.com/ticket/9882).
!titleText && append( element, titleText = new CKEDITOR.htmlParser.text() );
// Transfer data-saved title to title tag.
if ( CKEDITOR.env.ie ) {
// IE outputs style attribute in capital letters. We should convert
- // them back to lower case, while not hurting the values (#5930)
+ // them back to lower case, while not hurting the values (http://dev.ckeditor.com/ticket/5930)
defaultHtmlFilterRulesForAll.attributes.style = function( value ) {
return value.replace( /(^|;)([^\:]+)/g, function( match ) {
return match.toLowerCase();
};
}
- // Disable form elements editing mode provided by some browsers. (#5746)
+ // Disable form elements editing mode provided by some browsers. (http://dev.ckeditor.com/ticket/5746)
function unprotectReadyOnly( element ) {
var attrs = element.attributes;
switch ( attrs[ 'data-cke-editable' ] ) {
//
// 'data-x' => '<a href="X"'
//
- // which, can be easily filtered out (#11508).
+ // which, can be easily filtered out (http://dev.ckeditor.com/ticket/11508).
protectAttributeRegex = /([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,
protectAttributeNameRegex = /^(href|src|name)$/i;
function protectAttributes( html ) {
return html.replace( protectElementRegex, function( element, tag, attributes ) {
return '<' + tag + attributes.replace( protectAttributeRegex, function( fullAttr, attrName ) {
- // Avoid corrupting the inline event attributes (#7243).
- // We should not rewrite the existed protected attributes, e.g. clipboard content from editor. (#5218)
+ // Avoid corrupting the inline event attributes (http://dev.ckeditor.com/ticket/7243).
+ // We should not rewrite the existed protected attributes, e.g. clipboard content from editor. (http://dev.ckeditor.com/ticket/5218)
if ( protectAttributeNameRegex.test( attrName ) && attributes.indexOf( 'data-cke-saved-' + attrName ) == -1 )
return ' data-cke-saved-' + fullAttr + ' data-cke-' + CKEDITOR.rnd + '-' + fullAttr;
// <noscript> tags (get lost in IE and messed up in FF).
/<noscript[\s\S]*?<\/noscript>/gi,
- // Avoid meta tags being stripped (#8117).
+ // Avoid meta tags being stripped (http://dev.ckeditor.com/ticket/8117).
/<meta[\s\S]*?\/?>/gi
].concat( protectRegexes );
for ( var i = 0; i < regexes.length; i++ ) {
data = data.replace( regexes[ i ], function( match ) {
- match = match.replace( tempRegex, // There could be protected source inside another one. (#3869).
+ match = match.replace( tempRegex, // There could be protected source inside another one. (http://dev.ckeditor.com/ticket/3869).
function( $, isComment, id ) {
return protectedHtml[ id ];
} );
// Different protection pattern is used for those that
// live in attributes to avoid from being HTML encoded.
- // Why so serious? See #9205, #8216, #7805, #11754, #11846.
+ // Why so serious? See http://dev.ckeditor.com/ticket/9205, http://dev.ckeditor.com/ticket/8216, http://dev.ckeditor.com/ticket/7805, http://dev.ckeditor.com/ticket/11754, http://dev.ckeditor.com/ticket/11846.
data = data.replace( /<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g, function( match ) {
return match.replace( /<!--\{cke_protected\}([^>]*)-->/g, function( match, data ) {
store[ store.id ] = decodeURIComponent( data );
// This RegExp searches for innerText in all the title/iframe/textarea elements.
// This is because browser doesn't allow HTML in these elements, that's why we can't
- // nest comments in there. (#11223)
+ // nest comments in there. (http://dev.ckeditor.com/ticket/11223)
data = data.replace( /<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g, function( match, tagName, tagAttributes, innerText ) {
return '<' + tagName + tagAttributes + '>' + unprotectSource( unprotectRealComments( innerText ), editor ) + '</' + tagName + '>';
} );
* {@link CKEDITOR.htmlParser.fragment} {@link CKEDITOR.htmlParser.element}.
* * 5-9: Data is available in the parsed format, but {@link CKEDITOR.htmlDataProcessor#dataFilter}
* is not applied yet.
- * * 6: Data is filtered with the {CKEDITOR.filter content filter}.
+ * * 6: Data is filtered with the {@link CKEDITOR.filter content filter}.
* * 10: Data is processed with {@link CKEDITOR.htmlDataProcessor#dataFilter}.
* * 10-14: Data is available in the parsed format and {@link CKEDITOR.htmlDataProcessor#dataFilter}
* has already been applied.
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
tagName = tagName.toLowerCase();
// There are some tag names that can break things, so let's
- // simply ignore them when parsing. (#5224)
+ // simply ignore them when parsing. (http://dev.ckeditor.com/ticket/5224)
if ( /="/.test( tagName ) )
continue;
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
* @param {String} attValue The attribute value.
*/
attribute: function( attName, attValue ) {
- // Browsers don't always escape special character in attribute values. (#4683, #4719).
+ // Browsers don't always escape special character in attribute values. (http://dev.ckeditor.com/ticket/4683, http://dev.ckeditor.com/ticket/4719).
if ( typeof attValue == 'string' )
attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
this.children = [];
- // Reveal the real semantic of our internal custom tag name (#6639),
+ // Reveal the real semantic of our internal custom tag name (http://dev.ckeditor.com/ticket/6639),
// when resolving whether it's block like.
var realName = name || '',
prefixed = realName.match( /^cke:(.*)/ );
};
/**
- * Object presentation of CSS style declaration text.
+ * Object presentation of the CSS style declaration text.
*
* @class
* @constructor Creates a `cssStyle` class instance.
*
* @since 4.3
* @param {Number} index Index at which the element will be split — `0` means the beginning,
- * `1` after first child node, etc.
+ * `1` after the first child node, etc.
* @returns {CKEDITOR.htmlParser.element} The new element following this one.
*/
split: function( index ) {
return clone;
},
+ /**
+ * Searches through the current node children to find nodes matching the `criteria`.
+ *
+ * @param {String/Function} criteria Tag name or evaluator function.
+ * @param {Boolean} [recursive=false]
+ * @returns {CKEDITOR.htmlParser.node[]}
+ */
+ find: function( criteria, recursive ) {
+ if ( recursive === undefined ) {
+ recursive = false;
+ }
+
+ var ret = [],
+ i;
+
+ for ( i = 0; i < this.children.length; i++ ) {
+ var curChild = this.children[ i ];
+
+ if ( typeof criteria == 'function' && criteria( curChild ) ) {
+ ret.push( curChild );
+ } else if ( typeof criteria == 'string' && curChild.name === criteria ) {
+ ret.push( curChild );
+ }
+
+ if ( recursive && curChild.find ) {
+ ret = ret.concat( curChild.find( criteria, recursive ) );
+ }
+ }
+
+ return ret;
+ },
+
/**
* Adds a class name to the list of classes.
*
if ( !ctx.nonEditable && this.attributes.contenteditable == 'false' )
changes.push( 'nonEditable', true );
- // A context to be given nestedEditable must be nonEditable first (by inheritance) (#11372, #11698).
- // Special case: #11504 - filter starts on <body contenteditable=true>,
+ // A context to be given nestedEditable must be nonEditable first (by inheritance) (http://dev.ckeditor.com/ticket/11372, http://dev.ckeditor.com/ticket/11698).
+ // Special case: http://dev.ckeditor.com/ticket/11504 - filter starts on <body contenteditable=true>,
// so ctx.nonEditable has not been yet set to true.
else if ( ctx.nonEditable && !ctx.nestedEditable && this.attributes.contenteditable == 'true' )
changes.push( 'nestedEditable', true );
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
if ( node.attributes[ 'data-cke-survive' ] )
return false;
- // Empty link is to be removed when empty but not anchor. (#7894)
+ // Empty link is to be removed when empty but not anchor. (http://dev.ckeditor.com/ticket/7894)
return node.name == 'a' && node.attributes.href || CKEDITOR.dtd.$removeEmpty[ node.name ];
}
i--;
} else {
// Some element of the same type cannot be nested, flat them,
- // e.g. <a href="#">foo<a href="#">bar</a></a>. (#7894)
+ // e.g. <a href="#">foo<a href="#">bar</a></a>. (http://dev.ckeditor.com/ticket/7894)
if ( pendingName == currentNode.name )
addElement( currentNode, currentNode.parent, 1 ), i--;
}
addElement( pendingBRs.shift(), currentNode );
}
- // Rtrim empty spaces on block end boundary. (#3585)
+ // Rtrim empty spaces on block end boundary. (http://dev.ckeditor.com/ticket/3585)
function removeTailWhitespace( element ) {
if ( element._.isBlockLike && element.name != 'pre' && element.name != 'textarea' ) {
// If the element cannot be child of the current element.
if ( !element.isUnknown && !currentNode.isUnknown && !currentDtd[ tagName ] ) {
// Current node doesn't have a close tag, time for a close
- // as this element isn't fit in. (#7497)
+ // as this element isn't fit in. (http://dev.ckeditor.com/ticket/7497)
if ( currentNode.isOptionalClose )
parser.onTagClose( currentName );
- // Fixing malformed nested lists by moving it into a previous list item. (#3828)
+ // Fixing malformed nested lists by moving it into a previous list item. (http://dev.ckeditor.com/ticket/3828)
else if ( tagName in listBlocks && currentName in listBlocks ) {
var children = currentNode.children,
lastChild = children[ children.length - 1 ];
currentNode = lastChild;
}
// Establish new list root for orphan list items, but NOT to create
- // new list for the following ones, fix them instead. (#6975)
+ // new list for the following ones, fix them instead. (http://dev.ckeditor.com/ticket/6975)
// <dl><dt>foo<dd>bar</dl>
// <ul><li>foo<li>bar</ul>
else if ( tagName in CKEDITOR.dtd.$listItem &&
var currentName = currentNode.name,
currentDtd = currentName ? ( CKEDITOR.dtd[ currentName ] || ( currentNode._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span ) ) : rootDtd;
- // Fix orphan text in list/table. (#8540) (#8870)
+ // Fix orphan text in list/table. (http://dev.ckeditor.com/ticket/8540) (http://dev.ckeditor.com/ticket/8870)
if ( !inTextarea && !currentDtd[ '#' ] && currentName in nonBreakingBlocks ) {
parser.onTagOpen( structureFixes[ currentName ] || '' );
parser.onText( text );
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
* alert( CKEDITOR.lang.languages.en ); // 1
*/
languages: {
- af: 1, ar: 1, bg: 1, bn: 1, bs: 1, ca: 1, cs: 1, cy: 1, da: 1, de: 1, 'de-ch': 1, el: 1,
- 'en-au': 1, 'en-ca': 1, 'en-gb': 1, en: 1, eo: 1, es: 1, et: 1, eu: 1, fa: 1, fi: 1, fo: 1,
+ af: 1, ar: 1, az: 1, bg: 1, bn: 1, bs: 1, ca: 1, cs: 1, cy: 1, da: 1, de: 1, 'de-ch': 1, el: 1,
+ 'en-au': 1, 'en-ca': 1, 'en-gb': 1, en: 1, eo: 1, es: 1, 'es-mx':1, et: 1, eu: 1, fa: 1, fi: 1, fo: 1,
'fr-ca': 1, fr: 1, gl: 1, gu: 1, he: 1, hi: 1, hr: 1, hu: 1, id: 1, is: 1, it: 1, ja: 1, ka: 1,
- km: 1, ko: 1, ku: 1, lt: 1, lv: 1, mk: 1, mn: 1, ms: 1, nb: 1, nl: 1, no: 1, pl: 1, 'pt-br': 1,
+ km: 1, ko: 1, ku: 1, lt: 1, lv: 1, mk: 1, mn: 1, ms: 1, nb: 1, nl: 1, no: 1, oc: 1, pl: 1, 'pt-br': 1,
pt: 1, ro: 1, ru: 1, si: 1, sk: 1, sl: 1, sq: 1, 'sr-latn': 1, sr: 1, sv: 1, th: 1, tr: 1, tt: 1, ug: 1,
uk: 1, vi: 1, 'zh-cn': 1, zh: 1
},
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
}
// We must guarantee the execution order of the scripts, so we
- // need to load them one by one. (#4145)
+ // need to load them one by one. (http://dev.ckeditor.com/ticket/4145)
// The following if/else block has been taken from the scriptloader core code.
if ( typeof script.onreadystatechange !== 'undefined' ) {
/** @ignore */
/** @ignore */
script.onload = function() {
// Some browsers, such as Safari, may call the onLoad function
- // immediately. Which will break the loading sequence. (#3661)
+ // immediately. Which will break the loading sequence. (http://dev.ckeditor.com/ticket/3661)
setTimeout( function() {
onScriptLoaded( scriptName );
}, 0 );
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
* Registers one or more resources to be loaded from an external path
* instead of the core base path.
*
- * // Loads a plugin from '/myplugin/samples/plugin.js'.
+ * // Loads a plugin from '/myplugins/sample/plugin.js'.
* CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
*
- * // Loads a plugin from '/myplugin/samples/my_plugin.js'.
+ * // Loads a plugin from '/myplugins/sample/my_plugin.js'.
* CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/', 'my_plugin.js' );
*
- * // Loads a plugin from '/myplugin/samples/my_plugin.js'.
+ * // Loads a plugin from '/myplugins/sample/my_plugin.js'.
* CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/my_plugin.js', '' );
*
* @param {String} names The resource names, separated by commas.
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
} );
if ( callback ) {
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 11 ) {
- // FIXME: For IE, we are not able to return false on error (like 404).
+ // The onload or onerror event does not fire in IE8 and IE9 Quirks Mode (http://dev.ckeditor.com/ticket/14849).
+ if ( CKEDITOR.env.ie && ( CKEDITOR.env.version <= 8 || CKEDITOR.env.ie9Compat ) ) {
script.$.onreadystatechange = function() {
if ( script.$.readyState == 'loaded' || script.$.readyState == 'complete' ) {
script.$.onreadystatechange = null;
} else {
script.$.onload = function() {
// Some browsers, such as Safari, may call the onLoad function
- // immediately. Which will break the loading sequence. (#3661)
+ // immediately. Which will break the loading sequence. (http://dev.ckeditor.com/ticket/3661)
setTimeout( function() {
onLoad( url, true );
}, 0 );
};
- // FIXME: Opera and Safari will not fire onerror.
script.$.onerror = function() {
onLoad( url, false );
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
( function() {
+ var isMSSelection = typeof window.getSelection != 'function',
+ nextRev = 1,
+ // http://dev.ckeditor.com/ticket/13816
+ fillingCharSequence = CKEDITOR.tools.repeat( '\u200b', 7 ),
+ fillingCharSequenceRegExp = new RegExp( fillingCharSequence + '( )?', 'g' ),
+ isSelectingTable;
+
+ // #### table selection : START
+ // @param {CKEDITOR.dom.range[]} ranges
+ // @param {Boolean} allowPartially Whether a collapsed selection within table is recognized to be a valid selection.
+ // This happens for WebKits on MacOS, when you right click inside the table.
+ function isTableSelection( ranges, allowPartially ) {
+ if ( ranges.length === 0 ) {
+ return false;
+ }
+
+ var node,
+ i;
+
+ function isPartiallySelected( range ) {
+ var startCell = range.startContainer.getAscendant( { td: 1, th: 1 }, true ),
+ endCell = range.endContainer.getAscendant( { td: 1, th: 1 }, true ),
+ trim = CKEDITOR.tools.trim,
+ selected;
+
+ // Check if the selection is inside one cell and we don't have any nested table contents selected.
+ if ( !startCell || !startCell.equals( endCell ) || startCell.findOne( 'td, th, tr, tbody, table' ) ) {
+ return false;
+ }
+
+ selected = range.cloneContents();
+
+ // Empty selection is still partially selected.
+ if ( !selected.getFirst() ) {
+ return true;
+ }
+
+ return trim( selected.getFirst().getText() ) !== trim( startCell.getText() );
+ }
+
+ // Edge case: partially selected text node inside one table cell or cursor inside cell.
+ if ( !allowPartially && ranges.length === 1 &&
+ ( ranges[ 0 ].collapsed || isPartiallySelected( ranges[ 0 ] ) ) ) {
+ return false;
+ }
+
+ for ( i = 0; i < ranges.length; i++ ) {
+ node = ranges[ i ]._getTableElement();
+
+ if ( !node ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ // After performing fake table selection, the real selection is limited
+ // to the first selected cell. Therefore to check if the real selection
+ // matches the fake selection, we check if the table cell from fake selection's
+ // first range and real selection's range are the same.
+ // Also if the selection is collapsed, we should check if it's placed inside the table
+ // in which the fake selection is or inside nested table. Such selection occurs after right mouse click.
+ function isRealTableSelection( selection, fakeSelection ) {
+ var ranges = selection.getRanges(),
+ fakeRanges = fakeSelection.getRanges(),
+ table = ranges.length && ranges[ 0 ]._getTableElement() &&
+ ranges[ 0 ]._getTableElement().getAscendant( 'table', true ),
+ fakeTable = fakeRanges.length && fakeRanges[ 0 ]._getTableElement() &&
+ fakeRanges[ 0 ]._getTableElement().getAscendant( 'table', true ),
+ isTableRange = ranges.length === 1 && ranges[ 0 ]._getTableElement() &&
+ ranges[ 0 ]._getTableElement().is( 'table' ),
+ isFakeTableRange = fakeRanges.length === 1 && fakeRanges[ 0 ]._getTableElement() &&
+ fakeRanges[ 0 ]._getTableElement().is( 'table' );
+
+ function isValidTableSelection( table, fakeTable, ranges, fakeRanges ) {
+ var isMenuOpen = ranges.length === 1 && ranges[ 0 ].collapsed,
+ // In case of WebKit on MacOS, when checking real selection, we must allow selection to be partial.
+ // Otherwise the check will fail for table selection with opened context menu.
+ isInTable = isTableSelection( ranges, !!CKEDITOR.env.webkit ) && isTableSelection( fakeRanges );
+
+ return isSameTable( table, fakeTable ) && ( isMenuOpen || isInTable );
+ }
+
+ function isSameTable( table, fakeTable ) {
+ if ( !table || !fakeTable ) {
+ return false;
+ }
+
+ return table.equals( fakeTable ) || fakeTable.contains( table );
+ }
+
+ if ( isValidTableSelection( table, fakeTable, ranges, fakeRanges ) ) {
+ // Edge case: when editor contains only table and that table is selected using selectAll command,
+ // then the selection is not properly refreshed and it must be done manually.
+ if ( isTableRange && !isFakeTableRange ) {
+ fakeSelection.selectRanges( ranges );
+ }
+ return true;
+ }
+
+ return false;
+ }
+
+ function getSelectedCells( ranges ) {
+ var cells = [],
+ node,
+ i;
+
+ function getCellsFromElement( element ) {
+ var cells = element.find( 'td, th' ),
+ cellsArray = [],
+ i;
+
+ for ( i = 0; i < cells.count(); i++ ) {
+ cellsArray.push( cells.getItem( i ) );
+ }
+
+ return cellsArray;
+ }
+
+ for ( i = 0; i < ranges.length; i++ ) {
+ node = ranges[ i ]._getTableElement();
+
+ if ( node.is && node.is( { td: 1, th: 1 } ) ) {
+ cells.push( node );
+ } else {
+ cells = cells.concat( getCellsFromElement( node ) );
+ }
+ }
+
+ return cells;
+ }
+
+ // Cells in the same row are separated by tab and the rows are separated by new line, e.g.
+ // Cell 1.1 Cell 1.2
+ // Cell 2.1 Cell 2.2
+ function getTextFromSelectedCells( ranges ) {
+ var cells = getSelectedCells( ranges ),
+ txt = '',
+ currentRow = [],
+ lastRow,
+ i;
+
+ for ( i = 0; i < cells.length; i++ ) {
+ if ( lastRow && !lastRow.equals( cells[ i ].getAscendant( 'tr' ) ) ) {
+ txt += currentRow.join( '\t' ) + '\n';
+ lastRow = cells[ i ].getAscendant( 'tr' );
+ currentRow = [];
+ } else if ( i === 0 ) {
+ lastRow = cells[ i ].getAscendant( 'tr' );
+ }
+
+ currentRow.push( cells[ i ].getText() );
+ }
+
+ txt += currentRow.join( '\t' );
+
+ return txt;
+ }
+
+ function performFakeTableSelection( ranges ) {
+ var editor = this.root.editor,
+ realSelection = editor.getSelection( 1 ),
+ cache;
+
+ // Cleanup after previous selection - e.g. remove hidden sel container.
+ this.reset();
+
+ // Indicate that the table is being fake-selected to prevent infinite loop
+ // inside `selectRanges`.
+ isSelectingTable = true;
+
+ // Cancel selectionchange for the real selection.
+ realSelection.root.once( 'selectionchange', function( evt ) {
+ evt.cancel();
+ }, null, null, 0 );
+
+ // Move real selection to the first selected range.
+ realSelection.selectRanges( [ ranges[ 0 ] ] );
+
+ cache = this._.cache;
+
+ // Caches given ranges.
+ cache.ranges = new CKEDITOR.dom.rangeList( ranges );
+ cache.type = CKEDITOR.SELECTION_TEXT;
+ cache.selectedElement = ranges[ 0 ]._getTableElement();
+
+ // `selectedText` should contain text from all selected data ("plain text table")
+ // to be compatible with Firefox's implementation.
+ cache.selectedText = getTextFromSelectedCells( ranges );
+
+ // Properties that will not be available when isFake.
+ cache.nativeSel = null;
+
+ this.isFake = 1;
+ this.rev = nextRev++;
+
+ // Save this selection, so it can be returned by editor.getSelection().
+ editor._.fakeSelection = this;
+
+ isSelectingTable = false;
+
+ // Fire selectionchange, just like a normal selection.
+ this.root.fire( 'selectionchange' );
+ }
+ // #### table selection : END
+
// #### checkSelectionChange : START
// The selection change check basically saves the element parent tree of
if ( sel ) {
realSel = this.getSelection( 1 );
-
- // If real (not locked/stored) selection was moved from hidden container,
- // then the fake-selection must be invalidated.
- if ( !realSel || !realSel.isHidden() ) {
+ // If real (not locked/stored) selection was moved from hidden container
+ // or is not a table one, then the fake-selection must be invalidated.
+ if ( !realSel || ( !realSel.isHidden() && !isRealTableSelection( realSel, sel ) ) ) {
// Remove the cache from fake-selection references in use elsewhere.
sel.reset();
var currentPath = this.elementPath();
if ( !currentPath.compare( this._.selectionPreviousPath ) ) {
+ // Handle case when dialog inserts new element but parent block and path (so also focus context) does not change. (http://dev.ckeditor.com/ticket/13362)
+ var sameBlockParent = this._.selectionPreviousPath && this._.selectionPreviousPath.blockLimit.equals( currentPath.blockLimit );
// Cache the active element, which we'll eventually lose on Webkit.
- if ( CKEDITOR.env.webkit )
+ if ( CKEDITOR.env.webkit && !sameBlockParent )
this._.previousActive = this.document.getActive();
this._.selectionPreviousPath = currentPath;
// * is a visible node,
// * is a non-empty element (this rule will accept elements like <strong></strong> because they
// they were not accepted by the isVisible() check, not not <br> which cannot absorb the caret).
- // See #12621.
+ // See http://dev.ckeditor.com/ticket/12621.
function mayAbsorbCaret( node ) {
if ( isVisible( node ) )
return true;
if ( ctxRequiresFix( previous ) || ctxRequiresFix( next, 1 ) )
return true;
- // Empty block/inline element is also affected. <span>^</span>, <p>^</p> (#7222)
- // If you found this line confusing check #12655.
+ // Empty block/inline element is also affected. <span>^</span>, <p>^</p> (http://dev.ckeditor.com/ticket/7222)
+ // If you found this line confusing check http://dev.ckeditor.com/ticket/12655.
if ( !( previous || next ) && !( ct.type == CKEDITOR.NODE_ELEMENT && ct.isBlockBoundary() && ct.getBogus() ) )
return true;
return fillingChar;
}
- // Checks if a filling char has been used, eventualy removing it (#1272).
+ // Checks if a filling char has been used, eventually removing it (http://dev.ckeditor.com/ticket/1272).
function checkFillingCharSequenceNodeReady( editable ) {
var fillingChar = editable.getCustomData( 'cke-fillingChar' );
// creating it.
if ( fillingChar.getCustomData( 'ready' ) ) {
removeFillingCharSequenceNode( editable );
+ editable.editor.fire( 'selectionCheck' );
} else {
fillingChar.setCustomData( 'ready', 1 );
}
if ( fillingChar ) {
// Text selection position might get mangled by
- // subsequent dom modification, save it now for restoring. (#8617)
+ // subsequent dom modification, save it now for restoring. (http://dev.ckeditor.com/ticket/8617)
if ( keepSelection !== false ) {
var sel = editable.getDocument().getSelection().getNative(),
// Be error proof.
}
}
- // #13816
+ // http://dev.ckeditor.com/ticket/13816
function removeFillingCharSequenceString( str, nbspAware ) {
if ( nbspAware ) {
return str.replace( fillingCharSequenceRegExp, function( m, p ) {
- // #10291 if filling char is followed by a space replace it with NBSP.
+ // http://dev.ckeditor.com/ticket/10291 if filling char is followed by a space replace it with NBSP.
return p ? '\xa0' : '';
} );
} else {
}
// Creates cke_hidden_sel container and puts real selection there.
- function hideSelection( editor ) {
- var style = CKEDITOR.env.ie ? 'display:none' : 'position:fixed;top:0;left:-1000px',
+ function hideSelection( editor, ariaLabel ) {
+ var content = ariaLabel || ' ',
+ style = CKEDITOR.env.ie && CKEDITOR.env.version < 14 ? 'display:none' : 'position:fixed;top:0;left:-1000px',
hiddenEl = CKEDITOR.dom.element.createFromHtml(
- '<div data-cke-hidden-sel="1" data-cke-temp="1" style="' + style + '"> </div>',
+ '<div data-cke-hidden-sel="1" data-cke-temp="1" style="' + style + '">' + content + '</div>',
editor.document );
editor.fire( 'lockSnapshot' );
( enclosedNode = range.getEnclosedNode() ) && enclosedNode.type == CKEDITOR.NODE_ELEMENT ) {
// So far we can't say that enclosed element is non-editable. Before checking,
// we'll shrink range (clone). Shrinking will stop on non-editable range, or
- // innermost element (#11114).
+ // innermost element (http://dev.ckeditor.com/ticket/11114).
clone = range.clone();
clone.shrink( CKEDITOR.SHRINK_ELEMENT, true );
// Give the editable an initial selection on first focus,
// put selection at a consistent position at the start
- // of the contents. (#9507)
+ // of the contents. (http://dev.ckeditor.com/ticket/9507)
if ( CKEDITOR.env.gecko ) {
editable.attachListener( editable, 'focus', function( evt ) {
evt.removeListener();
if ( restoreSel !== 0 ) {
var nativ = editor.getSelection().getNative();
// Do it only if the native selection is at an unwanted
- // place (at the very start of the editable). #10119
+ // place (at the very start of the editable). http://dev.ckeditor.com/ticket/10119
if ( nativ && nativ.isCollapsed && nativ.anchorNode == editable.$ ) {
var rng = editor.createRange();
rng.moveToElementEditStart( editable );
// On Webkit we use DOMFocusIn which is fired more often than focus - e.g. when moving from main editable
// to nested editable (or the opposite). Unlock selection all, but restore only when it was locked
// for the same active element, what will e.g. mean restoring after displaying dialog.
- if ( restoreSel && CKEDITOR.env.webkit )
+ if ( restoreSel && CKEDITOR.env.webkit ) {
restoreSel = editor._.previousActive && editor._.previousActive.equals( doc.getActive() );
+ // On Webkit when editor uses divarea, native focus causes editable viewport to scroll
+ // to the top (when there is no active selection inside while focusing) so the scroll
+ // position should be restored after focusing back editable area. (http://dev.ckeditor.com/ticket/14659)
+ if ( restoreSel && editor._.previousScrollTop != null && editor._.previousScrollTop != editable.$.scrollTop ) {
+ editable.$.scrollTop = editor._.previousScrollTop;
+ }
+ }
+
editor.unlockSelection( restoreSel );
restoreSel = 0;
}, null, null, -1 );
editable.attachListener( editable, 'mousedown', function( evt ) {
// IE scrolls document to top on right mousedown
// when editor has no focus, remember this scroll
- // position and revert it before context menu opens. (#5778)
+ // position and revert it before context menu opens. (http://dev.ckeditor.com/ticket/5778)
if ( evt.data.$.button == 2 ) {
var sel = editor.document.getSelection();
if ( !sel || sel.getType() == CKEDITOR.SELECTION_NONE )
// When content doc is in standards mode, IE doesn't focus the editor when
// clicking at the region below body (on html element) content, we emulate
- // the normal behavior on old IEs. (#1659, #7932)
+ // the normal behavior on old IEs. (http://dev.ckeditor.com/ticket/1659, http://dev.ckeditor.com/ticket/7932)
if ( doc.$.compatMode != 'BackCompat' ) {
if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {
+ var textRng,
+ startRng;
+
html.on( 'mousedown', function( evt ) {
evt = evt.data;
html.removeListener( 'mousemove', onHover );
removeListeners();
- // Make it in effect on mouse up. (#9022)
+ // Make it in effect on mouse up. (http://dev.ckeditor.com/ticket/9022)
textRng.select();
}
evt.$.y < html.$.clientHeight &&
evt.$.x < html.$.clientWidth ) {
// Start to build the text range.
- var textRng = body.$.createTextRange();
+ textRng = body.$.createTextRange();
moveRangeToPoint( textRng, evt.$.clientX, evt.$.clientY );
// Records the dragging start of the above text range.
- var startRng = textRng.duplicate();
+ startRng = textRng.duplicate();
html.on( 'mousemove', onHover );
outerDoc.on( 'mouseup', onSelectEnd );
if ( CKEDITOR.env.version > 7 && CKEDITOR.env.version < 11 ) {
html.on( 'mousedown', function( evt ) {
if ( evt.data.getTarget().is( 'html' ) ) {
- // Limit the text selection mouse move inside of editable. (#9715)
+ // Limit the text selection mouse move inside of editable. (http://dev.ckeditor.com/ticket/9715)
outerDoc.on( 'mouseup', onSelectEnd );
html.on( 'mouseup', onSelectEnd );
}
// 2. After the accomplish of keyboard and mouse events.
editable.attachListener( editable, 'selectionchange', checkSelectionChange, editor );
editable.attachListener( editable, 'keyup', checkSelectionChangeTimeout, editor );
+ // http://dev.ckeditor.com/ticket/14407 - Don't even let anything happen if the selection is in a non-editable element.
+ editable.attachListener( editable, 'keydown', function( evt ) {
+ var sel = this.getSelection( 1 );
+ if ( nonEditableAscendant( sel ) ) {
+ sel.selectElement( nonEditableAscendant( sel ) );
+ evt.data.preventDefault();
+ }
+ }, editor );
// Always fire the selection change on focus gain.
// On Webkit do this on DOMFocusIn, because the selection is unlocked on it too and
// we need synchronization between those listeners to not lost cached editor._.previousActive property
editor.selectionChange( 1 );
} );
- // #9699: On Webkit&Gecko in inline editor we have to check selection when it was changed
+ // http://dev.ckeditor.com/ticket/9699: On Webkit&Gecko in inline editor we have to check selection when it was changed
// by dragging and releasing mouse button outside editable. Dragging (mousedown)
// has to be initialized in editable, but for mouseup we listen on document element.
if ( isInline && ( CKEDITOR.env.webkit || CKEDITOR.env.gecko ) ) {
mouseDown = 0;
} );
}
- // In all other cases listen on simple mouseup over editable, as we did before #9699.
+ // In all other cases listen on simple mouseup over editable, as we did before http://dev.ckeditor.com/ticket/9699.
//
// Use document instead of editable in non-IEs for observing mouseup
// since editable won't fire the event if selection process started within iframe and ended out
- // of the editor (#9851).
+ // of the editor (http://dev.ckeditor.com/ticket/9851).
else {
editable.attachListener( CKEDITOR.env.ie ? editable : doc.getDocumentElement(), 'mouseup', checkSelectionChangeTimeout, editor );
}
case 8: // BACKSPACE
case 45: // INS
case 46: // DEl
- removeFillingCharSequenceNode( editable );
+ if ( editable.hasFocus ) {
+ removeFillingCharSequenceNode( editable );
+ }
}
}, null, null, -1 );
}
- // Automatically select non-editable element when navigating into
- // it by left/right or backspace/del keys.
editable.attachListener( editable, 'keydown', getOnKeyDownListener( editor ), null, null, -1 );
function moveRangeToPoint( range, x, y ) {
- // Error prune in IE7. (#9034, #9110)
+ // Error prune in IE7. (http://dev.ckeditor.com/ticket/9034, http://dev.ckeditor.com/ticket/9110)
try {
range.moveToPoint( x, y );
} catch ( e ) {}
range = sel.createRange();
// The selection range is reported on host, but actually it should applies to the content doc.
- if ( sel.type != 'None' && range.parentElement().ownerDocument == doc.$ )
+ // The parentElement may be null for read only mode in IE10 and below (http://dev.ckeditor.com/ticket/9780).
+ if ( sel.type != 'None' && range.parentElement() && range.parentElement().ownerDocument == doc.$ )
range.select();
}
+
+ function nonEditableAscendant( sel ) {
+ if ( CKEDITOR.env.ie ) {
+ var range = sel.getRanges()[ 0 ],
+ ascendant = range ? range.startContainer.getAscendant( function( parent ) {
+ return parent.type == CKEDITOR.NODE_ELEMENT &&
+ ( parent.getAttribute( 'contenteditable' ) == 'false' || parent.getAttribute( 'contenteditable' ) == 'true' );
+ }, true ) : null ;
+
+ return range && ascendant.getAttribute( 'contenteditable' ) == 'false' && ascendant;
+ }
+ }
} );
editor.on( 'setData', function() {
// Invalidate locked selection when unloading DOM.
- // (#9521, #5217#comment:32 and #11500#comment:11)
+ // (http://dev.ckeditor.com/ticket/9521, http://dev.ckeditor.com/ticket/5217#comment:32 and http://dev.ckeditor.com/ticket/11500#comment:11)
editor.unlockSelection();
// Webkit's selection will mess up after the data loading.
editor.unlockSelection();
} );
- // IE9 might cease to work if there's an object selection inside the iframe (#7639).
+ // IE9 might cease to work if there's an object selection inside the iframe (http://dev.ckeditor.com/ticket/7639).
if ( CKEDITOR.env.ie9Compat )
editor.on( 'beforeDestroy', clearSelection, null, null, 9 );
// When loaded data are ready check whether hidden selection container was not loaded.
editor.on( 'loadSnapshot', function() {
var isElement = CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT ),
- // TODO replace with el.find() which will be introduced in #9764,
+ // TODO replace with el.find() which will be introduced in http://dev.ckeditor.com/ticket/9764,
// because it may happen that hidden sel container won't be the last element.
last = editor.editable().getLast( isElement );
} );
// On WebKit only, we need a special "filling" char on some situations
- // (#1272). Here we set the events that should invalidate that char.
+ // (http://dev.ckeditor.com/ticket/1272). Here we set the events that should invalidate that char.
if ( CKEDITOR.env.webkit ) {
CKEDITOR.on( 'instanceReady', function( evt ) {
var editor = evt.editor;
// Filter Undo snapshot's HTML to get rid of Filling Char Sequence.
// Note: CKEDITOR.dom.range.createBookmark2() normalizes snapshot's
- // bookmarks to anticipate the removal of FCSeq from the snapshot's HTML (#13816).
+ // bookmarks to anticipate the removal of FCSeq from the snapshot's HTML (http://dev.ckeditor.com/ticket/13816).
editor.on( 'getSnapshot', function( evt ) {
if ( evt.data ) {
evt.data = removeFillingCharSequenceString( evt.data );
// Filter data to get rid of Filling Char Sequence. Filter on #toDataFormat
// instead of #getData because once removed, FCSeq may leave an empty element,
- // which should be pruned by the dataProcessor (#13816).
+ // which should be pruned by the dataProcessor (http://dev.ckeditor.com/ticket/13816).
// Note: Used low priority to filter when dataProcessor works on strings,
// not pseudo–DOM.
editor.on( 'toDataFormat', function( evt ) {
*/
CKEDITOR.SELECTION_ELEMENT = 3;
- var isMSSelection = typeof window.getSelection != 'function',
- nextRev = 1;
-
/**
* Manipulates the selection within a DOM element. If the current browser selection
* spans outside of the element, an empty selection object is returned.
// Selection out of concerned range, empty the selection.
// TODO check whether this condition cannot be reverted to its old
- // form (commented out) after we closed #10438.
+ // form (commented out) after we closed http://dev.ckeditor.com/ticket/10438.
//if ( !( rangeParent && ( root.equals( rangeParent ) || root.contains( rangeParent ) ) ) ) {
if ( !(
rangeParent &&
var styleObjectElements = { img: 1, hr: 1, li: 1, table: 1, tr: 1, td: 1, th: 1, embed: 1, object: 1, ol: 1, ul: 1,
a: 1, input: 1, form: 1, select: 1, textarea: 1, button: 1, fieldset: 1, thead: 1, tfoot: 1 };
- // #13816
- var fillingCharSequence = CKEDITOR.tools.repeat( '\u200b', 7 ),
- fillingCharSequenceRegExp = new RegExp( fillingCharSequence + '( )?', 'g' );
-
CKEDITOR.tools.extend( CKEDITOR.dom.selection, {
_removeFillingCharSequenceString: removeFillingCharSequenceString,
_createFillingCharSequenceNode: createFillingCharSequenceNode,
*
* var selection = editor.getSelection().getNative();
*
- * @returns {Object} The native browser selection object.
+ * @returns {Object} The native browser selection object or null if this is a fake selection.
*/
getNative: function() {
if ( this._.cache.nativeSel !== undefined )
* alert( ranges.length );
*
* @method
- * @param {Boolean} [onlyEditables] If set to `true`, this function retrives editable ranges only.
+ * @param {Boolean} [onlyEditables] If set to `true`, this function retrieves editable ranges only.
* @returns {Array} Range instances that represent the current selection.
*/
getRanges: ( function() {
index = -1,
position, distance, container;
- // Binary search over all element childs to test the range to see whether
+ // Binary search over all element children to test the range to see whether
// range is right on the boundary of one element.
while ( startIndex <= endIndex ) {
index = Math.floor( ( startIndex + endIndex ) / 2 );
return { container: parent, offset: getNodeIndex( child ) };
}
- // All childs are text nodes,
- // or to the right hand of test range are all text nodes. (#6992)
+ // All children are text nodes,
+ // or to the right hand of test range are all text nodes. (http://dev.ckeditor.com/ticket/6992)
if ( index == -1 || index == siblings.length - 1 && position < 0 ) {
// Adapt test range to embrace the entire parent contents.
testRange.moveToElementText( parent );
// IE report line break as CRLF with range.text but
// only LF with textnode.nodeValue, normalize them to avoid
- // breaking character counting logic below. (#3949)
+ // breaking character counting logic below. (http://dev.ckeditor.com/ticket/3949)
distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
siblings = parent.childNodes;
// IE report line break as CRLF with range.text but
// only LF with textnode.nodeValue, normalize them to avoid
- // breaking character counting logic below. (#3949)
+ // breaking character counting logic below. (http://dev.ckeditor.com/ticket/3949)
distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
// Actual range anchor right beside test range at the inner boundary of text node.
}
child = sibling;
}
- // Measurement in IE could be somtimes wrong because of <select> element. (#4611)
+ // Measurement in IE could be sometimes wrong because of <select> element. (http://dev.ckeditor.com/ticket/4611)
catch ( e ) {
return { container: parent, offset: getNodeIndex( child ) };
}
boundaryInfo = getBoundaryInformation( nativeRange );
range.setEnd( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
- // Correct an invalid IE range case on empty list item. (#5850)
+ // Correct an invalid IE range case on empty list item. (http://dev.ckeditor.com/ticket/5850)
if ( range.endContainer.getPosition( range.startContainer ) & CKEDITOR.POSITION_PRECEDING && range.endOffset <= range.startContainer.getIndex() )
range.collapse();
} )() :
function() {
// On browsers implementing the W3C range, we simply
- // tranform the native ranges in CKEDITOR.dom.range
+ // transform the native ranges in CKEDITOR.dom.range
// instances.
var ranges = [],
return ranges;
// Split range into multiple by read-only nodes.
- // Clone ranges array to avoid changing cached ranges (#11493).
+ // Clone ranges array to avoid changing cached ranges (http://dev.ckeditor.com/ticket/11493).
return extractEditableRanges( new CKEDITOR.dom.rangeList( ranges.slice() ) );
};
} )(),
// Decrease the range content to exclude particial
// selected node on the start which doesn't have
- // visual impact. ( #3231 )
+ // visual impact. ( http://dev.ckeditor.com/ticket/3231 )
while ( 1 ) {
var startContainer = range.startContainer,
startOffset = range.startOffset;
- // Limit the fix only to non-block elements.(#3950)
+ // Limit the fix only to non-block elements.(http://dev.ckeditor.com/ticket/3950)
if ( startOffset == ( startContainer.getChildCount ? startContainer.getChildCount() : startContainer.getLength() ) && !startContainer.isBlockBoundary() )
range.setStartAfter( startContainer );
else
* var element = editor.getSelection().getSelectedElement();
* alert( element.getName() );
*
- * @returns {CKEDITOR.dom.element} The selected element. Null if no
+ * @returns {CKEDITOR.dom.element/null} The selected element. `null` if no
* selection is available or the selection type is not {@link CKEDITOR#SELECTION_ELEMENT}.
*/
getSelectedElement: function() {
if ( restore ) {
var selectedElement = this.getSelectedElement(),
- ranges = !selectedElement && this.getRanges(),
+ ranges = this.getRanges(),
faked = this.isFake;
}
if ( !( common && common.getAscendant( 'body', 1 ) ) )
return;
- if ( faked )
+ if ( isTableSelection( ranges ) ) {
+ // Tables have it's own selection method.
+ performFakeTableSelection.call( this, ranges );
+ } else if ( faked )
this.fake( selectedElement );
else if ( selectedElement )
this.selectElement( selectedElement );
// Check if there's a hiddenSelectionContainer in editable at some index.
// Some ranges may be anchored after the hiddenSelectionContainer and,
// once the container is removed while resetting the selection, they
- // may need new endOffset (one element less within the range) (#11021 #11393).
+ // may need new endOffset (one element less within the range) (http://dev.ckeditor.com/ticket/11021 http://dev.ckeditor.com/ticket/11393).
if ( hadHiddenSelectionContainer )
fixRangesAfterHiddenSelectionContainer( ranges, this.root );
return;
}
+ // Handle special case - fake selection of table cells.
+ if ( editor && editor.plugins.tableselection &&
+ CKEDITOR.plugins.tableselection.isSupportedEnvironment &&
+ isTableSelection( ranges ) && !isSelectingTable
+ ) {
+ performFakeTableSelection.call( this, ranges );
+ return;
+ }
+
if ( isMSSelection ) {
var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
fillerTextRegex = /\ufeff|\u00a0/,
if ( range.startContainer.type == CKEDITOR.NODE_ELEMENT && range.startContainer.getName() in nonCells ||
range.endContainer.type == CKEDITOR.NODE_ELEMENT && range.endContainer.getName() in nonCells ) {
range.shrink( CKEDITOR.NODE_ELEMENT, true );
- // The range might get collapsed (#7975). Update cached variable.
+ // The range might get collapsed (http://dev.ckeditor.com/ticket/7975). Update cached variable.
collapsed = range.collapsed;
}
// Append a temporary <span></span> before the selection.
// This is needed to avoid IE destroying selections inside empty
- // inline elements, like <b></b> (#253).
+ // inline elements, like <b></b> (http://dev.ckeditor.com/ticket/253).
// It is also needed when placing the selection right after an inline
// element to avoid the selection moving inside of it.
dummySpan = range.document.createElement( 'span' );
- dummySpan.setHtml( '' ); // Zero Width No-Break Space (U+FEFF). See #1359.
+ dummySpan.setHtml( '' ); // Zero Width No-Break Space (U+FEFF). See http://dev.ckeditor.com/ticket/1359.
dummySpan.insertBefore( startNode );
if ( isStartMarkerAlone ) {
// To expand empty blocks or line spaces after <br>, we need
// instead to have any char, which will be later deleted using the
// selection.
- // \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
+ // \ufeff = Zero Width No-Break Space (U+FEFF). (http://dev.ckeditor.com/ticket/1359)
range.document.createText( '\ufeff' ).insertBefore( startNode );
}
}
} else {
var sel = this.getNative();
- // getNative() returns null if iframe is "display:none" in FF. (#6577)
+ // getNative() returns null if iframe is "display:none" in FF. (http://dev.ckeditor.com/ticket/6577)
if ( !sel )
return;
between.setStart( left.endContainer, left.endOffset );
between.setEnd( right.startContainer, right.startOffset );
- // Don't confused by Firefox adjancent multi-ranges
+ // Don't confused by Firefox adjacent multi-ranges
// introduced by table cells selection.
if ( !between.collapsed ) {
between.shrink( CKEDITOR.NODE_ELEMENT, true );
// The following cases has to be considered:
// 1. <span contenteditable="false">[placeholder]</span>
- // 2. <input contenteditable="false" type="radio"/> (#6621)
+ // 2. <input contenteditable="false" type="radio"/> (http://dev.ckeditor.com/ticket/6621)
if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() ) {
right.setStart( left.startContainer, left.startOffset );
ranges.splice( i--, 1 );
if ( range.collapsed && CKEDITOR.env.webkit && rangeRequiresFix( range ) ) {
// Append a zero-width space so WebKit will not try to
- // move the selection by itself (#1272).
+ // move the selection by itself (http://dev.ckeditor.com/ticket/1272).
var fillingChar = createFillingCharSequenceNode( this.root );
range.insertNode( fillingChar );
* displayed to the user.
*
* @param {CKEDITOR.dom.element} element The element to be "selected".
+ * @param {String} [ariaLabel] A string to be used by the screen reader to describe the selection.
*/
- fake: function( element ) {
+ fake: function( element, ariaLabel ) {
var editor = this.root.editor;
+ // Attempt to retrieve aria-label if possible (http://dev.ckeditor.com/ticket/14539).
+ if ( ariaLabel === undefined && element.hasAttribute( 'aria-label' ) ) {
+ ariaLabel = element.getAttribute( 'aria-label' );
+ }
+
// Cleanup after previous selection - e.g. remove hidden sel container.
this.reset();
- hideSelection( editor );
+ hideSelection( editor, ariaLabel );
// Set this value after executing hiseSelection, because it may
// cause reset() which overwrites cache.
return !!( el && el.data( 'cke-hidden-sel' ) );
},
+ /**
+ * Checks if the selection contains an HTML element inside a table.
+ * Returns `false` for text selection inside a table (e.g. it will return `false`
+ * for text selected in one cell).
+ *
+ * editor.getSelection().isInTable();
+ *
+ * @since 4.7.0
+ * @param {Boolean} [allowPartialSelection=false] Whether a partial cell selection should be included.
+ * Added in 4.7.2.
+ * @returns {Boolean}
+ */
+ isInTable: function( allowPartialSelection ) {
+ return isTableSelection( this.getRanges(), allowPartialSelection );
+ },
+
+ /**
+ * Checks if the selection contains only one range which is collapsed.
+ *
+ * if ( editor.getSelection().isCollapsed() ) {
+ * // Do something when the selection is collapsed.
+ * }
+ *
+ * @since 4.7.3
+ * @returns {Boolean}
+ */
+ isCollapsed: function() {
+ var ranges = this.getRanges();
+
+ return ranges.length === 1 && ranges[ 0 ].collapsed;
+ },
+
/**
* Creates a bookmark for each range of this selection (from {@link #getRanges})
* by calling the {@link CKEDITOR.dom.range#createBookmark} method,
// It may happen that the content change during loading, before selection is set so bookmark leads to text node.
if ( bookmarks.isFake ) {
- node = ranges[ 0 ].getEnclosedNode();
+ node = isTableSelection( ranges ) ? ranges[ 0 ]._getTableElement() : ranges[ 0 ].getEnclosedNode();
+
if ( !node || node.type != CKEDITOR.NODE_ELEMENT ) {
CKEDITOR.warn( 'selection-not-fake' );
bookmarks.isFake = 0;
}
}
- if ( bookmarks.isFake )
+ if ( bookmarks.isFake && !isTableSelection( ranges ) ) {
this.fake( node );
- else
+ } else {
this.selectRanges( ranges );
+ }
return this;
},
* Remove all the selection ranges from the document.
*/
removeAllRanges: function() {
- // Don't clear selection outside this selection's root (#11500).
+ // Don't clear selection outside this selection's root (http://dev.ckeditor.com/ticket/11500).
if ( this.getType() == CKEDITOR.SELECTION_NONE )
return;
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
offset = overrideOffset || ( icon && icon.offset );
bgsize = overrideBgsize || ( icon && icon.bgsize ) || '16px';
- // If we use apostrophes in background-image, we must escape apostrophes in path (just to be sure). (#13361)
+ // If we use apostrophes in background-image, we must escape apostrophes in path (just to be sure). (http://dev.ckeditor.com/ticket/13361)
if ( path )
path = path.replace( /'/g, '\\\'' );
-/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
var initialEnterMode = this._.enterMode;
// Before CKEditor 4.4 style knew nothing about editor, so in order to provide enterMode
- // which should be used developers were forced to hack the style object (see #10190).
+ // which should be used developers were forced to hack the style object (see http://dev.ckeditor.com/ticket/10190).
// Since CKEditor 4.4 style knows about editor (at least when it's being applied/removed), but we
// use _.enterMode for backward compatibility with those hacks.
// Note: we should not change style's enter mode if it was already set.
var styleVal = stylesDef[ style ],
text = ( style + ':' + styleVal ).replace( semicolonFixRegex, ';' );
- // Some browsers don't support 'inherit' property value, leave them intact. (#5242)
+ // Some browsers don't support 'inherit' property value, leave them intact. (http://dev.ckeditor.com/ticket/5242)
if ( styleVal == 'inherit' )
specialStylesText += text;
else
if ( !CKEDITOR.env.ie )
styleNode.$.normalize();
}
- // Style already inherit from parents, left just to clear up any internal overrides. (#5931)
+ // Style already inherit from parents, left just to clear up any internal overrides. (http://dev.ckeditor.com/ticket/5931)
else {
styleNode = new CKEDITOR.dom.element( 'span' );
styleRange.extractContents().appendTo( styleNode );
// Remove the bookmark nodes.
range.moveToBookmark( boundaryNodes );
- // Minimize the result range to exclude empty text nodes. (#5374)
+ // Minimize the result range to exclude empty text nodes. (http://dev.ckeditor.com/ticket/5374)
range.shrink( CKEDITOR.SHRINK_TEXT );
// Get inside the remaining element if range.shrink( TEXT ) has failed because of non-editable elements inside.
range.enlarge( CKEDITOR.ENLARGE_INLINE, 1 );
var bookmark = range.createBookmark(),
- startNode = bookmark.startNode;
+ startNode = bookmark.startNode,
+ alwaysRemoveElement = this._.definition.alwaysRemoveElement;
if ( range.collapsed ) {
var startPath = new CKEDITOR.dom.elementPath( startNode.getParent(), range.root ),
- // The topmost element in elementspatch which we should jump out of.
+ // The topmost element in elements path which we should jump out of.
boundaryElement;
-
for ( var i = 0, element; i < startPath.elements.length && ( element = startPath.elements[ i ] ); i++ ) {
// 1. If it's collaped inside text nodes, try to remove the style from the whole element.
//
// 2. Otherwise if it's collapsed on element boundaries, moving the selection
// outside the styles instead of removing the whole tag,
- // also make sure other inner styles were well preserverd.(#3309)
- if ( element == startPath.block || element == startPath.blockLimit )
+ // also make sure other inner styles were well preserved.(http://dev.ckeditor.com/ticket/3309)
+ //
+ // 3. Force removing the element even if it's an boundary element when alwaysRemoveElement is true.
+ // Without it, the links won't be unlinked if the cursor is placed right before/after it. (http://dev.ckeditor.com/ticket/13062)
+ if ( element == startPath.block || element == startPath.blockLimit ) {
break;
+ }
if ( this.checkElementRemovable( element ) ) {
var isStart;
- if ( range.collapsed && ( range.checkBoundaryOfElement( element, CKEDITOR.END ) || ( isStart = range.checkBoundaryOfElement( element, CKEDITOR.START ) ) ) ) {
+ if ( !alwaysRemoveElement && range.collapsed && ( range.checkBoundaryOfElement( element, CKEDITOR.END ) || ( isStart = range.checkBoundaryOfElement( element, CKEDITOR.START ) ) ) ) {
boundaryElement = element;
boundaryElement.match = isStart ? 'start' : 'end';
} else {
// no difference that they're separate entities in the DOM tree. So, merge
// them before removal.
element.mergeSiblings();
- if ( element.is( this.element ) )
+ if ( element.is( this.element ) ) {
removeFromElement.call( this, element );
- else
+ } else {
removeOverrides( element, getOverrides( this )[ element.getName() ] );
+ }
}
}
}
}
function applyObjectStyle( range ) {
- // Selected or parent element. (#9651)
+ // Selected or parent element. (http://dev.ckeditor.com/ticket/9651)
var start = range.getEnclosedNode() || range.getCommonAncestor( false, true ),
element = new CKEDITOR.dom.elementPath( start, range.root ).contains( this.element, 1 );
var iterator = range.createIterator();
iterator.enforceRealBlocks = true;
- // make recognize <br /> tag as a separator in ENTER_BR mode (#5121)
+ // make recognize <br /> tag as a separator in ENTER_BR mode (http://dev.ckeditor.com/ticket/5121)
if ( this._.enterMode )
iterator.enlargeBr = ( this._.enterMode != CKEDITOR.ENTER_BR );
// Replace the original block with new one, with special treatment
// for <pre> blocks to make sure content format is well preserved, and merging/splitting adjacent
- // when necessary. (#3188)
+ // when necessary. (http://dev.ckeditor.com/ticket/3188)
function replaceBlock( block, newBlock ) {
// Block is to be removed, create a temp element to
// save contents.
// Remove definition attributes/style from the elemnt.
for ( var attName in attributes ) {
- // The 'class' element value must match (#1318).
+ // The 'class' element value must match (http://dev.ckeditor.com/ticket/1318).
if ( ( attName == 'class' || this._.definition.fullMatch ) && element.getAttribute( attName ) != normalizeProperty( attName, attributes[ attName ] ) )
continue;
- // Do not touch data-* attributes (#11011) (#11258).
+ // Do not touch data-* attributes (http://dev.ckeditor.com/ticket/11011) (http://dev.ckeditor.com/ticket/11258).
if ( keepDataAttrs && attName.slice( 0, 5 ) == 'data-' )
continue;
}
for ( var styleName in styles ) {
- // Full match style insist on having fully equivalence. (#5018)
+ // Full match style insist on having fully equivalence. (http://dev.ckeditor.com/ticket/5018)
if ( this._.definition.fullMatch && element.getStyle( styleName ) != normalizeProperty( styleName, styles[ styleName ], true ) )
continue;
// Create the element.
el = new CKEDITOR.dom.element( elementName, targetDocument );
- // #6226: attributes should be copied before the new ones are applied
+ // http://dev.ckeditor.com/ticket/6226: attributes should be copied before the new ones are applied
if ( element )
element.copyAttributes( el );
// is treated as a wildcard which will match any value.
// @param {Object/String} source
// @param {Object/String} target
+ // @returns {Boolean}
function compareCssText( source, target ) {
+ function filter( string, propertyName ) {
+ // In case of font-families we'll skip quotes. (http://dev.ckeditor.com/ticket/10750)
+ return propertyName.toLowerCase() == 'font-family' ? string.replace( /["']/g, '' ) : string;
+ }
+
if ( typeof source == 'string' )
source = CKEDITOR.tools.parseCssText( source );
if ( typeof target == 'string' )
target = CKEDITOR.tools.parseCssText( target, true );
for ( var name in source ) {
- if ( !( name in target && ( target[ name ] == source[ name ] || source[ name ] == 'inherit' || target[ name ] == 'inherit' ) ) )
+ if ( !( name in target ) ) {
return false;
+ }
+
+ if ( !( filter( target[ name ], name ) == filter( source[ name ], name ) ||
+ source[ name ] == 'inherit' ||
+ target[ name ] == 'inherit' ) ) {
+ return false;
+ }
}
return true;
}
var doc = selection.document,
ranges = selection.getRanges(),
func = remove ? this.removeFromRange : this.applyToRange,
- range;
+ originalRanges,
+ range,
+ i;
+
+ // In case of fake table selection, we would like to apply all styles and then select
+ // the original ranges. Otherwise browsers would complain about discontiguous selection.
+ if ( selection.isFake && selection.isInTable() ) {
+ originalRanges = [];
+
+ for ( i = 0; i < ranges.length; i++ ) {
+ originalRanges.push( ranges[ i ].clone() );
+ }
+ }
var iterator = ranges.createIterator();
while ( ( range = iterator.getNextRange() ) )
func.call( this, range, editor );
- selection.selectRanges( ranges );
+ selection.selectRanges( originalRanges || ranges );
doc.removeCustomData( 'doc_processing_style' );
}
} )();
*/
CKEDITOR.stylesSet = new CKEDITOR.resourceManager( '', 'stylesSet' );
-// Backward compatibility (#5025).
+// Backward compatibility (http://dev.ckeditor.com/ticket/5025).
CKEDITOR.addStylesSet = CKEDITOR.tools.bind( CKEDITOR.stylesSet.add, CKEDITOR.stylesSet );
CKEDITOR.loadStylesSet = function( name, url, callback ) {
CKEDITOR.stylesSet.addExternal( name, url, '' );
return;
}
- // #5352 Allow to define the styles directly in the config object
+ // http://dev.ckeditor.com/ticket/5352 Allow to define the styles directly in the config object
if ( configStyleSet instanceof Array ) {
editor._.stylesDefinitions = configStyleSet;
callback( configStyleSet );
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
( function() {
- var cache = {},
- rePlaceholder = /{([^}]+)}/g,
- reEscapableChars = /([\\'])/g,
- reNewLine = /\n/g,
- reCarriageReturn = /\r/g;
+ var rePlaceholder = /{([^}]+)}/g;
/**
* Lightweight template used to build the output string from variables.
* @param {String} source The template source.
*/
CKEDITOR.template = function( source ) {
- // Builds an optimized function body for the output() method, focused on performance.
- // For example, if we have this "source":
- // '<div style="{style}">{editorName}</div>'
- // ... the resulting function body will be (apart from the "buffer" handling):
- // return [ '<div style="', data['style'] == undefined ? '{style}' : data['style'], '">', data['editorName'] == undefined ? '{editorName}' : data['editorName'], '</div>' ].join('');
+ /**
+ * The current template source.
+ *
+ * @readonly
+ * @member CKEDITOR.template
+ * @property {String}
+ */
+ this.source = String( source );
+ };
- // Try to read from the cache.
- if ( cache[ source ] )
- this.output = cache[ source ];
- else {
- var fn = source
- // Escape chars like slash "\" or single quote "'".
- .replace( reEscapableChars, '\\$1' )
- .replace( reNewLine, '\\n' )
- .replace( reCarriageReturn, '\\r' )
- // Inject the template keys replacement.
- .replace( rePlaceholder, function( m, key ) {
- return "',data['" + key + "']==undefined?'{" + key + "}':data['" + key + "'],'";
- } );
+ /**
+ * Processes the template, filling its variables with the provided data.
+ *
+ * @method
+ * @member CKEDITOR.template
+ * @param {Object} data An object containing properties whose values will be
+ * used to fill the template variables. The property names must match the
+ * template variables names. Variables without matching properties will be
+ * kept untouched.
+ * @param {Array} [buffer] An array that the output data will be pushed into.
+ * The number of entries appended to the array is unknown.
+ * @returns {String/Number} If `buffer` has not been provided, the processed
+ * template output data; otherwise the new length of `buffer`.
+ */
+ CKEDITOR.template.prototype.output = function( data, buffer ) {
+ var output = this.source.replace( rePlaceholder, function( fullMatch, dataKey ) {
+ return data[ dataKey ] !== undefined ? data[ dataKey ] : fullMatch;
+ } );
- fn = "return buffer?buffer.push('" + fn + "'):['" + fn + "'].join('');";
- this.output = cache[ source ] = Function( 'data', 'buffer', fn );
- }
+ return buffer ? buffer.push( output ) : output;
};
} )();
-
-/**
- * Processes the template, filling its variables with the provided data.
- *
- * @method output
- * @param {Object} data An object containing properties which values will be
- * used to fill the template variables. The property names must match the
- * template variables names. Variables without matching properties will be
- * kept untouched.
- * @param {Array} [buffer] An array into which the output data will be pushed into.
- * The number of entries appended to the array is unknown.
- * @returns {String/Number} If `buffer` has not been provided, the processed
- * template output data, otherwise the new length of `buffer`.
- */
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
} );
},
+ /**
+ * Normalizes hexadecimal notation so that the color string is always 6 characters long and lowercase.
+ *
+ * @param {String} styleText The style data (or just a string containing hex colors) to be converted.
+ * @returns {String} The style data with hex colors normalized.
+ */
+ normalizeHex: function( styleText ) {
+ return styleText.replace( /#(([0-9a-f]{3}){1,2})($|;|\s+)/gi, function( match, hexColor, hexColorPart, separator ) {
+ var normalizedHexColor = hexColor.toLowerCase();
+ if ( normalizedHexColor.length == 3 ) {
+ var parts = normalizedHexColor.split( '' );
+ normalizedHexColor = [ parts[ 0 ], parts[ 0 ], parts[ 1 ], parts[ 1 ], parts[ 2 ], parts[ 2 ] ].join( '' );
+ }
+ return '#' + normalizedHexColor + separator;
+ } );
+ },
+
/**
* Turns inline style text properties into one hash.
*
// Injects the style in a temporary span object, so the browser parses it,
// retrieving its final format.
var temp = new CKEDITOR.dom.element( 'span' );
- temp.setAttribute( 'style', styleText );
- styleText = CKEDITOR.tools.convertRgbToHex( temp.getAttribute( 'style' ) || '' );
+ styleText = temp.setAttribute( 'style', styleText ).getAttribute( 'style' ) || '';
+ }
+
+ // Normalize colors.
+ if ( styleText ) {
+ styleText = CKEDITOR.tools.normalizeHex( CKEDITOR.tools.convertRgbToHex( styleText ) );
}
- // IE will leave a single semicolon when failed to parse the style text. (#3891)
+ // IE will leave a single semicolon when failed to parse the style text. (http://dev.ckeditor.com/ticket/3891)
if ( !styleText || styleText == ';' )
return retval;
styleText.replace( /"/g, '"' ).replace( /\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value ) {
if ( normalize ) {
name = name.toLowerCase();
- // Normalize font-family property, ignore quotes and being case insensitive. (#7322)
- // http://www.w3.org/TR/css3-fonts/#font-family-the-font-family-property
+ // Drop extra whitespacing from font-family.
if ( name == 'font-family' )
- value = value.toLowerCase().replace( /["']/g, '' ).replace( /\s*,\s*/g, ',' );
+ value = value.replace( /\s*,\s*/g, ',' );
value = CKEDITOR.tools.trim( value );
}
return false;
},
+ /**
+ * Converts a keystroke to its string representation. Returns an object with two fields:
+ *
+ * * `display` – A string that should be used for visible labels.
+ * For Mac devices it uses `⌥` for `ALT`, `⇧` for `SHIFT` and `⌘` for `COMMAND`.
+ * * `aria` – A string that should be used for ARIA descriptions.
+ * It does not use special characters such as `⌥`, `⇧` or `⌘`.
+ *
+ * var lang = editor.lang.common.keyboard;
+ * var shortcut = CKEDITOR.tools.keystrokeToString( lang, CKEDITOR.CTRL + 88 );
+ * console.log( shortcut.display ); // 'CTRL + X', on Mac '⌘ + X'.
+ * console.log( shortcut.aria ); // 'CTRL + X', on Mac 'COMMAND + X'.
+ *
+ * @since 4.6.0
+ * @param {Object} lang A language object with the key name translation.
+ * @param {Number} keystroke The keystroke to convert.
+ * @returns {{display: String, aria: String}}
+ */
+ keystrokeToString: function( lang, keystroke ) {
+ var special = keystroke & 0xFF0000,
+ key = keystroke & 0x00FFFF,
+ isMac = CKEDITOR.env.mac,
+ CTRL = 17,
+ CMD = 224,
+ ALT = 18,
+ SHIFT = 16,
+ display = [],
+ aria = [];
+
+
+ if ( special & CKEDITOR.CTRL ) {
+ display.push( isMac ? '⌘' : lang[ CTRL ] );
+ aria.push( isMac ? lang[ CMD ] : lang[ CTRL ] );
+ }
+
+ if ( special & CKEDITOR.ALT ) {
+ display.push( isMac ? '⌥' : lang[ ALT ] );
+ aria.push( lang[ ALT ] );
+ }
+
+ if ( special & CKEDITOR.SHIFT ) {
+ display.push( isMac ? '⇧' : lang[ SHIFT ] );
+ aria.push( lang[ SHIFT ] );
+ }
+
+ if ( key ) {
+ if ( lang[ key ] ) {
+ display.push( lang[ key ] );
+ aria.push( lang[ key ] );
+ } else {
+ display.push( String.fromCharCode( key ) );
+ aria.push( String.fromCharCode( key ) );
+ }
+ }
+
+ return {
+ display: display.join( '+' ),
+ aria: aria.join( '+' )
+ };
+ },
+
/**
* The data URI of a transparent image. May be used e.g. in HTML as an image source or in CSS in `url()`.
*
}
return token;
+ },
+
+ /**
+ * Returns an escaped CSS selector. `CSS.escape()` is used if defined, leading digit is escaped otherwise.
+ *
+ * @since 4.5.10
+ * @param {String} selector A CSS selector to escape.
+ * @returns {String} An escaped selector.
+ */
+ escapeCss: function( selector ) {
+ // Invalid input.
+ if ( !selector ) {
+ return '';
+ }
+
+ // CSS.escape() can be used.
+ if ( window.CSS && CSS.escape ) {
+ return CSS.escape( selector );
+ }
+
+ // Simple leading digit escape.
+ if ( !isNaN( parseInt( selector.charAt( 0 ), 10 ) ) ) {
+ return '\\3' + selector.charAt( 0 ) + ' ' + selector.substring( 1, selector.length );
+ }
+
+ return selector;
+ },
+
+ /**
+ * Detects which mouse button generated a given DOM event.
+ *
+ * @since 4.7.3
+ * @param {CKEDITOR.dom.event} evt DOM event.
+ * @returns {Number|Boolean} Returns a number indicating the mouse button or `false`
+ * if the mouse button cannot be determined.
+ */
+ getMouseButton: function( evt ) {
+ var evtData = evt.data,
+ domEvent = evtData && evtData.$;
+
+ if ( !( evtData && domEvent ) ) {
+ // Added in case when there's no data available. That's the case in some unit test in built version which
+ // mock event but doesn't put data object.
+ return false;
+ }
+
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {
+ if ( domEvent.button === 4 ) {
+ return CKEDITOR.MOUSE_BUTTON_MIDDLE;
+ } else if ( domEvent.button === 1 ) {
+ return CKEDITOR.MOUSE_BUTTON_LEFT;
+ } else {
+ return CKEDITOR.MOUSE_BUTTON_RIGHT;
+ }
+ }
+
+ return domEvent.button;
+ },
+
+ /**
+ * A set of functions for operations on styles.
+ *
+ * @property {CKEDITOR.tools.style}
+ */
+ style: {
+ /**
+ * Methods to parse miscellaneous CSS properties.
+ *
+ * @property {CKEDITOR.tools.style.parse}
+ * @member CKEDITOR.tools.style
+ */
+ parse: {
+ // Color list based on https://www.w3.org/TR/css-color-4/#named-colors.
+ _colors: {
+ aliceblue: '#F0F8FF',
+ antiquewhite: '#FAEBD7',
+ aqua: '#00FFFF',
+ aquamarine: '#7FFFD4',
+ azure: '#F0FFFF',
+ beige: '#F5F5DC',
+ bisque: '#FFE4C4',
+ black: '#000000',
+ blanchedalmond: '#FFEBCD',
+ blue: '#0000FF',
+ blueviolet: '#8A2BE2',
+ brown: '#A52A2A',
+ burlywood: '#DEB887',
+ cadetblue: '#5F9EA0',
+ chartreuse: '#7FFF00',
+ chocolate: '#D2691E',
+ coral: '#FF7F50',
+ cornflowerblue: '#6495ED',
+ cornsilk: '#FFF8DC',
+ crimson: '#DC143C',
+ cyan: '#00FFFF',
+ darkblue: '#00008B',
+ darkcyan: '#008B8B',
+ darkgoldenrod: '#B8860B',
+ darkgray: '#A9A9A9',
+ darkgreen: '#006400',
+ darkgrey: '#A9A9A9',
+ darkkhaki: '#BDB76B',
+ darkmagenta: '#8B008B',
+ darkolivegreen: '#556B2F',
+ darkorange: '#FF8C00',
+ darkorchid: '#9932CC',
+ darkred: '#8B0000',
+ darksalmon: '#E9967A',
+ darkseagreen: '#8FBC8F',
+ darkslateblue: '#483D8B',
+ darkslategray: '#2F4F4F',
+ darkslategrey: '#2F4F4F',
+ darkturquoise: '#00CED1',
+ darkviolet: '#9400D3',
+ deeppink: '#FF1493',
+ deepskyblue: '#00BFFF',
+ dimgray: '#696969',
+ dimgrey: '#696969',
+ dodgerblue: '#1E90FF',
+ firebrick: '#B22222',
+ floralwhite: '#FFFAF0',
+ forestgreen: '#228B22',
+ fuchsia: '#FF00FF',
+ gainsboro: '#DCDCDC',
+ ghostwhite: '#F8F8FF',
+ gold: '#FFD700',
+ goldenrod: '#DAA520',
+ gray: '#808080',
+ green: '#008000',
+ greenyellow: '#ADFF2F',
+ grey: '#808080',
+ honeydew: '#F0FFF0',
+ hotpink: '#FF69B4',
+ indianred: '#CD5C5C',
+ indigo: '#4B0082',
+ ivory: '#FFFFF0',
+ khaki: '#F0E68C',
+ lavender: '#E6E6FA',
+ lavenderblush: '#FFF0F5',
+ lawngreen: '#7CFC00',
+ lemonchiffon: '#FFFACD',
+ lightblue: '#ADD8E6',
+ lightcoral: '#F08080',
+ lightcyan: '#E0FFFF',
+ lightgoldenrodyellow: '#FAFAD2',
+ lightgray: '#D3D3D3',
+ lightgreen: '#90EE90',
+ lightgrey: '#D3D3D3',
+ lightpink: '#FFB6C1',
+ lightsalmon: '#FFA07A',
+ lightseagreen: '#20B2AA',
+ lightskyblue: '#87CEFA',
+ lightslategray: '#778899',
+ lightslategrey: '#778899',
+ lightsteelblue: '#B0C4DE',
+ lightyellow: '#FFFFE0',
+ lime: '#00FF00',
+ limegreen: '#32CD32',
+ linen: '#FAF0E6',
+ magenta: '#FF00FF',
+ maroon: '#800000',
+ mediumaquamarine: '#66CDAA',
+ mediumblue: '#0000CD',
+ mediumorchid: '#BA55D3',
+ mediumpurple: '#9370DB',
+ mediumseagreen: '#3CB371',
+ mediumslateblue: '#7B68EE',
+ mediumspringgreen: '#00FA9A',
+ mediumturquoise: '#48D1CC',
+ mediumvioletred: '#C71585',
+ midnightblue: '#191970',
+ mintcream: '#F5FFFA',
+ mistyrose: '#FFE4E1',
+ moccasin: '#FFE4B5',
+ navajowhite: '#FFDEAD',
+ navy: '#000080',
+ oldlace: '#FDF5E6',
+ olive: '#808000',
+ olivedrab: '#6B8E23',
+ orange: '#FFA500',
+ orangered: '#FF4500',
+ orchid: '#DA70D6',
+ palegoldenrod: '#EEE8AA',
+ palegreen: '#98FB98',
+ paleturquoise: '#AFEEEE',
+ palevioletred: '#DB7093',
+ papayawhip: '#FFEFD5',
+ peachpuff: '#FFDAB9',
+ peru: '#CD853F',
+ pink: '#FFC0CB',
+ plum: '#DDA0DD',
+ powderblue: '#B0E0E6',
+ purple: '#800080',
+ rebeccapurple: '#663399',
+ red: '#FF0000',
+ rosybrown: '#BC8F8F',
+ royalblue: '#4169E1',
+ saddlebrown: '#8B4513',
+ salmon: '#FA8072',
+ sandybrown: '#F4A460',
+ seagreen: '#2E8B57',
+ seashell: '#FFF5EE',
+ sienna: '#A0522D',
+ silver: '#C0C0C0',
+ skyblue: '#87CEEB',
+ slateblue: '#6A5ACD',
+ slategray: '#708090',
+ slategrey: '#708090',
+ snow: '#FFFAFA',
+ springgreen: '#00FF7F',
+ steelblue: '#4682B4',
+ tan: '#D2B48C',
+ teal: '#008080',
+ thistle: '#D8BFD8',
+ tomato: '#FF6347',
+ turquoise: '#40E0D0',
+ violet: '#EE82EE',
+ wheat: '#F5DEB3',
+ white: '#FFFFFF',
+ whitesmoke: '#F5F5F5',
+ yellow: '#FFFF00',
+ yellowgreen: '#9ACD32'
+ },
+
+ _borderStyle: [
+ 'none',
+ 'hidden',
+ 'dotted',
+ 'dashed',
+ 'solid',
+ 'double',
+ 'groove',
+ 'ridge',
+ 'inset',
+ 'outset'
+ ],
+
+ _widthRegExp: /^(thin|medium|thick|[\+-]?\d+(\.\d+)?[a-z%]+|[\+-]?0+(\.0+)?|\.\d+[a-z%]+)$/,
+
+ _rgbaRegExp: /rgba?\(\s*\d+%?\s*,\s*\d+%?\s*,\s*\d+%?\s*(?:,\s*[0-9.]+\s*)?\)/gi,
+
+ _hslaRegExp: /hsla?\(\s*[0-9.]+\s*,\s*\d+%\s*,\s*\d+%\s*(?:,\s*[0-9.]+\s*)?\)/gi,
+
+ /**
+ * Parses the `value` used as a `background` property shorthand and returns information as an object.
+ *
+ * **Note:** Currently only the `color` property is extracted. Any other parts will go into the `unprocessed` property.
+ *
+ * var background = CKEDITOR.tools.style.parse.background( '#0C0 url(foo.png)' );
+ * console.log( background );
+ * // Logs: { color: '#0C0', unprocessed: 'url(foo.png)' }
+ *
+ * @param {String} value The value of the `background` property.
+ * @returns {Object} An object with information extracted from the background.
+ * @returns {String} return.color The **first** color value found. The color format remains the same as in input.
+ * @returns {String} return.unprocessed The remaining part of the `value` that has not been processed.
+ * @member CKEDITOR.tools.style.parse
+ */
+ background: function( value ) {
+ var ret = {},
+ colors = this._findColor( value );
+
+ if ( colors.length ) {
+ ret.color = colors[ 0 ];
+
+ CKEDITOR.tools.array.forEach( colors, function( colorToken ) {
+ value = value.replace( colorToken, '' );
+ } );
+ }
+
+ value = CKEDITOR.tools.trim( value );
+
+ if ( value ) {
+ // If anything was left unprocessed include it as unprocessed part.
+ ret.unprocessed = value;
+ }
+
+ return ret;
+ },
+
+ /**
+ * Parses the `margin` CSS property shorthand format.
+ *
+ * console.log( CKEDITOR.tools.parse.margin( '3px 0 2' ) );
+ * // Logs: { top: "3px", right: "0", bottom: "2", left: "0" }
+ *
+ * @param {String} value The `margin` property value.
+ * @returns {Object}
+ * @returns {Number} return.top Top margin.
+ * @returns {Number} return.right Right margin.
+ * @returns {Number} return.bottom Bottom margin.
+ * @returns {Number} return.left Left margin.
+ * @member CKEDITOR.tools.style.parse
+ */
+ margin: function( value ) {
+ var ret = {};
+
+ var widths = value.match( /(?:\-?[\.\d]+(?:%|\w*)|auto|inherit|initial|unset)/g ) || [ '0px' ];
+
+ switch ( widths.length ) {
+ case 1:
+ mapStyles( [ 0, 0, 0, 0 ] );
+ break;
+ case 2:
+ mapStyles( [ 0, 1, 0, 1 ] );
+ break;
+ case 3:
+ mapStyles( [ 0, 1, 2, 1 ] );
+ break;
+ case 4:
+ mapStyles( [ 0, 1, 2, 3 ] );
+ break;
+ }
+
+ function mapStyles( map ) {
+ ret.top = widths[ map[ 0 ] ];
+ ret.right = widths[ map[ 1 ] ];
+ ret.bottom = widths[ map[ 2 ] ];
+ ret.left = widths[ map[ 3 ] ];
+ }
+
+ return ret;
+ },
+
+ /**
+ * Parses the `border` CSS property shorthand format.
+ * This CSS property does not support inheritance (https://www.w3.org/TR/css3-background/#the-border-shorthands).
+ *
+ * console.log( CKEDITOR.tools.style.parse.border( '3px solid #ffeedd' ) );
+ * // Logs: { width: "3px", style: "solid", color: "#ffeedd" }
+ *
+ * @param {String} value The `border` property value.
+ * @returns {Object}
+ * @returns {String} return.width The border-width attribute.
+ * @returns {String} return.style The border-style attribute.
+ * @returns {String} return.color The border-color attribute.
+ * @member CKEDITOR.tools.style.parse
+ */
+ border: function( value ) {
+ var ret = {},
+ input = value.split( /\s+/ );
+
+ CKEDITOR.tools.array.forEach( input, function( val ) {
+ if ( !ret.color ) {
+ var parseColor = CKEDITOR.tools.style.parse._findColor( val );
+ if ( parseColor.length ) {
+ ret.color = parseColor[ 0 ];
+ return;
+ }
+ }
+
+ if ( !ret.style ) {
+ if ( CKEDITOR.tools.indexOf( CKEDITOR.tools.style.parse._borderStyle, val ) !== -1 ) {
+ ret.style = val;
+ return;
+ }
+ }
+
+ if ( !ret.width ) {
+ if ( CKEDITOR.tools.style.parse._widthRegExp.test( val ) ) {
+ ret.width = val;
+ return;
+ }
+ }
+
+ } );
+ return ret;
+ },
+
+ /**
+ * Searches the `value` for any CSS color occurrences and returns it.
+ *
+ * @private
+ * @param {String} value
+ * @returns {String[]} An array of matched results.
+ * @member CKEDITOR.tools.style.parse
+ */
+ _findColor: function( value ) {
+ var ret = [],
+ arrayTools = CKEDITOR.tools.array;
+
+
+ // Check for rgb(a).
+ ret = ret.concat( value.match( this._rgbaRegExp ) || [] );
+
+ // Check for hsl(a).
+ ret = ret.concat( value.match( this._hslaRegExp ) || [] );
+
+ ret = ret.concat( arrayTools.filter( value.split( /\s+/ ), function( colorEntry ) {
+ // Check for hex format.
+ if ( colorEntry.match( /^\#[a-f0-9]{3}(?:[a-f0-9]{3})?$/gi ) ) {
+ return true;
+ }
+
+ // Check for preset names.
+ return colorEntry.toLowerCase() in CKEDITOR.tools.style.parse._colors;
+ } ) );
+
+ return ret;
+ }
+ }
+ },
+
+ /**
+ * A set of array helpers.
+ *
+ * @property {CKEDITOR.tools.array}
+ * @member CKEDITOR.tools
+ */
+ array: {
+ /**
+ * Returns a copy of `array` filtered using the `fn` function. Any elements that the `fn` will return `false` for
+ * will get removed from the returned array.
+ *
+ * var filtered = this.array.filter( [ 0, 1, 2, 3 ], function( value ) {
+ * // Leave only values equal or greater than 2.
+ * return value >= 2;
+ * } );
+ * console.log( filtered );
+ * // Logs: [ 2, 3 ]
+ *
+ * @param {Array} array
+ * @param {Function} fn A function that gets called with each `array` item. Any item that `fn`
+ * returned a `false`-alike value for will be filtered out of the `array`.
+ * @param {Mixed} fn.value The currently iterated array value.
+ * @param {Number} fn.index The index of the currently iterated value in an array.
+ * @param {Array} fn.array The original array passed as the `array` variable.
+ * @param {Mixed} [thisArg=undefined] A context object for `fn`.
+ * @returns {Array} The filtered array.
+ * @member CKEDITOR.tools.array
+ */
+ filter: function( array, fn, thisArg ) {
+ var ret = [];
+
+ this.forEach( array, function( val, i ) {
+ if ( fn.call( thisArg, val, i, array ) ) {
+ ret.push( val );
+ }
+ } );
+
+ return ret;
+ },
+
+ /**
+ * Iterates over every element in the `array`.
+ *
+ * @param {Array} array An array to be iterated over.
+ * @param {Function} fn The function called for every `array` element.
+ * @param {Mixed} fn.value The currently iterated array value.
+ * @param {Number} fn.index The index of the currently iterated value in an array.
+ * @param {Array} fn.array The original array passed as an `array` variable.
+ * @param {Mixed} [thisArg=undefined] The context object for `fn`.
+ * @member CKEDITOR.tools.array
+ */
+ forEach: function( array, fn, thisArg ) {
+ var len = array.length,
+ i;
+
+ for ( i = 0; i < len; i++ ) {
+ fn.call( thisArg, array[ i ], i, array );
+ }
+ },
+
+ /**
+ * Applies a function to each element of an array and returns the array of results in the same order.
+ * Note the order of the parameters.
+ *
+ * @param {Array} array An array of elements that `fn` is applied on.
+ * @param {Function} fn A function with the signature `a -> b`.
+ * @param {Mixed} [thisArg=undefined] The context object for `fn`.
+ * @returns {Array} An array of mapped elements.
+ * @member CKEDITOR.tools.array
+ * @since 4.6.2
+ */
+ map: function( array, fn, thisArg ) {
+ var result = [];
+ for ( var i = 0; i < array.length; i++ ) {
+ result.push( fn.call( thisArg, array[ i ], i, array ) );
+ }
+ return result;
+ },
+
+ /**
+ * Applies a function against each value in an array storing the result in an accumulator passed to the next iteration.
+ * Note the order of the parameters.
+ *
+ * @param {Array} array An array of elements that `fn` is applied on.
+ * @param {Function} fn A function with the signature `(accumulator, a, index, array) -> b`.
+ * @param {Mixed} initial Initial value of the accumulator.
+ * @param {Mixed} [thisArg=undefined] The context object for `fn`.
+ * @returns {Mixed} The final value of the accumulator.
+ * @member CKEDITOR.tools.array
+ * @since 4.6.2
+ */
+ reduce: function( array, fn, initial, thisArg ) {
+ var acc = initial;
+ for ( var i = 0; i < array.length; i++ ) {
+ acc = fn.call( thisArg, acc, array[ i ], i, array );
+ }
+ return acc;
+ }
+ },
+
+ /**
+ * A set of object helpers.
+ *
+ * @property {CKEDITOR.tools.object}
+ * @member CKEDITOR.tools
+ */
+ object: {
+ /**
+ * Returns the first key from `obj` which has a given `value`.
+ *
+ * @param {Object} obj An object whose `key` is looked for.
+ * @param {Mixed} value An object's `value` to be looked for.
+ * @returns {String/null} Matched `key` or `null` if not found.
+ * @member CKEDITOR.tools.object
+ */
+
+ findKey: function( obj, value ) {
+ if ( typeof obj !== 'object' ) {
+ return null;
+ }
+
+ var key;
+
+ for ( key in obj ) {
+ if ( obj[ key ] === value ) {
+ return key;
+ }
+ }
+
+ return null;
+ }
}
};
return result;
}
+
+ /**
+ * @member CKEDITOR.tools.array
+ * @method indexOf
+ * @inheritdoc CKEDITOR.tools#indexOf
+ */
+ CKEDITOR.tools.array.indexOf = CKEDITOR.tools.indexOf;
+
+ /**
+ * @member CKEDITOR.tools.array
+ * @method isArray
+ * @inheritdoc CKEDITOR.tools#isArray
+ */
+ CKEDITOR.tools.array.isArray = CKEDITOR.tools.isArray;
+
+ /**
+ * Left mouse button.
+ *
+ * @since 4.7.3
+ * @readonly
+ * @property {Number} [=0]
+ * @member CKEDITOR
+ */
+ CKEDITOR.MOUSE_BUTTON_LEFT = 0;
+
+ /**
+ * Middle mouse button.
+ *
+ * @since 4.7.3
+ * @readonly
+ * @property {Number} [=1]
+ * @member CKEDITOR
+ */
+ CKEDITOR.MOUSE_BUTTON_MIDDLE = 1;
+
+ /**
+ * Right mouse button.
+ *
+ * @since 4.7.3
+ * @readonly
+ * @property {Number} [=2]
+ * @member CKEDITOR
+ */
+ CKEDITOR.MOUSE_BUTTON_RIGHT = 2;
+
+ /**
+ * The namespace containing functions to work on CSS properties.
+ *
+ * @since 4.6.1
+ * @class CKEDITOR.tools.style
+ */
+
+ /**
+ * The namespace with helper functions to parse some common CSS properties.
+ *
+ * @since 4.6.1
+ * @class CKEDITOR.tools.style.parse
+ */
+
+ /**
+ * The namespace with helper functions and polyfills for arrays.
+ *
+ * @since 4.6.1
+ * @class CKEDITOR.tools.array
+ */
+
+ /**
+ * The namespace with helper functions and polyfills for objects.
+ *
+ * @since 4.7.1
+ * @class CKEDITOR.tools.object
+ */
} )();
// PACKAGER_RENAME( CKEDITOR.tools )
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
af.js Found: 62 Missing: 4
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Middel',
alignBottom: 'Onder',
alignNone: 'Geen',
- invalidValue : 'Ongeldige waarde',
+ invalidValue: 'Ongeldige waarde',
invalidHeight: 'Hoogte moet \'n getal wees',
invalidWidth: 'Breedte moet \'n getal wees.',
invalidCssLength: 'Die waarde vir die "%1" veld moet \'n posetiewe getal wees met of sonder \'n geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).',
cssLengthTooltip: 'Voeg \'n getal wert in pixel in, of \'n waarde met geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nie beskikbaar nie</span>'
+ unavailable: '%1<span class="cke_accessibility">, nie beskikbaar nie</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Skuif',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Spasie',
+ 35: 'Einde',
+ 36: 'Tuis',
+ 46: 'Verwyder',
+ 224: 'Bevel'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Sleutel kombenasie'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'وسط',
alignBottom: 'أسفل',
alignNone: 'None', // MISSING
- invalidValue : 'قيمة غير مفبولة.',
+ invalidValue: 'قيمة غير مفبولة.',
invalidHeight: 'الارتفاع يجب أن يكون عدداً.',
invalidWidth: 'العرض يجب أن يكون عدداً.',
invalidCssLength: 'قيمة الخانة المخصصة لـ "%1" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة CSS قياس مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).',
cssLengthTooltip: 'أدخل رقما للقيمة بالبكسل أو رقما بوحدة CSS مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, غير متاح</span>'
+ unavailable: '%1<span class="cke_accessibility">, غير متاح</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
--- /dev/null
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the
+ * Azerbaijani language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'az' ] = {
+ // ARIA description.
+ editor: 'Mətn Redaktoru',
+ editorPanel: 'Mətn Redaktorun Paneli',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Yardım üçün ALT 0 düymələrini basın',
+
+ browseServer: 'Fayların siyahı',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Serverə yüklə',
+ uploadSubmit: 'Göndər',
+ image: 'Şəkil',
+ flash: 'Flash',
+ form: 'Forma',
+ checkbox: 'Çekboks',
+ radio: 'Radio düyməsi',
+ textField: 'Mətn xanası',
+ textarea: 'Mətn',
+ hiddenField: 'Gizli xana',
+ button: 'Düymə',
+ select: 'Opsiyaların seçilməsi',
+ imageButton: 'Şəkil tipli düymə',
+ notSet: '<seçilməmiş>',
+ id: 'Id',
+ name: 'Ad',
+ langDir: 'Yaziların istiqaməti',
+ langDirLtr: 'Soldan sağa (LTR)',
+ langDirRtl: 'Sağdan sola (RTL)',
+ langCode: 'Dilin kodu',
+ longDescr: 'URL-ın ətraflı izahı',
+ cssClass: 'CSS klassları',
+ advisoryTitle: 'Başlıq',
+ cssStyle: 'CSS',
+ ok: 'Tədbiq et',
+ cancel: 'İmtina et',
+ close: 'Bağla',
+ preview: 'Baxış',
+ resize: 'Eni dəyiş',
+ generalTab: 'Əsas',
+ advancedTab: 'Əlavə',
+ validateNumberFailed: 'Rəqəm deyil.',
+ confirmNewPage: 'Yadda saxlanılmamış dəyişikliklər itiriləcək. Davam etmək istədiyinizə əminsinizmi?',
+ confirmCancel: 'Dəyişikliklər edilib. Pəncərəni bağlamaq istəyirsizə əminsinizmi?',
+ options: 'Seçimlər',
+ target: 'Hədəf çərçivə',
+ targetNew: 'Yeni pəncərə (_blank)',
+ targetTop: 'Əsas pəncərə (_top)',
+ targetSelf: 'Carı pəncərə (_self)',
+ targetParent: 'Ana pəncərə (_parent)',
+ langDirLTR: 'Soldan sağa (LTR)',
+ langDirRTL: 'Sağdan sola (RTL)',
+ styles: 'Üslub',
+ cssClasses: 'Üslub klası',
+ width: 'En',
+ height: 'Uzunluq',
+ align: 'Yerləşmə',
+ alignLeft: 'Sol',
+ alignRight: 'Sağ',
+ alignCenter: 'Mərkəz',
+ alignJustify: 'Eninə görə',
+ alignTop: 'Yuxarı',
+ alignMiddle: 'Orta',
+ alignBottom: 'Aşağı',
+ alignNone: 'Yoxdur',
+ invalidValue: 'Yanlışdır.',
+ invalidHeight: 'Hündürlük rəqəm olmalıdır.',
+ invalidWidth: 'En rəqəm olmalıdır.',
+ invalidCssLength: '"%1" xanasında göstərilən məzmun tam və müsbət olmalıdır, CSS-də olan ölçü vahidlərin (px, %, in, cm, mm, em, ex, pt, or pc) istifadısinə icazə verilir.',
+ invalidHtmlLength: '"%1" xanasında göstərilən məzmun tam və müsbət olmalıdır HTML-də olan ölçü vahidlərin (px və ya %) istifadısinə icazə verilir.',
+ invalidInlineStyle: 'Teq içində olan üslub "ad : məzmun" şəklidə, nöqtə-verqül işarəsi ilə bitməlidir',
+ cssLengthTooltip: 'Piksel sayı və ya digər CSS ölçü vahidləri (px, %, in, cm, mm, em, ex, pt, or pc) daxil edin.',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, mövcud deyil</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Boşluq',
+ 35: 'Son',
+ 36: 'Evə',
+ 46: 'Sil',
+ 224: 'Əmr'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Qısayol düymələri'
+ }
+};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'По средата',
alignBottom: 'Долу',
alignNone: 'Без подравняване',
- invalidValue : 'Невалидна стойност.',
+ invalidValue: 'Невалидна стойност.',
invalidHeight: 'Височината трябва да е число.',
invalidWidth: 'Ширина требе да е число.',
invalidCssLength: 'Стойността на полето "%1" трябва да бъде положително число с или без валидна CSS измервателна единица (px, %, in, cm, mm, em, ex, pt, или pc).',
cssLengthTooltip: 'Въведете числена стойност в пиксели или друга валидна CSS единица (px, %, in, cm, mm, em, ex, pt, или pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, недостъпно</span>'
+ unavailable: '%1<span class="cke_accessibility">, недостъпно</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'মধ্য',
alignBottom: 'নীচে',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Sredina',
alignBottom: 'Dno',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignTop: 'Superior',
alignMiddle: 'Centre',
alignBottom: 'Inferior',
- alignNone: 'None', // MISSING
- invalidValue : 'Valor no vàlid.',
+ alignNone: 'Cap',
+ invalidValue: 'Valor no vàlid.',
invalidHeight: 'L\'alçada ha de ser un número.',
invalidWidth: 'L\'amplada ha de ser un número.',
invalidCssLength: 'El valor especificat per als "%1" camps ha de ser un número positiu amb o sense unitat de mesura vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).',
cssLengthTooltip: 'Introduïu un número per un valor en píxels o un número amb una unitat vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, no disponible</span>'
+ unavailable: '%1<span class="cke_accessibility">, no disponible</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Retrocés',
+ 13: 'Intro',
+ 16: 'Majúscules',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'Fi',
+ 36: 'Inici',
+ 46: 'Eliminar',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Na střed',
alignBottom: 'Dolů',
alignNone: 'Žádné',
- invalidValue : 'Neplatná hodnota.',
+ invalidValue: 'Neplatná hodnota.',
invalidHeight: 'Zadaná výška musí být číslo.',
invalidWidth: 'Šířka musí být číslo.',
invalidCssLength: 'Hodnota určená pro pole "%1" musí být kladné číslo bez nebo s platnou jednotkou míry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).',
cssLengthTooltip: 'Zadejte číslo jako hodnotu v pixelech nebo číslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nedostupné</span>'
+ unavailable: '%1<span class="cke_accessibility">, nedostupné</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Mezerník',
+ 35: 'Konec',
+ 36: 'Domů',
+ 46: 'Smazat',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Klávesová zkratka'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Canol',
alignBottom: 'Gwaelod',
alignNone: 'None', // MISSING
- invalidValue : 'Gwerth annilys.',
+ invalidValue: 'Gwerth annilys.',
invalidHeight: 'Mae\'n rhaid i\'r uchder fod yn rhif.',
invalidWidth: 'Mae\'n rhaid i\'r lled fod yn rhif.',
invalidCssLength: 'Mae\'n rhaid i\'r gwerth ar gyfer maes "%1" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt, neu pc).',
cssLengthTooltip: 'Rhowch rif am werth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, ddim ar gael</span>'
+ unavailable: '%1<span class="cke_accessibility">, ddim ar gael</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Centreret',
alignBottom: 'Nederst',
alignNone: 'Ingen',
- invalidValue : 'Ugyldig værdi.',
+ invalidValue: 'Ugyldig værdi.',
invalidHeight: 'Højde skal være et tal.',
invalidWidth: 'Bredde skal være et tal.',
invalidCssLength: 'Værdien specificeret for "%1" feltet skal være et positivt nummer med eller uden en CSS måleenhed (px, %, in, cm, mm, em, ex, pt, eller pc).',
cssLengthTooltip: 'Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, eller pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, ikke tilgængelig</span>'
+ unavailable: '%1<span class="cke_accessibility">, ikke tilgængelig</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Retur',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Mellemrum',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Slet',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Tastatur genvej'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
-* @fileOverview
+* @fileOverview
*/
/**#@+
alignMiddle: 'Mitte',
alignBottom: 'Unten',
alignNone: 'Keine',
- invalidValue : 'Ungültiger Wert.',
+ invalidValue: 'Ungültiger Wert.',
invalidHeight: 'Höhe muss eine Zahl sein.',
invalidWidth: 'Breite muss eine Zahl sein.',
invalidCssLength: 'Wert spezifiziert für "%1" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
cssLengthTooltip: 'Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>'
+ unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Rücktaste',
+ 13: 'Eingabe',
+ 16: 'Umschalt',
+ 17: 'Strg',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'Ende',
+ 36: 'Pos1',
+ 46: 'Entfernen',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
generalTab: 'Allgemein',
advancedTab: 'Erweitert',
validateNumberFailed: 'Dieser Wert ist keine Nummer.',
- confirmNewPage: 'Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?',
+ confirmNewPage: 'Alle nicht gespeicherten Änderungen gehen verloren. Sind Sie sicher die neue Seite zu laden?',
confirmCancel: 'Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?',
options: 'Optionen',
target: 'Zielseite',
alignMiddle: 'Mitte',
alignBottom: 'Unten',
alignNone: 'Keine',
- invalidValue : 'Ungültiger Wert.',
+ invalidValue: 'Ungültiger Wert.',
invalidHeight: 'Höhe muss eine Zahl sein.',
invalidWidth: 'Breite muss eine Zahl sein.',
invalidCssLength: 'Wert spezifiziert für "%1" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
cssLengthTooltip: 'Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>'
+ unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Rücktaste',
+ 13: 'Eingabe',
+ 16: 'Umschalt',
+ 17: 'Strg',
+ 18: 'Alt',
+ 32: 'Leer',
+ 35: 'Ende',
+ 36: 'Pos1',
+ 46: 'Entfernen',
+ 224: 'Befehl'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Tastaturkürzel'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Μέση',
alignBottom: 'Κάτω',
alignNone: 'Χωρίς',
- invalidValue : 'Μη έγκυρη τιμή.',
+ invalidValue: 'Μη έγκυρη τιμή.',
invalidHeight: 'Το ύψος πρέπει να είναι ένας αριθμός.',
invalidWidth: 'Το πλάτος πρέπει να είναι ένας αριθμός.',
invalidCssLength: 'Η τιμή που ορίζεται για το πεδίο "%1" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).',
cssLengthTooltip: 'Εισάγεται μια τιμή σε pixel ή έναν αριθμό μαζί με μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, δεν είναι διαθέσιμο</span>'
+ unavailable: '%1<span class="cke_accessibility">, δεν είναι διαθέσιμο</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Συντόμευση πληκτρολογίου'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Middle', // MISSING
alignBottom: 'Bottom', // MISSING
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Middle', // MISSING
alignBottom: 'Bottom', // MISSING
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Middle',
alignBottom: 'Bottom',
alignNone: 'None',
- invalidValue : 'Invalid value.',
+ invalidValue: 'Invalid value.',
invalidHeight: 'Height must be a number.',
invalidWidth: 'Width must be a number.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>'
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Middle',
alignBottom: 'Bottom',
alignNone: 'None',
- invalidValue : 'Invalid value.',
+ invalidValue: 'Invalid value.',
invalidHeight: 'Height must be a number.',
invalidWidth: 'Width must be a number.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>'
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Centre',
alignBottom: 'Malsupre',
alignNone: 'Neniu',
- invalidValue : 'Nevalida Valoro',
+ invalidValue: 'Nevalida Valoro',
invalidHeight: 'Alto devas esti nombro.',
invalidWidth: 'Larĝo devas esti nombro.',
invalidCssLength: 'La valoro indikita por la "%1" kampo devas esti pozitiva nombro kun aŭ sen valida CSSmezurunuo (px, %, in, cm, mm, em, ex, pt, or pc).',
cssLengthTooltip: 'Entajpu nombron por rastrumera valoro aŭ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nehavebla</span>'
+ unavailable: '%1<span class="cke_accessibility">, nehavebla</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Retropaŝo',
+ 13: 'Enigi',
+ 16: 'Registrumo',
+ 17: 'Stirklavo',
+ 18: 'Alt-klavo',
+ 32: 'Spaco',
+ 35: 'Fino',
+ 36: 'Hejmo',
+ 46: 'Forigi',
+ 224: 'Komando'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Fulmoklavo'
}
};
--- /dev/null
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+* @fileOverview
+*/
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'es-mx' ] = {
+ // ARIA description.
+ editor: 'Editor de texto enriquecido',
+ editorPanel: 'Panel del editor de texto',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Presiona ALT + 0 para ayuda',
+
+ browseServer: 'Examinar servidor',
+ url: 'URL',
+ protocol: 'Protocolo',
+ upload: 'Subir',
+ uploadSubmit: 'Enviar al servidor',
+ image: 'Imagen',
+ flash: 'Flash',
+ form: 'Formulario',
+ checkbox: 'Casilla de verificación',
+ radio: 'Botón de opción',
+ textField: 'Campo de texto',
+ textarea: 'Área de texto',
+ hiddenField: 'Campo oculto',
+ button: 'Botón',
+ select: 'Campo de selección',
+ imageButton: 'Botón de imagen',
+ notSet: '<not set>',
+ id: 'Id',
+ name: 'Nombre',
+ langDir: 'Dirección de idiomas',
+ langDirLtr: 'Izquierda a derecha (LTR)',
+ langDirRtl: 'Derecha a izquierda (RTL)',
+ langCode: 'Código de lenguaje',
+ longDescr: 'URL descripción larga',
+ cssClass: 'Clases de hoja de estilo',
+ advisoryTitle: 'Título del anuncio',
+ cssStyle: 'Estilo',
+ ok: 'OK',
+ cancel: 'Cancelar',
+ close: 'Cerrar',
+ preview: 'Vista previa',
+ resize: 'Redimensionar',
+ generalTab: 'General',
+ advancedTab: 'Avanzada',
+ validateNumberFailed: 'Este valor no es un número.',
+ confirmNewPage: 'Se perderán todos los cambios no guardados en este contenido. ¿Seguro que quieres cargar nueva página?',
+ confirmCancel: 'Ha cambiado algunas opciones. ¿Está seguro de que desea cerrar la ventana de diálogo?',
+ options: 'Opciones',
+ target: 'Objetivo',
+ targetNew: 'Nueva ventana (_blank)',
+ targetTop: 'Ventana superior (_top)',
+ targetSelf: 'Misma ventana (_self)',
+ targetParent: 'Ventana principal (_parent)',
+ langDirLTR: 'Izquierda a Derecha (LTR)',
+ langDirRTL: 'Derecha a Izquierda (RTL)',
+ styles: 'Estilo',
+ cssClasses: 'Clases de hojas de estilo',
+ width: 'Ancho',
+ height: 'Alto',
+ align: 'Alineación',
+ alignLeft: 'Izquierda',
+ alignRight: 'Derecha',
+ alignCenter: 'Centrado',
+ alignJustify: 'Justificado',
+ alignTop: 'Arriba',
+ alignMiddle: 'En medio',
+ alignBottom: 'Abajo',
+ alignNone: 'Ninguno',
+ invalidValue: 'Valor inválido',
+ invalidHeight: 'La altura debe ser un número.',
+ invalidWidth: 'La anchura debe ser un número.',
+ invalidCssLength: 'El valor especificado para el campo "% 1" debe ser un número positivo con o sin una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'El valor especificado para el campo "% 1" debe ser un número positivo con o sin una unidad de medición HTML válida (px or %).',
+ invalidInlineStyle: 'El valor especificado para el estilo en línea debe constar de una o más tuplas con el formato de "nombre: valor", separados por punto y coma',
+ cssLengthTooltip: 'Introduzca un número para un valor en píxeles o un número con una unidad CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, no disponible</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Retroceso',
+ 13: 'Intro',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Espacio',
+ 35: 'Fin',
+ 36: 'Inicio',
+ 46: 'Borrar',
+ 224: 'Comando'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Atajo de teclado'
+ }
+};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Centro',
alignBottom: 'Pie',
alignNone: 'Ninguno',
- invalidValue : 'Valor no válido',
+ invalidValue: 'Valor no válido',
invalidHeight: 'Altura debe ser un número.',
invalidWidth: 'Anchura debe ser un número.',
invalidCssLength: 'El valor especificado para el campo "%1" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).',
cssLengthTooltip: 'Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, no disponible</span>'
+ unavailable: '%1<span class="cke_accessibility">, no disponible</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Retroceso',
+ 13: 'Ingresar',
+ 16: 'Mayús.',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'Fin',
+ 36: 'Inicio',
+ 46: 'Suprimir',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Keskele',
alignBottom: 'Alla',
alignNone: 'None', // MISSING
- invalidValue : 'Vigane väärtus.',
+ invalidValue: 'Vigane väärtus.',
invalidHeight: 'Kõrgus peab olema number.',
invalidWidth: 'Laius peab olema number.',
invalidCssLength: '"%1" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.',
cssLengthTooltip: 'Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, pole saadaval</span>'
+ unavailable: '%1<span class="cke_accessibility">, pole saadaval</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Erdian',
alignBottom: 'Behean',
alignNone: 'Bat ere ez',
- invalidValue : 'Balio desegokia.',
+ invalidValue: 'Balio desegokia.',
invalidHeight: 'Altuera zenbaki bat izan behar da.',
invalidWidth: 'Zabalera zenbaki bat izan behar da.',
invalidCssLength: '"%1" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, CSS neurri unitate batekin edo gabe (px, %, in, cm, mm, em, ex, pt edo pc).',
cssLengthTooltip: 'Sartu zenbaki bat edo zenbaki bat baliozko CSS unitate batekin (px, %, in, cm, mm, em, ex, pt, edo pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, erabilezina</span>'
+ unavailable: '%1<span class="cke_accessibility">, erabilezina</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Sartu',
+ 16: 'Maius',
+ 17: 'Ktrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'Buka',
+ 36: 'Etxea',
+ 46: 'Ezabatu',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'میانه',
alignBottom: 'پائین',
alignNone: 'هیچ',
- invalidValue : 'مقدار نامعتبر.',
+ invalidValue: 'مقدار نامعتبر.',
invalidHeight: 'ارتفاع باید یک عدد باشد.',
invalidWidth: 'عرض باید یک عدد باشد.',
invalidCssLength: 'عدد تعیین شده برای فیلد "%1" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری CSS معتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).',
cssLengthTooltip: 'یک عدد برای یک مقدار بر حسب پیکسل و یا یک عدد با یک واحد CSS معتبر وارد کنید (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">، غیر قابل دسترس</span>'
+ unavailable: '%1<span class="cke_accessibility">، غیر قابل دسترس</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'عقبگرد',
+ 13: 'ورود',
+ 16: 'تعویض',
+ 17: 'کنترل',
+ 18: 'دگرساز',
+ 32: 'Space', // MISSING
+ 35: 'پایان',
+ 36: 'خانه',
+ 46: 'حذف',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Keskelle',
alignBottom: 'Alas',
alignNone: 'Ei asetettu',
- invalidValue : 'Virheellinen arvo.',
+ invalidValue: 'Virheellinen arvo.',
invalidHeight: 'Korkeuden täytyy olla numero.',
invalidWidth: 'Leveyden täytyy olla numero.',
invalidCssLength: 'Kentän "%1" arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.',
cssLengthTooltip: 'Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, ei saatavissa</span>'
+ unavailable: '%1<span class="cke_accessibility">, ei saatavissa</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Miðja',
alignBottom: 'Botnur',
alignNone: 'Eingin',
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Hædd má vera eitt tal.',
invalidWidth: 'Breidd má vera eitt tal.',
invalidCssLength: 'Virðið sett í "%1" feltið má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).',
cssLengthTooltip: 'Skriva eitt tal fyri eitt virði í pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, ikki tøkt</span>'
+ unavailable: '%1<span class="cke_accessibility">, ikki tøkt</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Milieu',
alignBottom: 'Bas',
alignNone: 'None', // MISSING
- invalidValue : 'Valeur invalide.',
+ invalidValue: 'Valeur invalide.',
invalidHeight: 'La hauteur doit être un nombre.',
invalidWidth: 'La largeur doit être un nombre.',
invalidCssLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
cssLengthTooltip: 'Entrer un nombre pour la valeur en pixel ou un nombre avec une unité CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, indisponible</span>'
+ unavailable: '%1<span class="cke_accessibility">, indisponible</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
CKEDITOR.lang[ 'fr' ] = {
// ARIA description.
- editor: 'Éditeur de Texte Enrichi',
+ editor: 'Éditeur de texte enrichi',
editorPanel: 'Tableau de bord de l\'éditeur de texte enrichi',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
- editorHelp: 'Appuyez sur ALT-0 pour l\'aide',
+ editorHelp: 'Utilisez le raccourci Alt-0 pour obtenir de l\'aide',
- browseServer: 'Explorer le serveur',
+ browseServer: 'Parcourir le serveur',
url: 'URL',
protocol: 'Protocole',
upload: 'Télécharger',
flash: 'Flash',
form: 'Formulaire',
checkbox: 'Case à cocher',
- radio: 'Bouton Radio',
+ radio: 'Bouton radio',
textField: 'Champ texte',
textarea: 'Zone de texte',
- hiddenField: 'Champ caché',
+ hiddenField: 'Champ invisible',
button: 'Bouton',
select: 'Liste déroulante',
- imageButton: 'Bouton image',
- notSet: '<non défini>',
- id: 'Id',
+ imageButton: 'Bouton avec image',
+ notSet: '<indéfini>',
+ id: 'ID',
name: 'Nom',
langDir: 'Sens d\'écriture',
langDirLtr: 'Gauche à droite (LTR)',
langDirRtl: 'Droite à gauche (RTL)',
langCode: 'Code de langue',
- longDescr: 'URL de description longue (longdesc => malvoyant)',
- cssClass: 'Classe CSS',
- advisoryTitle: 'Description (title)',
+ longDescr: 'URL de description longue',
+ cssClass: 'Classes de style',
+ advisoryTitle: 'Infobulle',
cssStyle: 'Style',
ok: 'OK',
cancel: 'Annuler',
close: 'Fermer',
preview: 'Aperçu',
- resize: 'Déplacer pour modifier la taille',
+ resize: 'Redimensionner',
generalTab: 'Général',
advancedTab: 'Avancé',
validateNumberFailed: 'Cette valeur n\'est pas un nombre.',
- confirmNewPage: 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?',
- confirmCancel: 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?',
+ confirmNewPage: 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?',
+ confirmCancel: 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?',
options: 'Options',
- target: 'Cible (Target)',
+ target: 'Cible',
targetNew: 'Nouvelle fenêtre (_blank)',
targetTop: 'Fenêtre supérieure (_top)',
targetSelf: 'Même fenêtre (_self)',
targetParent: 'Fenêtre parent (_parent)',
- langDirLTR: 'Gauche à Droite (LTR)',
- langDirRTL: 'Droite à Gauche (RTL)',
+ langDirLTR: 'Gauche à droite (LTR)',
+ langDirRTL: 'Droite à gauche (RTL)',
styles: 'Style',
cssClasses: 'Classes de style',
width: 'Largeur',
align: 'Alignement',
alignLeft: 'Gauche',
alignRight: 'Droite',
- alignCenter: 'Centré',
+ alignCenter: 'Centrer',
alignJustify: 'Justifier',
alignTop: 'Haut',
alignMiddle: 'Milieu',
alignBottom: 'Bas',
alignNone: 'Aucun',
- invalidValue : 'Valeur incorrecte.',
+ invalidValue: 'Valeur invalide.',
invalidHeight: 'La hauteur doit être un nombre.',
invalidWidth: 'La largeur doit être un nombre.',
- invalidCssLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
- invalidHtmlLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
- invalidInlineStyle: 'La valeur spécifiée pour le style inline doit être composée d\'un ou plusieurs couples de valeur au format "nom : valeur", separés par des points-virgules.',
+ invalidCssLength: 'La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
+ invalidHtmlLength: 'La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
+ invalidInlineStyle: 'La valeur spécifiée pour le style en ligne doit être composée d\'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.',
cssLengthTooltip: 'Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, Indisponible</span>'
+ unavailable: '%1<span class="cke_accessibility">, indisponible</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Retour arrière',
+ 13: 'Entrée',
+ 16: 'Majuscule',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Espace',
+ 35: 'Fin',
+ 36: 'Origine',
+ 46: 'Supprimer',
+ 224: 'Commande'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Raccourci clavier'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Centro',
alignBottom: 'Abaixo',
alignNone: 'Ningún',
- invalidValue : 'Valor incorrecto.',
+ invalidValue: 'Valor incorrecto.',
invalidHeight: 'O alto debe ser un número.',
invalidWidth: 'O largo debe ser un número.',
invalidCssLength: 'O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).',
cssLengthTooltip: 'Escriba un número para o valor en píxeles ou un número cunha unidade CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, non dispoñíbel</span>'
+ unavailable: '%1<span class="cke_accessibility">, non dispoñíbel</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Ir atrás',
+ 13: 'Intro',
+ 16: 'Maiús',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Espazo',
+ 35: 'Fin',
+ 36: 'Inicio',
+ 46: 'Supr',
+ 224: 'Orde'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Atallo de teclado'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'વચ્ચે',
alignBottom: 'નીચે',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'ઉંચાઈ એક આંકડો હોવો જોઈએ.',
invalidWidth: 'પોહળ ઈ એક આંકડો હોવો જોઈએ.',
invalidCssLength: '"%1" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વગર.',
cssLengthTooltip: 'પિક્ષ્લ્ નો આંકડો CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માં નાખો.',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, નથી મળતું</span>'
+ unavailable: '%1<span class="cke_accessibility">, નથી મળતું</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'לאמצע',
alignBottom: 'לתחתית',
alignNone: 'None', // MISSING
- invalidValue : 'ערך לא חוקי.',
+ invalidValue: 'ערך לא חוקי.',
invalidHeight: 'הגובה חייב להיות מספר.',
invalidWidth: 'הרוחב חייב להיות מספר.',
invalidCssLength: 'הערך שצוין לשדה "%1" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של CSS (px, %, in, cm, mm, em, ex, pt, או pc).',
cssLengthTooltip: 'יש להכניס מספר המייצג פיקסלים או מספר עם יחידת גליונות סגנון תקינה (px, %, in, cm, mm, em, ex, pt, או pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, לא זמין</span>'
+ unavailable: '%1<span class="cke_accessibility">, לא זמין</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'End',
+ 36: 'Home',
+ 46: 'מחק',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'मध्य',
alignBottom: 'नीचे',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignTop: 'Vrh',
alignMiddle: 'Sredina',
alignBottom: 'Dolje',
- alignNone: 'None', // MISSING
- invalidValue : 'Neispravna vrijednost.',
+ alignNone: 'Bez poravnanja',
+ invalidValue: 'Neispravna vrijednost.',
invalidHeight: 'Visina mora biti broj.',
invalidWidth: 'Širina mora biti broj.',
invalidCssLength: 'Vrijednost određena za "%1" polje mora biti pozitivni broj sa ili bez važećih CSS mjernih jedinica (px, %, in, cm, mm, em, ex, pt ili pc).',
cssLengthTooltip: 'Unesite broj za vrijednost u pikselima ili broj s važećim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nedostupno</span>'
+ unavailable: '%1<span class="cke_accessibility">, nedostupno</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Prečica na tipkovnici'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignTop: 'Tetejére',
alignMiddle: 'Középre',
alignBottom: 'Aljára',
- alignNone: 'None', // MISSING
- invalidValue : 'Érvénytelen érték.',
+ alignNone: 'Semmi',
+ invalidValue: 'Érvénytelen érték.',
invalidHeight: 'A magasság mezőbe csak számokat írhat.',
invalidWidth: 'A szélesség mezőbe csak számokat írhat.',
invalidCssLength: '"%1"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).',
cssLengthTooltip: 'Adjon meg egy számot értéknek pixelekben vagy egy számot érvényes CSS mértékegységben (px, %, in, cm, mm, em, ex, pt, vagy pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nem elérhető</span>'
+ unavailable: '%1<span class="cke_accessibility">, nem elérhető</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Gyorsbillentyű'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.lang[ 'id' ] = {
// ARIA description.
editor: 'Rich Text Editor',
- editorPanel: 'Rich Text Editor panel', // MISSING
+ editorPanel: 'Panel Rich Text Editor',
// Common messages and labels.
common: {
preview: 'Pratinjau',
resize: 'Ubah ukuran',
generalTab: 'Umum',
- advancedTab: 'Advanced', // MISSING
+ advancedTab: 'Lebih Lanjut',
validateNumberFailed: 'Nilai ini tidak sebuah angka',
confirmNewPage: 'Semua perubahan yang tidak disimpan di konten ini akan hilang. Apakah anda yakin ingin memuat halaman baru?',
confirmCancel: 'Beberapa opsi telah berubah. Apakah anda yakin ingin menutup dialog?',
options: 'Opsi',
target: 'Sasaran',
targetNew: 'Jendela Baru (_blank)',
- targetTop: 'Topmost Window (_top)', // MISSING
+ targetTop: 'Laman Atas (_top)',
targetSelf: 'Jendela yang Sama (_self)',
- targetParent: 'Parent Window (_parent)', // MISSING
+ targetParent: 'Jendela Induk (_parent)',
langDirLTR: 'Kiri ke Kanan (LTR)',
langDirRTL: 'Kanan ke Kiri (RTL)',
styles: 'Gaya',
alignTop: 'Atas',
alignMiddle: 'Tengah',
alignBottom: 'Bawah',
- alignNone: 'None', // MISSING
- invalidValue : 'Nilai tidak sah.',
+ alignNone: 'Tidak ada',
+ invalidValue: 'Nilai tidak sah.',
invalidHeight: 'Tinggi harus sebuah angka.',
invalidWidth: 'Lebar harus sebuah angka.',
invalidCssLength: 'Nilai untuk "%1" harus sebuah angkat positif dengan atau tanpa pengukuran unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).',
invalidHtmlLength: 'Nilai yang dispesifikasian untuk kolom "%1" harus sebuah angka positif dengan atau tanpa sebuah unit pengukuran HTML (px atau %) yang valid.',
- invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ invalidInlineStyle: 'Nilai pada inline style merupakan pasangan nama dan nilai dengan format "nama : nilai", yang dipisahkan dengan titik dua.',
cssLengthTooltip: 'Masukkan sebuah angka untuk sebuah nilai dalam pixel atau sebuah angka dengan unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, tidak tersedia</span>'
+ unavailable: '%1<span class="cke_accessibility">, tidak tersedia</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Spasi',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Hapus',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Pintasan Keyboard'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Miðjuð',
alignBottom: 'Neðst',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Centrato',
alignBottom: 'In Basso',
alignNone: 'Nessuno',
- invalidValue : 'Valore non valido.',
+ invalidValue: 'Valore non valido.',
invalidHeight: 'L\'altezza dev\'essere un numero',
invalidWidth: 'La Larghezza dev\'essere un numero',
invalidCssLength: 'Il valore indicato per il campo "%1" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).',
cssLengthTooltip: 'Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, non disponibile</span>'
+ unavailable: '%1<span class="cke_accessibility">, non disponibile</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Invio',
+ 16: 'Maiusc',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Spazio',
+ 35: 'Fine',
+ 36: 'Inizio',
+ 46: 'Canc',
+ 224: 'Comando'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Scorciatoia da tastiera'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
resize: 'ドラッグしてリサイズ',
generalTab: '全般',
advancedTab: '高度な設定',
- validateNumberFailed: '値が数ではありません',
+ validateNumberFailed: '値が数値ではありません',
confirmNewPage: '変更内容を保存せず、 新しいページを開いてもよろしいでしょうか?',
confirmCancel: 'オプション設定を変更しました。ダイアログを閉じてもよろしいでしょうか?',
options: 'オプション',
alignMiddle: '中央',
alignBottom: '下',
alignNone: 'なし',
- invalidValue : '不正な値です。',
+ invalidValue: '不正な値です。',
invalidHeight: '高さは数値で入力してください。',
invalidWidth: '幅は数値で入力してください。',
invalidCssLength: '入力された "%1" 項目の値は、CSSの大きさ(px, %, in, cm, mm, em, ex, pt, または pc)が正しいものである/ないに関わらず、正の値である必要があります。',
cssLengthTooltip: 'ピクセル数もしくはCSSにセットできる数値を入力してください。(px,%,in,cm,mm,em,ex,pt,or pc)',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, 利用不可能</span>'
+ unavailable: '%1<span class="cke_accessibility">, 利用不可能</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'キーボードショートカット'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'შუა',
alignBottom: 'ქვემოთა',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.',
invalidWidth: 'სიგანე რიცხვით უნდა იყოს წარმოდგენილი.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, მიუწვდომელია</span>'
+ unavailable: '%1<span class="cke_accessibility">, მიუწვდომელია</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'កណ្តាល',
alignBottom: 'ខាងក្រោម',
alignNone: 'គ្មាន',
- invalidValue : 'តម្លៃមិនត្រឹមត្រូវ។',
+ invalidValue: 'តម្លៃមិនត្រឹមត្រូវ។',
invalidHeight: 'តម្លៃកំពស់ត្រូវតែជាលេខ។',
invalidWidth: 'តម្លៃទទឹងត្រូវតែជាលេខ។',
invalidCssLength: 'តម្លៃកំណត់សម្រាប់វាល "%1" ត្រូវតែជាលេខវិជ្ជមាន ដោយភ្ជាប់ឬមិនភ្ជាប់ជាមួយនឹងឯកតារង្វាស់របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។',
cssLengthTooltip: 'បញ្ចូលលេខសម្រាប់តម្លៃជាភិចសែល ឬលេខដែលមានឯកតាត្រឹមត្រូវរបស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, មិនមាន</span>'
+ unavailable: '%1<span class="cke_accessibility">, មិនមាន</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'លុបថយក្រោយ',
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'ចុង',
+ 36: 'ផ្ទះ',
+ 46: 'លុប',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
// of reading non-English words. So be careful while translating it.
editorHelp: '도움이 필요하면 ALT 0 을 누르세요',
- browseServer: '서버 보기',
+ browseServer: '서버 탐색',
url: 'URL',
protocol: '프로토콜',
upload: '업로드',
alignMiddle: '중간',
alignBottom: '아래',
alignNone: '기본',
- invalidValue : '잘못된 값.',
+ invalidValue: '잘못된 값.',
invalidHeight: '높이는 숫자여야 합니다.',
invalidWidth: '넓이는 숫자여야 합니다.',
invalidCssLength: '"%1" 값은 유효한 CSS 측정 단위(px, %, in, cm, mm, em, ex, pt, or pc)를 포함하거나 포함하지 않은 양수 여야 합니다.',
cssLengthTooltip: '픽셀 단위의 숫자만 입력하시거나 유효한 CSS 단위(px, %, in, cm, mm, em, ex, pt, or pc)와 함께 숫자를 입력해주세요.',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, 사용불가</span>'
+ unavailable: '%1<span class="cke_accessibility">, 사용불가</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: '백스페이스',
+ 13: '엔터',
+ 16: '시프트',
+ 17: '컨트롤',
+ 18: '알트',
+ 32: '간격',
+ 35: '엔드',
+ 36: '홈',
+ 46: '딜리트',
+ 224: '커맨드'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: '키보드 단축키'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'ناوەند',
alignBottom: 'ژێرەوە',
alignNone: 'هیچ',
- invalidValue : 'نرخێکی نادرووست.',
+ invalidValue: 'نرخێکی نادرووست.',
invalidHeight: 'درێژی دەبێت ژمارە بێت.',
invalidWidth: 'پانی دەبێت ژمارە بێت.',
invalidCssLength: 'ئەم نرخەی دراوە بۆ خانەی "%1" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی (px, %, in, cm, mm, em, ex, pt, یان pc).',
cssLengthTooltip: 'ژمارەیەك بنووسه بۆ نرخی piksel یان ئامرازێکی درووستی CSS (px, %, in, cm, mm, em, ex, pt, یان pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, ئامادە نیە</span>'
+ unavailable: '%1<span class="cke_accessibility">, ئامادە نیە</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'فەرمان'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'کورتبڕی تەختەکلیل'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Vidurį',
alignBottom: 'Apačią',
alignNone: 'Niekas',
- invalidValue : 'Neteisinga reikšmė.',
+ invalidValue: 'Neteisinga reikšmė.',
invalidHeight: 'Aukštis turi būti nurodytas skaičiais.',
invalidWidth: 'Plotis turi būti nurodytas skaičiais.',
invalidCssLength: 'Reikšmė nurodyta "%1" laukui, turi būti teigiamas skaičius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).',
cssLengthTooltip: 'Įveskite reikšmę pikseliais arba skaičiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, netinkamas</span>'
+ unavailable: '%1<span class="cke_accessibility">, netinkamas</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Vertikāli centrēts',
alignBottom: 'Apakšā',
alignNone: 'Nekas',
- invalidValue : 'Nekorekta vērtība',
+ invalidValue: 'Nekorekta vērtība',
invalidHeight: 'Augstumam jābūt skaitlim.',
invalidWidth: 'Platumam jābūt skaitlim',
invalidCssLength: 'Laukam "%1" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām CSS mērvienībām (px, %, in, cm, mm, em, ex, pt, vai pc).',
cssLengthTooltip: 'Ievadiet vērtību pikseļos vai skaitli ar derīgu CSS mērvienību (px, %, in, cm, mm, em, ex, pt, vai pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nav pieejams</span>'
+ unavailable: '%1<span class="cke_accessibility">, nav pieejams</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Средина',
alignBottom: 'Доле',
alignNone: 'Никое',
- invalidValue : 'Невалидна вредност',
+ invalidValue: 'Невалидна вредност',
invalidHeight: 'Височината мора да биде број.',
invalidWidth: 'Широчината мора да биде број.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Дунд',
alignBottom: 'Доод талд',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Өндөр нь тоо байх ёстой.',
invalidWidth: 'Өргөн нь тоо байх ёстой.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Pertengahan',
alignBottom: 'Bawah',
alignNone: 'None', // MISSING
- invalidValue : 'Nilai tidak sah.',
+ invalidValue: 'Nilai tidak sah.',
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
id: 'Id',
name: 'Navn',
langDir: 'Språkretning',
- langDirLtr: 'Venstre til høyre (VTH)',
- langDirRtl: 'Høyre til venstre (HTV)',
+ langDirLtr: 'Venstre til høyre (LTR)',
+ langDirRtl: 'Høyre til venstre (RTL)',
langCode: 'Språkkode',
longDescr: 'Utvidet beskrivelse',
cssClass: 'Stilarkklasser',
options: 'Valg',
target: 'Mål',
targetNew: 'Nytt vindu (_blank)',
- targetTop: 'Hele vindu (_top)',
+ targetTop: 'Hele vinduet (_top)',
targetSelf: 'Samme vindu (_self)',
targetParent: 'Foreldrevindu (_parent)',
langDirLTR: 'Venstre til høyre (VTH)',
alignMiddle: 'Midten',
alignBottom: 'Bunn',
alignNone: 'Ingen',
- invalidValue : 'Ugyldig verdi.',
+ invalidValue: 'Ugyldig verdi.',
invalidHeight: 'Høyde må være et tall.',
invalidWidth: 'Bredde må være et tall.',
invalidCssLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
cssLengthTooltip: 'Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>'
+ unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Mellomrom',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Tastatursnarvei'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Midden',
alignBottom: 'Onder',
alignNone: 'Geen',
- invalidValue : 'Ongeldige waarde.',
+ invalidValue: 'Ongeldige waarde.',
invalidHeight: 'De hoogte moet een getal zijn.',
invalidWidth: 'De breedte moet een getal zijn.',
invalidCssLength: 'Waarde in veld "%1" moet een positief nummer zijn, met of zonder een geldige CSS meeteenheid (px, %, in, cm, mm, em, ex, pt of pc).',
cssLengthTooltip: 'Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, niet beschikbaar</span>'
+ unavailable: '%1<span class="cke_accessibility">, niet beschikbaar</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Spatie',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Verwijderen',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Sneltoets'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Midten',
alignBottom: 'Bunn',
alignNone: 'Ingen',
- invalidValue : 'Ugyldig verdi.',
+ invalidValue: 'Ugyldig verdi.',
invalidHeight: 'Høyde må være et tall.',
invalidWidth: 'Bredde må være et tall.',
invalidCssLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
cssLengthTooltip: 'Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>'
+ unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
--- /dev/null
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the Occitan
+ * language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'oc' ] = {
+ // ARIA description.
+ editor: 'Editor de tèxte enriquit',
+ editorPanel: 'Tablèu de bòrd de l\'editor de tèxte enriquit',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Utilisatz l\'acorchi Alt-0 per obténer d\'ajuda',
+
+ browseServer: 'Percórrer lo servidor',
+ url: 'URL',
+ protocol: 'Protocòl',
+ upload: 'Mandar',
+ uploadSubmit: 'Mandar sul servidor',
+ image: 'Imatge',
+ flash: 'Flash',
+ form: 'Formulari',
+ checkbox: 'Casa de marcar',
+ radio: 'Boton ràdio',
+ textField: 'Camp tèxte',
+ textarea: 'Zòna de tèxte',
+ hiddenField: 'Camp invisible',
+ button: 'Boton',
+ select: 'Lista desenrotlanta',
+ imageButton: 'Boton amb imatge',
+ notSet: '<indefinit>',
+ id: 'Id',
+ name: 'Nom',
+ langDir: 'Sens d\'escritura',
+ langDirLtr: 'Esquèrra a dreita (LTR)',
+ langDirRtl: 'Dreita a esquèrra (RTL)',
+ langCode: 'Còdi de lenga',
+ longDescr: 'URL de descripcion longa',
+ cssClass: 'Classas d\'estil',
+ advisoryTitle: 'Infobulla',
+ cssStyle: 'Estil',
+ ok: 'D\'acòrdi',
+ cancel: 'Anullar',
+ close: 'Tampar',
+ preview: 'Previsualizar',
+ resize: 'Redimensionar',
+ generalTab: 'General',
+ advancedTab: 'Avançat',
+ validateNumberFailed: 'Aquesta valor es pas un nombre.',
+ confirmNewPage: 'Los cambiaments pas salvats seràn perduts. Sètz segur que volètz cargar una novèla pagina ?',
+ confirmCancel: 'Certanas opcions son estadas modificadas. Sètz segur que volètz tampar ?',
+ options: 'Opcions',
+ target: 'Cibla',
+ targetNew: 'Novèla fenèstra (_blank)',
+ targetTop: 'Fenèstra superiora (_top)',
+ targetSelf: 'Meteissa fenèstra (_self)',
+ targetParent: 'Fenèstra parent (_parent)',
+ langDirLTR: 'Esquèrra a dreita (LTR)',
+ langDirRTL: 'Dreita a esquèrra (RTL)',
+ styles: 'Estil',
+ cssClasses: 'Classas d\'estil',
+ width: 'Largor',
+ height: 'Nautor',
+ align: 'Alinhament',
+ alignLeft: 'Esquèrra',
+ alignRight: 'Dreita',
+ alignCenter: 'Centrar',
+ alignJustify: 'Justificar',
+ alignTop: 'Naut',
+ alignMiddle: 'Mitan',
+ alignBottom: 'Bas',
+ alignNone: 'Pas cap',
+ invalidValue: 'Valor invalida.',
+ invalidHeight: 'La nautor deu èsser un nombre.',
+ invalidWidth: 'La largor deu èsser un nombre.',
+ invalidCssLength: 'La valor especificada pel camp « %1 » deu èsser un nombre positiu amb o sens unitat de mesura CSS valid (px, %, in, cm, mm, em, ex, pt, o pc).',
+ invalidHtmlLength: 'La valor especificada pel camp « %1 » deu èsser un nombre positiu amb o sens unitat de mesura HTML valid (px o %).',
+ invalidInlineStyle: 'La valor especificada per l\'estil en linha deu èsser compausada d\'un o mantun parelh al format « nom : valor », separats per de punts-virgulas.',
+ cssLengthTooltip: 'Entrar un nombre per una valor en pixèls o un nombre amb una unitat de mesura CSS valida (px, %, in, cm, mm, em, ex, pt, o pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, indisponible</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Retorn',
+ 13: 'Entrada',
+ 16: 'Majuscula',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Espaci',
+ 35: 'Fin',
+ 36: 'Origina',
+ 46: 'Suprimir',
+ 224: 'Comanda'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Acorchi de clavièr'
+ }
+};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Do środka',
alignBottom: 'Do dołu',
alignNone: 'Brak',
- invalidValue : 'Nieprawidłowa wartość.',
+ invalidValue: 'Nieprawidłowa wartość.',
invalidHeight: 'Wysokość musi być liczbą.',
invalidWidth: 'Szerokość musi być liczbą.',
invalidCssLength: 'Wartość podana dla pola "%1" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).',
cssLengthTooltip: 'Wpisz liczbę dla wartości w pikselach lub liczbę wraz z jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, niedostępne</span>'
+ unavailable: '%1<span class="cke_accessibility">, niedostępne</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'spacja',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Skrót klawiszowy'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Centralizado',
alignBottom: 'Inferior',
alignNone: 'Nenhum',
- invalidValue : 'Valor inválido.',
+ invalidValue: 'Valor inválido.',
invalidHeight: 'A altura tem que ser um número',
invalidWidth: 'A largura tem que ser um número.',
invalidCssLength: 'O valor do campo "%1" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).',
cssLengthTooltip: 'Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, indisponível</span>'
+ unavailable: '%1<span class="cke_accessibility">, indisponível</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Tecla Retroceder',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Tecla Espaço',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Comando'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Atalho do teclado'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
browseServer: 'Navegar no servidor',
url: 'URL',
protocol: 'Protocolo',
- upload: 'Enviar',
+ upload: 'Carregar',
uploadSubmit: 'Enviar para o servidor',
image: 'Imagem',
flash: 'Flash',
form: 'Formulário',
- checkbox: 'Caixa de Seleção',
+ checkbox: 'Caixa de verificação',
radio: 'Botão',
- textField: 'Campo do Texto',
- textarea: 'Área do Texto',
+ textField: 'Campo de texto',
+ textarea: 'Área de texto',
hiddenField: 'Campo oculto',
button: 'Botão',
- select: 'Campo da Seleção',
- imageButton: 'Botão da Imagem',
+ select: 'Campo de seleção',
+ imageButton: 'Botão da imagem',
notSet: '<Não definido>',
- id: 'Id.',
+ id: 'ID',
name: 'Nome',
- langDir: 'Direção do Idioma',
+ langDir: 'Direção do idioma',
langDirLtr: 'Esquerda para a Direita (EPD)',
langDirRtl: 'Direita para a Esquerda (DPE)',
- langCode: 'Código do Idioma',
- longDescr: 'Descrição Completa do URL',
- cssClass: 'Classes de Estilo das Folhas',
- advisoryTitle: 'Título Consultivo',
+ langCode: 'Código do idioma',
+ longDescr: 'Descrição completa do URL',
+ cssClass: 'Classes de estilo das folhas',
+ advisoryTitle: 'Título consultivo',
cssStyle: 'Estilo',
ok: 'CONFIRMAR',
cancel: 'Cancelar',
confirmCancel: 'Foram alteradas algumas das opções. Tem a certeza que deseja fechar a janela?',
options: 'Opções',
target: 'Destino',
- targetNew: 'Nova Janela (_blank)',
- targetTop: 'Janela Superior (_top)',
- targetSelf: 'Mesma Janela (_self)',
- targetParent: 'Janela Parente (_parent)',
+ targetNew: 'Nova janela (_blank)',
+ targetTop: 'Janela superior (_top)',
+ targetSelf: 'Mesma janela (_self)',
+ targetParent: 'Janela dependente (_parent)',
langDirLTR: 'Esquerda para a Direita (EPD)',
langDirRTL: 'Direita para a Esquerda (DPE)',
styles: 'Estilo',
alignMiddle: 'Centro',
alignBottom: 'Base',
alignNone: 'Nenhum',
- invalidValue : 'Valor inválido.',
+ invalidValue: 'Valor inválido.',
invalidHeight: 'A altura deve ser um número.',
invalidWidth: 'A largura deve ser um número. ',
invalidCssLength: 'O valor especificado para o campo "1%" deve ser um número positivo, com ou sem uma unidade de medida CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',
cssLengthTooltip: 'Insira um número para um valor em pontos ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, indisponível</span>'
+ unavailable: '%1<span class="cke_accessibility">, indisponível</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Espaço',
+ 35: 'Fim',
+ 36: 'Entrada',
+ 46: 'Eliminar',
+ 224: 'Comando'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Mijloc',
alignBottom: 'Jos',
alignNone: 'None', // MISSING
- invalidValue : 'Valoare invalidă',
+ invalidValue: 'Valoare invalidă',
invalidHeight: 'Înălțimea trebuie să fie un număr.',
invalidWidth: 'Lățimea trebuie să fie un număr.',
invalidCssLength: 'Valoarea specificată pentru câmpul "%1" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).',
cssLengthTooltip: 'Introduceți un număr în pixeli sau un număr cu o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nu este disponibil</span>'
+ unavailable: '%1<span class="cke_accessibility">, nu este disponibil</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Посередине',
alignBottom: 'Понизу',
alignNone: 'Нет',
- invalidValue : 'Недопустимое значение.',
+ invalidValue: 'Недопустимое значение.',
invalidHeight: 'Высота задается числом.',
invalidWidth: 'Ширина задается числом.',
invalidCssLength: 'Значение, указанное в поле "%1", должно быть положительным целым числом. Допускается указание единиц меры CSS (px, %, in, cm, mm, em, ex, pt или pc).',
cssLengthTooltip: 'Введите значение в пикселях, либо число с корректной единицей меры CSS (px, %, in, cm, mm, em, ex, pt или pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, недоступно</span>'
+ unavailable: '%1<span class="cke_accessibility">, недоступно</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Пробел',
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Комбинация клавиш'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'මැද',
alignBottom: 'පහල',
alignNone: 'None', // MISSING
- invalidValue : 'වැරදී වටිනාකමකි',
+ invalidValue: 'වැරදී වටිනාකමකි',
invalidHeight: 'උස අංකයක් විය යුතුය',
invalidWidth: 'පළල අංකයක් විය යුතුය',
invalidCssLength: 'වටිනාකමක් නිරූපණය කිරීම "%1" ප්රදේශය ධන සංක්යාත්මක වටිනාකමක් හෝ නිවරදි නොවන CSS මිනුම් එකක(px, %, in, cm, mm, em, ex, pt, pc)',
cssLengthTooltip: 'සංක්යා ඇතුලත් කිරීමේදී වටිනාකම තිත් ප්රමාණය නිවරදි CSS ඒකක(තිත්, %, අඟල්,සෙමි, mm, em, ex, pt, pc)',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span පන්තිය="ළඟා වියහැකි ද බලන්න">, නොමැතිනම්</span>'
+ unavailable: '%1<span පන්තිය="ළඟා වියහැකි ද බලන්න">, නොමැතිනම්</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Na stred',
alignBottom: 'Dole',
alignNone: 'Žiadne',
- invalidValue : 'Neplatná hodnota.',
+ invalidValue: 'Neplatná hodnota.',
invalidHeight: 'Výška musí byť číslo.',
invalidWidth: 'Šírka musí byť číslo.',
invalidCssLength: 'Špecifikovaná hodnota pre pole "%1" musí byť kladné číslo s alebo bez platnej CSS mernej jednotky (px, %, in, cm, mm, em, ex, pt alebo pc).',
cssLengthTooltip: 'Vložte číslo pre hodnotu v pixeloch alebo číslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt alebo pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nedostupný</span>'
+ unavailable: '%1<span class="cke_accessibility">, nedostupný</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Medzerník',
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Delete',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Klávesová skratka'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
CKEDITOR.lang[ 'sl' ] = {
// ARIA description.
- editor: 'Bogat Urejevalnik Besedila',
- editorPanel: 'Rich Text Editor plošča',
+ editor: 'Urejevalnik obogatenega besedila',
+ editorPanel: 'Plošča urejevalnika obogatenega besedila',
// Common messages and labels.
common: {
form: 'Obrazec',
checkbox: 'Potrditveno polje',
radio: 'Izbirno polje',
- textField: 'Vnosno polje',
- textarea: 'Vnosno območje',
+ textField: 'Besedilno polje',
+ textarea: 'Besedilno območje',
hiddenField: 'Skrito polje',
button: 'Gumb',
- select: 'Spustno Polje',
- imageButton: 'Slikovni Gumb',
+ select: 'Spustno polje',
+ imageButton: 'Slikovni gumb',
notSet: '<ni določen>',
id: 'Id',
name: 'Ime',
langDir: 'Smer jezika',
langDirLtr: 'Od leve proti desni (LTR)',
langDirRtl: 'Od desne proti levi (RTL)',
- langCode: 'Koda Jezika',
+ langCode: 'Koda jezika',
longDescr: 'Dolg opis URL-ja',
- cssClass: 'Razred stilne predloge',
+ cssClass: 'Razredi slogovne predloge',
advisoryTitle: 'Predlagani naslov',
cssStyle: 'Slog',
ok: 'V redu',
resize: 'Potegni za spremembo velikosti',
generalTab: 'Splošno',
advancedTab: 'Napredno',
- validateNumberFailed: 'Ta vrednost ni število.',
- confirmNewPage: 'Vse neshranjene spremembe te vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
- confirmCancel: 'Nekaj možnosti je bilo spremenjenih. Ali res želite zapreti okno?',
+ validateNumberFailed: 'Vrednost ni število.',
+ confirmNewPage: 'Vse neshranjene spremembe vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
+ confirmCancel: 'Spremenili ste nekaj možnosti. Ali res želite zapreti okno?',
options: 'Možnosti',
target: 'Cilj',
- targetNew: 'Novo Okno (_blank)',
- targetTop: 'Vrhovno Okno (_top)',
- targetSelf: 'Enako Okno (_self)',
- targetParent: 'Matično Okno (_parent)',
+ targetNew: 'Novo okno (_blank)',
+ targetTop: 'Vrhovno okno (_top)',
+ targetSelf: 'Isto okno (_self)',
+ targetParent: 'Starševsko okno (_parent)',
langDirLTR: 'Od leve proti desni (LTR)',
langDirRTL: 'Od desne proti levi (RTL)',
styles: 'Slog',
- cssClasses: 'Razred stilne predloge',
+ cssClasses: 'Razredi slogovne predloge',
width: 'Širina',
height: 'Višina',
align: 'Poravnava',
alignMiddle: 'V sredino',
alignBottom: 'Na dno',
alignNone: 'Brez poravnave',
- invalidValue : 'Neveljavna vrednost.',
+ invalidValue: 'Neveljavna vrednost.',
invalidHeight: 'Višina mora biti število.',
invalidWidth: 'Širina mora biti število.',
- invalidCssLength: 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne CSS enote za merjenje (px, %, in, cm, mm, em, ex, pt, ali pc).',
- invalidHtmlLength: 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne HTML enote za merjenje (px ali %).',
- invalidInlineStyle: 'Vrednost določena za inline slog mora biti sestavljena iz ene ali več tork (tuples) z obliko "ime : vrednost", ločenih z podpičji.',
- cssLengthTooltip: 'Vnesite številko za vrednost v slikovnih pikah (pixels) ali številko z veljavno CSS enoto (px, %, in, cm, mm, em, ex, pt, ali pc).',
+ invalidCssLength: 'Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne CSS-enote za merjenje (px, %, in, cm, mm, em, ex, pt ali pc).',
+ invalidHtmlLength: 'Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne HTML-enote za merjenje (px ali %).',
+ invalidInlineStyle: 'Vrednost, določena za slog v vrstici, mora biti sestavljena iz ene ali več dvojic oblike »ime : vrednost«, ločenih s podpičji.',
+ cssLengthTooltip: 'Vnesite število za vrednost v slikovnih pikah ali število z veljavno CSS-enoto (px, %, in, cm, mm, em, ex, pt ali pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, nedosegljiv</span>'
+ unavailable: '%1<span class="cke_accessibility">, nedosegljiv</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Në mes',
alignBottom: 'Poshtë',
alignNone: 'Asnjë',
- invalidValue : 'Vlerë e pavlefshme',
+ invalidValue: 'Vlerë e pavlefshme',
invalidHeight: 'Lartësia duhet të jetë një numër',
invalidWidth: 'Gjerësia duhet të jetë një numër',
invalidCssLength: 'Vlera e fushës "%1" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme CSS (px, %, in, cm, mm, em, ex, pt ose pc).',
cssLengthTooltip: 'Fut një numër për vlerën në pixel apo një numër me një njësi të vlefshme CSS (px, %, in, cm, mm, ex, pt, ose pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, i padisponueshëm</span>'
+ unavailable: '%1<span class="cke_accessibility">, i padisponueshëm</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Prapa',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Grise',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Sredina',
alignBottom: 'Dole',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Visina mora biti broj.',
invalidWidth: 'Širina mora biti broj.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Средина',
alignBottom: 'Доле',
alignNone: 'None', // MISSING
- invalidValue : 'Invalid value.', // MISSING
+ invalidValue: 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
*/
CKEDITOR.lang[ 'sv' ] = {
// ARIA description.
- editor: 'Rich Text Editor',
- editorPanel: 'Rich Text Editor panel',
+ editor: 'Rich Text-editor',
+ editorPanel: 'Panel till Rich Text-editor',
// Common messages and labels.
common: {
alignMiddle: 'Mitten',
alignBottom: 'Nederkant',
alignNone: 'Ingen',
- invalidValue : 'Felaktigt värde.',
+ invalidValue: 'Felaktigt värde.',
invalidHeight: 'Höjd måste vara ett nummer.',
invalidWidth: 'Bredd måste vara ett nummer.',
invalidCssLength: 'Värdet för fältet "%1" måste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm, em, ex, pt, eller pc).',
cssLengthTooltip: 'Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, Ej tillgänglig</span>'
+ unavailable: '%1<span class="cke_accessibility">, Ej tillgänglig</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backsteg',
+ 13: 'Retur',
+ 16: 'Skift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Mellanslag',
+ 35: 'Slut',
+ 36: 'Hem',
+ 46: 'Radera',
+ 224: 'Kommando'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Kortkommando'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'กึ่งกลางแนวตั้ง',
alignBottom: 'ชิดด้านล่าง',
alignNone: 'None', // MISSING
- invalidValue : 'ค่าไม่ถูกต้อง',
+ invalidValue: 'ค่าไม่ถูกต้อง',
invalidHeight: 'ความสูงต้องเป็นตัวเลข',
invalidWidth: 'ความกว้างต้องเป็นตัวเลข',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace', // MISSING
+ 13: 'Enter', // MISSING
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Delete', // MISSING
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Orta',
alignBottom: 'Alt',
alignNone: 'Hiçbiri',
- invalidValue : 'Geçersiz değer.',
+ invalidValue: 'Geçersiz değer.',
invalidHeight: 'Yükseklik değeri bir sayı olmalıdır.',
invalidWidth: 'Genişlik değeri bir sayı olmalıdır.',
invalidCssLength: '"%1" alanı için verilen değer, geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt, veya pc) içeren veya içermeyen pozitif bir sayı olmalıdır.',
cssLengthTooltip: 'Piksel türünde bir sayı veya geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt veya pc) içeren bir sayı girin.',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, kullanılamaz</span>'
+ unavailable: '%1<span class="cke_accessibility">, kullanılamaz</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Silme Tuşu',
+ 13: 'Giriş Tuşu',
+ 16: 'Üst Karater Tuşu',
+ 17: 'Kontrol Tuşu',
+ 18: 'Alt Tuşu',
+ 32: 'Boşluk Tuşu',
+ 35: 'En Sona Tuşu',
+ 36: 'En Başa Tuşu',
+ 46: 'Silme Tuşu',
+ 224: 'Komut Tuşu'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Klavye Kısayolu'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Уртага',
alignBottom: 'Аска',
alignNone: 'Һичбер',
- invalidValue : 'Дөрес булмаган кыйммәт.',
+ invalidValue: 'Дөрес булмаган кыйммәт.',
invalidHeight: 'Биеклек сан булырга тиеш.',
invalidWidth: 'Киңлек сан булырга тиеш.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Кайтару',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Бетерү',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'ئوتتۇرا',
alignBottom: 'ئاستى',
alignNone: 'يوق',
- invalidValue : 'ئىناۋەتسىز قىممەت.',
+ invalidValue: 'ئىناۋەتسىز قىممەت.',
invalidHeight: 'ئېگىزلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر',
invalidWidth: 'كەڭلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر',
invalidCssLength: 'بۇ سۆز بۆلىكى چوقۇم مۇۋاپىق بولغان CSS ئۇزۇنلۇق قىممىتى بولۇشى زۆرۈر، بىرلىكى (px, %, in, cm, mm, em, ex, pt ياكى pc)',
cssLengthTooltip: 'بۇ سۆز بۆلىكى بىرىكمە CSS ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px, %, in, cm, mm, em, ex, pt ياكى pc)',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class=\\\\"cke_accessibility\\\\">، ئىشلەتكىلى بولمايدۇ</span>'
+ unavailable: '%1<span class=\\\\"cke_accessibility\\\\">، ئىشلەتكىلى بولمايدۇ</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'End',
+ 36: 'Home',
+ 46: 'ئۆچۈر',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.lang[ 'uk' ] = {
// ARIA description.
editor: 'Текстовий редактор',
- editorPanel: 'Панель текстового редактора',
+ editorPanel: 'Ð\9fанелÑ\8c Ñ\80озÑ\88иÑ\80еного Ñ\82екÑ\81Ñ\82ового Ñ\80едакÑ\82оÑ\80а',
// Common messages and labels.
common: {
alignMiddle: 'По середині',
alignBottom: 'По нижньому краю',
alignNone: 'Нема',
- invalidValue : 'Невірне значення.',
+ invalidValue: 'Невірне значення.',
invalidHeight: 'Висота повинна бути цілим числом.',
invalidWidth: 'Ширина повинна бути цілим числом.',
invalidCssLength: 'Значення, вказане для "%1" в полі повинно бути позитивним числом або без дійсного виміру CSS блоку (px, %, in, cm, mm, em, ex, pt або pc).',
cssLengthTooltip: 'Введіть номер значення в пікселях або число з дійсною одиниці CSS (px, %, in, cm, mm, em, ex, pt або pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, не доступне</span>'
+ unavailable: '%1<span class="cke_accessibility">, не доступне</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Backspace',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: 'Space', // MISSING
+ 35: 'End',
+ 36: 'Home',
+ 46: 'Видалити',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: 'Giữa',
alignBottom: 'Dưới',
alignNone: 'Không',
- invalidValue : 'Giá trị không hợp lệ.',
+ invalidValue: 'Giá trị không hợp lệ.',
invalidHeight: 'Chiều cao phải là số nguyên.',
invalidWidth: 'Chiều rộng phải là số nguyên.',
invalidCssLength: 'Giá trị quy định cho trường "%1" phải là một số dương có hoặc không có một đơn vị đo CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).',
cssLengthTooltip: 'Nhập một giá trị theo pixel hoặc một số với một đơn vị CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">, không có</span>'
+ unavailable: '%1<span class="cke_accessibility">, không có</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: 'Phím Backspace',
+ 13: 'Enter',
+ 16: 'Shift', // MISSING
+ 17: 'Ctrl', // MISSING
+ 18: 'Alt', // MISSING
+ 32: 'Space', // MISSING
+ 35: 'End', // MISSING
+ 36: 'Home', // MISSING
+ 46: 'Xóa',
+ 224: 'Command' // MISSING
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: 'Keyboard shortcut' // MISSING
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: '居中',
alignBottom: '底部',
alignNone: '无',
- invalidValue : '无效的值。',
+ invalidValue: '无效的值。',
invalidHeight: '高度必须为数字格式',
invalidWidth: '宽度必须为数字格式',
invalidCssLength: '此“%1”字段的值必须为正数,可以包含或不包含一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)',
cssLengthTooltip: '输入一个表示像素值的数字,或加上一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)。',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">,不可用</span>'
+ unavailable: '%1<span class="cke_accessibility">,不可用</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: '退格键',
+ 13: '回车键',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: '空格键',
+ 35: '行尾键',
+ 36: '行首键',
+ 46: '删除键',
+ 224: 'Command'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: '快捷键'
}
};
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
alignMiddle: '中間對齊',
alignBottom: '底端',
alignNone: '無',
- invalidValue : '無效值。',
+ invalidValue: '無效值。',
invalidHeight: '高度必須為數字。',
invalidWidth: '寬度必須為數字。',
invalidCssLength: '「%1」的值應為正數,並可包含有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。',
cssLengthTooltip: '請輸入數值,單位是像素或有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。',
// Put the voice-only part of the label in the span.
- unavailable: '%1<span class="cke_accessibility">,無法使用</span>'
+ unavailable: '%1<span class="cke_accessibility">,無法使用</span>',
+
+ // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+ keyboard: {
+ 8: '退格鍵',
+ 13: 'Enter',
+ 16: 'Shift',
+ 17: 'Ctrl',
+ 18: 'Alt',
+ 32: '空白鍵',
+ 35: 'End',
+ 36: 'Home',
+ 46: '刪除',
+ 224: 'Command 鍵'
+ },
+
+ // Prepended to ARIA labels with shortcuts.
+ keyboardShortcut: '鍵盤快捷鍵'
}
};
--- /dev/null
+CKEDITOR.dialog.add( 'audio', function ( editor )\r
+{\r
+ var lang = editor.lang.audio;\r
+\r
+ function commitValue( audioNode, extraStyles )\r
+ {\r
+ var value=this.getValue();\r
+\r
+ if ( !value && this.id=='id' )\r
+ value = generateId();\r
+\r
+ audioNode.setAttribute( this.id, value);\r
+\r
+ if ( !value )\r
+ return;\r
+ switch( this.id )\r
+ {\r
+ case 'poster':\r
+ extraStyles.backgroundImage = 'url(' + value + ')';\r
+ break;\r
+ case 'width':\r
+ extraStyles.width = value + 'px';\r
+ break;\r
+ case 'height':\r
+ extraStyles.height = value + 'px';\r
+ break;\r
+ }\r
+ }\r
+\r
+ function commitSrc( audioNode, extraStyles, audios )\r
+ {\r
+ var match = this.id.match(/(\w+)(\d)/),\r
+ id = match[1],\r
+ number = parseInt(match[2], 10);\r
+\r
+ var audio = audios[number] || (audios[number]={});\r
+ audio[id] = this.getValue();\r
+ }\r
+\r
+ function loadValue( audioNode )\r
+ {\r
+ if ( audioNode )\r
+ this.setValue( audioNode.getAttribute( this.id ) );\r
+ else\r
+ {\r
+ if ( this.id == 'id')\r
+ this.setValue( generateId() );\r
+ }\r
+ }\r
+\r
+ function loadSrc( audioNode, audios )\r
+ {\r
+ var match = this.id.match(/(\w+)(\d)/),\r
+ id = match[1],\r
+ number = parseInt(match[2], 10);\r
+\r
+ var audio = audios[number];\r
+ if (!audio)\r
+ return;\r
+ this.setValue( audio[ id ] );\r
+ }\r
+\r
+ function generateId()\r
+ {\r
+ var now = new Date();\r
+ return 'audio' + now.getFullYear() + now.getMonth() + now.getDate() + now.getHours() + now.getMinutes() + now.getSeconds();\r
+ }\r
+\r
+ // To automatically get the dimensions of the poster image\r
+ var onImgLoadEvent = function()\r
+ {\r
+ // Image is ready.\r
+ var preview = this.previewImage;\r
+ preview.removeListener( 'load', onImgLoadEvent );\r
+ preview.removeListener( 'error', onImgLoadErrorEvent );\r
+ preview.removeListener( 'abort', onImgLoadErrorEvent );\r
+\r
+ this.setValueOf( 'info', 'width', preview.$.width );\r
+ this.setValueOf( 'info', 'height', preview.$.height );\r
+ };\r
+\r
+ var onImgLoadErrorEvent = function()\r
+ {\r
+ // Error. Image is not loaded.\r
+ var preview = this.previewImage;\r
+ preview.removeListener( 'load', onImgLoadEvent );\r
+ preview.removeListener( 'error', onImgLoadErrorEvent );\r
+ preview.removeListener( 'abort', onImgLoadErrorEvent );\r
+ };\r
+\r
+ return {\r
+ title : lang.dialogTitle,\r
+ minWidth : 400,\r
+ minHeight : 200,\r
+\r
+ onShow : function()\r
+ {\r
+ // Clear previously saved elements.\r
+ this.fakeImage = this.audioNode = null;\r
+ // To get dimensions of poster image\r
+ this.previewImage = editor.document.createElement( 'img' );\r
+\r
+ var fakeImage = this.getSelectedElement();\r
+ if ( fakeImage && fakeImage.data( 'cke-real-element-type' ) && fakeImage.data( 'cke-real-element-type' ) == 'audio' )\r
+ {\r
+ this.fakeImage = fakeImage;\r
+\r
+ var audioNode = editor.restoreRealElement( fakeImage ),\r
+ audios = [],\r
+ sourceList = audioNode.getElementsByTag( 'source', '' );\r
+ if (sourceList.count()==0)\r
+ sourceList = audioNode.getElementsByTag( 'source', 'cke' );\r
+\r
+ for ( var i = 0, length = sourceList.count() ; i < length ; i++ )\r
+ {\r
+ var item = sourceList.getItem( i );\r
+ audios.push( {src : item.getAttribute( 'src' ), type: item.getAttribute( 'type' )} );\r
+ }\r
+\r
+ this.audioNode = audioNode;\r
+\r
+ this.setupContent( audioNode, audios );\r
+ }\r
+ else\r
+ this.setupContent( null, [] );\r
+ },\r
+\r
+ onOk : function()\r
+ {\r
+ // If there's no selected element create one. Otherwise, reuse it\r
+ var audioNode = null;\r
+ if ( !this.fakeImage )\r
+ {\r
+ audioNode = CKEDITOR.dom.element.createFromHtml( '<cke:audio></cke:audio>', editor.document );\r
+ audioNode.setAttributes(\r
+ {\r
+ controls : 'controls'\r
+ } );\r
+ }\r
+ else\r
+ {\r
+ audioNode = this.audioNode;\r
+ }\r
+\r
+ var extraStyles = {}, audios = [];\r
+ this.commitContent( audioNode, extraStyles, audios );\r
+\r
+ var innerHtml = '', links = '',\r
+ link = lang.linkTemplate || '',\r
+ fallbackTemplate = lang.fallbackTemplate || '';\r
+ for(var i=0; i<audios.length; i++)\r
+ {\r
+ var audio = audios[i];\r
+ if ( !audio || !audio.src )\r
+ continue;\r
+ innerHtml += '<cke:source src="' + audio.src + '" type="' + audio.type + '" />';\r
+ links += link.replace('%src%', audio.src).replace('%type%', audio.type);\r
+ }\r
+ audioNode.setHtml( innerHtml + fallbackTemplate.replace( '%links%', links ) );\r
+\r
+ // Refresh the fake image.\r
+ var newFakeImage = editor.createFakeElement( audioNode, 'cke_audio', 'audio', false );\r
+ newFakeImage.setStyles( extraStyles );\r
+ if ( this.fakeImage )\r
+ {\r
+ newFakeImage.replace( this.fakeImage );\r
+ editor.getSelection().selectElement( newFakeImage );\r
+ }\r
+ else\r
+ {\r
+ // Insert it in a div\r
+ var div = new CKEDITOR.dom.element( 'DIV', editor.document );\r
+ editor.insertElement( div );\r
+ div.append( newFakeImage );\r
+ }\r
+ },\r
+ onHide : function()\r
+ {\r
+ if ( this.previewImage )\r
+ {\r
+ this.previewImage.removeListener( 'load', onImgLoadEvent );\r
+ this.previewImage.removeListener( 'error', onImgLoadErrorEvent );\r
+ this.previewImage.removeListener( 'abort', onImgLoadErrorEvent );\r
+ this.previewImage.remove();\r
+ this.previewImage = null; // Dialog is closed.\r
+ }\r
+ },\r
+\r
+ contents :\r
+ [\r
+ {\r
+ id : 'info',\r
+ elements :\r
+ [\r
+ {\r
+ type : 'hbox',\r
+ widths: [ '', '100px'],\r
+ children : [\r
+ {\r
+ type : 'text',\r
+ id : 'poster',\r
+ label : lang.poster,\r
+ commit : commitValue,\r
+ setup : loadValue,\r
+ onChange : function()\r
+ {\r
+ var dialog = this.getDialog(),\r
+ newUrl = this.getValue();\r
+\r
+ //Update preview image\r
+ if ( newUrl.length > 0 ) //Prevent from load before onShow\r
+ {\r
+ dialog = this.getDialog();\r
+ var preview = dialog.previewImage;\r
+\r
+ preview.on( 'load', onImgLoadEvent, dialog );\r
+ preview.on( 'error', onImgLoadErrorEvent, dialog );\r
+ preview.on( 'abort', onImgLoadErrorEvent, dialog );\r
+ preview.setAttribute( 'src', newUrl );\r
+ }\r
+ }\r
+ },\r
+ {\r
+ type : 'button',\r
+ id : 'browse',\r
+ hidden : 'true',\r
+ style : 'display:inline-block;margin-top:10px;',\r
+ filebrowser :\r
+ {\r
+ action : 'Browse',\r
+ target: 'info:poster',\r
+ url: editor.config.filebrowserImageBrowseUrl || editor.config.filebrowserBrowseUrl\r
+ },\r
+ label : editor.lang.common.browseServer\r
+ }]\r
+ },\r
+ {\r
+ type : 'hbox',\r
+ widths: [ '33%', '33%', '33%'],\r
+ children : [\r
+ {\r
+ type : 'text',\r
+ id : 'width',\r
+ label : editor.lang.common.width,\r
+ 'default' : 400,\r
+ validate : CKEDITOR.dialog.validate.notEmpty( lang.widthRequired ),\r
+ commit : commitValue,\r
+ setup : loadValue\r
+ },\r
+ {\r
+ type : 'text',\r
+ id : 'height',\r
+ label : editor.lang.common.height,\r
+ 'default' : 300,\r
+ validate : CKEDITOR.dialog.validate.notEmpty(lang.heightRequired ),\r
+ commit : commitValue,\r
+ setup : loadValue\r
+ },\r
+ {\r
+ type : 'text',\r
+ id : 'id',\r
+ label : 'Id',\r
+ commit : commitValue,\r
+ setup : loadValue\r
+ }\r
+ ]\r
+ },\r
+ {\r
+ type : 'hbox',\r
+ widths: [ '', '100px', '75px'],\r
+ children : [\r
+ {\r
+ type : 'text',\r
+ id : 'src0',\r
+ label : lang.sourceaudio,\r
+ commit : commitSrc,\r
+ setup : loadSrc\r
+ },\r
+ {\r
+ type : 'button',\r
+ id : 'browse',\r
+ hidden : 'true',\r
+ style : 'display:inline-block;margin-top:10px;',\r
+ filebrowser :\r
+ {\r
+ action : 'Browse',\r
+ target: 'info:src0',\r
+ url: editor.config.filebrowserAudioBrowseUrl || editor.config.filebrowserBrowseUrl\r
+ },\r
+ label : editor.lang.common.browseServer\r
+ },\r
+ {\r
+ id : 'type0',\r
+ label : lang.sourceType,\r
+ type : 'select',\r
+ 'default' : 'audio/mp3',\r
+ items :\r
+ [\r
+ [ 'MP3', 'audio/mp3' ],\r
+ [ 'WAV', 'audio/wav' ]\r
+ ],\r
+ commit : commitSrc,\r
+ setup : loadSrc\r
+ }]\r
+ },\r
+\r
+ {\r
+ type : 'hbox',\r
+ widths: [ '', '100px', '75px'],\r
+ children : [\r
+ {\r
+ type : 'text',\r
+ id : 'src1',\r
+ label : lang.sourceaudio,\r
+ commit : commitSrc,\r
+ setup : loadSrc\r
+ },\r
+ {\r
+ type : 'button',\r
+ id : 'browse',\r
+ hidden : 'true',\r
+ style : 'display:inline-block;margin-top:10px;',\r
+ filebrowser :\r
+ {\r
+ action : 'Browse',\r
+ target: 'info:src1',\r
+ url: editor.config.filebrowserAudioBrowseUrl || editor.config.filebrowserBrowseUrl\r
+ },\r
+ label : editor.lang.common.browseServer\r
+ },\r
+ {\r
+ id : 'type1',\r
+ label : lang.sourceType,\r
+ type : 'select',\r
+ 'default':'audio/wav',\r
+ items :\r
+ [\r
+ [ 'MP3', 'audio/mp3' ],\r
+ [ 'WAV', 'audio/wav' ]\r
+ ],\r
+ commit : commitSrc,\r
+ setup : loadSrc\r
+ }]\r
+ }\r
+ ]\r
+ }\r
+\r
+ ]\r
+ };\r
+} );\r
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\r
+ "http://www.w3.org/TR/html4/loose.dtd">\r
+<html lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+<title>Audio plugin</title>\r
+<link href="styles.css" rel="stylesheet" type="text/css">\r
+</head>\r
+\r
+<body>\r
+<h1>Audio Plugin for CKEditor</h1>\r
+\r
+<h2>Introduction</h2>\r
+<p>This is a plugin to create HTML5 <audio> elements in <a href="http://www.ckeditor.com">CKEditor</a>.</p>\r
+<h3>Version history: </h3>\r
+<ol>\r
+ <li>1.0: 10-July-2015. First version.</li>\r
+</ol>\r
+\r
+<h2>Installation</h2>\r
+<h3>1. Copying the files</h3>\r
+<p>Extract the contents of the zip in you plugins directory, so it ends up like\r
+ this<br>\r
+ <!--<img src="installation.png" alt="Screenshot of installation" width="311" height="346" longdesc="#install">-->\r
+ </p>\r
+<pre id="--install">\r
+ckeditor\\r
+ ...\r
+ images\\r
+ lang\\r
+ plugins\\r
+ ...\r
+ audio\\r
+ plugin.js\r
+ dialogs\\r
+ audio.js\r
+ docs\\r
+ install.html\r
+ images\\r
+ icon.png\r
+ placeholder.png\r
+ ...\r
+ skins\\r
+ themes\\r
+</pre>\r
+<h3>2. Adding it to CKEditor</h3>\r
+<p>Now add the plugin in your <em>config.js</em> or custom js configuration\r
+file:\r
+<code>config.extraPlugins='audio'; </code>\r
+</p>\r
+\r
+<h3>3. Add it to your toolbar</h3>\r
+<p>In your toolbar configuration, add a new 'Audio' item in the place where you want the button to show up.</p>\r
+\r
+<h3>4. Configure server browser for audio</h3>\r
+<p>You can use the <code>config.filebrowserAudioBrowseUrl</code> entry to specify a url so the file browser shows just audio elements (as long as your configure properly your file browser).</p>\r
+\r
+<h3>5. Use it</h3>\r
+<p>Now empty the cache of your browser and reload the editor, the new button should show up and you can add <audio> elements into the content.</p>\r
+\r
+<h2>Final notes</h2>\r
+<p>Please, note that only newer browsers support the Audio element, in older ones a simple text linking to the source audios is provided, you might want to\r
+use some javascript or css to customize the final behavior of these elements.</p>\r
+\r
+\r
+<h2>Disclaimers</h2>\r
+<p>CKEditor is © CKSource.com</p>\r
+</body>\r
+</html>\r
--- /dev/null
+body {\r
+ font-family: Arial, Helvetica, sans-serif;\r
+ font-size: 90%;\r
+}\r
+h1 {\r
+ text-align:center;\r
+ font-size:180%;\r
+}\r
+h2 {\r
+ border-bottom:2px solid #CCC;\r
+ margin:1em 0 0.4em 0;\r
+}\r
+h3 {\r
+ margin-bottom:0.4em;\r
+}\r
+p {\r
+ margin:0 0 1em 1em;\r
+ text-align:justify;\r
+}\r
+ol {\r
+ margin:0 0 1.2em 1em;\r
+ padding:0;\r
+ list-style-type:none;\r
+}\r
+ol li {\r
+ margin:0.2em 0;\r
+}\r
+pre {\r
+ font-size:100%;\r
+ font-family:"Courier New", Courier, mono;\r
+ background-color: #CCCCCC;\r
+ border:1px solid #999;\r
+ padding:0.2em 1em;\r
+ margin: 0.4em 0;\r
+ display:block;\r
+ white-space: pre;\r
+ overflow: auto;\r
+}\r
+code {\r
+ font-size:100%;\r
+ font-family:"Courier New", Courier, mono;\r
+ background-color: #CCCCCC;\r
+ border:1px solid #999;\r
+ padding:0.2em;\r
+ white-space: pre;\r
+}\r
+form {\r
+ margin:0 0 0 1em;\r
+}\r
+span.key {\r
+ color: #006600;\r
+}\r
+#install {\r
+ display:none\r
+}\r
+#languages ul {\r
+ display:inline;\r
+ list-style-type:none;\r
+ margin:0;\r
+ padding:0;\r
+}\r
+#languages li {\r
+ display:inline;\r
+ margin:0;\r
+ padding:0;\r
+ vertical-align:bottom;\r
+}\r
--- /dev/null
+/*\r
+ * @file audio plugin for CKEditor\r
+ * Copyright (C) 2011 Alfonso Martínez de Lizarrondo\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ * - GNU General Public License Version 2 or later (the "GPL")\r
+ * http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ * http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ * - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ * http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ */\r
+\r
+( function() {\r
+\r
+CKEDITOR.plugins.add( 'Audio',\r
+{\r
+ // Translations, available at the end of this file, without extra requests\r
+ lang : [ 'en', 'es' ],\r
+\r
+ getPlaceholderCss : function()\r
+ {\r
+ return 'img.cke_audio' +\r
+ '{' +\r
+ 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' +\r
+ 'background-position: center center;' +\r
+ 'background-repeat: no-repeat;' +\r
+ 'background-color:gray;'+\r
+ 'border: 1px solid #a9a9a9;' +\r
+ 'width: 80px;' +\r
+ 'height: 80px;' +\r
+ '}';\r
+ },\r
+\r
+ onLoad : function()\r
+ {\r
+ // v4\r
+ if (CKEDITOR.addCss)\r
+ CKEDITOR.addCss( this.getPlaceholderCss() );\r
+\r
+ },\r
+\r
+ init : function( editor )\r
+ {\r
+ var lang = editor.lang.audio;\r
+\r
+ // Check for CKEditor 3.5\r
+ if (typeof editor.element.data == 'undefined')\r
+ {\r
+ alert('The "audio" plugin requires CKEditor 3.5 or newer');\r
+ return;\r
+ }\r
+\r
+ CKEDITOR.dialog.add( 'audio', this.path + 'dialogs/audio.js' );\r
+\r
+ editor.addCommand( 'Audio', new CKEDITOR.dialogCommand( 'audio' ) );\r
+ editor.ui.addButton( 'Audio',\r
+ {\r
+ label : lang.toolbar,\r
+ command : 'Audio',\r
+ icon : this.path + 'images/icon.png'\r
+ } );\r
+\r
+ // v3\r
+ if (editor.addCss)\r
+ editor.addCss( this.getPlaceholderCss() );\r
+\r
+\r
+ // If the "menu" plugin is loaded, register the menu items.\r
+ if ( editor.addMenuItems )\r
+ {\r
+ editor.addMenuItems(\r
+ {\r
+ audio :\r
+ {\r
+ label : lang.properties,\r
+ command : 'Audio',\r
+ group : 'flash'\r
+ }\r
+ });\r
+ }\r
+\r
+ editor.on( 'doubleclick', function( evt )\r
+ {\r
+ var element = evt.data.element;\r
+\r
+ if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'audio' )\r
+ evt.data.dialog = 'audio';\r
+ });\r
+\r
+ // If the "contextmenu" plugin is loaded, register the listeners.\r
+ if ( editor.contextMenu )\r
+ {\r
+ editor.contextMenu.addListener( function( element, selection )\r
+ {\r
+ if ( element && element.is( 'img' ) && !element.isReadOnly()\r
+ && element.data( 'cke-real-element-type' ) == 'audio' )\r
+ return { audio : CKEDITOR.TRISTATE_OFF };\r
+ });\r
+ }\r
+\r
+ // Add special handling for these items\r
+ CKEDITOR.dtd.$empty['cke:source']=1;\r
+ CKEDITOR.dtd.$empty['source']=1;\r
+\r
+ editor.lang.fakeobjects.audio = lang.fakeObject;\r
+\r
+\r
+ }, //Init\r
+\r
+ afterInit: function( editor )\r
+ {\r
+ var dataProcessor = editor.dataProcessor,\r
+ htmlFilter = dataProcessor && dataProcessor.htmlFilter,\r
+ dataFilter = dataProcessor && dataProcessor.dataFilter;\r
+\r
+ // dataFilter : conversion from html input to internal data\r
+ dataFilter.addRules(\r
+ {\r
+\r
+ elements : {\r
+ $ : function( realElement )\r
+ {\r
+ if ( realElement.name == 'audio' )\r
+ {\r
+ realElement.name = 'cke:audio';\r
+ for( var i=0; i < realElement.children.length; i++)\r
+ {\r
+ if ( realElement.children[ i ].name == 'source' )\r
+ realElement.children[ i ].name = 'cke:source'\r
+ }\r
+\r
+ var fakeElement = editor.createFakeParserElement( realElement, 'cke_audio', 'audio', false ),\r
+ fakeStyle = fakeElement.attributes.style || '';\r
+\r
+ var width = realElement.attributes.width,\r
+ height = realElement.attributes.height,\r
+ poster = realElement.attributes.poster;\r
+\r
+ if ( typeof width != 'undefined' )\r
+ fakeStyle = fakeElement.attributes.style = fakeStyle + 'width:' + CKEDITOR.tools.cssLength( width ) + ';';\r
+\r
+ if ( typeof height != 'undefined' )\r
+ fakeStyle = fakeElement.attributes.style = fakeStyle + 'height:' + CKEDITOR.tools.cssLength( height ) + ';';\r
+\r
+ if ( poster )\r
+ fakeStyle = fakeElement.attributes.style = fakeStyle + 'background-image:url(' + poster + ');';\r
+\r
+ return fakeElement;\r
+ }\r
+ }\r
+ }\r
+\r
+ }\r
+ );\r
+\r
+ } // afterInit\r
+\r
+} ); // plugins.add\r
+\r
+\r
+var en = {\r
+ toolbar : 'Audio',\r
+ dialogTitle : 'Audio properties',\r
+ fakeObject : 'Audio',\r
+ properties : 'Edit audio',\r
+ widthRequired : 'Width field cannot be empty',\r
+ heightRequired : 'Height field cannot be empty',\r
+ poster: 'Poster image',\r
+ sourceaudio: 'Source audio',\r
+ sourceType : 'Audio type',\r
+ linkTemplate : '<a href="%src%">%type%</a> ',\r
+ fallbackTemplate : 'Your browser doesn\'t support audio.<br>Please download the file: %links%'\r
+ };\r
+\r
+var es = {\r
+ toolbar : 'Audio',\r
+ dialogTitle : 'Propiedades de audio',\r
+ fakeObject : 'Audio',\r
+ properties : 'Editar el audio',\r
+ widthRequired : 'La anchura no se puede dejar en blanco',\r
+ heightRequired : 'La altura no se puede dejar en blanco',\r
+ poster: 'Imagen de presentación',\r
+ sourceaudio: 'Archivo de audio',\r
+ sourceType : 'Tipo',\r
+ linkTemplate : '<a href="%src%">%type%</a> ',\r
+ fallbackTemplate : 'Su navegador no soporta audio.<br>Por favor, descargue el fichero: %links%'\r
+ };\r
+\r
+ // v3\r
+ if (CKEDITOR.skins)\r
+ {\r
+ en = { audio : en} ;\r
+ es = { audio : es} ;\r
+ }\r
+\r
+// Translations\r
+CKEDITOR.plugins.setLang( 'audio', 'en', en );\r
+\r
+CKEDITOR.plugins.setLang( 'audio', 'es', es );\r
+\r
+})();\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.dialog.add( 'a11yHelp', function( editor ) {\r
var lang = editor.lang.a11yhelp,\r
+ coreLang = editor.lang.common.keyboard,\r
id = CKEDITOR.tools.getNextId();\r
\r
// CharCode <-> KeyChar.\r
var keyMap = {\r
- 8: lang.backspace,\r
+ 8: coreLang[ 8 ],\r
9: lang.tab,\r
- 13: lang.enter,\r
- 16: lang.shift,\r
- 17: lang.ctrl,\r
- 18: lang.alt,\r
+ 13: coreLang[ 13 ],\r
+ 16: coreLang[ 16 ],\r
+ 17: coreLang[ 17 ],\r
+ 18: coreLang[ 18 ],\r
19: lang.pause,\r
20: lang.capslock,\r
27: lang.escape,\r
33: lang.pageUp,\r
34: lang.pageDown,\r
- 35: lang.end,\r
- 36: lang.home,\r
+ 35: coreLang[ 35 ],\r
+ 36: coreLang[ 36 ],\r
37: lang.leftArrow,\r
38: lang.upArrow,\r
39: lang.rightArrow,\r
40: lang.downArrow,\r
45: lang.insert,\r
- 46: lang[ 'delete' ],\r
+ 46: coreLang[ 46 ],\r
91: lang.leftWindowKey,\r
92: lang.rightWindowKey,\r
93: lang.selectKey,\r
};\r
\r
// Modifier keys override.\r
- keyMap[ CKEDITOR.ALT ] = lang.alt;\r
- keyMap[ CKEDITOR.SHIFT ] = lang.shift;\r
- keyMap[ CKEDITOR.CTRL ] = lang.ctrl;\r
+ keyMap[ CKEDITOR.ALT ] = coreLang[ 18 ];\r
+ keyMap[ CKEDITOR.SHIFT ] = coreLang[ 16 ];\r
+ keyMap[ CKEDITOR.CTRL ] = CKEDITOR.env.mac ? coreLang[ 224 ] : coreLang[ 17 ];\r
\r
// Sort in desc.\r
var modifiers = [ CKEDITOR.ALT, CKEDITOR.SHIFT, CKEDITOR.CTRL ];\r
function representKeyStroke( keystroke ) {\r
var quotient, modifier,\r
presentation = [];\r
-\r
for ( var i = 0; i < modifiers.length; i++ ) {\r
modifier = modifiers[ i ];\r
quotient = keystroke / modifiers[ i ];\r
return presentation.join( '+' );\r
}\r
\r
- var variablesPattern = /\$\{(.*?)\}/g;\r
-\r
- var replaceVariables = ( function() {\r
- // Swaps keystrokes with their commands in object literal.\r
- // This makes searching keystrokes by command much easier.\r
- var keystrokesByCode = editor.keystrokeHandler.keystrokes,\r
- keystrokesByName = {};\r
-\r
- for ( var i in keystrokesByCode )\r
- keystrokesByName[ keystrokesByCode[ i ] ] = i;\r
+ var variablesPattern = /\$\{(.*?)\}/g,\r
+ replaceVariables = function( match, name ) {\r
+ var keystrokeCode = editor.getCommandKeystroke( name );\r
\r
- return function( match, name ) {\r
// Return the keystroke representation or leave match untouched\r
// if there's no keystroke for such command.\r
- return keystrokesByName[ name ] ? representKeyStroke( keystrokesByName[ name ] ) : match;\r
+ return keystrokeCode ? representKeyStroke( keystrokeCode ) : match;\r
};\r
- } )();\r
\r
// Create the help list directly from lang file entries.\r
function buildHelpContents() {\r
\r
for ( var j = 0; j < itemsLength; j++ ) {\r
var item = items[ j ],\r
- itemLegend = item.legend.replace( variablesPattern, replaceVariables );\r
+ // (http://dev.ckeditor.com/ticket/16980) There should be a different hotkey shown in Commands on Edge browser.\r
+ itemLegend = CKEDITOR.env.edge && item.legendEdge ? item.legendEdge : item.legend;\r
\r
- // (#9765) If some commands haven't been replaced in the legend,\r
+ itemLegend = itemLegend.replace( variablesPattern, replaceVariables );\r
+\r
+ // (http://dev.ckeditor.com/ticket/9765) If some commands haven't been replaced in the legend,\r
// most likely their keystrokes are unavailable and we shouldn't include\r
// them in our help list.\r
- if ( itemLegend.match( variablesPattern ) )\r
+ if ( itemLegend.match( variablesPattern ) ) {\r
continue;\r
+ }\r
\r
sectionHtml.push( itemTpl.replace( '%1', item.name ).replace( '%2', itemLegend ) );\r
}\r
'overflow-y:auto;' +\r
'overflow-x:hidden;' +\r
'}' +\r
- // Some adjustments are to be done for Quirks to work "properly" (#5757)\r
+ // Some adjustments are to be done for Quirks to work "properly" (http://dev.ckeditor.com/ticket/5757)\r
'.cke_browser_quirks .cke_accessibility_legend,' +\r
'{' +\r
'height:390px' +\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
\r
cs.js Found: 30 Missing: 0\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pouse',\r
capslock: 'Hoofletterslot',\r
escape: 'Ontsnap',\r
pageUp: 'Blaaiop',\r
pageDown: 'Blaaiaf',\r
- end: 'Einde',\r
- home: 'Tuis',\r
leftArrow: 'Linkspyl',\r
upArrow: 'Oppyl',\r
rightArrow: 'Regterpyl',\r
downArrow: 'Afpyl',\r
insert: 'Toevoeg',\r
- 'delete': 'Verwyder',\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'a11yhelp', 'az', {\r
+ title: 'Əlillərə dəstək üzrə təlimat',\r
+ contents: 'Kömək. Pəncərəni bağlamaq üçün ESC basın.',\r
+ legend: [\r
+ {\r
+ name: 'Əsas',\r
+ items: [\r
+ {\r
+ name: 'Düzəliş edənin alətlər çubuğu',\r
+ legend: 'Panelə keçmək üçün ${toolbarFocus} basın. Növbəti panelə TAB, əvvəlki panelə isə SHIFT+TAB düyməsi vasitəsi ilə keçə bilərsiz. Paneldəki düymələr arasında sol və sağ ox düyməsi ilə keçid edə bilərsiz. Seçilmiş düyməsi SPACE və ya ENTER ilə işlədə bilərsiniz.'\r
+ },\r
+\r
+ {\r
+ name: 'Redaktorun pəncərəsi',\r
+ legend:\r
+ 'Pəncərə içində növbəti element seçmək üçün TAB düyməni basın, əvvəlki isə - SHIFT+TAB. Təsdiq edilməsi üçün ENTER, imtina edilməsi isə ESC diymələri istifadə edin. Pəncərədə bir neçə vərəq olanda olnarın siyahı ALT+F10 ilə aça bilərsiz. Vərəqlərin siyahı fokus altında olanda ox düymələr vasitəsi ilə onların arasında keçid edə bilərsiz.'\r
+ },\r
+\r
+ {\r
+ name: 'Redaktorun seçimlərin menyusu',\r
+ legend: 'Seçimləri redaktə etmək üçün ${contextMenu} ya da APPLICATION KEY basın. Növbəti seçimə keçmək üçün TAB ya AŞAĞI OX düyməsini basın, əvvəlki isə - SHIFT+TAB ya YUXARI OX. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Alt menyunu açmaq üçün SPACE, ENTER ya SAĞA OX basın. ESC ya SOLA OX ilə geriyə qayıda bilərsiz. Bütün menyunu ESC ilə bağlıyın.'\r
+ },\r
+\r
+ {\r
+ name: 'Düzəliş edənin siyahı qutusu',\r
+ legend: 'Siyahı qutusu içində növbəti bənd seçmək üçün TAB ya AŞAĞI OX, əvvəlki isə SHIFT+TAB ya YUXARI OX basın. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Siyahı qutusu ESC ilə bağlıyın.'\r
+ },\r
+\r
+ {\r
+ name: 'Redaktor elementin cığır paneli',\r
+ legend: 'Elementin cığır paneli seçmək üçün ${elementsPathFocus} basın. Növbəti element seçmək üçün TAB ya SAĞA OX, əvvəlki isə SHIFT+TAB ya SOLA OX istifadə edin. Elementi arımaq SPACE ya ENTER düymələri mövcuddur.'\r
+ }\r
+ ]\r
+ },\r
+ {\r
+ name: 'Əmrlər',\r
+ items: [\r
+ {\r
+ name: 'Əmri geri qaytar',\r
+ legend: '${undo} basın'\r
+ },\r
+ {\r
+ name: 'Geri əmri',\r
+ legend: '${redo} basın'\r
+ },\r
+ {\r
+ name: 'Qalın əmri',\r
+ legend: '${bold} basın'\r
+ },\r
+ {\r
+ name: 'Kursiv əmri',\r
+ legend: '${italic} basın'\r
+ },\r
+ {\r
+ name: 'Altdan xətt əmri',\r
+ legend: '${underline} basın'\r
+ },\r
+ {\r
+ name: 'Link əmri',\r
+ legend: '${link} basın'\r
+ },\r
+ {\r
+ name: 'Paneli gizlət əmri',\r
+ legend: '${toolbarCollapse} basın'\r
+ },\r
+ {\r
+ name: 'Əvvəlki fokus sahəsi seç əmrı',\r
+ legend: 'Kursordan əvvəl ən yaxın əlçatmaz yerə dəymək üçün ${accessPreviousSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın.'\r
+ },\r
+ {\r
+ name: 'Növbəti fokus sahəsi seç əmrı',\r
+ legend: 'Kursordan sonra ən yaxın əlçatmaz yerə dəymək üçün ${accessNextSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın.'\r
+ },\r
+ {\r
+ name: 'Hərtərəfli Kömək',\r
+ legend: '${a11yHelp} basın'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ tab: 'Tab',\r
+ pause: 'Pause',\r
+ capslock: 'Caps Lock',\r
+ escape: 'Escape',\r
+ pageUp: 'Page Up',\r
+ pageDown: 'Page Down',\r
+ leftArrow: 'Sola ox işarəsi',\r
+ upArrow: 'Yuxarı ox işarəsi',\r
+ rightArrow: 'Sağa ox işarəsi',\r
+ downArrow: 'Aşağı ox işarəsi',\r
+ insert: 'Insert',\r
+ leftWindowKey: 'Soldaki Windows düyməsi',\r
+ rightWindowKey: 'Sağdaki Windows düyməsi',\r
+ selectKey: 'Düyməni seçin',\r
+ numpad0: 'Numpad 0',\r
+ numpad1: 'Numpad 1',\r
+ numpad2: 'Numpad 2',\r
+ numpad3: 'Numpad 3',\r
+ numpad4: 'Numpad 4',\r
+ numpad5: 'Numpad 5',\r
+ numpad6: 'Numpad 6',\r
+ numpad7: 'Numpad 7',\r
+ numpad8: 'Numpad 8',\r
+ numpad9: 'Numpad 9',\r
+ multiply: 'Vurma',\r
+ add: 'Əlavə et',\r
+ subtract: 'Çıxma',\r
+ decimalPoint: 'Onluq kəsri tam ədəddən ayıran nöqtə',\r
+ divide: 'Bölüşdürmə',\r
+ f1: 'F1',\r
+ f2: 'F2',\r
+ f3: 'F3',\r
+ f4: 'F4',\r
+ f5: 'F5',\r
+ f6: 'F6',\r
+ f7: 'F7',\r
+ f8: 'F8',\r
+ f9: 'F9',\r
+ f10: 'F10',\r
+ f11: 'F11',\r
+ f12: 'F12',\r
+ numLock: 'Num Lock',\r
+ scrollLock: 'Scroll Lock',\r
+ semiColon: 'Nöqtəli verqül',\r
+ equalSign: 'Barəbərlik işarəsi',\r
+ comma: 'Vergül',\r
+ dash: 'Defis',\r
+ period: 'Nöqtə',\r
+ forwardSlash: 'Çəp xətt',\r
+ graveAccent: 'Vurğu işarəsi',\r
+ openBracket: 'Açılan mötərizə',\r
+ backSlash: 'Tərs çəpəki xətt',\r
+ closeBracket: 'Bağlanan mötərizə',\r
+ singleQuote: 'Tək dırnaq'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Editor de quadre de diàleg',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'Dins d\'un quadre de diàleg, premi la tecla TAB per desplaçar-se fins al següent element del quadre de diàleg, premi la tecla Shift + TAB per desplaçar-se a l\'anterior element del quadre de diàleg, premi la tecla ENTER per confirmar el quadre de diàleg, premi la tecla ESC per cancel·lar el quadre de diàleg. Quan un quadre de diàleg té diverses pestanyes, la llista de pestanyes pot ser assolit ja sigui amb ALT + F10 o TAB, com a part de l\'ordre de tabulació del quadre de diàleg. Amb la llista de pestanyes seleccionada, pot anar a la fitxa següent i anterior amb la tecla FLETXA DRETA i ESQUERRA, respectivament.'\r
},\r
\r
{\r
{\r
name: 'Ajuda d\'accessibilitat',\r
legend: 'Premi ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Retrocés',\r
tab: 'Tabulació',\r
- enter: 'Intro',\r
- shift: 'Majúscules',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pausa',\r
capslock: 'Bloqueig de majúscules',\r
escape: 'Escape',\r
pageUp: 'Pàgina Amunt',\r
pageDown: 'Pàgina Avall',\r
- end: 'Fi',\r
- home: 'Inici',\r
leftArrow: 'Fletxa Esquerra',\r
upArrow: 'Fletxa Amunt',\r
rightArrow: 'Fletxa Dreta',\r
downArrow: 'Fletxa Avall',\r
insert: 'Inserir',\r
- 'delete': 'Eliminar',\r
leftWindowKey: 'Tecla Windows Esquerra',\r
rightWindowKey: 'Tecla Windows Dreta',\r
selectKey: 'Tecla Seleccionar',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Nápověda přístupnosti',\r
legend: 'Stiskněte ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tabulátor',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pauza',\r
capslock: 'Caps lock',\r
escape: 'Escape',\r
pageUp: 'Stránka nahoru',\r
pageDown: 'Stránka dolů',\r
- end: 'Konec',\r
- home: 'Domů',\r
leftArrow: 'Šipka vlevo',\r
upArrow: 'Šipka nahoru',\r
rightArrow: 'Šipka vpravo',\r
downArrow: 'Šipka dolů',\r
insert: 'Vložit',\r
- 'delete': 'Smazat',\r
leftWindowKey: 'Levá klávesa Windows',\r
rightWindowKey: 'Pravá klávesa Windows',\r
selectKey: 'Vyberte klávesu',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Cymorth Hygyrchedd',\r
legend: 'Pwyswch ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape',\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
},\r
\r
{\r
- name: 'Editor Context Menu', // MISSING\r
- legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING\r
+ name: 'Redaktør kontekstmenu',\r
+ legend: 'Tryk ${contextMenu} eller APPLICATION KEY for at åbne kontekstmenuen. Flyt derefter til næste menuvalg med TAB eller PIL NED. Flyt til forrige valg med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge menu-muligheder. Åben under-menu af aktuelle valg med MELLEMRUM eller RETUR eller HØJRE PIL. Gå tilbage til overliggende menu-emne med ESC eller VENSTRE PIL. Luk kontekstmenu med ESC.'\r
},\r
\r
{\r
- name: 'Editor List Box', // MISSING\r
- legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING\r
+ name: 'Redaktør listeboks',\r
+ legend: 'Flyt til næste emne med TAB eller PIL NED inde i en listeboks. Flyt til forrige listeemne med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge liste-muligheder. Tryk ESC for at lukke liste-boksen.'\r
},\r
\r
{\r
- name: 'Editor Element Path Bar', // MISSING\r
- legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING\r
+ name: 'Redaktør elementsti-bar',\r
+ legend: 'Tryk ${elementsPathFocus} for at navigere til elementernes sti-bar. Flyt til næste element-knap med TAB eller HØJRE PIL. Flyt til forrige knap med SHIFT+TAB eller VENSTRE PIL. Klik MELLEMRUM eller RETUR for at vælge element i editoren.'\r
}\r
]\r
},\r
legend: 'Klik ${link}'\r
},\r
{\r
- name: ' Toolbar Collapse command', // MISSING\r
+ name: 'Klap værktøjslinje sammen kommando ',\r
legend: 'Klik ${toolbarCollapse}'\r
},\r
{\r
- name: ' Access previous focus space command', // MISSING\r
+ name: 'Adgang til forrige fokusområde kommando',\r
legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING\r
},\r
{\r
{\r
name: 'Tilgængelighedshjælp',\r
legend: 'Kilk ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Venstre pil',\r
upArrow: 'Pil op',\r
rightArrow: 'Højre pil',\r
downArrow: 'Pil ned',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Venstre Windows tast',\r
rightWindowKey: 'Højre Windows tast',\r
selectKey: 'Select-knap',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Eingabehilfen',\r
legend: 'Drücken Sie ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Rücktaste',\r
tab: 'Tab',\r
- enter: 'Eingabe',\r
- shift: 'Umschalt',\r
- ctrl: 'Strg',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Feststell',\r
escape: 'Escape',\r
pageUp: 'Bild auf',\r
pageDown: 'Bild ab',\r
- end: 'Ende',\r
- home: 'Pos1',\r
leftArrow: 'Linke Pfeiltaste',\r
upArrow: 'Obere Pfeiltaste',\r
rightArrow: 'Rechte Pfeiltaste',\r
downArrow: 'Untere Pfeiltaste',\r
insert: 'Einfügen',\r
- 'delete': 'Entfernen',\r
leftWindowKey: 'Linke Windowstaste',\r
rightWindowKey: 'Rechte Windowstaste',\r
selectKey: 'Taste auswählen',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Editordialog',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'Drücke innerhalb eines Dialogs TAB, um zum nächsten Element zu springen. Drücke SHIFT+TAB, um zum vorigen Element zu springen, drücke ENTER um das Formular im Dialog abzusenden, drücke ESC, um den Dialog zu schließen. Hat der Dialog mehrere Tabs, dann kannst du durch ALT+F10 die Tab-Liste aufrufen or mittels TAB als Teil der Dialog-Tab-Reihenfolge. Ist die Tab-Liste fokussiert, dann mithilfe der Pfeiltasten (LINKS und RECHTS) zwischen den Tabs gewechselt werden.'\r
},\r
\r
{\r
{\r
name: 'Eingabehilfen',\r
legend: 'Drücken Sie ${a11yHelp}'\r
+ },\r
+ {\r
+ name: 'Einfügen als unformatierter Text. ',\r
+ legend: 'Drücke ${pastetext}',\r
+ legendEdge: 'Drücke ${pastetext} und anschließend ${paste}'\r
}\r
]\r
}\r
],\r
- backspace: 'Rücktaste',\r
tab: 'Tab',\r
- enter: 'Eingabe',\r
- shift: 'Umschalt',\r
- ctrl: 'Strg',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Feststell',\r
escape: 'Escape',\r
pageUp: 'Bild auf',\r
pageDown: 'Bild ab',\r
- end: 'Ende',\r
- home: 'Pos1',\r
leftArrow: 'Linke Pfeiltaste',\r
upArrow: 'Obere Pfeiltaste',\r
rightArrow: 'Rechte Pfeiltaste',\r
downArrow: 'Untere Pfeiltaste',\r
insert: 'Einfügen',\r
- 'delete': 'Entfernen',\r
leftWindowKey: 'Linke Windowstaste',\r
rightWindowKey: 'Rechte Windowstaste',\r
selectKey: 'Taste auswählen',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Βοήθεια Προσβασιμότητας',\r
legend: 'Πατήστε ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Αριστερό Βέλος',\r
upArrow: 'Πάνω Βέλος',\r
rightArrow: 'Δεξί Βέλος',\r
downArrow: 'Κάτω Βέλος',\r
insert: 'Insert ',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Αριστερό Πλήκτρο Windows',\r
rightWindowKey: 'Δεξί Πλήκτρο Windows',\r
selectKey: 'Πλήκτρο Select',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help',\r
legend: 'Press ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Left Arrow',\r
upArrow: 'Up Arrow',\r
rightArrow: 'Right Arrow',\r
downArrow: 'Down Arrow',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Left Windows key',\r
rightWindowKey: 'Right Windows key',\r
selectKey: 'Select key',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help',\r
legend: 'Press ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text',\r
+ legend: 'Press ${pastetext}',\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}'\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Left Arrow',\r
upArrow: 'Up Arrow',\r
rightArrow: 'Right Arrow',\r
downArrow: 'Down Arrow',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Left Windows key',\r
rightWindowKey: 'Right Windows key',\r
selectKey: 'Select key',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Helpilo pri atingeblo',\r
legend: 'Premu ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Retropaŝo',\r
tab: 'Tabo',\r
- enter: 'Enigi',\r
- shift: 'Registrumo',\r
- ctrl: 'Stirklavo',\r
- alt: 'Alt-klavo',\r
pause: 'Paŭzo',\r
capslock: 'Majuskla baskulo',\r
escape: 'Eskapa klavo',\r
pageUp: 'Antaŭa Paĝo',\r
pageDown: 'Sekva Paĝo',\r
- end: 'Fino',\r
- home: 'Hejmo',\r
leftArrow: 'Sago Maldekstren',\r
upArrow: 'Sago Supren',\r
rightArrow: 'Sago Dekstren',\r
downArrow: 'Sago Suben',\r
insert: 'Enmeti',\r
- 'delete': 'Forigi',\r
leftWindowKey: 'Maldekstra Windows-klavo',\r
rightWindowKey: 'Dekstra Windows-klavo',\r
selectKey: 'Selektklavo',\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'a11yhelp', 'es-mx', {\r
+ title: 'Instrucciones de accesibilidad',\r
+ contents: 'Contenidos de ayuda. Para cerrar este cuadro de diálogo presione ESC.',\r
+ legend: [\r
+ {\r
+ name: 'General',\r
+ items: [\r
+ {\r
+ name: 'Barra de herramientas del editor',\r
+ legend: 'Presione ${toolbarFocus} para navegar a la barra de herramientas. Desplácese al grupo de barras de herramientas siguiente y anterior con SHIFT + TAB. Desplácese al botón siguiente y anterior de la barra de herramientas con FLECHA DERECHA o FLECHA IZQUIERDA. Presione SPACE o ENTER para activar el botón de la barra de herramientas.'\r
+ },\r
+\r
+ {\r
+ name: 'Editor de diálogo',\r
+ legend:\r
+ 'Dentro de un cuadro de diálogo, pulse TAB para desplazarse hasta el siguiente elemento de diálogo, pulse MAYÚS + TAB para desplazarse al elemento de diálogo anterior, pulse ENTER para enviar el diálogo, pulse ESC para cancelar el diálogo. Cuando un cuadro de diálogo tiene varias pestañas, se puede acceder a la lista de pestañas con ALT + F10 o con TAB como parte del orden de tabulación del diálogo. Con la lista de tabuladores enfocada, mueva a la pestaña siguiente y anterior con las flechas DERECHA y IZQUIERDA, respectivamente.'\r
+ },\r
+\r
+ {\r
+ name: 'Menú contextual del editor',\r
+ legend: 'Presione ${contextMenu} o CLAVE DE APLICACIÓN para abrir el menú contextual. A continuación, vaya a la siguiente opción del menú con TAB o DOWN ARROW. Desplácese a la opción anterior con SHIFT + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción del menú. Abra el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Vuelva al elemento de menú principal con ESC o FLECHA IZQUIERDA. Cerrar el menú contextual con ESC.'\r
+ },\r
+\r
+ {\r
+ name: 'Editor de cuadro de lista',\r
+ legend: 'Dentro de un cuadro de lista, mueva al siguiente elemento de lista con TAB O FLECHA ABAJO. Mueva al elemento anterior de la lista con MAYÚS + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción de lista. Presione ESC para cerrar el cuadro de lista.'\r
+ },\r
+\r
+ {\r
+ name: 'Barra de ruta del elemento del editor',\r
+ legend: 'Presione ${elementsPathFocus} para navegar a la barra de ruta de elementos. Desplácese al siguiente botón de elemento con TAB o FLECHA DERECHA. Desplácese al botón anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione SPACE o ENTER para seleccionar el elemento en el editor.'\r
+ }\r
+ ]\r
+ },\r
+ {\r
+ name: 'Comandos',\r
+ items: [\r
+ {\r
+ name: 'Comando deshacer',\r
+ legend: 'Presiona ${undo}'\r
+ },\r
+ {\r
+ name: 'Comando rehacer',\r
+ legend: 'Presiona ${redo}'\r
+ },\r
+ {\r
+ name: 'Comando negrita',\r
+ legend: 'Presiona ${bold}'\r
+ },\r
+ {\r
+ name: 'Comando cursiva',\r
+ legend: 'Presiona {italic}'\r
+ },\r
+ {\r
+ name: 'Comando subrayado',\r
+ legend: 'Presiona ${underline}'\r
+ },\r
+ {\r
+ name: 'Comando enlace',\r
+ legend: 'Presiona ${link}'\r
+ },\r
+ {\r
+ name: 'Comando colapsar barra de herramientas',\r
+ legend: 'Presiona ${toolbarCollapse}'\r
+ },\r
+ {\r
+ name: 'Acceda al comando de espacio de enfoque anterior',\r
+ legend: 'Presione ${accessPreviousSpace} para acceder al espacio de enfoque inaccesible más cercano antes del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes.'\r
+ },\r
+ {\r
+ name: 'Acceder al siguiente comando de espacio de enfoque',\r
+ legend: 'Pulse ${accessNextSpace} para acceder al espacio de enfoque más cercano inaccesible después del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes.'\r
+ },\r
+ {\r
+ name: 'Ayuda de accesibilidad',\r
+ legend: 'Presiona ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ tab: 'Tabulador',\r
+ pause: 'Pausa',\r
+ capslock: 'Mayúsculas',\r
+ escape: 'Escape',\r
+ pageUp: 'Página arriba',\r
+ pageDown: 'Página abajo',\r
+ leftArrow: 'Flecha izquierda',\r
+ upArrow: 'Flecha arriba',\r
+ rightArrow: 'Flecha derecha',\r
+ downArrow: 'Flecha abajo',\r
+ insert: 'Insertar',\r
+ leftWindowKey: 'Tecla izquierda de Windows',\r
+ rightWindowKey: 'Tecla derecha de Windows',\r
+ selectKey: 'Tecla de selección',\r
+ numpad0: 'Teclado numérico 0',\r
+ numpad1: 'Teclado numérico 1',\r
+ numpad2: 'Teclado numérico 2',\r
+ numpad3: 'Teclado numérico 3',\r
+ numpad4: 'Teclado numérico 4',\r
+ numpad5: 'Teclado numérico 5',\r
+ numpad6: 'Teclado numérico 6',\r
+ numpad7: 'Teclado numérico 7',\r
+ numpad8: 'Teclado numérico 8',\r
+ numpad9: 'Teclado numérico 9',\r
+ multiply: 'Multiplicar',\r
+ add: 'Sumar',\r
+ subtract: 'Restar',\r
+ decimalPoint: 'Punto decimal',\r
+ divide: 'Dividir',\r
+ f1: 'F1',\r
+ f2: 'F2',\r
+ f3: 'F3',\r
+ f4: 'F4',\r
+ f5: 'F5',\r
+ f6: 'F6',\r
+ f7: 'F7',\r
+ f8: 'F8',\r
+ f9: 'F9',\r
+ f10: 'F10',\r
+ f11: 'F11',\r
+ f12: 'F12',\r
+ numLock: 'Números',\r
+ scrollLock: 'Bloqueo de desplazamiento',\r
+ semiColon: 'punto y coma',\r
+ equalSign: 'Signo igual',\r
+ comma: 'Coma',\r
+ dash: 'Guión',\r
+ period: 'Espacio',\r
+ forwardSlash: 'Diagonal',\r
+ graveAccent: 'Acento grave',\r
+ openBracket: 'Abrir paréntesis',\r
+ backSlash: 'Diagonal invertida',\r
+ closeBracket: 'Cerrar paréntesis',\r
+ singleQuote: 'Comillas simple'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Editor de diálogo',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente.'\r
},\r
\r
{\r
{\r
name: 'Ayuda de Accesibilidad',\r
legend: 'Presiona ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Retroceso',\r
tab: 'Tabulador',\r
- enter: 'Ingresar',\r
- shift: 'Mayús.',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pausa',\r
capslock: 'Bloq. Mayús.',\r
escape: 'Escape',\r
pageUp: 'Regresar Página',\r
pageDown: 'Avanzar Página',\r
- end: 'Fin',\r
- home: 'Inicio',\r
leftArrow: 'Flecha Izquierda',\r
upArrow: 'Flecha Arriba',\r
rightArrow: 'Flecha Derecha',\r
downArrow: 'Flecha Abajo',\r
insert: 'Insertar',\r
- 'delete': 'Suprimir',\r
leftWindowKey: 'Tecla Windows Izquierda',\r
rightWindowKey: 'Tecla Windows Derecha',\r
selectKey: 'Tecla de Selección',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Erabilerraztasunaren laguntza',\r
legend: 'Sakatu ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Atzera tekla',\r
tab: 'Tabuladorea',\r
- enter: 'Sartu',\r
- shift: 'Maius',\r
- ctrl: 'Ktrl',\r
- alt: 'Alt',\r
pause: 'Pausatu',\r
capslock: 'Blok Maius',\r
escape: 'Ihes',\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'Buka',\r
- home: 'Etxea',\r
leftArrow: 'Ezker-gezia',\r
upArrow: 'Gora gezia',\r
rightArrow: 'Eskuin-gezia',\r
downArrow: 'Behera gezia',\r
insert: 'Txertatu',\r
- 'delete': 'Ezabatu',\r
leftWindowKey: 'Ezkerreko Windows tekla',\r
rightWindowKey: 'Eskuineko Windows tekla',\r
selectKey: 'Hautatu tekla',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'راهنمای دسترسی',\r
legend: 'فشردن ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'عقبگرد',\r
tab: 'برگه',\r
- enter: 'ورود',\r
- shift: 'تعویض',\r
- ctrl: 'کنترل',\r
- alt: 'دگرساز',\r
pause: 'توقف',\r
capslock: 'Caps Lock',\r
escape: 'گریز',\r
pageUp: 'صفحه به بالا',\r
pageDown: 'صفحه به پایین',\r
- end: 'پایان',\r
- home: 'خانه',\r
leftArrow: 'پیکان چپ',\r
upArrow: 'پیکان بالا',\r
rightArrow: 'پیکان راست',\r
downArrow: 'پیکان پایین',\r
insert: 'ورود',\r
- 'delete': 'حذف',\r
leftWindowKey: 'کلید چپ ویندوز',\r
rightWindowKey: 'کلید راست ویندوز',\r
selectKey: 'انتخاب کلید',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Saavutettavuus ohjeet',\r
legend: 'Paina ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Aide d\'accessibilité',\r
legend: 'Appuyer sur ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', {\r
title: 'Instructions d\'accessibilité',\r
- contents: 'Contenu de l\'aide. Pour fermer ce dialogue, appuyez sur la touche ÉCHAP (Echappement).',\r
+ contents: 'Contenu de l\'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.',\r
legend: [\r
{\r
name: 'Général',\r
items: [\r
{\r
name: 'Barre d\'outils de l\'éditeur',\r
- legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers les groupes suivant ou précédent de la barre d\'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d\'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d\'espace ou la touche ENTRÉE pour activer le bouton de barre d\'outils.'\r
+ legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers le groupe suivant ou précédent de la barre d\'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d\'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d\'espace ou la touche Entrée pour activer le bouton de barre d\'outils.'\r
},\r
\r
{\r
- name: 'Dialogue de l\'éditeur',\r
+ name: 'Fenêtre de l\'éditeur',\r
legend:\r
- 'Dans un dialogue, appuyer sur TAB pour aller à l\'élément suivant du dialogue, appuyer sur MAJ+TAB pour aller à l\'élément précédent du dialogue, appuyer sur ECHAP pour annuler le dialogue. Quand un dialogue a de multiples onglets, on peut accéder à la liste des onglets avec ALT+F10 ou avec TAB. Dans la liste des onglets, se déplacer vers le suivant ou le précédent avec les FLECHES DROITE et GAUCHE respectivement.'\r
+ 'Dans une boîte de dialogue, appuyer sur Tab pour passer à l\'élément suivant, appuyer sur Maj+Tab pour passer à l\'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement.'\r
},\r
\r
{\r
name: 'Menu contextuel de l\'éditeur',\r
- legend: 'Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l\'option suivante du menu avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'option précédente avec les touches MAJ+TAB ou FLÈCHE HAUT. appuyer sur la BARRE D\'ESPACE ou la touche ENTRÉE pour sélectionner l\'option du menu. Oovrir le sous-menu de l\'option courante avec la BARRE D\'ESPACE ou les touches ENTRÉE ou FLÈCHE DROITE. Revenir à l\'élément de menu parent avec les touches ÉCHAP ou FLÈCHE GAUCHE. Fermer le menu contextuel avec ÉCHAP.'\r
+ legend: 'Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l\'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l\'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou la touche Entrée pour sélectionner l\'option du menu. Appuyer sur la barre d\'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l\'option sélectionnée. Revenir à l\'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap.'\r
},\r
\r
{\r
name: 'Zone de liste de l\'éditeur',\r
- legend: 'Dans la liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'élément précédent de la liste avec les touches MAJ+TAB ou FLÈCHE HAUT. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'option dans la liste. Appuyer sur ÉCHAP pour fermer le menu déroulant.'\r
+ legend: 'Dans une liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l\'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant.'\r
},\r
\r
{\r
- name: 'Barre d\'emplacement des éléments de l\'éditeur',\r
- legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d\'emplacement des éléments de l\'éditeur. Se déplacer vers le bouton d\'élément suivant avec les touches TAB ou FLÈCHE DROITE. Se déplacer vers le bouton d\'élément précédent avec les touches MAJ+TAB ou FLÈCHE GAUCHE. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'élément dans l\'éditeur.'\r
+ name: 'Barre du chemin d\'éléments de l\'éditeur',\r
+ legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d\'Ariane des éléments. Se déplacer vers le bouton de l\'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'élément dans l\'éditeur.'\r
}\r
]\r
},\r
legend: 'Appuyer sur ${undo}'\r
},\r
{\r
- name: 'Refaire la commande',\r
+ name: 'Commande restaurer',\r
legend: 'Appuyer sur ${redo}'\r
},\r
{\r
legend: 'Appuyer sur ${toolbarCollapse}'\r
},\r
{\r
- name: 'Accéder à la précédente commande d\'espace de mise au point',\r
- legend: 'Appuyez sur ${accessPreviousSpace} pour accéder à l\'espace hors d\'atteinte le plus proche avant le caret, par exemple: deux éléments HR adjacents. Répétez la combinaison de touches pour atteindre les espaces de mise au point distants.'\r
+ name: 'Commande d\'accès à l\'élément sélectionnable précédent',\r
+ legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents.'\r
},\r
{\r
- name: 'Accès à la prochaine commande de l\'espace de mise au point',\r
- legend: 'Appuyez sur ${accessNextSpace} pour accéder au plus proche espace de mise au point hors d\'atteinte après le caret, par exemple: deux éléments HR adjacents. répétez la combinaison de touches pour atteindre les espace de mise au point distants.'\r
+ name: 'Commande d\'accès à l\'élément sélectionnable suivant',\r
+ legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants.'\r
},\r
{\r
- name: ' Aide Accessibilité',\r
+ name: ' Aide sur l\'accessibilité',\r
legend: 'Appuyer sur ${a11yHelp}'\r
+ },\r
+ {\r
+ name: 'Coller comme texte sans mise en forme',\r
+ legend: 'Appuyer sur ${pastetext}',\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Retour arrière',\r
tab: 'Tabulation',\r
- enter: 'Entrée',\r
- shift: 'Majuscule',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Verr. Maj.',\r
escape: 'Échap',\r
pageUp: 'Page supérieure',\r
- pageDown: 'Page inférieure',\r
- end: 'Fin',\r
- home: 'Retour',\r
+ pageDown: 'Page suivante',\r
leftArrow: 'Flèche gauche',\r
- upArrow: 'Flèche haute',\r
+ upArrow: 'Flèche haut',\r
rightArrow: 'Flèche droite',\r
downArrow: 'Flèche basse',\r
- insert: 'Insertion',\r
- 'delete': 'Supprimer',\r
+ insert: 'Inser',\r
leftWindowKey: 'Touche Windows gauche',\r
rightWindowKey: 'Touche Windows droite',\r
- selectKey: 'Touche menu',\r
- numpad0: 'Pavé numérique 0',\r
- numpad1: 'Pavé numérique 1',\r
- numpad2: 'Pavé numérique 2',\r
- numpad3: 'Pavé numérique 3',\r
- numpad4: 'Pavé numérique 4',\r
- numpad5: 'Pavé numérique 5',\r
- numpad6: 'Pavé numérique 6',\r
- numpad7: 'Pavé numérique 7',\r
+ selectKey: 'Touche Sélectionner',\r
+ numpad0: '0 du pavé numérique',\r
+ numpad1: '1 du pavé numérique',\r
+ numpad2: '2 du pavé numérique',\r
+ numpad3: '3 du pavé numérique',\r
+ numpad4: '4 du pavé numérique',\r
+ numpad5: '5 du pavé numérique',\r
+ numpad6: '6 du pavé numérique',\r
+ numpad7: '7 du pavé numérique',\r
numpad8: 'Pavé numérique 8',\r
- numpad9: 'Pavé numérique 9',\r
+ numpad9: '9 du pavé numérique',\r
multiply: 'Multiplier',\r
- add: 'Addition',\r
- subtract: 'Soustraire',\r
+ add: 'Plus',\r
+ subtract: 'Moins',\r
decimalPoint: 'Point décimal',\r
divide: 'Diviser',\r
f1: 'F1',\r
f10: 'F10',\r
f11: 'F11',\r
f12: 'F12',\r
- numLock: 'Verrouillage numérique',\r
- scrollLock: 'Arrêt défilement',\r
- semiColon: 'Point virgule',\r
+ numLock: 'Verr. Num.',\r
+ scrollLock: 'Arrêt défil.',\r
+ semiColon: 'Point-virgule',\r
equalSign: 'Signe égal',\r
comma: 'Virgule',\r
dash: 'Tiret',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Editor de diálogo',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'Dentro do diálogo, prema TAB para navegar cara os seguintes elementos de diálogo, prema MAIÚS+TAB para moverse cara os anteriores elementos de diálogo, prema INTRO para enviar o diálogo, prema ESC para cancelar o diálogo. Cando o diálogo ten múltiples lapelas, a lista de lapelas pode cinguirse con ALT+F10 ou con TAB como parte da orde de lapelas do diálogo. Coa lapela en foco, pode moverse cara a seguinte ou a anterior lapela coas FRECHAS ESQUERDA e DEREICHA respectivamente.'\r
},\r
\r
{\r
{\r
name: 'Axuda da accesibilidade',\r
legend: 'Prema ${a11yHelp}'\r
+ },\r
+ {\r
+ name: 'Pegar como texto simple',\r
+ legend: 'Prema ${pastetext}',\r
+ legendEdge: 'Prema ${pastetext}, seguido de ${paste}'\r
}\r
]\r
}\r
],\r
- backspace: 'Ir atrás',\r
tab: 'Tabulador',\r
- enter: 'Intro',\r
- shift: 'Maiús',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pausa',\r
capslock: 'Bloq. Maiús',\r
escape: 'Escape',\r
pageUp: 'Páxina arriba',\r
pageDown: 'Páxina abaixo',\r
- end: 'Fin',\r
- home: 'Inicio',\r
leftArrow: 'Frecha esquerda',\r
upArrow: 'Frecha arriba',\r
rightArrow: 'Frecha dereita',\r
downArrow: 'Frecha abaixo',\r
insert: 'Inserir',\r
- 'delete': 'Supr',\r
leftWindowKey: 'Tecla Windows esquerda',\r
rightWindowKey: 'Tecla Windows dereita',\r
selectKey: 'Escolla a tecla',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' הוראות נגישות',\r
legend: 'לחץ ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'חץ שמאלה',\r
upArrow: 'חץ למעלה',\r
rightArrow: 'חץ ימינה',\r
downArrow: 'חץ למטה',\r
insert: 'הכנס',\r
- 'delete': 'מחק',\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'בחר מקש',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Dijalog',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'Unutar dijaloga, pritisnite TAB kako bi navigirali do sljedećeg elementa dijaloga, pritisnite SHIFT+TAB kako bi se pomaknuli do prethodnog elementa, pritisnite ENTER kako bi poslali dijalog, pritisnite ESC za gašenje dijaloga. Kada dijalog ima više kartica, listi kartica se može pristupiti pomoću ALT+F10 ili sa TAB. Kada je fokusirana lista kartica, pomaknite se naprijed ili nazad pomoću strelica LIJEVO ili DESNO.'\r
},\r
\r
{\r
legend: 'Pritisni ${toolbarCollapse}'\r
},\r
{\r
- name: 'Access previous focus space naredba',\r
+ name: 'Naredba za pristupi prethodnom prostoru fokusa',\r
legend: 'Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak.'\r
},\r
{\r
- name: 'Access next focus space naredba',\r
+ name: 'Naredba za pristup sljedećem prostoru fokusa',\r
legend: 'Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak.'\r
},\r
{\r
name: 'Pomoć za dostupnost',\r
legend: 'Pritisni ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
- tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
- pause: 'Pause', // MISSING\r
- capslock: 'Caps Lock', // MISSING\r
- escape: 'Escape', // MISSING\r
- pageUp: 'Page Up', // MISSING\r
- pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
- leftArrow: 'Left Arrow', // MISSING\r
- upArrow: 'Up Arrow', // MISSING\r
- rightArrow: 'Right Arrow', // MISSING\r
- downArrow: 'Down Arrow', // MISSING\r
- insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
- leftWindowKey: 'Left Windows key', // MISSING\r
- rightWindowKey: 'Right Windows key', // MISSING\r
- selectKey: 'Select key', // MISSING\r
- numpad0: 'Numpad 0', // MISSING\r
- numpad1: 'Numpad 1', // MISSING\r
- numpad2: 'Numpad 2', // MISSING\r
- numpad3: 'Numpad 3', // MISSING\r
- numpad4: 'Numpad 4', // MISSING\r
- numpad5: 'Numpad 5', // MISSING\r
- numpad6: 'Numpad 6', // MISSING\r
- numpad7: 'Numpad 7', // MISSING\r
- numpad8: 'Numpad 8', // MISSING\r
- numpad9: 'Numpad 9', // MISSING\r
- multiply: 'Multiply', // MISSING\r
- add: 'Add', // MISSING\r
- subtract: 'Subtract', // MISSING\r
- decimalPoint: 'Decimal Point', // MISSING\r
- divide: 'Divide', // MISSING\r
- f1: 'F1', // MISSING\r
- f2: 'F2', // MISSING\r
- f3: 'F3', // MISSING\r
- f4: 'F4', // MISSING\r
- f5: 'F5', // MISSING\r
- f6: 'F6', // MISSING\r
- f7: 'F7', // MISSING\r
- f8: 'F8', // MISSING\r
- f9: 'F9', // MISSING\r
- f10: 'F10', // MISSING\r
- f11: 'F11', // MISSING\r
- f12: 'F12', // MISSING\r
- numLock: 'Num Lock', // MISSING\r
- scrollLock: 'Scroll Lock', // MISSING\r
- semiColon: 'Semicolon', // MISSING\r
- equalSign: 'Equal Sign', // MISSING\r
- comma: 'Comma', // MISSING\r
- dash: 'Dash', // MISSING\r
- period: 'Period', // MISSING\r
- forwardSlash: 'Forward Slash', // MISSING\r
- graveAccent: 'Grave Accent', // MISSING\r
- openBracket: 'Open Bracket', // MISSING\r
- backSlash: 'Backslash', // MISSING\r
- closeBracket: 'Close Bracket', // MISSING\r
- singleQuote: 'Single Quote' // MISSING\r
+ tab: 'Tab',\r
+ pause: 'Pause',\r
+ capslock: 'Caps Lock',\r
+ escape: 'Escape',\r
+ pageUp: 'Page Up',\r
+ pageDown: 'Page Down',\r
+ leftArrow: 'Lijev strelica',\r
+ upArrow: 'Strelica gore',\r
+ rightArrow: 'Desna strelica',\r
+ downArrow: 'Strelica dolje',\r
+ insert: 'Insert',\r
+ leftWindowKey: 'Lijeva Windows tipka',\r
+ rightWindowKey: 'Desna Windows tipka',\r
+ selectKey: 'Tipka Select',\r
+ numpad0: 'Numpad 0',\r
+ numpad1: 'Numpad 1',\r
+ numpad2: 'Numpad 2',\r
+ numpad3: 'Numpad 3',\r
+ numpad4: 'Numpad 4',\r
+ numpad5: 'Numpad 5',\r
+ numpad6: 'Numpad 6',\r
+ numpad7: 'Numpad 7',\r
+ numpad8: 'umpad 8',\r
+ numpad9: 'Numpad 9',\r
+ multiply: 'Množenje',\r
+ add: 'Zbrajanje',\r
+ subtract: 'Oduzimanje',\r
+ decimalPoint: 'Decimalna točka',\r
+ divide: 'Dijeljenje',\r
+ f1: 'F1',\r
+ f2: 'F2',\r
+ f3: 'F3',\r
+ f4: 'F4',\r
+ f5: 'F5',\r
+ f6: 'F6',\r
+ f7: 'F7',\r
+ f8: 'F8',\r
+ f9: 'F9',\r
+ f10: 'F10',\r
+ f11: 'F11',\r
+ f12: 'F12',\r
+ numLock: 'Num Lock',\r
+ scrollLock: 'Scroll Lock',\r
+ semiColon: 'Točka zarez',\r
+ equalSign: 'Jednako',\r
+ comma: 'Zarez',\r
+ dash: 'Crtica',\r
+ period: 'Točka',\r
+ forwardSlash: 'Kosa crta',\r
+ graveAccent: 'Akcent',\r
+ openBracket: 'Otvorena uglata zagrada',\r
+ backSlash: 'Obrnuta kosa crta',\r
+ closeBracket: 'Zatvorena uglata zagrada',\r
+ singleQuote: 'Jednostruki navodnik'\r
} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Szerkesző párbeszéd ablak',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'Párbeszédablakban nyomjon TAB-ot a következő párbeszédmezőhöz ugráshoz, nyomjon SHIFT + TAB-ot az előző mezőhöz ugráshoz, nyomjon ENTER-t a párbeszédablak elfogadásához, nyomjon ESC-et a párbeszédablak elvetéséhez. Azokhoz a párbeszédablakokhoz, amik több fület tartalmaznak, nyomjon ALT + F10-et vagy TAB-ot hogy a fülekre ugorjon. Ezután a TAB-al vagy a JOBB NYÍLLAL a következő fülre ugorhat.'\r
},\r
\r
{\r
{\r
name: 'Kisegítő súgó',\r
legend: 'Nyomjon ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'balra nyíl',\r
upArrow: 'felfelé nyíl',\r
rightArrow: 'jobbra nyíl',\r
downArrow: 'lefelé nyíl',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'bal Windows-billentyű',\r
rightWindowKey: 'jobb Windows-billentyű',\r
selectKey: 'Billentyű választása',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.setLang( 'a11yhelp', 'id', {\r
- title: 'Accessibility Instructions', // MISSING\r
+ title: 'Instruksi Accessibility',\r
contents: 'Bantuan. Tekan ESC untuk menutup dialog ini.',\r
legend: [\r
{\r
name: 'Umum',\r
items: [\r
{\r
- name: 'Editor Toolbar', // MISSING\r
- legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING\r
+ name: 'Toolbar Editor',\r
+ legend: 'Tekan ${toolbarFocus} untuk berpindah ke toolbar. Untuk berpindah ke group toolbar selanjutnya dan sebelumnya gunakan TAB dan SHIFT+TAB. Untuk berpindah ke tombol toolbar selanjutnya dan sebelumnya gunakan RIGHT ARROW atau LEFT ARROW. Tekan SPASI atau ENTER untuk mengaktifkan tombol toolbar.'\r
},\r
\r
{\r
- name: 'Editor Dialog', // MISSING\r
+ name: 'Dialog Editor',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'Pada jendela dialog, tekan TAB untuk berpindah pada elemen dialog selanjutnya, tekan SHIFT+TAB untuk berpindah pada elemen dialog sebelumnya, tekan ENTER untuk submit dialog, tekan ESC untuk membatalkan dialog. Pada dialog dengan multi tab, daftar tab dapat diakses dengan ALT+F10 ataupun dengan tombol TAB sesuai urutan tab pada dialog. Jika daftar tab aktif terpilih, untuk berpindah tab dapat menggunakan RIGHT dan LEFT ARROW.'\r
},\r
\r
{\r
- name: 'Editor Context Menu', // MISSING\r
+ name: 'Context Menu Editor',\r
legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING\r
},\r
\r
{\r
- name: 'Editor List Box', // MISSING\r
+ name: 'List Box Editor',\r
legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING\r
},\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Aiuto Accessibilità',\r
legend: 'Premi ${a11yHelp}'\r
+ },\r
+ {\r
+ name: 'Incolla come testo semplice',\r
+ legend: 'Premi ${pastetext}',\r
+ legendEdge: 'Premi ${pastetext}, seguito da ${paste}'\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Invio',\r
- shift: 'Maiusc',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pausa',\r
capslock: 'Bloc Maiusc',\r
escape: 'Esc',\r
pageUp: 'Pagina sù',\r
pageDown: 'Pagina giù',\r
- end: 'Fine',\r
- home: 'Inizio',\r
leftArrow: 'Freccia sinistra',\r
upArrow: 'Freccia su',\r
rightArrow: 'Freccia destra',\r
downArrow: 'Freccia giù',\r
insert: 'Ins',\r
- 'delete': 'Canc',\r
leftWindowKey: 'Tasto di Windows sinistro',\r
rightWindowKey: 'Tasto di Windows destro',\r
selectKey: 'Tasto di selezione',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
legend: '${link} をクリック'\r
},\r
{\r
- name: 'ツールバーを縮める',\r
+ name: 'ツールバーをたたむ',\r
legend: '${toolbarCollapse} をクリック'\r
},\r
{\r
legend: '${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。'\r
},\r
{\r
- name: '次のカーソル移動のできないポイントへ',\r
+ name: '次のカーソルポイントへ移動する',\r
legend: '${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。'\r
},\r
{\r
name: 'ユーザー補助ヘルプ',\r
legend: '${a11yHelp} をクリック'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: '左矢印',\r
upArrow: '上矢印',\r
rightArrow: '右矢印',\r
downArrow: '下矢印',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: '左Windowキー',\r
rightWindowKey: '右のWindowキー',\r
selectKey: 'Select',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'ជំនួយពីភាពងាយស្រួល',\r
legend: 'ជួយ ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'លុបថយក្រោយ',\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'ផ្អាក',\r
capslock: 'Caps Lock', // MISSING\r
escape: 'ចាកចេញ',\r
pageUp: 'ទំព័រលើ',\r
pageDown: 'ទំព័រក្រោម',\r
- end: 'ចុង',\r
- home: 'ផ្ទះ',\r
leftArrow: 'ព្រួញឆ្វេង',\r
upArrow: 'ព្រួញលើ',\r
rightArrow: 'ព្រួញស្ដាំ',\r
downArrow: 'ព្រួញក្រោម',\r
insert: 'បញ្ចូល',\r
- 'delete': 'លុប',\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'ជ្រើសគ្រាប់ចុច',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' 접근성 도움말',\r
legend: '${a11yHelp} 누르시오'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace 키',\r
tab: '탭 키',\r
- enter: '엔터 키',\r
- shift: '시프트 키',\r
- ctrl: '컨트롤 키',\r
- alt: '알트 키',\r
pause: '일시정지 키',\r
capslock: '캡스 록 키',\r
escape: '이스케이프 키',\r
pageUp: '페이지 업 키',\r
pageDown: '페이지 다운 키',\r
- end: '엔드 키',\r
- home: '홈 키',\r
leftArrow: '왼쪽 화살표 키',\r
upArrow: '위쪽 화살표 키',\r
rightArrow: '오른쪽 화살표 키',\r
downArrow: '아래쪽 화살표 키',\r
insert: '인서트 키',\r
- 'delete': '삭제 키',\r
leftWindowKey: '왼쪽 윈도우 키',\r
rightWindowKey: '오른쪽 윈도우 키',\r
selectKey: '셀렉트 키',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'دەستپێگەیشتنی یارمەتی',\r
legend: 'کلیك ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Left Arrow',\r
upArrow: 'Up Arrow',\r
rightArrow: 'Right Arrow',\r
downArrow: 'Down Arrow',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'پەنجەرەی چەپ',\r
rightWindowKey: 'پەنجەرەی ڕاست',\r
selectKey: 'Select',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Pieejamības palīdzība',\r
legend: 'Nospiediet ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Пауза',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Up',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Стрелка лево',\r
upArrow: 'Стрелка горе',\r
rightArrow: 'Стрелка десно',\r
downArrow: 'Стрелка доле',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Лево Windows копче',\r
rightWindowKey: 'Десно Windows копче',\r
selectKey: 'Select копче',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Hjelp for tilgjengelighet',\r
legend: 'Trykk ${a11yHelp}'\r
+ },\r
+ {\r
+ name: 'Lim inn som ren tekst',\r
+ legend: 'Trykk ${pastetext}',\r
+ legendEdge: 'Trykk ${pastetext}, etterfulgt av ${past}'\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tabulator',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Venstre piltast',\r
upArrow: 'Opp-piltast',\r
rightArrow: 'Høyre piltast',\r
downArrow: 'Ned-piltast',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Venstre Windows-tast',\r
rightWindowKey: 'Høyre Windows-tast',\r
selectKey: 'Velg nøkkel',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Dialoog tekstverwerker',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Bij dialoogvensters met meerdere tabbladen kan de tabset bereikt worden met ALT+F10 of met TAB als onderdeel van de tabvolgorde in het dialoogvenster. Als de tabset focus heeft, kun je schakalen naar het volgende en vorige tabblad met respectievelijk PIJL RECHTS en PIJL LINKS.'\r
},\r
\r
{\r
{\r
name: 'Toegankelijkheidshulp',\r
legend: 'Druk op ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Pijl naar links',\r
upArrow: 'Pijl omhoog',\r
rightArrow: 'Pijl naar rechts',\r
downArrow: 'Pijl naar beneden',\r
insert: 'Invoegen',\r
- 'delete': 'Verwijderen',\r
leftWindowKey: 'Linker Windows-toets',\r
rightWindowKey: 'Rechter Windows-toets',\r
selectKey: 'Selecteer toets',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Hjelp for tilgjengelighet',\r
legend: 'Trykk ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'a11yhelp', 'oc', {\r
+ title: 'Instruccions d\'accessibilitat',\r
+ contents: 'Contengut de l\'ajuda. Per tampar aquesta fenèstra, quichatz sus la tòca Escap.',\r
+ legend: [\r
+ {\r
+ name: 'General',\r
+ items: [\r
+ {\r
+ name: 'Barra d\'aisinas de l\'editor',\r
+ legend: 'Quichar sus ${toolbarFocus} per accedir a la barra d\'aisinas. Se desplaçar cap al groupe seguent o precedent de la barra d\'aisinas amb las tòcas Tab e Maj+Tab. Se desplaçar cap al boton seguent o precedent de la barra d\'aisinas amb las tòcas Sageta dreita e Sageta esquèrra. Quichar sus la barra d\'espaci o la tòca Entrada per activer lo boton de barra d\'aisinas.'\r
+ },\r
+\r
+ {\r
+ name: 'Fenèstra de l\'editor',\r
+ legend:\r
+ 'Dins una bóstia de dialòg, quichar sus Tab per passar a l\'element seguent, quichar sus Maj+Tab per passar a l\'element precedent, quichar sus Entrada per validar, quichar sus Escap per anullar. Quand una bóstia de dialòg possedís des onglets, la lista pòt èsser atenta amb Alt+F10 o amb Tab. Dins la lista dels onglets, se desplaçar cap al seguent e lo precedent amb las tòcas Sageta dreita e Sageta esquèrra respectivament.'\r
+ },\r
+\r
+ {\r
+ name: 'Menú contextual de l\'editor',\r
+ legend: 'Quichar sus ${contextMenu} o sus la tòca Menú per dobrir lo menú contextual. Se desplaçar ensuite cap a l\'opcion seguenta del menú amb las tòcas Tab o Sageta bas. Se desplaçar cap a l\'opcion precedenta amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d\'espaci o la tòca Entrada per seleccionar l\'opcion del menu. Quichar sus la barra d\'espaci, la tòca Entrada o Sageta dreita per dobrir lo sosmenú de l\'opcion seleccionada. Tornar a l\'element de menú parent amb la tòca Escap o Sageta esquèrra. Tampar lo menú contextual amb Escap.'\r
+ },\r
+\r
+ {\r
+ name: 'Zòna de lista de l\'editor',\r
+ legend: 'Dins una lista en menú desenrotlant, se desplaçar cap a l\'element seguent de la lista amb las tòcas Tab o Sageta bas. Se desplaçar cap a l\'element precedent de la lista amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d\'espaci o sus Entrada per seleccionar l\'opcion dins la lista. Quichar sus Escap per tampar lo menú desenrotlant.'\r
+ },\r
+\r
+ {\r
+ name: 'Barra del camin d\'elements de l\'editor',\r
+ legend: 'Quichar sus ${elementsPathFocus} per naviguer cap a la barra del fial d\'Ariana dels elements. Se desplaçar cap al boton de l\'element seguent amb las tòcas Tab o Sageta dreita. Se desplaçar cap al boton precedent amb las tòcas Maj+Tab o Sageta esquèrra. Quichar sus la barra d\'espaci o sus Entrada per seleccionar l\'element dins l\'editor.'\r
+ }\r
+ ]\r
+ },\r
+ {\r
+ name: 'Comandas',\r
+ items: [\r
+ {\r
+ name: 'Anullar la comanda',\r
+ legend: 'Quichar sus ${undo}'\r
+ },\r
+ {\r
+ name: 'Comanda restablir',\r
+ legend: 'Quichar sus ${redo}'\r
+ },\r
+ {\r
+ name: ' Comanda gras',\r
+ legend: 'Quichar sus ${bold}'\r
+ },\r
+ {\r
+ name: ' Comanda italica',\r
+ legend: 'Quichar sus ${italic}'\r
+ },\r
+ {\r
+ name: ' Comanda solinhat',\r
+ legend: 'Quichar sus ${underline}'\r
+ },\r
+ {\r
+ name: ' Comanda ligam',\r
+ legend: 'Quichar sus ${link}'\r
+ },\r
+ {\r
+ name: 'Comanda enrotlar la barra d\'aisinas',\r
+ legend: 'Quichar sus ${toolbarCollapse}'\r
+ },\r
+ {\r
+ name: 'Comanda d\'accès a l\'element seleccionable precedent',\r
+ legend: 'Quichar sus ${accessNextSpace} per accedir a l\'element seleccionable inategnible lo mai pròche abans lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables precedents.'\r
+ },\r
+ {\r
+ name: 'Comanda d\'accès a l\'element seleccionable seguent',\r
+ legend: 'Quichar sus ${accessNextSpace} per accedir a l\'element seleccionable inatenhible lo mai pròche aprèp lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables seguents.'\r
+ },\r
+ {\r
+ name: ' Ajuda sus l\'accessibilitat',\r
+ legend: 'Quichar sus ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ tab: 'Tabulacion',\r
+ pause: 'Pausa',\r
+ capslock: 'Verr. Maj.',\r
+ escape: 'Escap',\r
+ pageUp: 'Pagina superiora',\r
+ pageDown: 'Pagina seguenta',\r
+ leftArrow: 'Sageta esquèrra',\r
+ upArrow: 'Sageta naut',\r
+ rightArrow: 'Sageta dreita',\r
+ downArrow: 'Sageta bassa',\r
+ insert: 'Inser',\r
+ leftWindowKey: 'Tòca Windows esquèrra',\r
+ rightWindowKey: 'Tòca Windows dreita',\r
+ selectKey: 'Tòca Seleccionar',\r
+ numpad0: '0 del pavat numeric',\r
+ numpad1: '1 del pavat numeric',\r
+ numpad2: '2 del pavat numeric',\r
+ numpad3: '3 del pavat numeric',\r
+ numpad4: '4 del pavat numeric',\r
+ numpad5: '5 del pavat numeric',\r
+ numpad6: '6 del pavat numeric',\r
+ numpad7: '7 del pavat numeric',\r
+ numpad8: 'Pavat numeric 8',\r
+ numpad9: '9 del pavat numeric',\r
+ multiply: 'Multiplicar',\r
+ add: 'Plus',\r
+ subtract: 'Mens',\r
+ decimalPoint: 'Punt decimal',\r
+ divide: 'Devesir',\r
+ f1: 'F1',\r
+ f2: 'F2',\r
+ f3: 'F3',\r
+ f4: 'F4',\r
+ f5: 'F5',\r
+ f6: 'F6',\r
+ f7: 'F7',\r
+ f8: 'F8',\r
+ f9: 'F9',\r
+ f10: 'F10',\r
+ f11: 'F11',\r
+ f12: 'F12',\r
+ numLock: 'Verr. Num.',\r
+ scrollLock: 'Arrèst desfil.',\r
+ semiColon: 'Punt-virgula',\r
+ equalSign: 'Signe egal',\r
+ comma: 'Virgula',\r
+ dash: 'Jonhent',\r
+ period: 'Punt',\r
+ forwardSlash: 'Barra oblica',\r
+ graveAccent: 'Accent grèu',\r
+ openBracket: 'Parentèsi dobèrta',\r
+ backSlash: 'Barra oblica invèrsa',\r
+ closeBracket: 'Parentèsi tampanta',\r
+ singleQuote: 'Apostròfa'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
legend: 'Naciśnij ${toolbarCollapse}'\r
},\r
{\r
- name: ' Access previous focus space command', // MISSING\r
- legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING\r
+ name: 'Przejdź do poprzedniego miejsca, w którym można ustawić focus',\r
+ legend: 'Naciśnij ${accessPreviousSpace}, aby przejść do najbliższego niedostępnego miejsca przed kursorem, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc.'\r
},\r
{\r
- name: ' Access next focus space command', // MISSING\r
- legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING\r
+ name: 'Przejdź do następnego miejsca, w którym można ustawić focus',\r
+ legend: 'Naciśnij ${accessNextSpace}, aby przejść do najbliższego niedostępnego miejsca po kursorze, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc.'\r
},\r
{\r
name: 'Pomoc dotycząca dostępności',\r
legend: 'Naciśnij ${a11yHelp}'\r
+ },\r
+ {\r
+ name: 'Wklej jako tekst',\r
+ legend: 'Naciśnij ${pastetext}',\r
+ legendEdge: 'Naciśnij ${pastetext}, a następnie ${paste}'\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Strzałka w lewo',\r
upArrow: 'Strzałka w górę',\r
rightArrow: 'Strzałka w prawo',\r
downArrow: 'Strzałka w dół',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Lewy klawisz Windows',\r
rightWindowKey: 'Prawy klawisz Windows',\r
selectKey: 'Klawisz wyboru',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Ajuda de Acessibilidade',\r
legend: 'Pressione ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Tecla Backspace',\r
tab: 'Tecla Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Seta à Esquerda',\r
upArrow: 'Seta à Cima',\r
rightArrow: 'Seta à Direita',\r
downArrow: 'Seta à Baixo',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Tecla do Windows Esquerda',\r
rightWindowKey: 'Tecla do Windows Direita',\r
selectKey: 'Tecla Selecionar',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
items: [\r
{\r
name: 'Barra de ferramentas do editor',\r
- legend: 'Clique em ${toolbarFocus} para navegar para a barra de ferramentas. Vá para o grupo da barra de ferramentas anterior e seguinte com TAB e SHIFT+TAB. Vá para o botão da barra de ferramentas anterior com a SETA DIREITA ou ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.'\r
+ legend: 'Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.'\r
},\r
\r
{\r
- name: 'Janela do Editor',\r
+ name: 'Janela do editor',\r
legend:\r
'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
},\r
\r
{\r
- name: 'Menu de Contexto do Editor',\r
- legend: 'Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC.'\r
+ name: 'Menu de contexto do editor',\r
+ legend: 'Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. Vá para o item do menu contentor com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC.'\r
},\r
\r
{\r
name: 'Editor de caixa em lista',\r
- legend: 'Dentro da caixa da lista, vá para o itemda lista seguinte com TAB ou SETA PARA BAIXO. Move Vá parao item da lista anterior com SHIFT+TAB ou SETA PARA BAIXO. Pressione ESPAÇO ou ENTER para selecionar a opção da lista. Pressione ESC para fechar a caisa da lista.'\r
+ legend: 'Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista.'\r
},\r
\r
{\r
- name: 'Caminho Barra Elemento Editor',\r
- legend: 'Clique em ${elementsPathFocus} para navegar para a barra do caminho dos elementos. Vá para o botão do elemento seguinte com TAB ou SETA DIREITA. Vá para o botão anterior com SHIFT+TAB ou SETA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor.'\r
+ name: 'Editor da barra de caminho dos elementos',\r
+ legend: 'Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor.'\r
}\r
]\r
},\r
name: 'Comandos',\r
items: [\r
{\r
- name: 'Comando de Anular',\r
+ name: 'Comando de anular',\r
legend: 'Carregar ${undo}'\r
},\r
{\r
- name: 'Comando de Refazer',\r
- legend: 'Pressione ${redo}'\r
+ name: 'Comando de refazer',\r
+ legend: 'Clique ${redo}'\r
},\r
{\r
- name: 'Comando de Negrito',\r
+ name: 'Comando de negrito',\r
legend: 'Pressione ${bold}'\r
},\r
{\r
- name: 'Comando de Itálico',\r
+ name: 'Comando de itálico',\r
legend: 'Pressione ${italic}'\r
},\r
{\r
- name: 'Comando de Sublinhado',\r
+ name: 'Comando de sublinhado',\r
legend: 'Pressione ${underline}'\r
},\r
{\r
- name: 'Comando de Hiperligação',\r
+ name: 'Comando de hiperligação',\r
legend: 'Pressione ${link}'\r
},\r
{\r
- name: 'Comando de Ocultar Barra de Ferramentas',\r
+ name: 'Comando de ocultar barra de ferramentas',\r
legend: 'Pressione ${toolbarCollapse}'\r
},\r
{\r
- name: 'Acesso comando do espaço focus anterior',\r
+ name: 'Aceder ao comando espaço de foco anterior',\r
legend: 'Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes.'\r
},\r
{\r
{\r
name: 'Ajuda a acessibilidade',\r
legend: 'Pressione ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
- tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
+ tab: 'Separador',\r
pause: 'Pausa',\r
capslock: 'Maiúsculas',\r
escape: 'Esc',\r
- pageUp: 'Page Up', // MISSING\r
- pageDown: 'Page Down', // MISSING\r
- end: 'Fim',\r
- home: 'Entrada',\r
+ pageUp: 'Subir página',\r
+ pageDown: 'Descer página',\r
leftArrow: 'Seta esquerda',\r
upArrow: 'Seta para cima',\r
rightArrow: 'Seta direita',\r
downArrow: 'Seta para baixo',\r
insert: 'Inserir',\r
- 'delete': 'Eliminar',\r
- leftWindowKey: 'Left Windows key', // MISSING\r
- rightWindowKey: 'Right Windows key', // MISSING\r
- selectKey: 'Select key', // MISSING\r
+ leftWindowKey: 'Tecla esquerda Windows',\r
+ rightWindowKey: 'Tecla direita Windows',\r
+ selectKey: 'Selecionar tecla',\r
numpad0: 'Numpad 0', // MISSING\r
numpad1: 'Numpad 1', // MISSING\r
numpad2: 'Numpad 2', // MISSING\r
multiply: 'Multiplicar',\r
add: 'Adicionar',\r
subtract: 'Subtrair',\r
- decimalPoint: 'Decimal Point', // MISSING\r
- divide: 'Divide', // MISSING\r
+ decimalPoint: 'Ponto decimal',\r
+ divide: 'Separar',\r
f1: 'F1',\r
f2: 'F2',\r
f3: 'F3',\r
f12: 'F12',\r
numLock: 'Num Lock', // MISSING\r
scrollLock: 'Scroll Lock', // MISSING\r
- semiColon: 'Semicolon', // MISSING\r
- equalSign: 'Equal Sign', // MISSING\r
+ semiColon: 'Ponto e vírgula',\r
+ equalSign: 'Sinald e igual',\r
comma: 'Vírgula',\r
- dash: 'Dash', // MISSING\r
- period: 'Period', // MISSING\r
+ dash: 'Cardinal',\r
+ period: 'Ponto',\r
forwardSlash: 'Forward Slash', // MISSING\r
graveAccent: 'Acento grave',\r
openBracket: 'Open Bracket', // MISSING\r
backSlash: 'Backslash', // MISSING\r
closeBracket: 'Close Bracket', // MISSING\r
- singleQuote: 'Single Quote' // MISSING\r
+ singleQuote: 'Plica'\r
} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Справка по горячим клавишам',\r
legend: 'Нажмите ${a11yHelp}'\r
+ },\r
+ {\r
+ name: 'Вставить только текст',\r
+ legend: 'Нажмите ${pastetext}',\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Esc',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Стрелка влево',\r
upArrow: 'Стрелка вверх',\r
rightArrow: 'Стрелка вправо',\r
downArrow: 'Стрелка вниз',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Левая клавиша Windows',\r
rightWindowKey: 'Правая клавиша Windows',\r
selectKey: 'Выбрать',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'ප්රවේශ ',\r
legend: 'ඔබන්න ${a11y }'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Editorový dialóg',\r
legend:\r
- 'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.' // MISSING\r
+ 'V dialógovom okne stlačte TAB pre presun na ďalší prvok, SHIFT+TAB pre presun na predchádzajúci prvok, ENTER pre odoslanie, ESC pre zrušenie. Keď má dialógové okno viacero kariet, zoznam kariet dosiahnete buď stlačením ALT+F10 alebo s TAB v príslušnom poradí kariet. So zameraným zoznamom kariet sa pohybujte k ďalšej alebo predchádzajúcej karte cez PRAVÚ a ĽAVÚ ŠÍPKU.'\r
},\r
\r
{\r
{\r
name: 'Pomoc prístupnosti',\r
legend: 'Stlačte ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Stránka hore',\r
pageDown: 'Stránka dole',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Šípka naľavo',\r
upArrow: 'Šípka hore',\r
rightArrow: 'Šípka napravo',\r
downArrow: 'Šípka dole',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
leftWindowKey: 'Ľavé Windows tlačidlo',\r
rightWindowKey: 'Pravé Windows tlačidlo',\r
selectKey: 'Tlačidlo Select',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {\r
- title: 'Navodila Dostopnosti',\r
- contents: 'Vsebina Pomoči. Če želite zapreti to pogovorno okno pritisnite ESC.',\r
+ title: 'Navodila za dostopnost',\r
+ contents: 'Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.',\r
legend: [\r
{\r
name: 'Splošno',\r
items: [\r
{\r
- name: 'Urejevalna Orodna Vrstica',\r
+ name: 'Orodna vrstica urejevalnika',\r
legend: 'Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice.'\r
},\r
\r
},\r
\r
{\r
- name: 'Urejevalni Kontekstni Meni',\r
+ name: 'Kontekstni meni urejevalnika',\r
legend: 'Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC.'\r
},\r
\r
legend: 'Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore.'\r
},\r
{\r
- name: 'Pomoč Dostopnosti',\r
+ name: 'Pomoč dostopnosti',\r
legend: 'Pritisnite ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
- leftArrow: 'Levo puščica',\r
- upArrow: 'Gor puščica',\r
- rightArrow: 'Desno puščica',\r
- downArrow: 'Dol puščica',\r
+ leftArrow: 'Puščica levo',\r
+ upArrow: 'Puščica gor',\r
+ rightArrow: 'Puščica desno',\r
+ downArrow: 'Puščica dol',\r
insert: 'Insert',\r
- 'delete': 'Delete',\r
- leftWindowKey: 'Leva Windows tipka',\r
- rightWindowKey: 'Desna Windows tipka',\r
+ leftWindowKey: 'Leva tipka Windows',\r
+ rightWindowKey: 'Desna tipka Windows',\r
selectKey: 'Select tipka',\r
numpad0: 'Numpad 0',\r
numpad1: 'Numpad 1',\r
numLock: 'Num Lock',\r
scrollLock: 'Scroll Lock',\r
semiColon: 'Podpičje',\r
- equalSign: 'enačaj',\r
+ equalSign: 'Enačaj',\r
comma: 'Vejica',\r
dash: 'Vezaj',\r
period: 'Pika',\r
graveAccent: 'Krativec',\r
openBracket: 'Oklepaj',\r
backSlash: 'Leva poševnica',\r
- closeBracket: 'Oklepaj',\r
+ closeBracket: 'Zaklepaj',\r
singleQuote: 'Opuščaj'\r
} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Ndihmë Qasjeje',\r
legend: 'Shtyp ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Prapa',\r
tab: 'Fletë',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Shenja majtas',\r
upArrow: 'Shenja sipër',\r
rightArrow: 'Shenja djathtas',\r
downArrow: 'Shenja poshtë',\r
insert: 'Shto',\r
- 'delete': 'Grise',\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Hjälp om tillgänglighet',\r
legend: 'Tryck ${a11yHelp}'\r
+ },\r
+ {\r
+ name: 'Klistra in som vanlig text',\r
+ legend: 'Tryck ${pastetext}',\r
+ legendEdge: 'Tryck ${pastetext}, följt av ${paste}'\r
}\r
]\r
}\r
],\r
- backspace: 'Backsteg',\r
tab: 'Tab',\r
- enter: 'Retur',\r
- shift: 'Skift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Paus',\r
capslock: 'Caps lock',\r
escape: 'Escape',\r
pageUp: 'Sida Up',\r
pageDown: 'Sida Ned',\r
- end: 'Slut',\r
- home: 'Hem',\r
leftArrow: 'Vänsterpil',\r
upArrow: 'Uppil',\r
rightArrow: 'Högerpil',\r
downArrow: 'Nedåtpil',\r
insert: 'Infoga',\r
- 'delete': 'Radera',\r
leftWindowKey: 'Vänster Windowstangent',\r
rightWindowKey: 'Höger Windowstangent',\r
selectKey: 'Välj tangent',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: 'Press ${a11yHelp}' // MISSING\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace', // MISSING\r
tab: 'Tab', // MISSING\r
- enter: 'Enter', // MISSING\r
- shift: 'Shift', // MISSING\r
- ctrl: 'Ctrl', // MISSING\r
- alt: 'Alt', // MISSING\r
pause: 'Pause', // MISSING\r
capslock: 'Caps Lock', // MISSING\r
escape: 'Escape', // MISSING\r
pageUp: 'Page Up', // MISSING\r
pageDown: 'Page Down', // MISSING\r
- end: 'End', // MISSING\r
- home: 'Home', // MISSING\r
leftArrow: 'Left Arrow', // MISSING\r
upArrow: 'Up Arrow', // MISSING\r
rightArrow: 'Right Arrow', // MISSING\r
downArrow: 'Down Arrow', // MISSING\r
insert: 'Insert', // MISSING\r
- 'delete': 'Delete', // MISSING\r
leftWindowKey: 'Left Windows key', // MISSING\r
rightWindowKey: 'Right Windows key', // MISSING\r
selectKey: 'Select key', // MISSING\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Erişilebilirlik Yardımı',\r
legend: '${a11yHelp}\'e basın'\r
+ },\r
+ {\r
+ name: 'Düz Metin Olarak Yapıştır',\r
+ legend: '${pastetext} basın',\r
+ legendEdge: 'Önce ${pastetext} ardından${paste} basın'\r
}\r
]\r
}\r
],\r
- backspace: 'Silme',\r
tab: 'Sekme tuşu',\r
- enter: 'Gir tuşu',\r
- shift: '"Shift" Kaydırma tuşu',\r
- ctrl: '"Ctrl" Kontrol tuşu',\r
- alt: '"Alt" Anahtar tuşu',\r
pause: 'Durdurma tuşu',\r
capslock: 'Büyük harf tuşu',\r
escape: 'Vazgeç tuşu',\r
pageUp: 'Sayfa Yukarı',\r
pageDown: 'Sayfa Aşağı',\r
- end: 'Sona',\r
- home: 'En başa',\r
leftArrow: 'Sol ok',\r
upArrow: 'Yukarı ok',\r
rightArrow: 'Sağ ok',\r
downArrow: 'Aşağı ok',\r
insert: 'Araya gir',\r
- 'delete': 'Silme',\r
leftWindowKey: 'Sol windows tuşu',\r
rightWindowKey: 'Sağ windows tuşu',\r
selectKey: 'Seçme tuşu',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: ' Accessibility Help', // MISSING\r
legend: '${a11yHelp} басыгыз'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Кайтару',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Тыныш',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Сул якка ук',\r
upArrow: 'Өскә таба ук',\r
rightArrow: 'Уң якка ук',\r
downArrow: 'Аска таба ук',\r
insert: 'Өстәү',\r
- 'delete': 'Бетерү',\r
leftWindowKey: 'Сул Windows төймəсе',\r
rightWindowKey: 'Уң Windows төймəсе',\r
selectKey: 'Select төймəсе',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'توسالغۇسىز لايىھە چۈشەندۈرۈشى',\r
legend: '${a11yHelp} نى بېسىڭ'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Escape',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'سول يا ئوق',\r
upArrow: 'ئۈستى يا ئوق',\r
rightArrow: 'ئوڭ يا ئوق',\r
downArrow: 'ئاستى يا ئوق',\r
insert: 'قىستۇر',\r
- 'delete': 'ئۆچۈر',\r
leftWindowKey: 'سول Windows كۇنۇپكىسى',\r
rightWindowKey: 'ئوڭ Windows كۇنۇپكىسى',\r
selectKey: 'تاللاش كۇنۇپكىسى',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Допомога з доступності',\r
legend: 'Натисніть ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Backspace',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Esc',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: 'Ліва стрілка',\r
upArrow: 'Стрілка вгору',\r
rightArrow: 'Права стрілка',\r
downArrow: 'Стрілка вниз',\r
insert: 'Вставити',\r
- 'delete': 'Видалити',\r
leftWindowKey: 'Ліва клавіша Windows',\r
rightWindowKey: 'Права клавіша Windows',\r
selectKey: 'Виберіть клавішу',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: 'Trợ giúp liên quan',\r
legend: 'Nhấn ${a11yHelp}'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: 'Phím Backspace',\r
tab: 'Phím Tab',\r
- enter: 'Phím Tab',\r
- shift: 'Phím Shift',\r
- ctrl: 'Phím Ctrl',\r
- alt: 'Phím Alt',\r
pause: 'Phím Pause',\r
capslock: 'Phím Caps Lock',\r
escape: 'Phím Escape',\r
pageUp: 'Phím Page Up',\r
pageDown: 'Phím Page Down',\r
- end: 'Phím End',\r
- home: 'Phím Home',\r
leftArrow: 'Phím Left Arrow',\r
upArrow: 'Phím Up Arrow',\r
rightArrow: 'Phím Right Arrow',\r
downArrow: 'Phím Down Arrow',\r
insert: 'Chèn',\r
- 'delete': 'Xóa',\r
leftWindowKey: 'Phím Left Windows',\r
rightWindowKey: 'Phím Right Windows ',\r
selectKey: 'Chọn phím',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: '辅助功能帮助',\r
legend: '按 ${a11yHelp}'\r
+ },\r
+ {\r
+ name: '粘贴为纯文本',\r
+ legend: '按 ${pastetext}',\r
+ legendEdge: '按 ${pastetext},然后再按 ${paste}'\r
}\r
]\r
}\r
],\r
- backspace: '退格键',\r
tab: 'Tab 键',\r
- enter: '回车键',\r
- shift: 'Shift 键',\r
- ctrl: 'Ctrl 键',\r
- alt: 'Alt 键',\r
pause: '暂停键',\r
capslock: '大写锁定键',\r
escape: 'Esc 键',\r
pageUp: '上翻页键',\r
pageDown: '下翻页键',\r
- end: '行尾键',\r
- home: '行首键',\r
leftArrow: '向左箭头键',\r
upArrow: '向上箭头键',\r
rightArrow: '向右箭头键',\r
downArrow: '向下箭头键',\r
insert: '插入键',\r
- 'delete': '删除键',\r
leftWindowKey: '左 WIN 键',\r
rightWindowKey: '右 WIN 键',\r
selectKey: '选择键',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
{\r
name: '協助工具說明',\r
legend: '請按下「${a11yHelp}」'\r
+ },\r
+ {\r
+ name: ' Paste as plain text', // MISSING\r
+ legend: 'Press ${pastetext}', // MISSING\r
+ legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
}\r
]\r
}\r
],\r
- backspace: '退格鍵',\r
tab: 'Tab',\r
- enter: 'Enter',\r
- shift: 'Shift',\r
- ctrl: 'Ctrl',\r
- alt: 'Alt',\r
pause: 'Pause',\r
capslock: 'Caps Lock',\r
escape: 'Esc',\r
pageUp: 'Page Up',\r
pageDown: 'Page Down',\r
- end: 'End',\r
- home: 'Home',\r
leftArrow: '向左箭號',\r
upArrow: '向上鍵號',\r
rightArrow: '向右鍵號',\r
downArrow: '向下鍵號',\r
insert: '插入',\r
- 'delete': '刪除',\r
leftWindowKey: '左方 Windows 鍵',\r
rightWindowKey: '右方 Windows 鍵',\r
selectKey: '選擇鍵',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
// List of available localizations.\r
// jscs:disable\r
- availableLangs: { af:1,ar:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,'de-ch':1,el:1,en:1,'en-gb':1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,'fr-ca':1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,'pt-br':1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,'sr-latn':1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,'zh-cn':1 },\r
+ availableLangs: { af:1,ar:1,az:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,'de-ch':1,el:1,en:1,'en-gb':1,eo:1,es:1,'es-mx':1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,'fr-ca':1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,'pt-br':1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,'sr-latn':1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,'zh-cn':1 },\r
// jscs:enable\r
\r
init: function( editor ) {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'basicstyles', 'az', {\r
+ bold: 'Qalın',\r
+ italic: 'Kursiv',\r
+ strike: 'Üstüxətli',\r
+ subscript: 'Aşağı indeks',\r
+ superscript: 'Yuxarı indeks',\r
+ underline: 'Altdan xətt'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'bn', {\r
bold: 'বোল্ড',\r
- italic: 'à¦\87à¦\9fালিà¦\95',\r
+ italic: 'বাà¦\81à¦\95া',\r
strike: 'স্ট্রাইক থ্রু',\r
subscript: 'অধোলেখ',\r
superscript: 'অভিলেখ',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'basicstyles', 'es-mx', {\r
+ bold: 'Negrita',\r
+ italic: 'Cursiva',\r
+ strike: 'Tachado',\r
+ subscript: 'subíndice',\r
+ superscript: 'Sobrescrito',\r
+ underline: 'Subrayada'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'fr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'hr', {\r
- bold: 'Podebljaj',\r
- italic: 'Ukosi',\r
+ bold: 'Podebljano',\r
+ italic: 'Ukošeno',\r
strike: 'Precrtano',\r
subscript: 'Subscript',\r
superscript: 'Superscript',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'basicstyles', 'oc', {\r
+ bold: 'Gras',\r
+ italic: 'Italica',\r
+ strike: 'Raiat',\r
+ subscript: 'Indici',\r
+ superscript: 'Exponent',\r
+ underline: 'Solinhat'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'pt', {\r
italic: 'Itálico',\r
strike: 'Rasurado',\r
subscript: 'Superior à linha',\r
- superscript: 'Inferior à Linha',\r
+ superscript: 'Superior à linha',\r
underline: 'Sublinhado'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'sl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'basicstyles', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.add( 'basicstyles', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'bold,italic,underline,strike,subscript,superscript', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
+++ /dev/null
-/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
- * For licensing, see LICENSE.md or http://ckeditor.com/license\r
- */\r
-\r
-CKEDITOR.plugins.setLang( 'button', 'ast', {\r
- selectedLabel: '%1 (Seleicionáu)'\r
-} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'az', {\r
+ selectedLabel: '%1 (seçilib)'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'es-mx', {\r
+ selectedLabel: '%1 (Seleccionado)'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'hr', {\r
+ selectedLabel: '%1 (Odabrano)'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'no', {\r
+ selectedLabel: '%1 (Valgt)'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'oc', {\r
+ selectedLabel: '%1 (Seleccionat)'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
' hidefocus="true"' +\r
' role="button"' +\r
' aria-labelledby="{id}_label"' +\r
+ ' aria-describedby="{id}_description"' +\r
' aria-haspopup="{hasArrow}"' +\r
' aria-disabled="{ariaDisabled}"';\r
\r
\r
template += ' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event);"' +\r
' onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" ' +\r
- ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // #188\r
+ ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // http://dev.ckeditor.com/ticket/188\r
'="CKEDITOR.tools.callFunction({clickFn},this);return false;">' +\r
'<span class="cke_button_icon cke_button__{iconName}_icon" style="{style}"';\r
\r
\r
template += '> </span>' +\r
'<span id="{id}_label" class="cke_button_label cke_button__{name}_label" aria-hidden="false">{label}</span>' +\r
+ '<span id="{id}_description" class="cke_button_label" aria-hidden="false">{ariaShortcut}</span>' +\r
'{arrowHtml}' +\r
'</a>';\r
\r
btnTpl = CKEDITOR.addTemplate( 'button', template );\r
\r
CKEDITOR.plugins.add( 'button', {\r
- lang: 'af,ar,bg,ca,cs,da,de,de-ch,el,en,en-gb,eo,es,eu,fa,fi,fr,gl,he,hu,id,it,ja,km,ko,ku,lt,nb,nl,pl,pt,pt-br,ro,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,ca,cs,da,de,de-ch,el,en,en-gb,eo,es,es-mx,eu,fa,fi,fr,gl,he,hr,hu,id,it,ja,km,ko,ku,lt,nb,nl,no,oc,pl,pt,pt-br,ro,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
beforeInit: function( editor ) {\r
editor.ui.addHandler( CKEDITOR.UI_BUTTON, CKEDITOR.ui.button.handler );\r
}\r
stateName = '',\r
command = this.command,\r
// Get the command name.\r
- clickFn;\r
+ clickFn,\r
+ keystroke,\r
+ shortcut;\r
\r
this._.editor = editor;\r
\r
}\r
instance.execute();\r
\r
- // Fixed iOS focus issue when your press disabled button (#12381).\r
+ // Fixed iOS focus issue when your press disabled button (http://dev.ckeditor.com/ticket/12381).\r
if ( env.iOS ) {\r
editor.focus();\r
}\r
}, this );\r
}\r
\r
- if ( !command )\r
+ if ( !command ) {\r
stateName += 'off';\r
+ } else {\r
+ keystroke = editor.getCommandKeystroke( command );\r
+\r
+ if ( keystroke ) {\r
+ shortcut = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard, keystroke );\r
+ }\r
+ }\r
\r
var name = this.name || this.command,\r
iconName = name;\r
\r
- // Check if we're pointing to an icon defined by another command. (#9555)\r
+ // Check if we're pointing to an icon defined by another command. (http://dev.ckeditor.com/ticket/9555)\r
if ( this.icon && !( /\./ ).test( this.icon ) ) {\r
iconName = this.icon;\r
this.icon = null;\r
cls: this.className || '',\r
state: stateName,\r
ariaDisabled: stateName == 'disabled' ? 'true' : 'false',\r
- title: this.title,\r
+ title: this.title + ( shortcut ? ' (' + shortcut.display + ')' : '' ),\r
+ ariaShortcut: shortcut ? editor.lang.common.keyboardShortcut + ' ' + shortcut.aria : '',\r
titleJs: env.gecko && !env.hc ? '' : ( this.title || '' ).replace( "'", '' ),\r
hasArrow: this.hasArrow ? 'true' : 'false',\r
keydownFn: keydownFn,\r
element.removeAttribute( 'aria-disabled' );\r
\r
if ( !this.hasArrow ) {\r
- // Note: aria-pressed attribute should not be added to menuButton instances. (#11331)\r
+ // Note: aria-pressed attribute should not be added to menuButton instances. (http://dev.ckeditor.com/ticket/11331)\r
state == CKEDITOR.TRISTATE_ON ?\r
element.setAttribute( 'aria-pressed', true ) :\r
element.removeAttribute( 'aria-pressed' );\r
--- /dev/null
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+ <meta charset="utf-8">\r
+ <title>Clipboard playground – CKEditor Sample</title>\r
+ <script src="../../../ckeditor.js"></script>\r
+ <link href="../../../samples/old/sample.css" rel="stylesheet">\r
+ <style>\r
+body {\r
+ margin: 0;\r
+}\r
+\r
+#editables, #console\r
+{\r
+ width: 48%;\r
+}\r
+#editable {\r
+ padding: 5px 10px;\r
+}\r
+\r
+#console {\r
+ position: fixed;\r
+ top: 10px;\r
+ right: 30px;\r
+ height: 500px;\r
+ border: solid 3px #555;\r
+ overflow: auto;\r
+}\r
+#console > p {\r
+ border-bottom: solid 1px #555;\r
+ margin: 0;\r
+ padding: 0 5px;\r
+ background: rgba(0, 0, 0, 0.25);\r
+ transition: background-color 1s;\r
+}\r
+#console > p.old {\r
+ background: rgba(0, 0, 0, 0);\r
+}\r
+#console time, #console .prompt {\r
+ padding: 0 5px;\r
+ display: inline-block;\r
+}\r
+#console time {\r
+ background: #999;\r
+ background: rgba(0, 0, 0, 0.5 );\r
+ color: #FFF;\r
+ margin-left: -5px;\r
+}\r
+#console .prompt {\r
+ background: #DDD;\r
+ background: rgba(0, 0, 0, 0.1 );\r
+ min-width: 200px;\r
+}\r
+.someClass {\r
+ color: blue;\r
+}\r
+.specChar {\r
+ color: #777;\r
+ background-color: #EEE;\r
+ background-color: rgba(0, 0, 0, 0.1);\r
+ font-size: 0.8em;\r
+ border-radius: 2px;\r
+ padding: 1px;\r
+}\r
+ </style>\r
+</head>\r
+<body>\r
+ <h1 class="samples">\r
+ CKEditor Sample — clipboard plugin playground\r
+ </h1>\r
+ <div id="editables">\r
+ <p>\r
+ <label for="editor1">\r
+ Editor 1:</label>\r
+ <textarea cols="80" id="editor1" name="editor1" rows="10"><p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></textarea>\r
+ </p>\r
+ <p>\r
+ <label for="editor2">\r
+ Editor 2:</label>\r
+ <textarea cols="80" id="editor2" name="editor2" rows="10"><p>This is more <strong class="MsoNormal">sample text</strong>.</p></textarea>\r
+ </p>\r
+ <p>\r
+ <label for="editor3">\r
+ Editor 3:</label>\r
+ <textarea cols="80" id="editor3" name="editor3" rows="10"><p>This editor <strong>forces pasting in text mode</strong> by listening for "beforePaste" event.</p></textarea>\r
+ </p>\r
+ <p>\r
+ <label for="editor4">\r
+ Editor 4:</label>\r
+ <textarea cols="80" id="editor4" name="editor4" rows="10"><p>This editor <strong>forces pasting in text mode</strong> by "forcePasteAsPlainText" config option.</p></textarea>\r
+ </p>\r
+ <p>\r
+ <label for="editor5">\r
+ Editor 5:</label>\r
+ <textarea cols="80" id="editor5" name="editor5" rows="10">Editor with autoParagraphing set to off.</textarea>\r
+ </p>\r
+ <div id="editor6" contenteditable="true" style="font-family: Georgia; font-size: 14px">\r
+ <h1>Editor 6</h1>\r
+ <p>Content content content.</p>\r
+ <p class="someClass">Styled by <code>.someClass</code>.</p>\r
+ </div>\r
+ </div>\r
+ <div id="console">\r
+ </div>\r
+ <script>\r
+( function()\r
+{\r
+ 'use strict';\r
+\r
+ var log = window.__log = function( title, msg ) {\r
+ var msgEl = new CKEDITOR.dom.element( 'p' ),\r
+ consoleEl = CKEDITOR.document.getById( 'console' ),\r
+ time = new Date().toString().match( /\d\d:\d\d:\d\d/ )[ 0 ],\r
+ format = function( tpl ) {\r
+ return tpl.replace( /{time}/g, time ).replace( '{title}', title ).replace( '{msg}', msg || '' );\r
+ };\r
+\r
+ window.console && console.log && console.log( format( '[{time}] {title}: {msg}' ) );\r
+\r
+ msg = ( msg || '' ).replace( /\r/g, '{\\r}' ).replace( /\n/g, '{\\n}' ).replace( /\t/g, '{\\t}' );\r
+ msg = CKEDITOR.tools.htmlEncode( msg );\r
+ msg = msg.replace( /\{(\\\w)\}/g, '<code class="specChar">$1</code>' );\r
+\r
+ msgEl.setHtml( format( '<time datetime="{time}">{time}</time><span class="prompt">{title}</span> {msg}' ) );\r
+ consoleEl.append( msgEl );\r
+ consoleEl.$.scrollTop = consoleEl.$.scrollHeight;\r
+ setTimeout( function() { msgEl.addClass( 'old' ); }, 250 );\r
+ };\r
+\r
+ var observe = function( editor, num ) {\r
+ var p = 'EDITOR ' + num + ' > ';\r
+\r
+ editor.on( 'paste', function( event ) {\r
+ log( p + 'paste(prior:-1)', event.data.type + ' - "' + event.data.dataValue + '"' );\r
+ }, null, null, -1 );\r
+ editor.on( 'paste', function( event ) {\r
+ log( p + 'paste(prior:10)', event.data.type + ' - "' + event.data.dataValue + '"' );\r
+ } );\r
+ editor.on( 'paste', function( event ) {\r
+ log( p + 'paste(prior:999)', event.data.type + ' - "' + event.data.dataValue + '"' );\r
+ }, null, null, 999 );\r
+ editor.on( 'beforePaste', function( event ) {\r
+ log( p + 'beforePaste', event.data.type );\r
+ } );\r
+ editor.on( 'beforePaste', function( event ) {\r
+ log( p + 'beforePaste(prior:999)', event.data.type );\r
+ }, null, null, 999 );\r
+ editor.on( 'afterPaste', function( event ) {\r
+ log( p + 'afterPaste' );\r
+ } );\r
+ editor.on( 'copy', function( event ) {\r
+ log( p + 'copy' );\r
+ } );\r
+ editor.on( 'cut', function( event ) {\r
+ log( p + 'cut' );\r
+ } );\r
+ };\r
+\r
+ CKEDITOR.disableAutoInline = true;\r
+ var config = {\r
+ height: 120,\r
+ toolbar: [ [ 'Source' ] ],\r
+ allowedContent: true\r
+ },\r
+ editor1 = CKEDITOR.replace( 'editor1', config ),\r
+ editor2 = CKEDITOR.replace( 'editor2', config ),\r
+ editor3 = CKEDITOR.replace( 'editor3', config ),\r
+ editor4 = CKEDITOR.replace( 'editor4', CKEDITOR.tools.extend( { forcePasteAsPlainText: true }, config ) ),\r
+ editor5 = CKEDITOR.replace( 'editor5', CKEDITOR.tools.extend( { autoParagraph: false }, config ) ),\r
+ editor6 = CKEDITOR.inline( document.getElementById( 'editor6' ), config );\r
+\r
+ editor3.on( 'beforePaste', function( evt ) {\r
+ evt.data.type = 'text';\r
+ } );\r
+\r
+ observe( editor1, 1 );\r
+ observe( editor2, 2 );\r
+ observe( editor3, 3 );\r
+ observe( editor4, 4 );\r
+ observe( editor5, 5 );\r
+ observe( editor6, 6 );\r
+\r
+})();\r
+ </script>\r
+</body>\r
+</html>\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/* global CKCONSOLE */\r
+\r
+'use strict';\r
+\r
+( function() {\r
+ var pasteType, pasteValue;\r
+\r
+ CKCONSOLE.add( 'paste', {\r
+ panels: [\r
+ {\r
+ type: 'box',\r
+ content:\r
+ '<ul class="ckconsole_list">' +\r
+ '<li>type: <span class="ckconsole_value" data-value="type"></span></li>' +\r
+ '<li>value: <span class="ckconsole_value" data-value="value"></span></li>' +\r
+ '</ul>',\r
+\r
+ refresh: function() {\r
+ return {\r
+ header: 'Paste',\r
+ type: pasteType,\r
+ value: pasteValue\r
+ };\r
+ },\r
+\r
+ refreshOn: function( editor, refresh ) {\r
+ editor.on( 'paste', function( evt ) {\r
+ pasteType = evt.data.type;\r
+ pasteValue = CKEDITOR.tools.htmlEncode( evt.data.dataValue );\r
+ refresh();\r
+ } );\r
+ }\r
+ },\r
+ {\r
+ type: 'log',\r
+ on: function( editor, log, logFn ) {\r
+ editor.on( 'paste', function( evt ) {\r
+ logFn( 'paste; type:' + evt.data.type )();\r
+ } );\r
+ }\r
+ }\r
+ ]\r
+ } );\r
+} )();\r
--- /dev/null
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+ <meta charset="utf-8">\r
+ <title>Manual test for http://dev.ckeditor.com/ticket/11460</title>\r
+ <script src="../../../ckeditor.js"></script>\r
+ <script src="../../../dev/console/console.js"></script>\r
+ <script src="../../../plugins/clipboard/dev/console.js"></script>\r
+ <link rel="stylesheet" href="../../../samples/old/sample.css">\r
+ <style type="text/css">\r
+ h2 {\r
+ margin: 10px 0px 4px 0px;\r
+ padding: 0;\r
+ font-size: 14px;\r
+ }\r
+ h3 {\r
+ margin: 5px 0px 2px 0px;\r
+ padding: 0;\r
+ font-size: 12px;\r
+ }\r
+ </style>\r
+</head>\r
+<body>\r
+ <h1 class="samples">\r
+ Manual test for #11460\r
+ </h1>\r
+ <h2>Description (<a href="javascript:hideshow('description');">hide/show</a>)</h2>\r
+ <div id="description" class="description">\r
+ <p>Test internal D&D in the editor, dropping content from an external source (helpers, MS Word) and D&D between editors. Keep in mind that internal D&D is the most complex operation because editor have to handle two ranges at the same time.</p>\r
+ <h3>Expected behavior:</h3>\r
+ <ul>\r
+ <li>proper drop position,</li>\r
+ <li>in the internal and cross editor D&D: dragged content should be removed,</li>\r
+ <li>dropped content should be (more less) the same as dragged content,</li>\r
+ <li>paste event should be fired,</li>\r
+ <li>undo should work properly (one undo operation for one D&D),</li>\r
+ <li>no crashes, nor errors,</li>\r
+ </ul>\r
+ <h3>Drag scenarios:</h3>\r
+ <ul>\r
+ <li>drag simple text,</li>\r
+ <li>drag table cell/cells,</li>\r
+ <li>drag link,</li>\r
+ <li>drag helpers textarea content,</li>\r
+ <li>drag helpers html content,</li>\r
+ <li>drag content from MS Word.</li>\r
+ </ul>\r
+ <h3>Drop scenarios:</h3>\r
+ <ul>\r
+ <li>drop in the different paragraph (before and after),</li>\r
+ <li>drop in the same paragraph (before and after),</li>\r
+ <li>drop in the same text node (before and after),</li>\r
+ <li>drop between text lines,</li>\r
+ <li>drop on the whitespace next to the header,</li>\r
+ <li>drop on the whitespace on the left side from the quote,</li>\r
+ <li>drop into a cell.</li>\r
+ </ul>\r
+ <h3>Known issues (not part of this ticket):</h3>\r
+ <ul>\r
+ <li>because of <a href="http://dev.ckeditor.com/ticket/11636">#11636</a> dragged content is not correct in some cases (e.g. when you drag part of the link),</li>\r
+ <li>drag position needs clean up after D&D (e.g. remove empty paragraphs, fix table),</li>\r
+ <li>drop position needs clean up after D&D (e.g. add spaces before/after dropped content, apply parents styles, break paragraph when one paragraph is dropped at the end to the other paragraph),</li>\r
+ <li>in the external D&D: Chrome add plenty of addition tags.</li>\r
+ </ul>\r
+ </div>\r
+ <div>\r
+ <h2>Helpers (<a href="javascript:hideshow('helpers');">hide/show</a>)</h2>\r
+ <div id="helpers">\r
+ <textarea style="width:49%; height:50px; float: left;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. In commodo vulputate tempor. Sed <b>at</b> elit.</textarea>\r
+ <div style="width:49%; height:50px; float: right;">\r
+ Lorem ipsum <b>dolor</b> sit <i>amet</i>, consectetur adipiscing elit. In commodo vulputate tempor. Sed <b>at elit</b> vel ligula mollis aliquet a ac odio.\r
+ <pre>\r
+Aenean cursus egestas ipsum.\r
+ </pre>\r
+ </div>\r
+ <div style="clear:both;"></div>\r
+ </div>\r
+ </div>\r
+ <div>\r
+ <h2>Classic editor (<a href="javascript:hideshow('classic-editor');">hide/show</a>)</h2>\r
+ <div id="classic-editor">\r
+ <textarea cols="80" id="classic" name="classic" rows="10">\r
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="../../../samples/assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>\r
+ </textarea>\r
+ </div>\r
+ </div>\r
+ <div>\r
+ <h2>Inline editor (<a href="javascript:hideshow('inline');">hide/show</a>)</h2>\r
+ <div id="inline" contenteditable="true">\r
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="../../../samples/assets/sample.jpg" /> Apollo 11</h1>\r
+\r
+ <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p>\r
+\r
+ <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>\r
+\r
+ <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>\r
+\r
+ <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>\r
+\r
+ <blockquote>\r
+ <p>One small step for [a] man, one giant leap for mankind.</p>\r
+ </blockquote>\r
+\r
+ <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>\r
+\r
+ <blockquote>\r
+ <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>\r
+ </blockquote>\r
+\r
+ <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>\r
+\r
+ <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;">\r
+ <caption><strong>Mission crew</strong></caption>\r
+ <thead>\r
+ <tr>\r
+ <th scope="col">Position</th>\r
+ <th scope="col">Astronaut</th>\r
+ </tr>\r
+ </thead>\r
+ <tbody>\r
+ <tr>\r
+ <td>Commander</td>\r
+ <td>Neil A. Armstrong</td>\r
+ </tr>\r
+ <tr>\r
+ <td>Command Module Pilot</td>\r
+ <td>Michael Collins</td>\r
+ </tr>\r
+ <tr>\r
+ <td>Lunar Module Pilot</td>\r
+ <td>Edwin "Buzz" E. Aldrin, Jr.</td>\r
+ </tr>\r
+ </tbody>\r
+ </table>\r
+\r
+ <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p>\r
+\r
+ <ol>\r
+ <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>\r
+ <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>\r
+ <li><strong>Lunar Module</strong> for landing on the Moon.</li>\r
+ </ol>\r
+\r
+ <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>\r
+\r
+ <hr />\r
+ <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>\r
+ </div>\r
+ </div>\r
+ <script type="text/javascript">\r
+ CKEDITOR.disableAutoInline = true;\r
+\r
+ function hideshow( id ) {\r
+ var element = CKEDITOR.document.getById( id );\r
+\r
+ if( element.getStyle( 'display' ) == 'none' )\r
+ element.show();\r
+ else\r
+ element.hide();\r
+ }\r
+\r
+ CKEDITOR.replace( 'classic' );\r
+ CKEDITOR.inline( 'inline' );\r
+\r
+ CKCONSOLE.addEventPanel( 'dragstart', [ '$', 'target', 'dataTransfer' ] );\r
+ CKCONSOLE.addEventPanel( 'dragend', [ '$', 'target', 'dataTransfer' ] );\r
+ CKCONSOLE.addEventPanel( 'drop',\r
+ [ '$', 'target', 'dataTransfer', 'dragRange', 'dropRange' ] );\r
+\r
+ CKCONSOLE.create( 'dragstart', { editor: 'classic' } );\r
+ CKCONSOLE.create( 'drop', { editor: 'classic' } );\r
+ CKCONSOLE.create( 'paste', { editor: 'classic' } );\r
+ CKCONSOLE.create( 'dragend', { editor: 'classic' } );\r
+\r
+ CKCONSOLE.create( 'dragstart', { editor: 'inline' } );\r
+ CKCONSOLE.create( 'drop', { editor: 'inline' } );\r
+ CKCONSOLE.create( 'paste', { editor: 'inline' } );\r
+ CKCONSOLE.create( 'dragend', { editor: 'inline' } );\r
+ </script>\r
+</body>\r
+</html>\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'af', {\r
+ copy: 'Kopiëer',\r
+ copyError: 'U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).',\r
+ cut: 'Knip',\r
+ cutError: 'U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).',\r
+ paste: 'Plak',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ar', {\r
+ copy: 'نسخ',\r
+ copyError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).',\r
+ cut: 'قص',\r
+ cutError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).',\r
+ paste: 'لصق',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'az', {\r
+ copy: 'Köçür',\r
+ copyError: 'Avtomatik köçürülməsi mümkün deyil. Ctrl+C basın.',\r
+ cut: 'Kəs',\r
+ cutError: 'Avtomatik kəsmə mümkün deyil. Ctrl+X basın.',\r
+ paste: 'Əlavə et',\r
+ pasteNotification: 'Sizin İnternet bələdçisi bu cür mətnin köçürməsi dəstəklənmir. Əlavə etmək üçün %1 basın.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'bg', {\r
+ copy: 'Копирай',\r
+ copyError: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).',\r
+ cut: 'Отрежи',\r
+ cutError: 'Настройките за сигурност на Вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. Моля ползвайте клавиатурните команди за целта (ctrl+x).',\r
+ paste: 'Вмъкни',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'bn', {\r
+ copy: 'কপি',\r
+ copyError: 'আপনার ব্রাউজারের নিরাপত্তা সেটিংসমূহ এডিটরকে স্বয়ংক্রিয়ভাবে কপি করার প্রক্রিয়া চালনা করার অনুমতি দেয় না। অনুগ্রহপূর্বক এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।',\r
+ cut: 'কাট',\r
+ cutError: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।',\r
+ paste: 'পেস্ট',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'bs', {\r
+ copy: 'Kopiraj',\r
+ copyError: 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).',\r
+ cut: 'Izreži',\r
+ cutError: 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).',\r
+ paste: 'Zalijepi',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ca', {\r
+ copy: 'Copiar',\r
+ copyError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).',\r
+ cut: 'Retallar',\r
+ cutError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).',\r
+ paste: 'Enganxar',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'cs', {\r
+ copy: 'Kopírovat',\r
+ copyError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).',\r
+ cut: 'Vyjmout',\r
+ cutError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).',\r
+ paste: 'Vložit',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'cy', {\r
+ copy: 'Copïo',\r
+ copyError: '\'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).',\r
+ cut: 'Torri',\r
+ cutError: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).',\r
+ paste: 'Gludo',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'da', {\r
+ copy: 'Kopiér',\r
+ copyError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).',\r
+ cut: 'Klip',\r
+ cutError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).',\r
+ paste: 'Indsæt',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'de-ch', {\r
+ copy: 'Kopieren',\r
+ copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).',\r
+ cut: 'Ausschneiden',\r
+ cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).',\r
+ paste: 'Einfügen',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'de', {\r
+ copy: 'Kopieren',\r
+ copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).',\r
+ cut: 'Ausschneiden',\r
+ cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).',\r
+ paste: 'Einfügen',\r
+ pasteNotification: 'Ihr Browser verhindert das Einfügen über diesen Weg. Zum einfügen drücken Sie %1.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'el', {\r
+ copy: 'Αντιγραφή',\r
+ copyError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).',\r
+ cut: 'Αποκοπή',\r
+ cutError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).',\r
+ paste: 'Επικόλληση',\r
+ pasteNotification: 'Ο περιηγητής σας δεν σας επιτρέπει να επικολλήσετε με αυτόν τον τρόπο. Πατήστε %1 για επικόλληση.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'en-au', {\r
+ copy: 'Copy',\r
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',\r
+ cut: 'Cut',\r
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',\r
+ paste: 'Paste',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'en-ca', {\r
+ copy: 'Copy',\r
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',\r
+ cut: 'Cut',\r
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',\r
+ paste: 'Paste',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'en-gb', {\r
+ copy: 'Copy',\r
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',\r
+ cut: 'Cut',\r
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',\r
+ paste: 'Paste',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'en', {\r
+ copy: 'Copy',\r
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',\r
+ cut: 'Cut',\r
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',\r
+ paste: 'Paste',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'eo', {\r
+ copy: 'Kopii',\r
+ copyError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).',\r
+ cut: 'Eltondi',\r
+ cutError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).',\r
+ paste: 'Interglui',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'es-mx', {\r
+ copy: 'Copiar',\r
+ copyError: 'La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de copiado. Por favor, utilice el teclado para (Ctrl/Cmd+C).',\r
+ cut: 'Cortar',\r
+ cutError: 'La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de corte. Por favor, utilice el teclado para (Ctrl/Cmd+X).',\r
+ paste: 'Pegar',\r
+ pasteNotification: 'Tu navegador no permite pegar de esta manera. Presiona %1 para pegar.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'es', {\r
+ copy: 'Copiar',\r
+ copyError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).',\r
+ cut: 'Cortar',\r
+ cutError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).',\r
+ paste: 'Pegar',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'et', {\r
+ copy: 'Kopeeri',\r
+ copyError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).',\r
+ cut: 'Lõika',\r
+ cutError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).',\r
+ paste: 'Aseta',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'eu', {\r
+ copy: 'Kopiatu',\r
+ copyError: 'Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki kopiatzea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+C).',\r
+ cut: 'Ebaki',\r
+ cutError: 'Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki moztea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+X).',\r
+ paste: 'Itsatsi',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fa', {\r
+ copy: 'رونوشت',\r
+ copyError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).',\r
+ cut: 'برش',\r
+ cutError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).',\r
+ paste: 'چسباندن',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fi', {\r
+ copy: 'Kopioi',\r
+ copyError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).',\r
+ cut: 'Leikkaa',\r
+ cutError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).',\r
+ paste: 'Liitä',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fo', {\r
+ copy: 'Avrita',\r
+ copyError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).',\r
+ cut: 'Kvett',\r
+ cutError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).',\r
+ paste: 'Innrita',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fr-ca', {\r
+ copy: 'Copier',\r
+ copyError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).',\r
+ cut: 'Couper',\r
+ cutError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).',\r
+ paste: 'Coller',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fr', {\r
+ copy: 'Copier',\r
+ copyError: 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).',\r
+ cut: 'Couper',\r
+ cutError: 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).',\r
+ paste: 'Coller',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'gl', {\r
+ copy: 'Copiar',\r
+ copyError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).',\r
+ cut: 'Cortar',\r
+ cutError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).',\r
+ paste: 'Pegar',\r
+ pasteNotification: 'O seu navegador non permite pegar deste xeito. Prema %1 para pegar.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'gu', {\r
+ copy: 'નકલ',\r
+ copyError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+C) का प्रयोग करें।',\r
+ cut: 'કાપવું',\r
+ cutError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.',\r
+ paste: 'પેસ્ટ',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'he', {\r
+ copy: 'העתקה',\r
+ copyError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).',\r
+ cut: 'גזירה',\r
+ cutError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).',\r
+ paste: 'הדבקה',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'hi', {\r
+ copy: 'कॉपी',\r
+ copyError: 'आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।',\r
+ cut: 'कट',\r
+ cutError: 'आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।',\r
+ paste: 'पेस्ट',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'hr', {\r
+ copy: 'Kopiraj',\r
+ copyError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).',\r
+ cut: 'Izreži',\r
+ cutError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).',\r
+ paste: 'Zalijepi',\r
+ pasteNotification: 'Vaš preglednik Vam ne dozvoljava lijepljenje na ovaj način. Za lijepljenje, pritisnite %1.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'hu', {\r
+ copy: 'Másolás',\r
+ copyError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',\r
+ cut: 'Kivágás',\r
+ cutError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',\r
+ paste: 'Beillesztés',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'id', {\r
+ copy: 'Salin',\r
+ copyError: 'Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)',\r
+ cut: 'Potong',\r
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING\r
+ paste: 'Tempel',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'is', {\r
+ copy: 'Afrita',\r
+ copyError: 'Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).',\r
+ cut: 'Klippa',\r
+ cutError: 'Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).',\r
+ paste: 'Líma',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'it', {\r
+ copy: 'Copia',\r
+ copyError: 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).',\r
+ cut: 'Taglia',\r
+ cutError: 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).',\r
+ paste: 'Incolla',\r
+ pasteNotification: 'Il browser non permette di incollare in questo modo. Premere %1 per incollare.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ja', {\r
+ copy: 'コピー',\r
+ copyError: 'ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。',\r
+ cut: '切り取り',\r
+ cutError: 'ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。',\r
+ paste: '貼り付け',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ka', {\r
+ copy: 'ასლი',\r
+ copyError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).',\r
+ cut: 'ამოჭრა',\r
+ cutError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).',\r
+ paste: 'ჩასმა',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'km', {\r
+ copy: 'ចម្លង',\r
+ copyError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះមិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។',\r
+ cut: 'កាត់យក',\r
+ cutError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះមិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+X) ។',\r
+ paste: 'បិទភ្ជាប់',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ko', {\r
+ copy: '복사',\r
+ copyError: '브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.',\r
+ cut: '잘라내기',\r
+ cutError: '브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오',\r
+ paste: '붙여넣기',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ku', {\r
+ copy: 'لەبەرگرتنەوە',\r
+ copyError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).',\r
+ cut: 'بڕین',\r
+ cutError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).',\r
+ paste: 'لکاندن',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'lt', {\r
+ copy: 'Kopijuoti',\r
+ copyError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).',\r
+ cut: 'Iškirpti',\r
+ cutError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).',\r
+ paste: 'Įdėti',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'lv', {\r
+ copy: 'Kopēt',\r
+ copyError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.',\r
+ cut: 'Izgriezt',\r
+ cutError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.',\r
+ paste: 'Ielīmēt',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'mk', {\r
+ copy: 'Копирај (Copy)',\r
+ copyError: 'Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши копирање. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)',\r
+ cut: 'Исечи (Cut)',\r
+ cutError: 'Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши сечење. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)',\r
+ paste: 'Залепи (Paste)',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'mn', {\r
+ copy: 'Хуулах',\r
+ copyError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.',\r
+ cut: 'Хайчлах',\r
+ cutError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.',\r
+ paste: 'Буулгах',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ms', {\r
+ copy: 'Salin',\r
+ copyError: 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).',\r
+ cut: 'Potong',\r
+ cutError: 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).',\r
+ paste: 'Tampal',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'nb', {\r
+ copy: 'Kopier',\r
+ copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).',\r
+ cut: 'Klipp ut',\r
+ cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).',\r
+ paste: 'Lim inn',\r
+ pasteNotification: 'Nettleseren din lar deg ikke lime inn på denne måten. Trykk %1 for å lime inn.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'nl', {\r
+ copy: 'Kopiëren',\r
+ copyError: 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.',\r
+ cut: 'Knippen',\r
+ cutError: 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.',\r
+ paste: 'Plakken',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'no', {\r
+ copy: 'Kopier',\r
+ copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).',\r
+ cut: 'Klipp ut',\r
+ cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).',\r
+ paste: 'Lim inn',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'oc', {\r
+ copy: 'Copiar',\r
+ copyError: 'Los paramètres de seguretat de vòstre navigador autorizan pas l\'editor a executar automaticament l\'operacion « Copiar ». Utilizatz l\'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+C).',\r
+ cut: 'Talhar',\r
+ cutError: 'Los paramètres de seguretat de vòstre navigador autorizan pas l\'editor a executar automaticament l\'operacion « Talhar ». Utilizatz l\'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+X).',\r
+ paste: 'Pegar',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'pl', {\r
+ copy: 'Kopiuj',\r
+ copyError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.',\r
+ cut: 'Wytnij',\r
+ cutError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.',\r
+ paste: 'Wklej',\r
+ pasteNotification: 'Twoja przeglądarka nie pozwala na wklejanie treści w ten sposób. Naciśnij %1 by wkleić tekst.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'pt-br', {\r
+ copy: 'Copiar',\r
+ copyError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).',\r
+ cut: 'Recortar',\r
+ cutError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).',\r
+ paste: 'Colar',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'pt', {\r
+ copy: 'Copiar',\r
+ copyError: 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).',\r
+ cut: 'Cortar',\r
+ cutError: 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).',\r
+ paste: 'Colar',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ro', {\r
+ copy: 'Copiază',\r
+ copyError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).',\r
+ cut: 'Taie',\r
+ cutError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).',\r
+ paste: 'Adaugă',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ru', {\r
+ copy: 'Копировать',\r
+ copyError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).',\r
+ cut: 'Вырезать',\r
+ cutError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).',\r
+ paste: 'Вставить',\r
+ pasteNotification: 'Ваш браузер не поддерживает данный метод вставки. Для вставки нажмите %1'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'si', {\r
+ copy: 'පිටපත් කරන්න',\r
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', // MISSING\r
+ cut: 'කපාගන්න',\r
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING\r
+ paste: 'අලවන්න',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sk', {\r
+ copy: 'Kopírovať',\r
+ copyError: 'Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Použite na to klávesnicu (Ctrl/Cmd+C).',\r
+ cut: 'Vystrihnúť',\r
+ cutError: 'Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Použite na to klávesnicu (Ctrl/Cmd+X).',\r
+ paste: 'Vložiť',\r
+ pasteNotification: 'Váš prehliadač nepovoľuje prilepiť text takýmto spôsobom. Pre prilepenie stlačte %1.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sl', {\r
+ copy: 'Kopiraj',\r
+ copyError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).',\r
+ cut: 'Izreži',\r
+ cutError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).',\r
+ paste: 'Prilepi',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sq', {\r
+ copy: 'Kopjo',\r
+ copyError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).',\r
+ cut: 'Preje',\r
+ cutError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).',\r
+ paste: 'Hidhe',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sr-latn', {\r
+ copy: 'Kopiraj',\r
+ copyError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).',\r
+ cut: 'Iseci',\r
+ cutError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).',\r
+ paste: 'Zalepi',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sr', {\r
+ copy: 'Копирај',\r
+ copyError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).',\r
+ cut: 'Исеци',\r
+ cutError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).',\r
+ paste: 'Залепи',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sv', {\r
+ copy: 'Kopiera',\r
+ copyError: 'Säkerhetsinställningar i din webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.',\r
+ cut: 'Klipp ut',\r
+ cutError: 'Säkerhetsinställningar i din webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.',\r
+ paste: 'Klistra in',\r
+ pasteNotification: 'Din webbläsare tillåter dig inte att klistra in på detta vis. Tryck på %1 för att klistra in.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'th', {\r
+ copy: 'สำเนา',\r
+ copyError: 'ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).',\r
+ cut: 'ตัด',\r
+ cutError: 'ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).',\r
+ paste: 'วาง',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'tr', {\r
+ copy: 'Kopyala',\r
+ copyError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.',\r
+ cut: 'Kes',\r
+ cutError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.',\r
+ paste: 'Yapıştır',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'tt', {\r
+ copy: 'Күчермәләү',\r
+ copyError: 'Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.',\r
+ cut: 'Кисеп алу',\r
+ cutError: 'Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.',\r
+ paste: 'Өстәү',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ug', {\r
+ copy: 'كۆچۈر',\r
+ copyError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ',\r
+ cut: 'كەس',\r
+ cutError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ',\r
+ paste: 'چاپلا',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'uk', {\r
+ copy: 'Копіювати',\r
+ copyError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).',\r
+ cut: 'Вирізати',\r
+ cutError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)',\r
+ paste: 'Вставити',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'vi', {\r
+ copy: 'Sao chép',\r
+ copyError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).',\r
+ cut: 'Cắt',\r
+ cutError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).',\r
+ paste: 'Dán',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'zh-cn', {\r
+ copy: '复制',\r
+ copyError: '您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl/Cmd+C)来完成。',\r
+ cut: '剪切',\r
+ cutError: '您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl/Cmd+X)来完成。',\r
+ paste: '粘贴',\r
+ pasteNotification: '您的浏览器不允许用此方式粘贴,要粘贴请按 %1。'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'zh', {\r
+ copy: '複製',\r
+ copyError: '瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。',\r
+ cut: '剪下',\r
+ cutError: '瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。',\r
+ paste: '貼上',\r
+ pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/**\r
+ * @ignore\r
+ * File overview: Clipboard support.\r
+ */\r
+\r
+//\r
+// COPY & PASTE EXECUTION FLOWS:\r
+// -- CTRL+C\r
+// * if ( isCustomCopyCutSupported )\r
+// * dataTransfer.setData( 'text/html', getSelectedHtml )\r
+// * else\r
+// * browser's default behavior\r
+// -- CTRL+X\r
+// * listen onKey (onkeydown)\r
+// * fire 'saveSnapshot' on editor\r
+// * if ( isCustomCopyCutSupported )\r
+// * dataTransfer.setData( 'text/html', getSelectedHtml )\r
+// * extractSelectedHtml // remove selected contents\r
+// * else\r
+// * browser's default behavior\r
+// * deferred second 'saveSnapshot' event\r
+// -- CTRL+V\r
+// * listen onKey (onkeydown)\r
+// * simulate 'beforepaste' for non-IEs on editable\r
+// * listen 'onpaste' on editable ('onbeforepaste' for IE)\r
+// * fire 'beforePaste' on editor\r
+// * if ( !canceled && ( htmlInDataTransfer || !external paste) && dataTransfer is not empty ) getClipboardDataByPastebin\r
+// * fire 'paste' on editor\r
+// * !canceled && fire 'afterPaste' on editor\r
+// -- Copy command\r
+// * tryToCutCopy\r
+// * execCommand\r
+// * !success && notification\r
+// -- Cut command\r
+// * fixCut\r
+// * tryToCutCopy\r
+// * execCommand\r
+// * !success && notification\r
+// -- Paste command\r
+// * fire 'paste' on editable ('beforepaste' for IE)\r
+// * !canceled && execCommand 'paste'\r
+// -- Paste from native context menu & menubar\r
+// (Fx & Webkits are handled in 'paste' default listener.\r
+// Opera cannot be handled at all because it doesn't fire any events\r
+// Special treatment is needed for IE, for which is this part of doc)\r
+// * listen 'onpaste'\r
+// * cancel native event\r
+// * fire 'beforePaste' on editor\r
+// * if ( !canceled && ( htmlInDataTransfer || !external paste) && dataTransfer is not empty ) getClipboardDataByPastebin\r
+// * execIECommand( 'paste' ) -> this fires another 'paste' event, so cancel it\r
+// * fire 'paste' on editor\r
+// * !canceled && fire 'afterPaste' on editor\r
+//\r
+//\r
+// PASTE EVENT - PREPROCESSING:\r
+// -- Possible dataValue types: auto, text, html.\r
+// -- Possible dataValue contents:\r
+// * text (possible \n\r)\r
+// * htmlified text (text + br,div,p - no presentational markup & attrs - depends on browser)\r
+// * html\r
+// -- Possible flags:\r
+// * htmlified - if true then content is a HTML even if no markup inside. This flag is set\r
+// for content from editable pastebins, because they 'htmlify' pasted content.\r
+//\r
+// -- Type: auto:\r
+// * content: htmlified text -> filter, unify text markup (brs, ps, divs), set type: text\r
+// * content: html -> filter, set type: html\r
+// -- Type: text:\r
+// * content: htmlified text -> filter, unify text markup\r
+// * content: html -> filter, strip presentational markup, unify text markup\r
+// -- Type: html:\r
+// * content: htmlified text -> filter, unify text markup\r
+// * content: html -> filter\r
+//\r
+// -- Phases:\r
+// * if dataValue is empty copy data from dataTransfer to dataValue (priority 1)\r
+// * filtering (priorities 3-5) - e.g. pastefromword filters\r
+// * content type sniffing (priority 6)\r
+// * markup transformations for text (priority 6)\r
+//\r
+// DRAG & DROP EXECUTION FLOWS:\r
+// -- Drag\r
+// * save to the global object:\r
+// * drag timestamp (with 'cke-' prefix),\r
+// * selected html,\r
+// * drag range,\r
+// * editor instance.\r
+// * put drag timestamp into event.dataTransfer.text\r
+// -- Drop\r
+// * if events text == saved timestamp && editor == saved editor\r
+// internal drag & drop occurred\r
+// * getRangeAtDropPosition\r
+// * create bookmarks for drag and drop ranges starting from the end of the document\r
+// * dragRange.deleteContents()\r
+// * fire 'paste' with saved html and drop range\r
+// * if events text == saved timestamp && editor != saved editor\r
+// cross editor drag & drop occurred\r
+// * getRangeAtDropPosition\r
+// * fire 'paste' with saved html\r
+// * dragRange.deleteContents()\r
+// * FF: refreshCursor on afterPaste\r
+// * if events text != saved timestamp\r
+// drop form external source occurred\r
+// * getRangeAtDropPosition\r
+// * if event contains html data then fire 'paste' with html\r
+// * else if event contains text data then fire 'paste' with encoded text\r
+// * FF: refreshCursor on afterPaste\r
+\r
+'use strict';\r
+\r
+( function() {\r
+ // Register the plugin.\r
+ CKEDITOR.plugins.add( 'clipboard', {\r
+ requires: 'notification,toolbar',\r
+ // jscs:disable maximumLineLength\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ // jscs:enable maximumLineLength\r
+ icons: 'copy,copy-rtl,cut,cut-rtl,paste,paste-rtl', // %REMOVE_LINE_CORE%\r
+ hidpi: true, // %REMOVE_LINE_CORE%\r
+ init: function( editor ) {\r
+ var filterType,\r
+ filtersFactory = filtersFactoryFactory();\r
+\r
+ if ( editor.config.forcePasteAsPlainText ) {\r
+ filterType = 'plain-text';\r
+ } else if ( editor.config.pasteFilter ) {\r
+ filterType = editor.config.pasteFilter;\r
+ }\r
+ // On Webkit the pasteFilter defaults 'semantic-content' because pasted data is so terrible\r
+ // that it must be always filtered.\r
+ else if ( CKEDITOR.env.webkit && !( 'pasteFilter' in editor.config ) ) {\r
+ filterType = 'semantic-content';\r
+ }\r
+\r
+ editor.pasteFilter = filtersFactory.get( filterType );\r
+\r
+ initPasteClipboard( editor );\r
+ initDragDrop( editor );\r
+\r
+ // Convert image file (if present) to base64 string for Firefox. Do it as the first\r
+ // step as the conversion is asynchronous and should hold all further paste processing.\r
+ if ( CKEDITOR.env.gecko ) {\r
+ var supportedImageTypes = [ 'image/png', 'image/jpeg', 'image/gif' ],\r
+ latestId;\r
+\r
+ editor.on( 'paste', function( evt ) {\r
+ var dataObj = evt.data,\r
+ data = dataObj.dataValue,\r
+ dataTransfer = dataObj.dataTransfer;\r
+\r
+ // If data empty check for image content inside data transfer. http://dev.ckeditor.com/ticket/16705\r
+ if ( !data && dataObj.method == 'paste' && dataTransfer && dataTransfer.getFilesCount() == 1 && latestId != dataTransfer.id ) {\r
+ var file = dataTransfer.getFile( 0 );\r
+\r
+ if ( CKEDITOR.tools.indexOf( supportedImageTypes, file.type ) != -1 ) {\r
+ var fileReader = new FileReader();\r
+\r
+ // Convert image file to img tag with base64 image.\r
+ fileReader.addEventListener( 'load', function() {\r
+ evt.data.dataValue = '<img src="' + fileReader.result + '" />';\r
+ editor.fire( 'paste', evt.data );\r
+ }, false );\r
+\r
+ // Proceed with normal flow if reading file was aborted.\r
+ fileReader.addEventListener( 'abort', function() {\r
+ editor.fire( 'paste', evt.data );\r
+ }, false );\r
+\r
+ // Proceed with normal flow if reading file failed.\r
+ fileReader.addEventListener( 'error', function() {\r
+ editor.fire( 'paste', evt.data );\r
+ }, false );\r
+\r
+ fileReader.readAsDataURL( file );\r
+\r
+ latestId = dataObj.dataTransfer.id;\r
+\r
+ evt.stop();\r
+ }\r
+ }\r
+ }, null, null, 1 );\r
+ }\r
+\r
+ editor.on( 'paste', function( evt ) {\r
+ // Init `dataTransfer` if `paste` event was fired without it, so it will be always available.\r
+ if ( !evt.data.dataTransfer ) {\r
+ evt.data.dataTransfer = new CKEDITOR.plugins.clipboard.dataTransfer();\r
+ }\r
+\r
+ // If dataValue is already set (manually or by paste bin), so do not override it.\r
+ if ( evt.data.dataValue ) {\r
+ return;\r
+ }\r
+\r
+ var dataTransfer = evt.data.dataTransfer,\r
+ // IE support only text data and throws exception if we try to get html data.\r
+ // This html data object may also be empty if we drag content of the textarea.\r
+ value = dataTransfer.getData( 'text/html' );\r
+\r
+ if ( value ) {\r
+ evt.data.dataValue = value;\r
+ evt.data.type = 'html';\r
+ } else {\r
+ // Try to get text data otherwise.\r
+ value = dataTransfer.getData( 'text/plain' );\r
+\r
+ if ( value ) {\r
+ evt.data.dataValue = editor.editable().transformPlainTextToHtml( value );\r
+ evt.data.type = 'text';\r
+ }\r
+ }\r
+ }, null, null, 1 );\r
+\r
+ editor.on( 'paste', function( evt ) {\r
+ var data = evt.data.dataValue,\r
+ blockElements = CKEDITOR.dtd.$block;\r
+\r
+ // Filter webkit garbage.\r
+ if ( data.indexOf( 'Apple-' ) > -1 ) {\r
+ // Replace special webkit's with simple space, because webkit\r
+ // produces them even for normal spaces.\r
+ data = data.replace( /<span class="Apple-converted-space"> <\/span>/gi, ' ' );\r
+\r
+ // Strip <span> around white-spaces when not in forced 'html' content type.\r
+ // This spans are created only when pasting plain text into Webkit,\r
+ // but for safety reasons remove them always.\r
+ if ( evt.data.type != 'html' ) {\r
+ data = data.replace( /<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi, function( all, spaces ) {\r
+ // Replace tabs with 4 spaces like Fx does.\r
+ return spaces.replace( /\t/g, ' ' );\r
+ } );\r
+ }\r
+\r
+ // This br is produced only when copying & pasting HTML content.\r
+ if ( data.indexOf( '<br class="Apple-interchange-newline">' ) > -1 ) {\r
+ evt.data.startsWithEOL = 1;\r
+ evt.data.preSniffing = 'html'; // Mark as not text.\r
+ data = data.replace( /<br class="Apple-interchange-newline">/, '' );\r
+ }\r
+\r
+ // Remove all other classes.\r
+ data = data.replace( /(<[^>]+) class="Apple-[^"]*"/gi, '$1' );\r
+ }\r
+\r
+ // Strip editable that was copied from inside. (http://dev.ckeditor.com/ticket/9534)\r
+ if ( data.match( /^<[^<]+cke_(editable|contents)/i ) ) {\r
+ var tmp,\r
+ editable_wrapper,\r
+ wrapper = new CKEDITOR.dom.element( 'div' );\r
+\r
+ wrapper.setHtml( data );\r
+ // Verify for sure and check for nested editor UI parts. (http://dev.ckeditor.com/ticket/9675)\r
+ while ( wrapper.getChildCount() == 1 &&\r
+ ( tmp = wrapper.getFirst() ) &&\r
+ tmp.type == CKEDITOR.NODE_ELEMENT && // Make sure first-child is element.\r
+ ( tmp.hasClass( 'cke_editable' ) || tmp.hasClass( 'cke_contents' ) ) ) {\r
+ wrapper = editable_wrapper = tmp;\r
+ }\r
+\r
+ // If editable wrapper was found strip it and bogus <br> (added on FF).\r
+ if ( editable_wrapper )\r
+ data = editable_wrapper.getHtml().replace( /<br>$/i, '' );\r
+ }\r
+\r
+ if ( CKEDITOR.env.ie ) {\r
+ // <p> -> <p> (br.cke-pasted-remove will be removed later)\r
+ data = data.replace( /^ (?: |\r\n)?<(\w+)/g, function( match, elementName ) {\r
+ if ( elementName.toLowerCase() in blockElements ) {\r
+ evt.data.preSniffing = 'html'; // Mark as not a text.\r
+ return '<' + elementName;\r
+ }\r
+ return match;\r
+ } );\r
+ } else if ( CKEDITOR.env.webkit ) {\r
+ // </p><div><br></div> -> </p><br>\r
+ // We don't mark br, because this situation can happen for htmlified text too.\r
+ data = data.replace( /<\/(\w+)><div><br><\/div>$/, function( match, elementName ) {\r
+ if ( elementName in blockElements ) {\r
+ evt.data.endsWithEOL = 1;\r
+ return '</' + elementName + '>';\r
+ }\r
+ return match;\r
+ } );\r
+ } else if ( CKEDITOR.env.gecko ) {\r
+ // Firefox adds bogus <br> when user pasted text followed by space(s).\r
+ data = data.replace( /(\s)<br>$/, '$1' );\r
+ }\r
+\r
+ evt.data.dataValue = data;\r
+ }, null, null, 3 );\r
+\r
+ editor.on( 'paste', function( evt ) {\r
+ var dataObj = evt.data,\r
+ type = editor._.nextPasteType || dataObj.type,\r
+ data = dataObj.dataValue,\r
+ trueType,\r
+ // Default is 'html'.\r
+ defaultType = editor.config.clipboard_defaultContentType || 'html',\r
+ transferType = dataObj.dataTransfer.getTransferType( editor );\r
+\r
+ // If forced type is 'html' we don't need to know true data type.\r
+ if ( type == 'html' || dataObj.preSniffing == 'html' ) {\r
+ trueType = 'html';\r
+ } else {\r
+ trueType = recogniseContentType( data );\r
+ }\r
+\r
+ delete editor._.nextPasteType;\r
+\r
+ // Unify text markup.\r
+ if ( trueType == 'htmlifiedtext' ) {\r
+ data = htmlifiedTextHtmlification( editor.config, data );\r
+ }\r
+\r
+ // Strip presentational markup & unify text markup.\r
+ // Forced plain text.\r
+ // Note: we do not check dontFilter option in this case, because forcePAPT was implemented\r
+ // before pasteFilter and pasteFilter is automatically used on Webkit&Blink since 4.5, so\r
+ // forcePAPT should have priority as it had before 4.5.\r
+ if ( type == 'text' && trueType == 'html' ) {\r
+ data = filterContent( editor, data, filtersFactory.get( 'plain-text' ) );\r
+ }\r
+ // External paste and pasteFilter exists and filtering isn't disabled.\r
+ else if ( transferType == CKEDITOR.DATA_TRANSFER_EXTERNAL && editor.pasteFilter && !dataObj.dontFilter ) {\r
+ data = filterContent( editor, data, editor.pasteFilter );\r
+ }\r
+\r
+ if ( dataObj.startsWithEOL ) {\r
+ data = '<br data-cke-eol="1">' + data;\r
+ }\r
+ if ( dataObj.endsWithEOL ) {\r
+ data += '<br data-cke-eol="1">';\r
+ }\r
+\r
+ if ( type == 'auto' ) {\r
+ type = ( trueType == 'html' || defaultType == 'html' ) ? 'html' : 'text';\r
+ }\r
+\r
+ dataObj.type = type;\r
+ dataObj.dataValue = data;\r
+ delete dataObj.preSniffing;\r
+ delete dataObj.startsWithEOL;\r
+ delete dataObj.endsWithEOL;\r
+ }, null, null, 6 );\r
+\r
+ // Inserts processed data into the editor at the end of the\r
+ // events chain.\r
+ editor.on( 'paste', function( evt ) {\r
+ var data = evt.data;\r
+\r
+ if ( data.dataValue ) {\r
+ editor.insertHtml( data.dataValue, data.type, data.range );\r
+\r
+ // Defer 'afterPaste' so all other listeners for 'paste' will be fired first.\r
+ // Fire afterPaste only if paste inserted some HTML.\r
+ setTimeout( function() {\r
+ editor.fire( 'afterPaste' );\r
+ }, 0 );\r
+ }\r
+ }, null, null, 1000 );\r
+ }\r
+ } );\r
+\r
+ function firePasteEvents( editor, data, withBeforePaste ) {\r
+ if ( !data.type ) {\r
+ data.type = 'auto';\r
+ }\r
+\r
+ if ( withBeforePaste ) {\r
+ // Fire 'beforePaste' event so clipboard flavor get customized\r
+ // by other plugins.\r
+ if ( editor.fire( 'beforePaste', data ) === false )\r
+ return false; // Event canceled\r
+ }\r
+\r
+ // Do not fire paste if there is no data (dataValue and dataTranfser are empty).\r
+ // This check should be done after firing 'beforePaste' because for native paste\r
+ // 'beforePaste' is by default fired even for empty clipboard.\r
+ if ( !data.dataValue && data.dataTransfer.isEmpty() ) {\r
+ return false;\r
+ }\r
+\r
+ if ( !data.dataValue ) {\r
+ data.dataValue = '';\r
+ }\r
+\r
+ // Because of FF bug we need to use this hack, otherwise cursor is hidden\r
+ // or it is not possible to move it (http://dev.ckeditor.com/ticket/12420).\r
+ // Also, check that editor.toolbox exists, because the toolbar plugin might not be loaded (http://dev.ckeditor.com/ticket/13305).\r
+ if ( CKEDITOR.env.gecko && data.method == 'drop' && editor.toolbox ) {\r
+ editor.once( 'afterPaste', function() {\r
+ editor.toolbox.focus();\r
+ } );\r
+ }\r
+\r
+ return editor.fire( 'paste', data );\r
+ }\r
+\r
+ function initPasteClipboard( editor ) {\r
+ var clipboard = CKEDITOR.plugins.clipboard,\r
+ preventBeforePasteEvent = 0,\r
+ preventPasteEvent = 0,\r
+ inReadOnly = 0;\r
+\r
+ addListeners();\r
+ addButtonsCommands();\r
+\r
+ /**\r
+ * Gets clipboard data by directly accessing the clipboard (IE only).\r
+ *\r
+ * editor.getClipboardData( function( data ) {\r
+ * if ( data )\r
+ * alert( data.type + ' ' + data.dataValue );\r
+ * } );\r
+ *\r
+ * @member CKEDITOR.editor\r
+ * @param {Function/Object} callbackOrOptions For function, see the `callback` parameter documentation. The object was used before 4.7.0 with the `title` property, to set the paste dialog's title.\r
+ * @param {Function} callback A function that will be executed with the `data` property of the\r
+ * {@link CKEDITOR.editor#event-paste paste event} or `null` if none of the capturing methods succeeded.\r
+ * Since 4.7.0 the `callback` should be provided as a first argument, just like in the example above. This parameter will be removed in\r
+ * an upcoming major release.\r
+ */\r
+ editor.getClipboardData = function( callbackOrOptions, callback ) {\r
+ // Options are optional - args shift.\r
+ if ( !callback ) {\r
+ callback = callbackOrOptions;\r
+ callbackOrOptions = null;\r
+ }\r
+\r
+ // Listen with maximum priority to handle content before everyone else.\r
+ // This callback will handle paste event that will be fired if direct\r
+ // access to the clipboard succeed in IE.\r
+ editor.on( 'paste', onPaste, null, null, 0 );\r
+\r
+ // If command didn't succeed (only IE allows to access clipboard and only if\r
+ // user agrees) invoke callback with null, meaning that paste is not blocked.\r
+ if ( getClipboardDataDirectly() === false ) {\r
+ // Direct access to the clipboard wasn't successful so remove listener.\r
+ editor.removeListener( 'paste', onPaste );\r
+\r
+ callback( null );\r
+ }\r
+\r
+ function onPaste( evt ) {\r
+ evt.removeListener();\r
+ evt.cancel();\r
+ callback( evt.data );\r
+ }\r
+ };\r
+\r
+ function addButtonsCommands() {\r
+ addButtonCommand( 'Cut', 'cut', createCutCopyCmd( 'cut' ), 10, 1 );\r
+ addButtonCommand( 'Copy', 'copy', createCutCopyCmd( 'copy' ), 20, 4 );\r
+ addButtonCommand( 'Paste', 'paste', createPasteCmd(), 30, 8 );\r
+\r
+ function addButtonCommand( buttonName, commandName, command, toolbarOrder, ctxMenuOrder ) {\r
+ var lang = editor.lang.clipboard[ commandName ];\r
+\r
+ editor.addCommand( commandName, command );\r
+ editor.ui.addButton && editor.ui.addButton( buttonName, {\r
+ label: lang,\r
+ command: commandName,\r
+ toolbar: 'clipboard,' + toolbarOrder\r
+ } );\r
+\r
+ // If the "menu" plugin is loaded, register the menu item.\r
+ if ( editor.addMenuItems ) {\r
+ editor.addMenuItem( commandName, {\r
+ label: lang,\r
+ command: commandName,\r
+ group: 'clipboard',\r
+ order: ctxMenuOrder\r
+ } );\r
+ }\r
+ }\r
+ }\r
+\r
+ function addListeners() {\r
+ editor.on( 'key', onKey );\r
+ editor.on( 'contentDom', addPasteListenersToEditable );\r
+\r
+ // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that.\r
+ editor.on( 'selectionChange', function( evt ) {\r
+ inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();\r
+ setToolbarStates();\r
+ } );\r
+\r
+ // If the "contextmenu" plugin is loaded, register the listeners.\r
+ if ( editor.contextMenu ) {\r
+ editor.contextMenu.addListener( function( element, selection ) {\r
+ inReadOnly = selection.getRanges()[ 0 ].checkReadOnly();\r
+ return {\r
+ cut: stateFromNamedCommand( 'cut' ),\r
+ copy: stateFromNamedCommand( 'copy' ),\r
+ paste: stateFromNamedCommand( 'paste' )\r
+ };\r
+ } );\r
+ }\r
+ }\r
+\r
+ // Add events listeners to editable.\r
+ function addPasteListenersToEditable() {\r
+ var editable = editor.editable();\r
+\r
+ if ( CKEDITOR.plugins.clipboard.isCustomCopyCutSupported ) {\r
+ var initOnCopyCut = function( evt ) {\r
+ // If user tries to cut in read-only editor, we must prevent default action. (http://dev.ckeditor.com/ticket/13872)\r
+ if ( !editor.readOnly || evt.name != 'cut' ) {\r
+ clipboard.initPasteDataTransfer( evt, editor );\r
+ }\r
+ evt.data.preventDefault();\r
+ };\r
+\r
+ editable.on( 'copy', initOnCopyCut );\r
+ editable.on( 'cut', initOnCopyCut );\r
+\r
+ // Delete content with the low priority so one can overwrite cut data.\r
+ editable.on( 'cut', function() {\r
+ // If user tries to cut in read-only editor, we must prevent default action. (http://dev.ckeditor.com/ticket/13872)\r
+ if ( !editor.readOnly ) {\r
+ editor.extractSelectedHtml();\r
+ }\r
+ }, null, null, 999 );\r
+ }\r
+\r
+ // We'll be catching all pasted content in one line, regardless of whether\r
+ // it's introduced by a document command execution (e.g. toolbar buttons) or\r
+ // user paste behaviors (e.g. CTRL+V).\r
+ editable.on( clipboard.mainPasteEvent, function( evt ) {\r
+ if ( clipboard.mainPasteEvent == 'beforepaste' && preventBeforePasteEvent ) {\r
+ return;\r
+ }\r
+\r
+ // If you've just asked yourself why preventPasteEventNow() is not here, but\r
+ // in listener for CTRL+V and exec method of 'paste' command\r
+ // you've asked the same question we did.\r
+ //\r
+ // THE ANSWER:\r
+ //\r
+ // First thing to notice - this answer makes sense only for IE,\r
+ // because other browsers don't listen for 'paste' event.\r
+ //\r
+ // What would happen if we move preventPasteEventNow() here?\r
+ // For:\r
+ // * CTRL+V - IE fires 'beforepaste', so we prevent 'paste' and pasteDataFromClipboard(). OK.\r
+ // * editor.execCommand( 'paste' ) - we fire 'beforepaste', so we prevent\r
+ // 'paste' and pasteDataFromClipboard() and doc.execCommand( 'Paste' ). OK.\r
+ // * native context menu - IE fires 'beforepaste', so we prevent 'paste', but unfortunately\r
+ // on IE we fail with pasteDataFromClipboard() here, because of... we don't know why, but\r
+ // we just fail, so... we paste nothing. FAIL.\r
+ // * native menu bar - the same as for native context menu.\r
+ //\r
+ // But don't you know any way to distinguish first two cases from last two?\r
+ // Only one - special flag set in CTRL+V handler and exec method of 'paste'\r
+ // command. And that's what we did using preventPasteEventNow().\r
+\r
+ pasteDataFromClipboard( evt );\r
+ } );\r
+\r
+ // It's not possible to clearly handle all four paste methods (ctrl+v, native menu bar\r
+ // native context menu, editor's command) in one 'paste/beforepaste' event in IE.\r
+ //\r
+ // For ctrl+v & editor's command it's easy to handle pasting in 'beforepaste' listener,\r
+ // so we do this. For another two methods it's better to use 'paste' event.\r
+ //\r
+ // 'paste' is always being fired after 'beforepaste' (except of weird one on opening native\r
+ // context menu), so for two methods handled in 'beforepaste' we're canceling 'paste'\r
+ // using preventPasteEvent state.\r
+ //\r
+ // 'paste' event in IE is being fired before getClipboardDataByPastebin executes its callback.\r
+ //\r
+ // QUESTION: Why didn't you handle all 4 paste methods in handler for 'paste'?\r
+ // Wouldn't this just be simpler?\r
+ // ANSWER: Then we would have to evt.data.preventDefault() only for native\r
+ // context menu and menu bar pastes. The same with execIECommand().\r
+ // That would force us to mark CTRL+V and editor's paste command with\r
+ // special flag, other than preventPasteEvent. But we still would have to\r
+ // have preventPasteEvent for the second event fired by execIECommand.\r
+ // Code would be longer and not cleaner.\r
+ if ( clipboard.mainPasteEvent == 'beforepaste' ) {\r
+ editable.on( 'paste', function( evt ) {\r
+ if ( preventPasteEvent ) {\r
+ return;\r
+ }\r
+\r
+ // Cancel next 'paste' event fired by execIECommand( 'paste' )\r
+ // at the end of this callback.\r
+ preventPasteEventNow();\r
+\r
+ // Prevent native paste.\r
+ evt.data.preventDefault();\r
+\r
+ pasteDataFromClipboard( evt );\r
+\r
+ // Force IE to paste content into pastebin so pasteDataFromClipboard will work.\r
+ execIECommand( 'paste' );\r
+ } );\r
+\r
+ // If mainPasteEvent is 'beforePaste' (IE before Edge),\r
+ // dismiss the (wrong) 'beforepaste' event fired on context/toolbar menu open. (http://dev.ckeditor.com/ticket/7953)\r
+ editable.on( 'contextmenu', preventBeforePasteEventNow, null, null, 0 );\r
+\r
+ editable.on( 'beforepaste', function( evt ) {\r
+ // Do not prevent event on CTRL+V and SHIFT+INS because it blocks paste (http://dev.ckeditor.com/ticket/11970).\r
+ if ( evt.data && !evt.data.$.ctrlKey && !evt.data.$.shiftKey )\r
+ preventBeforePasteEventNow();\r
+ }, null, null, 0 );\r
+ }\r
+\r
+ editable.on( 'beforecut', function() {\r
+ !preventBeforePasteEvent && fixCut( editor );\r
+ } );\r
+\r
+ var mouseupTimeout;\r
+\r
+ // Use editor.document instead of editable in non-IEs for observing mouseup\r
+ // since editable won't fire the event if selection process started within\r
+ // iframe and ended out of the editor (http://dev.ckeditor.com/ticket/9851).\r
+ editable.attachListener( CKEDITOR.env.ie ? editable : editor.document.getDocumentElement(), 'mouseup', function() {\r
+ mouseupTimeout = setTimeout( function() {\r
+ setToolbarStates();\r
+ }, 0 );\r
+ } );\r
+\r
+ // Make sure that deferred mouseup callback isn't executed after editor instance\r
+ // had been destroyed. This may happen when editor.destroy() is called in parallel\r
+ // with mouseup event (i.e. a button with onclick callback) (http://dev.ckeditor.com/ticket/10219).\r
+ editor.on( 'destroy', function() {\r
+ clearTimeout( mouseupTimeout );\r
+ } );\r
+\r
+ editable.on( 'keyup', setToolbarStates );\r
+ }\r
+\r
+ // Create object representing Cut or Copy commands.\r
+ function createCutCopyCmd( type ) {\r
+ return {\r
+ type: type,\r
+ canUndo: type == 'cut', // We can't undo copy to clipboard.\r
+ startDisabled: true,\r
+ fakeKeystroke: type == 'cut' ? CKEDITOR.CTRL + 88 /*X*/ : CKEDITOR.CTRL + 67 /*C*/,\r
+ exec: function() {\r
+ // Attempts to execute the Cut and Copy operations.\r
+ function tryToCutCopy( type ) {\r
+ if ( CKEDITOR.env.ie )\r
+ return execIECommand( type );\r
+\r
+ // non-IEs part\r
+ try {\r
+ // Other browsers throw an error if the command is disabled.\r
+ return editor.document.$.execCommand( type, false, null );\r
+ } catch ( e ) {\r
+ return false;\r
+ }\r
+ }\r
+\r
+ this.type == 'cut' && fixCut();\r
+\r
+ var success = tryToCutCopy( this.type );\r
+\r
+ if ( !success ) {\r
+ // Show cutError or copyError.\r
+ editor.showNotification( editor.lang.clipboard[ this.type + 'Error' ] ); // jshint ignore:line\r
+ }\r
+\r
+ return success;\r
+ }\r
+ };\r
+ }\r
+\r
+ function createPasteCmd() {\r
+ return {\r
+ // Snapshots are done manually by editable.insertXXX methods.\r
+ canUndo: false,\r
+ async: true,\r
+ fakeKeystroke: CKEDITOR.CTRL + 86 /*V*/,\r
+\r
+ /**\r
+ * The default implementation of the paste command.\r
+ *\r
+ * @private\r
+ * @param {CKEDITOR.editor} editor An instance of the editor where the command is being executed.\r
+ * @param {Object/String} data If `data` is a string, then it is considered content that is being pasted.\r
+ * Otherwise it is treated as an object with options.\r
+ * @param {Boolean/String} [data.notification=true] Content for a notification shown after an unsuccessful\r
+ * paste attempt. If `false`, the notification will not be displayed. This parameter was added in 4.7.0.\r
+ * @param {String} [data.type='html'] The type of pasted content. There are two allowed values:\r
+ * * 'html'\r
+ * * 'text'\r
+ * @param {String/Object} data.dataValue Content being pasted. If this parameter is an object, it\r
+ * is supposed to be a `data` property of the {@link CKEDITOR.editor#paste} event.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer Data transfer instance connected\r
+ * with the current paste action.\r
+ * @member CKEDITOR.editor.commands.paste\r
+ */\r
+ exec: function( editor, data ) {\r
+ data = typeof data !== 'undefined' && data !== null ? data : {};\r
+\r
+ var cmd = this,\r
+ notification = typeof data.notification !== 'undefined' ? data.notification : true,\r
+ forcedType = data.type,\r
+ keystroke = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard,\r
+ editor.getCommandKeystroke( this ) ),\r
+ msg = typeof notification === 'string' ? notification : editor.lang.clipboard.pasteNotification\r
+ .replace( /%1/, '<kbd aria-label="' + keystroke.aria + '">' + keystroke.display + '</kbd>' ),\r
+ pastedContent = typeof data === 'string' ? data : data.dataValue;\r
+\r
+ function callback( data, withBeforePaste ) {\r
+ withBeforePaste = typeof withBeforePaste !== 'undefined' ? withBeforePaste : true;\r
+\r
+ if ( data ) {\r
+ data.method = 'paste';\r
+\r
+ if ( !data.dataTransfer ) {\r
+ data.dataTransfer = clipboard.initPasteDataTransfer();\r
+ }\r
+\r
+ firePasteEvents( editor, data, withBeforePaste );\r
+ } else if ( notification ) {\r
+ editor.showNotification( msg, 'info', editor.config.clipboard_notificationDuration );\r
+ }\r
+\r
+ editor.fire( 'afterCommandExec', {\r
+ name: 'paste',\r
+ command: cmd,\r
+ returnValue: !!data\r
+ } );\r
+ }\r
+\r
+ // Force type for the next paste.\r
+ if ( forcedType ) {\r
+ editor._.nextPasteType = forcedType;\r
+ } else {\r
+ delete editor._.nextPasteType;\r
+ }\r
+\r
+ if ( typeof pastedContent === 'string' ) {\r
+ callback( {\r
+ dataValue: pastedContent\r
+ } );\r
+ } else {\r
+ editor.getClipboardData( callback );\r
+ }\r
+ }\r
+ };\r
+ }\r
+\r
+ function preventPasteEventNow() {\r
+ preventPasteEvent = 1;\r
+ // For safety reason we should wait longer than 0/1ms.\r
+ // We don't know how long execution of quite complex getClipboardData will take\r
+ // and in for example 'paste' listener execCommand() (which fires 'paste') is called\r
+ // after getClipboardData finishes.\r
+ // Luckily, it's impossible to immediately fire another 'paste' event we want to handle,\r
+ // because we only handle there native context menu and menu bar.\r
+ setTimeout( function() {\r
+ preventPasteEvent = 0;\r
+ }, 100 );\r
+ }\r
+\r
+ function preventBeforePasteEventNow() {\r
+ preventBeforePasteEvent = 1;\r
+ setTimeout( function() {\r
+ preventBeforePasteEvent = 0;\r
+ }, 10 );\r
+ }\r
+\r
+ // Tries to execute any of the paste, cut or copy commands in IE. Returns a\r
+ // boolean indicating that the operation succeeded.\r
+ // @param {String} command *LOWER CASED* name of command ('paste', 'cut', 'copy').\r
+ function execIECommand( command ) {\r
+ var doc = editor.document,\r
+ body = doc.getBody(),\r
+ enabled = false,\r
+ onExec = function() {\r
+ enabled = true;\r
+ };\r
+\r
+ // The following seems to be the only reliable way to detect that\r
+ // clipboard commands are enabled in IE. It will fire the\r
+ // onpaste/oncut/oncopy events only if the security settings allowed\r
+ // the command to execute.\r
+ body.on( command, onExec );\r
+\r
+ // IE7: document.execCommand has problem to paste into positioned element.\r
+ if ( CKEDITOR.env.version > 7 ) {\r
+ doc.$.execCommand( command );\r
+ } else {\r
+ doc.$.selection.createRange().execCommand( command );\r
+ }\r
+\r
+ body.removeListener( command, onExec );\r
+\r
+ return enabled;\r
+ }\r
+\r
+ // Cutting off control type element in IE standards breaks the selection entirely. (http://dev.ckeditor.com/ticket/4881)\r
+ function fixCut() {\r
+ if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks )\r
+ return;\r
+\r
+ var sel = editor.getSelection(),\r
+ control, range, dummy;\r
+\r
+ if ( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) ) {\r
+ range = sel.getRanges()[ 0 ];\r
+ dummy = editor.document.createText( '' );\r
+ dummy.insertBefore( control );\r
+ range.setStartBefore( dummy );\r
+ range.setEndAfter( control );\r
+ sel.selectRanges( [ range ] );\r
+\r
+ // Clear up the fix if the paste wasn't succeeded.\r
+ setTimeout( function() {\r
+ // Element still online?\r
+ if ( control.getParent() ) {\r
+ dummy.remove();\r
+ sel.selectElement( control );\r
+ }\r
+ }, 0 );\r
+ }\r
+ }\r
+\r
+ // Allow to peek clipboard content by redirecting the\r
+ // pasting content into a temporary bin and grab the content of it.\r
+ function getClipboardDataByPastebin( evt, callback ) {\r
+ var doc = editor.document,\r
+ editable = editor.editable(),\r
+ cancel = function( evt ) {\r
+ evt.cancel();\r
+ },\r
+ blurListener;\r
+\r
+ // Avoid recursions on 'paste' event or consequent paste too fast. (http://dev.ckeditor.com/ticket/5730)\r
+ if ( doc.getById( 'cke_pastebin' ) )\r
+ return;\r
+\r
+ var sel = editor.getSelection();\r
+ var bms = sel.createBookmarks();\r
+\r
+ // http://dev.ckeditor.com/ticket/11384. On IE9+ we use native selectionchange (i.e. editor#selectionCheck) to cache the most\r
+ // recent selection which we then lock on editable blur. See selection.js for more info.\r
+ // selectionchange fired before getClipboardDataByPastebin() cached selection\r
+ // before creating bookmark (cached selection will be invalid, because bookmarks modified the DOM),\r
+ // so we need to fire selectionchange one more time, to store current seleciton.\r
+ // Selection will be locked when we focus pastebin.\r
+ if ( CKEDITOR.env.ie )\r
+ sel.root.fire( 'selectionchange' );\r
+\r
+ // Create container to paste into.\r
+ // For rich content we prefer to use "body" since it holds\r
+ // the least possibility to be splitted by pasted content, while this may\r
+ // breaks the text selection on a frame-less editable, "div" would be\r
+ // the best one in that case.\r
+ // In another case on old IEs moving the selection into a "body" paste bin causes error panic.\r
+ // Body can't be also used for Opera which fills it with <br>\r
+ // what is indistinguishable from pasted <br> (copying <br> in Opera isn't possible,\r
+ // but it can be copied from other browser).\r
+ var pastebin = new CKEDITOR.dom.element(\r
+ ( CKEDITOR.env.webkit || editable.is( 'body' ) ) && !CKEDITOR.env.ie ? 'body' : 'div', doc );\r
+\r
+ pastebin.setAttributes( {\r
+ id: 'cke_pastebin',\r
+ 'data-cke-temp': '1'\r
+ } );\r
+\r
+ var containerOffset = 0,\r
+ offsetParent,\r
+ win = doc.getWindow();\r
+\r
+ if ( CKEDITOR.env.webkit ) {\r
+ // It's better to paste close to the real paste destination, so inherited styles\r
+ // (which Webkits will try to compensate by styling span) differs less from the destination's one.\r
+ editable.append( pastebin );\r
+ // Style pastebin like .cke_editable, to minimize differences between origin and destination. (http://dev.ckeditor.com/ticket/9754)\r
+ pastebin.addClass( 'cke_editable' );\r
+\r
+ // Compensate position of offsetParent.\r
+ if ( !editable.is( 'body' ) ) {\r
+ // We're not able to get offsetParent from pastebin (body element), so check whether\r
+ // its parent (editable) is positioned.\r
+ if ( editable.getComputedStyle( 'position' ) != 'static' )\r
+ offsetParent = editable;\r
+ // And if not - safely get offsetParent from editable.\r
+ else\r
+ offsetParent = CKEDITOR.dom.element.get( editable.$.offsetParent );\r
+\r
+ containerOffset = offsetParent.getDocumentPosition().y;\r
+ }\r
+ } else {\r
+ // Opera and IE doesn't allow to append to html element.\r
+ editable.getAscendant( CKEDITOR.env.ie ? 'body' : 'html', 1 ).append( pastebin );\r
+ }\r
+\r
+ pastebin.setStyles( {\r
+ position: 'absolute',\r
+ // Position the bin at the top (+10 for safety) of viewport to avoid any subsequent document scroll.\r
+ top: ( win.getScrollPosition().y - containerOffset + 10 ) + 'px',\r
+ width: '1px',\r
+ // Caret has to fit in that height, otherwise browsers like Chrome & Opera will scroll window to show it.\r
+ // Set height equal to viewport's height - 20px (safety gaps), minimum 1px.\r
+ height: Math.max( 1, win.getViewPaneSize().height - 20 ) + 'px',\r
+ overflow: 'hidden',\r
+ // Reset styles that can mess up pastebin position.\r
+ margin: 0,\r
+ padding: 0\r
+ } );\r
+\r
+ // Paste fails in Safari when the body tag has 'user-select: none'. (http://dev.ckeditor.com/ticket/12506)\r
+ if ( CKEDITOR.env.safari )\r
+ pastebin.setStyles( CKEDITOR.tools.cssVendorPrefix( 'user-select', 'text' ) );\r
+\r
+ // Check if the paste bin now establishes new editing host.\r
+ var isEditingHost = pastebin.getParent().isReadOnly();\r
+\r
+ if ( isEditingHost ) {\r
+ // Hide the paste bin.\r
+ pastebin.setOpacity( 0 );\r
+ // And make it editable.\r
+ pastebin.setAttribute( 'contenteditable', true );\r
+ }\r
+ // Transparency is not enough since positioned non-editing host always shows\r
+ // resize handler, pull it off the screen instead.\r
+ else {\r
+ pastebin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-10000px' );\r
+ }\r
+\r
+ editor.on( 'selectionChange', cancel, null, null, 0 );\r
+\r
+ // Webkit fill fire blur on editable when moving selection to\r
+ // pastebin (if body is used). Cancel it because it causes incorrect\r
+ // selection lock in case of inline editor (http://dev.ckeditor.com/ticket/10644).\r
+ // The same seems to apply to Firefox (http://dev.ckeditor.com/ticket/10787).\r
+ if ( CKEDITOR.env.webkit || CKEDITOR.env.gecko )\r
+ blurListener = editable.once( 'blur', cancel, null, null, -100 );\r
+\r
+ // Temporarily move selection to the pastebin.\r
+ isEditingHost && pastebin.focus();\r
+ var range = new CKEDITOR.dom.range( pastebin );\r
+ range.selectNodeContents( pastebin );\r
+ var selPastebin = range.select();\r
+\r
+ // If non-native paste is executed, IE will open security alert and blur editable.\r
+ // Editable will then lock selection inside itself and after accepting security alert\r
+ // this selection will be restored. We overwrite stored selection, so it's restored\r
+ // in pastebin. (http://dev.ckeditor.com/ticket/9552)\r
+ if ( CKEDITOR.env.ie ) {\r
+ blurListener = editable.once( 'blur', function() {\r
+ editor.lockSelection( selPastebin );\r
+ } );\r
+ }\r
+\r
+ var scrollTop = CKEDITOR.document.getWindow().getScrollPosition().y;\r
+\r
+ // Wait a while and grab the pasted contents.\r
+ setTimeout( function() {\r
+ // Restore main window's scroll position which could have been changed\r
+ // by browser in cases described in http://dev.ckeditor.com/ticket/9771.\r
+ if ( CKEDITOR.env.webkit )\r
+ CKEDITOR.document.getBody().$.scrollTop = scrollTop;\r
+\r
+ // Blur will be fired only on non-native paste. In other case manually remove listener.\r
+ blurListener && blurListener.removeListener();\r
+\r
+ // Restore properly the document focus. (http://dev.ckeditor.com/ticket/8849)\r
+ if ( CKEDITOR.env.ie )\r
+ editable.focus();\r
+\r
+ // IE7: selection must go before removing pastebin. (http://dev.ckeditor.com/ticket/8691)\r
+ sel.selectBookmarks( bms );\r
+ pastebin.remove();\r
+\r
+ // Grab the HTML contents.\r
+ // We need to look for a apple style wrapper on webkit it also adds\r
+ // a div wrapper if you copy/paste the body of the editor.\r
+ // Remove hidden div and restore selection.\r
+ var bogusSpan;\r
+ if ( CKEDITOR.env.webkit && ( bogusSpan = pastebin.getFirst() ) && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) )\r
+ pastebin = bogusSpan;\r
+\r
+ editor.removeListener( 'selectionChange', cancel );\r
+ callback( pastebin.getHtml() );\r
+ }, 0 );\r
+ }\r
+\r
+ // Try to get content directly on IE from clipboard, without native event\r
+ // being fired before. In other words - synthetically get clipboard data, if it's possible.\r
+ // mainPasteEvent will be fired, so if forced native paste:\r
+ // * worked, getClipboardDataByPastebin will grab it,\r
+ // * didn't work, dataValue and dataTransfer will be empty and editor#paste won't be fired.\r
+ // Clipboard data can be accessed directly only on IEs older than Edge.\r
+ // On other browsers we should fire beforePaste event and return false.\r
+ function getClipboardDataDirectly() {\r
+ if ( clipboard.mainPasteEvent == 'paste' ) {\r
+ editor.fire( 'beforePaste', { type: 'auto', method: 'paste' } );\r
+ return false;\r
+ }\r
+\r
+ // Prevent IE from pasting at the begining of the document.\r
+ editor.focus();\r
+\r
+ // Command will be handled by 'beforepaste', but as\r
+ // execIECommand( 'paste' ) will fire also 'paste' event\r
+ // we're canceling it.\r
+ preventPasteEventNow();\r
+\r
+ // http://dev.ckeditor.com/ticket/9247: Lock focus to prevent IE from hiding toolbar for inline editor.\r
+ var focusManager = editor.focusManager;\r
+ focusManager.lock();\r
+\r
+ if ( editor.editable().fire( clipboard.mainPasteEvent ) && !execIECommand( 'paste' ) ) {\r
+ focusManager.unlock();\r
+ return false;\r
+ }\r
+ focusManager.unlock();\r
+\r
+ return true;\r
+ }\r
+\r
+ // Listens for some clipboard related keystrokes, so they get customized.\r
+ // Needs to be bind to keydown event.\r
+ function onKey( event ) {\r
+ if ( editor.mode != 'wysiwyg' )\r
+ return;\r
+\r
+ switch ( event.data.keyCode ) {\r
+ // Paste\r
+ case CKEDITOR.CTRL + 86: // CTRL+V\r
+ case CKEDITOR.SHIFT + 45: // SHIFT+INS\r
+ var editable = editor.editable();\r
+\r
+ // Cancel 'paste' event because ctrl+v is for IE handled\r
+ // by 'beforepaste'.\r
+ preventPasteEventNow();\r
+\r
+ // Simulate 'beforepaste' event for all browsers using 'paste' as main event.\r
+ if ( clipboard.mainPasteEvent == 'paste' ) {\r
+ editable.fire( 'beforepaste' );\r
+ }\r
+\r
+ return;\r
+\r
+ // Cut\r
+ case CKEDITOR.CTRL + 88: // CTRL+X\r
+ case CKEDITOR.SHIFT + 46: // SHIFT+DEL\r
+ // Save Undo snapshot.\r
+ editor.fire( 'saveSnapshot' ); // Save before cut\r
+ setTimeout( function() {\r
+ editor.fire( 'saveSnapshot' ); // Save after cut\r
+ }, 50 ); // OSX is slow (http://dev.ckeditor.com/ticket/11416).\r
+ }\r
+ }\r
+\r
+ function pasteDataFromClipboard( evt ) {\r
+ // Default type is 'auto', but can be changed by beforePaste listeners.\r
+ var eventData = {\r
+ type: 'auto',\r
+ method: 'paste',\r
+ dataTransfer: clipboard.initPasteDataTransfer( evt )\r
+ };\r
+\r
+ eventData.dataTransfer.cacheData();\r
+\r
+ // Fire 'beforePaste' event so clipboard flavor get customized by other plugins.\r
+ // If 'beforePaste' is canceled continue executing getClipboardDataByPastebin and then do nothing\r
+ // (do not fire 'paste', 'afterPaste' events). This way we can grab all - synthetically\r
+ // and natively pasted content and prevent its insertion into editor\r
+ // after canceling 'beforePaste' event.\r
+ var beforePasteNotCanceled = editor.fire( 'beforePaste', eventData ) !== false;\r
+\r
+ // Do not use paste bin if the browser let us get HTML or files from dataTranfer.\r
+ if ( beforePasteNotCanceled && clipboard.canClipboardApiBeTrusted( eventData.dataTransfer, editor ) ) {\r
+ evt.data.preventDefault();\r
+ setTimeout( function() {\r
+ firePasteEvents( editor, eventData );\r
+ }, 0 );\r
+ } else {\r
+ getClipboardDataByPastebin( evt, function( data ) {\r
+ // Clean up.\r
+ eventData.dataValue = data.replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig, '' );\r
+\r
+ // Fire remaining events (without beforePaste)\r
+ beforePasteNotCanceled && firePasteEvents( editor, eventData );\r
+ } );\r
+ }\r
+ }\r
+\r
+ function setToolbarStates() {\r
+ if ( editor.mode != 'wysiwyg' )\r
+ return;\r
+\r
+ var pasteState = stateFromNamedCommand( 'paste' );\r
+\r
+ editor.getCommand( 'cut' ).setState( stateFromNamedCommand( 'cut' ) );\r
+ editor.getCommand( 'copy' ).setState( stateFromNamedCommand( 'copy' ) );\r
+ editor.getCommand( 'paste' ).setState( pasteState );\r
+ editor.fire( 'pasteState', pasteState );\r
+ }\r
+\r
+ function stateFromNamedCommand( command ) {\r
+ if ( inReadOnly && command in { paste: 1, cut: 1 } )\r
+ return CKEDITOR.TRISTATE_DISABLED;\r
+\r
+ if ( command == 'paste' )\r
+ return CKEDITOR.TRISTATE_OFF;\r
+\r
+ // Cut, copy - check if the selection is not empty.\r
+ var sel = editor.getSelection(),\r
+ ranges = sel.getRanges(),\r
+ selectionIsEmpty = sel.getType() == CKEDITOR.SELECTION_NONE || ( ranges.length == 1 && ranges[ 0 ].collapsed );\r
+\r
+ return selectionIsEmpty ? CKEDITOR.TRISTATE_DISABLED : CKEDITOR.TRISTATE_OFF;\r
+ }\r
+ }\r
+\r
+ // Returns:\r
+ // * 'htmlifiedtext' if content looks like transformed by browser from plain text.\r
+ // See clipboard/paste.html TCs for more info.\r
+ // * 'html' if it is not 'htmlifiedtext'.\r
+ function recogniseContentType( data ) {\r
+ if ( CKEDITOR.env.webkit ) {\r
+ // Plain text or ( <div><br></div> and text inside <div> ).\r
+ if ( !data.match( /^[^<]*$/g ) && !data.match( /^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi ) )\r
+ return 'html';\r
+ } else if ( CKEDITOR.env.ie ) {\r
+ // Text and <br> or ( text and <br> in <p> - paragraphs can be separated by new \r\n ).\r
+ if ( !data.match( /^([^<]|<br( ?\/)?>)*$/gi ) && !data.match( /^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi ) )\r
+ return 'html';\r
+ } else if ( CKEDITOR.env.gecko ) {\r
+ // Text or <br>.\r
+ if ( !data.match( /^([^<]|<br( ?\/)?>)*$/gi ) )\r
+ return 'html';\r
+ } else {\r
+ return 'html';\r
+ }\r
+\r
+ return 'htmlifiedtext';\r
+ }\r
+\r
+ // This function transforms what browsers produce when\r
+ // pasting plain text into editable element (see clipboard/paste.html TCs\r
+ // for more info) into correct HTML (similar to that produced by text2Html).\r
+ function htmlifiedTextHtmlification( config, data ) {\r
+ function repeatParagraphs( repeats ) {\r
+ // Repeat blocks floor((n+1)/2) times.\r
+ // Even number of repeats - add <br> at the beginning of last <p>.\r
+ return CKEDITOR.tools.repeat( '</p><p>', ~~( repeats / 2 ) ) + ( repeats % 2 == 1 ? '<br>' : '' );\r
+ }\r
+\r
+ // Replace adjacent white-spaces (EOLs too - Fx sometimes keeps them) with one space.\r
+ data = data.replace( /\s+/g, ' ' )\r
+ // Remove spaces from between tags.\r
+ .replace( /> +</g, '><' )\r
+ // Normalize XHTML syntax and upper cased <br> tags.\r
+ .replace( /<br ?\/>/gi, '<br>' );\r
+\r
+ // IE - lower cased tags.\r
+ data = data.replace( /<\/?[A-Z]+>/g, function( match ) {\r
+ return match.toLowerCase();\r
+ } );\r
+\r
+ // Don't touch single lines (no <br|p|div>) - nothing to do here.\r
+ if ( data.match( /^[^<]$/ ) )\r
+ return data;\r
+\r
+ // Webkit.\r
+ if ( CKEDITOR.env.webkit && data.indexOf( '<div>' ) > -1 ) {\r
+ // One line break at the beginning - insert <br>\r
+ data = data.replace( /^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g, '<br>' )\r
+ // Two or more - reduce number of new lines by one.\r
+ .replace( /^(<div>(<br>|)<\/div>){2}(?!$)/g, '<div></div>' );\r
+\r
+ // Two line breaks create one paragraph in Webkit.\r
+ if ( data.match( /<div>(<br>|)<\/div>/ ) ) {\r
+ data = '<p>' + data.replace( /(<div>(<br>|)<\/div>)+/g, function( match ) {\r
+ return repeatParagraphs( match.split( '</div><div>' ).length + 1 );\r
+ } ) + '</p>';\r
+ }\r
+\r
+ // One line break create br.\r
+ data = data.replace( /<\/div><div>/g, '<br>' );\r
+\r
+ // Remove remaining divs.\r
+ data = data.replace( /<\/?div>/g, '' );\r
+ }\r
+\r
+ // Opera and Firefox and enterMode != BR.\r
+ if ( CKEDITOR.env.gecko && config.enterMode != CKEDITOR.ENTER_BR ) {\r
+ // Remove bogus <br> - Fx generates two <brs> for one line break.\r
+ // For two line breaks it still produces two <brs>, but it's better to ignore this case than the first one.\r
+ if ( CKEDITOR.env.gecko )\r
+ data = data.replace( /^<br><br>$/, '<br>' );\r
+\r
+ // This line satisfy edge case when for Opera we have two line breaks\r
+ //data = data.replace( /)\r
+\r
+ if ( data.indexOf( '<br><br>' ) > -1 ) {\r
+ // Two line breaks create one paragraph, three - 2, four - 3, etc.\r
+ data = '<p>' + data.replace( /(<br>){2,}/g, function( match ) {\r
+ return repeatParagraphs( match.length / 4 );\r
+ } ) + '</p>';\r
+ }\r
+ }\r
+\r
+ return switchEnterMode( config, data );\r
+ }\r
+\r
+ function filtersFactoryFactory() {\r
+ var filters = {};\r
+\r
+ function setUpTags() {\r
+ var tags = {};\r
+\r
+ for ( var tag in CKEDITOR.dtd ) {\r
+ if ( tag.charAt( 0 ) != '$' && tag != 'div' && tag != 'span' ) {\r
+ tags[ tag ] = 1;\r
+ }\r
+ }\r
+\r
+ return tags;\r
+ }\r
+\r
+ function createSemanticContentFilter() {\r
+ var filter = new CKEDITOR.filter();\r
+\r
+ filter.allow( {\r
+ $1: {\r
+ elements: setUpTags(),\r
+ attributes: true,\r
+ styles: false,\r
+ classes: false\r
+ }\r
+ } );\r
+\r
+ return filter;\r
+ }\r
+\r
+ return {\r
+ get: function( type ) {\r
+ if ( type == 'plain-text' ) {\r
+ // Does this look confusing to you? Did we forget about enter mode?\r
+ // It is a trick that let's us creating one filter for edidtor, regardless of its\r
+ // activeEnterMode (which as the name indicates can change during runtime).\r
+ //\r
+ // How does it work?\r
+ // The active enter mode is passed to the filter.applyTo method.\r
+ // The filter first marks all elements except <br> as disallowed and then tries to remove\r
+ // them. However, it cannot remove e.g. a <p> element completely, because it's a basic structural element,\r
+ // so it tries to replace it with an element created based on the active enter mode, eventually doing nothing.\r
+ //\r
+ // Now you can sleep well.\r
+ return filters.plainText || ( filters.plainText = new CKEDITOR.filter( 'br' ) );\r
+ } else if ( type == 'semantic-content' ) {\r
+ return filters.semanticContent || ( filters.semanticContent = createSemanticContentFilter() );\r
+ } else if ( type ) {\r
+ // Create filter based on rules (string or object).\r
+ return new CKEDITOR.filter( type );\r
+ }\r
+\r
+ return null;\r
+ }\r
+ };\r
+ }\r
+\r
+ function filterContent( editor, data, filter ) {\r
+ var fragment = CKEDITOR.htmlParser.fragment.fromHtml( data ),\r
+ writer = new CKEDITOR.htmlParser.basicWriter();\r
+\r
+ filter.applyTo( fragment, true, false, editor.activeEnterMode );\r
+ fragment.writeHtml( writer );\r
+\r
+ return writer.getHtml();\r
+ }\r
+\r
+ function switchEnterMode( config, data ) {\r
+ if ( config.enterMode == CKEDITOR.ENTER_BR ) {\r
+ data = data.replace( /(<\/p><p>)+/g, function( match ) {\r
+ return CKEDITOR.tools.repeat( '<br>', match.length / 7 * 2 );\r
+ } ).replace( /<\/?p>/g, '' );\r
+ } else if ( config.enterMode == CKEDITOR.ENTER_DIV ) {\r
+ data = data.replace( /<(\/)?p>/g, '<$1div>' );\r
+ }\r
+\r
+ return data;\r
+ }\r
+\r
+ function preventDefaultSetDropEffectToNone( evt ) {\r
+ evt.data.preventDefault();\r
+ evt.data.$.dataTransfer.dropEffect = 'none';\r
+ }\r
+\r
+ function initDragDrop( editor ) {\r
+ var clipboard = CKEDITOR.plugins.clipboard;\r
+\r
+ editor.on( 'contentDom', function() {\r
+ var editable = editor.editable(),\r
+ dropTarget = CKEDITOR.plugins.clipboard.getDropTarget( editor ),\r
+ top = editor.ui.space( 'top' ),\r
+ bottom = editor.ui.space( 'bottom' );\r
+\r
+ // -------------- DRAGOVER TOP & BOTTOM --------------\r
+\r
+ // Not allowing dragging on toolbar and bottom (http://dev.ckeditor.com/ticket/12613).\r
+ clipboard.preventDefaultDropOnElement( top );\r
+ clipboard.preventDefaultDropOnElement( bottom );\r
+\r
+ // -------------- DRAGSTART --------------\r
+ // Listed on dragstart to mark internal and cross-editor drag & drop\r
+ // and save range and selected HTML.\r
+\r
+ editable.attachListener( dropTarget, 'dragstart', fireDragEvent );\r
+\r
+ // Make sure to reset data transfer (in case dragend was not called or was canceled).\r
+ editable.attachListener( editor, 'dragstart', clipboard.resetDragDataTransfer, clipboard, null, 1 );\r
+\r
+ // Create a dataTransfer object and save it globally.\r
+ editable.attachListener( editor, 'dragstart', function( evt ) {\r
+ clipboard.initDragDataTransfer( evt, editor );\r
+ }, null, null, 2 );\r
+\r
+ editable.attachListener( editor, 'dragstart', function() {\r
+ // Save drag range globally for cross editor D&D.\r
+ var dragRange = clipboard.dragRange = editor.getSelection().getRanges()[ 0 ];\r
+\r
+ // Store number of children, so we can later tell if any text node was split on drop. (http://dev.ckeditor.com/ticket/13011, http://dev.ckeditor.com/ticket/13447)\r
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) {\r
+ clipboard.dragStartContainerChildCount = dragRange ? getContainerChildCount( dragRange.startContainer ) : null;\r
+ clipboard.dragEndContainerChildCount = dragRange ? getContainerChildCount( dragRange.endContainer ) : null;\r
+ }\r
+ }, null, null, 100 );\r
+\r
+ // -------------- DRAGEND --------------\r
+ // Clean up on dragend.\r
+\r
+ editable.attachListener( dropTarget, 'dragend', fireDragEvent );\r
+\r
+ // Init data transfer if someone wants to use it in dragend.\r
+ editable.attachListener( editor, 'dragend', clipboard.initDragDataTransfer, clipboard, null, 1 );\r
+\r
+ // When drag & drop is done we need to reset dataTransfer so the future\r
+ // external drop will be not recognize as internal.\r
+ editable.attachListener( editor, 'dragend', clipboard.resetDragDataTransfer, clipboard, null, 100 );\r
+\r
+ // -------------- DRAGOVER --------------\r
+ // We need to call preventDefault on dragover because otherwise if\r
+ // we drop image it will overwrite document.\r
+\r
+ editable.attachListener( dropTarget, 'dragover', function( evt ) {\r
+ // Edge requires this handler to have `preventDefault()` regardless of the situation.\r
+ if ( CKEDITOR.env.edge ) {\r
+ evt.data.preventDefault();\r
+ return;\r
+ }\r
+\r
+ var target = evt.data.getTarget();\r
+\r
+ // Prevent reloading page when dragging image on empty document (http://dev.ckeditor.com/ticket/12619).\r
+ if ( target && target.is && target.is( 'html' ) ) {\r
+ evt.data.preventDefault();\r
+ return;\r
+ }\r
+\r
+ // If we do not prevent default dragover on IE the file path\r
+ // will be loaded and we will lose content. On the other hand\r
+ // if we prevent it the cursor will not we shown, so we prevent\r
+ // dragover only on IE, on versions which support file API and only\r
+ // if the event contains files.\r
+ if ( CKEDITOR.env.ie &&\r
+ CKEDITOR.plugins.clipboard.isFileApiSupported &&\r
+ evt.data.$.dataTransfer.types.contains( 'Files' ) ) {\r
+ evt.data.preventDefault();\r
+ }\r
+ } );\r
+\r
+ // -------------- DROP --------------\r
+\r
+ editable.attachListener( dropTarget, 'drop', function( evt ) {\r
+ // Do nothing if event was already prevented. (http://dev.ckeditor.com/ticket/13879)\r
+ if ( evt.data.$.defaultPrevented ) {\r
+ return;\r
+ }\r
+\r
+ // Cancel native drop.\r
+ evt.data.preventDefault();\r
+\r
+ var target = evt.data.getTarget(),\r
+ readOnly = target.isReadOnly();\r
+\r
+ // Do nothing if drop on non editable element (http://dev.ckeditor.com/ticket/13015).\r
+ // The <html> tag isn't editable (body is), but we want to allow drop on it\r
+ // (so it is possible to drop below editor contents).\r
+ if ( readOnly && !( target.type == CKEDITOR.NODE_ELEMENT && target.is( 'html' ) ) ) {\r
+ return;\r
+ }\r
+\r
+ // Getting drop position is one of the most complex parts.\r
+ var dropRange = clipboard.getRangeAtDropPosition( evt, editor ),\r
+ dragRange = clipboard.dragRange;\r
+\r
+ // Do nothing if it was not possible to get drop range.\r
+ if ( !dropRange ) {\r
+ return;\r
+ }\r
+\r
+ // Fire drop.\r
+ fireDragEvent( evt, dragRange, dropRange );\r
+ }, null, null, 9999 );\r
+\r
+ // Create dataTransfer or get it, if it was created before.\r
+ editable.attachListener( editor, 'drop', clipboard.initDragDataTransfer, clipboard, null, 1 );\r
+\r
+ // Execute drop action, fire paste.\r
+ editable.attachListener( editor, 'drop', function( evt ) {\r
+ var data = evt.data;\r
+\r
+ if ( !data ) {\r
+ return;\r
+ }\r
+\r
+ // Let user modify drag and drop range.\r
+ var dropRange = data.dropRange,\r
+ dragRange = data.dragRange,\r
+ dataTransfer = data.dataTransfer;\r
+\r
+ if ( dataTransfer.getTransferType( editor ) == CKEDITOR.DATA_TRANSFER_INTERNAL ) {\r
+ // Execute drop with a timeout because otherwise selection, after drop,\r
+ // on IE is in the drag position, instead of drop position.\r
+ setTimeout( function() {\r
+ clipboard.internalDrop( dragRange, dropRange, dataTransfer, editor );\r
+ }, 0 );\r
+ } else if ( dataTransfer.getTransferType( editor ) == CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ) {\r
+ crossEditorDrop( dragRange, dropRange, dataTransfer );\r
+ } else {\r
+ externalDrop( dropRange, dataTransfer );\r
+ }\r
+ }, null, null, 9999 );\r
+\r
+ // Cross editor drag and drop (drag in one Editor and drop in the other).\r
+ function crossEditorDrop( dragRange, dropRange, dataTransfer ) {\r
+ // Paste event should be fired before delete contents because otherwise\r
+ // Chrome have a problem with drop range (Chrome split the drop\r
+ // range container so the offset is bigger then container length).\r
+ dropRange.select();\r
+ firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop' }, 1 );\r
+\r
+ // Remove dragged content and make a snapshot.\r
+ dataTransfer.sourceEditor.fire( 'saveSnapshot' );\r
+\r
+ dataTransfer.sourceEditor.editable().extractHtmlFromRange( dragRange );\r
+\r
+ // Make some selection before saving snapshot, otherwise error will be thrown, because\r
+ // there will be no valid selection after content is removed.\r
+ dataTransfer.sourceEditor.getSelection().selectRanges( [ dragRange ] );\r
+ dataTransfer.sourceEditor.fire( 'saveSnapshot' );\r
+ }\r
+\r
+ // Drop from external source.\r
+ function externalDrop( dropRange, dataTransfer ) {\r
+ // Paste content into the drop position.\r
+ dropRange.select();\r
+\r
+ firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop' }, 1 );\r
+\r
+ // Usually we reset DataTranfer on dragend,\r
+ // but dragend is called on the same element as dragstart\r
+ // so it will not be called on on external drop.\r
+ clipboard.resetDragDataTransfer();\r
+ }\r
+\r
+ // Fire drag/drop events (dragstart, dragend, drop).\r
+ function fireDragEvent( evt, dragRange, dropRange ) {\r
+ var eventData = {\r
+ $: evt.data.$,\r
+ target: evt.data.getTarget()\r
+ };\r
+\r
+ if ( dragRange ) {\r
+ eventData.dragRange = dragRange;\r
+ }\r
+ if ( dropRange ) {\r
+ eventData.dropRange = dropRange;\r
+ }\r
+\r
+ if ( editor.fire( evt.name, eventData ) === false ) {\r
+ evt.data.preventDefault();\r
+ }\r
+ }\r
+\r
+ function getContainerChildCount( container ) {\r
+ if ( container.type != CKEDITOR.NODE_ELEMENT ) {\r
+ container = container.getParent();\r
+ }\r
+\r
+ return container.getChildCount();\r
+ }\r
+ } );\r
+ }\r
+\r
+ /**\r
+ * @singleton\r
+ * @class CKEDITOR.plugins.clipboard\r
+ */\r
+ CKEDITOR.plugins.clipboard = {\r
+ /**\r
+ * True if the environment allows to set data on copy or cut manually. This value is false in IE, because this browser\r
+ * shows the security dialog window when the script tries to set clipboard data and on iOS, because custom data is\r
+ * not saved to clipboard there.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {Boolean}\r
+ */\r
+ isCustomCopyCutSupported: !CKEDITOR.env.ie && !CKEDITOR.env.iOS,\r
+\r
+ /**\r
+ * True if the environment supports MIME types and custom data types in dataTransfer/cliboardData getData/setData methods.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {Boolean}\r
+ */\r
+ isCustomDataTypesSupported: !CKEDITOR.env.ie,\r
+\r
+ /**\r
+ * True if the environment supports File API.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {Boolean}\r
+ */\r
+ isFileApiSupported: !CKEDITOR.env.ie || CKEDITOR.env.version > 9,\r
+\r
+ /**\r
+ * Main native paste event editable should listen to.\r
+ *\r
+ * **Note:** Safari does not like the {@link CKEDITOR.editor#beforePaste} event — it sometimes does not\r
+ * handle <kbd>Ctrl+C</kbd> properly. This is probably caused by some race condition between events.\r
+ * Chrome, Firefox and Edge work well with both events, so it is better to use {@link CKEDITOR.editor#paste}\r
+ * which will handle pasting from e.g. browsers' menu bars.\r
+ * IE7/8 does not like the {@link CKEDITOR.editor#paste} event for which it is throwing random errors.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {String}\r
+ */\r
+ mainPasteEvent: ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) ? 'beforepaste' : 'paste',\r
+\r
+ /**\r
+ * Returns `true` if it is expected that a browser provides HTML data through the Clipboard API.\r
+ * If not, this method returns `false` and as a result CKEditor will use the paste bin. Read more in\r
+ * the [Clipboard Integration](http://docs.ckeditor.com/#!/guide/dev_clipboard-section-clipboard-api) guide.\r
+ *\r
+ * @since 4.5.2\r
+ * @returns {Boolean}\r
+ */\r
+ canClipboardApiBeTrusted: function( dataTransfer, editor ) {\r
+ // If it's an internal or cross-editor data transfer, then it means that custom cut/copy/paste support works\r
+ // and that the data were put manually on the data transfer so we can be sure that it's available.\r
+ if ( dataTransfer.getTransferType( editor ) != CKEDITOR.DATA_TRANSFER_EXTERNAL ) {\r
+ return true;\r
+ }\r
+\r
+ // In Chrome we can trust Clipboard API, with the exception of Chrome on Android (in both - mobile and desktop modes), where\r
+ // clipboard API is not available so we need to check it (http://dev.ckeditor.com/ticket/13187).\r
+ if ( CKEDITOR.env.chrome && !dataTransfer.isEmpty() ) {\r
+ return true;\r
+ }\r
+\r
+ // Because of a Firefox bug HTML data are not available in some cases (e.g. paste from Word), in such cases we\r
+ // need to use the pastebin (http://dev.ckeditor.com/ticket/13528, https://bugzilla.mozilla.org/show_bug.cgi?id=1183686).\r
+ if ( CKEDITOR.env.gecko && ( dataTransfer.getData( 'text/html' ) || dataTransfer.getFilesCount() ) ) {\r
+ return true;\r
+ }\r
+\r
+ // Safari fixed clipboard in 10.1 (https://bugs.webkit.org/show_bug.cgi?id=19893) (http://dev.ckeditor.com/ticket/16982).\r
+ // However iOS version still doesn't work well enough (https://bugs.webkit.org/show_bug.cgi?id=19893#c34).\r
+ if ( CKEDITOR.env.safari && CKEDITOR.env.version >= 603 && !CKEDITOR.env.iOS ) {\r
+ return true;\r
+ }\r
+\r
+ // In older Safari and IE HTML data is not available though the Clipboard API.\r
+ // In Edge things are a bit messy at the moment -\r
+ // https://connect.microsoft.com/IE/feedback/details/1572456/edge-clipboard-api-text-html-content-messed-up-in-event-clipboarddata\r
+ // It is safer to use the paste bin in unknown cases.\r
+ return false;\r
+ },\r
+\r
+ /**\r
+ * Returns the element that should be used as the target for the drop event.\r
+ *\r
+ * @since 4.5\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ * @returns {CKEDITOR.dom.domObject} the element that should be used as the target for the drop event.\r
+ */\r
+ getDropTarget: function( editor ) {\r
+ var editable = editor.editable();\r
+\r
+ // http://dev.ckeditor.com/ticket/11123 Firefox needs to listen on document, because otherwise event won't be fired.\r
+ // http://dev.ckeditor.com/ticket/11086 IE8 cannot listen on document.\r
+ if ( ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) || editable.isInline() ) {\r
+ return editable;\r
+ } else {\r
+ return editor.document;\r
+ }\r
+ },\r
+\r
+ /**\r
+ * IE 8 & 9 split text node on drop so the first node contains the\r
+ * text before the drop position and the second contains the rest. If you\r
+ * drag the content from the same node you will be not be able to get\r
+ * it (the range becomes invalid), so you need to join them back.\r
+ *\r
+ * Note that the first node in IE 8 & 9 is the original node object\r
+ * but with shortened content.\r
+ *\r
+ * Before:\r
+ * --- Text Node A ----------------------------------\r
+ * /\\r
+ * Drag position\r
+ *\r
+ * After (IE 8 & 9):\r
+ * --- Text Node A ----- --- Text Node B -----------\r
+ * /\ /\\r
+ * Drop position Drag position\r
+ * (invalid)\r
+ *\r
+ * After (other browsers):\r
+ * --- Text Node A ----------------------------------\r
+ * /\ /\\r
+ * Drop position Drag position\r
+ *\r
+ * **Note:** This function is in the public scope for tests usage only.\r
+ *\r
+ * @since 4.5\r
+ * @private\r
+ * @param {CKEDITOR.dom.range} dragRange The drag range.\r
+ * @param {CKEDITOR.dom.range} dropRange The drop range.\r
+ * @param {Number} preDragStartContainerChildCount The number of children of the drag range start container before the drop.\r
+ * @param {Number} preDragEndContainerChildCount The number of children of the drag range end container before the drop.\r
+ */\r
+ fixSplitNodesAfterDrop: function( dragRange, dropRange, preDragStartContainerChildCount, preDragEndContainerChildCount ) {\r
+ var dropContainer = dropRange.startContainer;\r
+\r
+ if (\r
+ typeof preDragEndContainerChildCount != 'number' ||\r
+ typeof preDragStartContainerChildCount != 'number'\r
+ ) {\r
+ return;\r
+ }\r
+\r
+ // We are only concerned about ranges anchored in elements.\r
+ if ( dropContainer.type != CKEDITOR.NODE_ELEMENT ) {\r
+ return;\r
+ }\r
+\r
+ if ( handleContainer( dragRange.startContainer, dropContainer, preDragStartContainerChildCount ) ) {\r
+ return;\r
+ }\r
+\r
+ if ( handleContainer( dragRange.endContainer, dropContainer, preDragEndContainerChildCount ) ) {\r
+ return;\r
+ }\r
+\r
+ function handleContainer( dragContainer, dropContainer, preChildCount ) {\r
+ var dragElement = dragContainer;\r
+ if ( dragElement.type == CKEDITOR.NODE_TEXT ) {\r
+ dragElement = dragContainer.getParent();\r
+ }\r
+\r
+ if ( dragElement.equals( dropContainer ) && preChildCount != dropContainer.getChildCount() ) {\r
+ applyFix( dropRange );\r
+ return true;\r
+ }\r
+ }\r
+\r
+ function applyFix( dropRange ) {\r
+ var nodeBefore = dropRange.startContainer.getChild( dropRange.startOffset - 1 ),\r
+ nodeAfter = dropRange.startContainer.getChild( dropRange.startOffset );\r
+\r
+ if (\r
+ nodeBefore && nodeBefore.type == CKEDITOR.NODE_TEXT &&\r
+ nodeAfter && nodeAfter.type == CKEDITOR.NODE_TEXT\r
+ ) {\r
+ var offset = nodeBefore.getLength();\r
+\r
+ nodeBefore.setText( nodeBefore.getText() + nodeAfter.getText() );\r
+ nodeAfter.remove();\r
+\r
+ dropRange.setStart( nodeBefore, offset );\r
+ dropRange.collapse( true );\r
+ }\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Checks whether turning the drag range into bookmarks will invalidate the drop range.\r
+ * This usually happens when the drop range shares the container with the drag range and is\r
+ * located after the drag range, but there are countless edge cases.\r
+ *\r
+ * This function is stricly related to {@link #internalDrop} which toggles\r
+ * order in which it creates bookmarks for both ranges based on a value returned\r
+ * by this method. In some cases this method returns a value which is not necessarily\r
+ * true in terms of what it was meant to check, but it is convenient, because\r
+ * we know how it is interpreted in {@link #internalDrop}, so the correct\r
+ * behavior of the entire algorithm is assured.\r
+ *\r
+ * **Note:** This function is in the public scope for tests usage only.\r
+ *\r
+ * @since 4.5\r
+ * @private\r
+ * @param {CKEDITOR.dom.range} dragRange The first range to compare.\r
+ * @param {CKEDITOR.dom.range} dropRange The second range to compare.\r
+ * @returns {Boolean} `true` if the first range is before the second range.\r
+ */\r
+ isDropRangeAffectedByDragRange: function( dragRange, dropRange ) {\r
+ var dropContainer = dropRange.startContainer,\r
+ dropOffset = dropRange.endOffset;\r
+\r
+ // Both containers are the same and drop offset is at the same position or later.\r
+ // " A L] A " " M A "\r
+ // ^ ^\r
+ if ( dragRange.endContainer.equals( dropContainer ) && dragRange.endOffset <= dropOffset ) {\r
+ return true;\r
+ }\r
+\r
+ // Bookmark for drag start container will mess up with offsets.\r
+ // " O [L A " " M A "\r
+ // ^ ^\r
+ if (\r
+ dragRange.startContainer.getParent().equals( dropContainer ) &&\r
+ dragRange.startContainer.getIndex() < dropOffset\r
+ ) {\r
+ return true;\r
+ }\r
+\r
+ // Bookmark for drag end container will mess up with offsets.\r
+ // " O] L A " " M A "\r
+ // ^ ^\r
+ if (\r
+ dragRange.endContainer.getParent().equals( dropContainer ) &&\r
+ dragRange.endContainer.getIndex() < dropOffset\r
+ ) {\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ /**\r
+ * Internal drag and drop (drag and drop in the same editor instance).\r
+ *\r
+ * **Note:** This function is in the public scope for tests usage only.\r
+ *\r
+ * @since 4.5\r
+ * @private\r
+ * @param {CKEDITOR.dom.range} dragRange The first range to compare.\r
+ * @param {CKEDITOR.dom.range} dropRange The second range to compare.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} dataTransfer\r
+ * @param {CKEDITOR.editor} editor\r
+ */\r
+ internalDrop: function( dragRange, dropRange, dataTransfer, editor ) {\r
+ var clipboard = CKEDITOR.plugins.clipboard,\r
+ editable = editor.editable(),\r
+ dragBookmark, dropBookmark, isDropRangeAffected;\r
+\r
+ // Save and lock snapshot so there will be only\r
+ // one snapshot for both remove and insert content.\r
+ editor.fire( 'saveSnapshot' );\r
+ editor.fire( 'lockSnapshot', { dontUpdate: 1 } );\r
+\r
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) {\r
+ this.fixSplitNodesAfterDrop(\r
+ dragRange,\r
+ dropRange,\r
+ clipboard.dragStartContainerChildCount,\r
+ clipboard.dragEndContainerChildCount\r
+ );\r
+ }\r
+\r
+ // Because we manipulate multiple ranges we need to do it carefully,\r
+ // changing one range (event creating a bookmark) may make other invalid.\r
+ // We need to change ranges into bookmarks so we can manipulate them easily in the future.\r
+ // We can change the range which is later in the text before we change the preceding range.\r
+ // We call isDropRangeAffectedByDragRange to test the order of ranges.\r
+ isDropRangeAffected = this.isDropRangeAffectedByDragRange( dragRange, dropRange );\r
+ if ( !isDropRangeAffected ) {\r
+ dragBookmark = dragRange.createBookmark( false );\r
+ }\r
+ dropBookmark = dropRange.clone().createBookmark( false );\r
+ if ( isDropRangeAffected ) {\r
+ dragBookmark = dragRange.createBookmark( false );\r
+ }\r
+\r
+ // Check if drop range is inside range.\r
+ // This is an edge case when we drop something on editable's margin/padding.\r
+ // That space is not treated as a part of the range we drag, so it is possible to drop there.\r
+ // When we drop, browser tries to find closest drop position and it finds it inside drag range. (http://dev.ckeditor.com/ticket/13453)\r
+ var startNode = dragBookmark.startNode,\r
+ endNode = dragBookmark.endNode,\r
+ dropNode = dropBookmark.startNode,\r
+ dropInsideDragRange =\r
+ // Must check endNode because dragRange could be collapsed in some edge cases (simulated DnD).\r
+ endNode &&\r
+ ( startNode.getPosition( dropNode ) & CKEDITOR.POSITION_PRECEDING ) &&\r
+ ( endNode.getPosition( dropNode ) & CKEDITOR.POSITION_FOLLOWING );\r
+\r
+ // If the drop range happens to be inside drag range change it's position to the beginning of the drag range.\r
+ if ( dropInsideDragRange ) {\r
+ // We only change position of bookmark span that is connected with dropBookmark.\r
+ // dropRange will be overwritten and set to the dropBookmark later.\r
+ dropNode.insertBefore( startNode );\r
+ }\r
+\r
+ // No we can safely delete content for the drag range...\r
+ dragRange = editor.createRange();\r
+ dragRange.moveToBookmark( dragBookmark );\r
+ editable.extractHtmlFromRange( dragRange, 1 );\r
+\r
+ // ...and paste content into the drop position.\r
+ dropRange = editor.createRange();\r
+ dropRange.moveToBookmark( dropBookmark );\r
+\r
+ // We do not select drop range, because of may be in the place we can not set the selection\r
+ // (e.g. between blocks, in case of block widget D&D). We put range to the paste event instead.\r
+ firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop', range: dropRange }, 1 );\r
+\r
+ editor.fire( 'unlockSnapshot' );\r
+ },\r
+\r
+ /**\r
+ * Gets the range from the `drop` event.\r
+ *\r
+ * @since 4.5\r
+ * @param {Object} domEvent A native DOM drop event object.\r
+ * @param {CKEDITOR.editor} editor The source editor instance.\r
+ * @returns {CKEDITOR.dom.range} range at drop position.\r
+ */\r
+ getRangeAtDropPosition: function( dropEvt, editor ) {\r
+ var $evt = dropEvt.data.$,\r
+ x = $evt.clientX,\r
+ y = $evt.clientY,\r
+ $range,\r
+ defaultRange = editor.getSelection( true ).getRanges()[ 0 ],\r
+ range = editor.createRange();\r
+\r
+ // Make testing possible.\r
+ if ( dropEvt.data.testRange )\r
+ return dropEvt.data.testRange;\r
+\r
+ // Webkits.\r
+ if ( document.caretRangeFromPoint && editor.document.$.caretRangeFromPoint( x, y ) ) {\r
+ $range = editor.document.$.caretRangeFromPoint( x, y );\r
+ range.setStart( CKEDITOR.dom.node( $range.startContainer ), $range.startOffset );\r
+ range.collapse( true );\r
+ }\r
+ // FF.\r
+ else if ( $evt.rangeParent ) {\r
+ range.setStart( CKEDITOR.dom.node( $evt.rangeParent ), $evt.rangeOffset );\r
+ range.collapse( true );\r
+ }\r
+ // IEs 9+.\r
+ // We check if editable is focused to make sure that it's an internal DnD. External DnD must use the second\r
+ // mechanism because of http://dev.ckeditor.com/ticket/13472#comment:6.\r
+ else if ( CKEDITOR.env.ie && CKEDITOR.env.version > 8 && defaultRange && editor.editable().hasFocus ) {\r
+ // On IE 9+ range by default is where we expected it.\r
+ // defaultRange may be undefined if dragover was canceled (file drop).\r
+ return defaultRange;\r
+ }\r
+ // IE 8 and all IEs if !defaultRange or external DnD.\r
+ else if ( document.body.createTextRange ) {\r
+ // To use this method we need a focus (which may be somewhere else in case of external drop).\r
+ editor.focus();\r
+\r
+ $range = editor.document.getBody().$.createTextRange();\r
+ try {\r
+ var sucess = false;\r
+\r
+ // If user drop between text line IEs moveToPoint throws exception:\r
+ //\r
+ // Lorem ipsum pulvinar purus et euismod\r
+ //\r
+ // dolor sit amet,| consectetur adipiscing\r
+ // *\r
+ // vestibulum tincidunt augue eget tempus.\r
+ //\r
+ // * - drop position\r
+ // | - expected cursor position\r
+ //\r
+ // So we try to call moveToPoint with +-1px up to +-20px above or\r
+ // below original drop position to find nearest good drop position.\r
+ for ( var i = 0; i < 20 && !sucess; i++ ) {\r
+ if ( !sucess ) {\r
+ try {\r
+ $range.moveToPoint( x, y - i );\r
+ sucess = true;\r
+ } catch ( err ) {\r
+ }\r
+ }\r
+ if ( !sucess ) {\r
+ try {\r
+ $range.moveToPoint( x, y + i );\r
+ sucess = true;\r
+ } catch ( err ) {\r
+ }\r
+ }\r
+ }\r
+\r
+ if ( sucess ) {\r
+ var id = 'cke-temp-' + ( new Date() ).getTime();\r
+ $range.pasteHTML( '<span id="' + id + '">\u200b</span>' );\r
+\r
+ var span = editor.document.getById( id );\r
+ range.moveToPosition( span, CKEDITOR.POSITION_BEFORE_START );\r
+ span.remove();\r
+ } else {\r
+ // If the fist method does not succeed we might be next to\r
+ // the short element (like header):\r
+ //\r
+ // Lorem ipsum pulvinar purus et euismod.\r
+ //\r
+ //\r
+ // SOME HEADER| *\r
+ //\r
+ //\r
+ // vestibulum tincidunt augue eget tempus.\r
+ //\r
+ // * - drop position\r
+ // | - expected cursor position\r
+ //\r
+ // In such situation elementFromPoint returns proper element. Using getClientRect\r
+ // it is possible to check if the cursor should be at the beginning or at the end\r
+ // of paragraph.\r
+ var $element = editor.document.$.elementFromPoint( x, y ),\r
+ element = new CKEDITOR.dom.element( $element ),\r
+ rect;\r
+\r
+ if ( !element.equals( editor.editable() ) && element.getName() != 'html' ) {\r
+ rect = element.getClientRect();\r
+\r
+ if ( x < rect.left ) {\r
+ range.setStartAt( element, CKEDITOR.POSITION_AFTER_START );\r
+ range.collapse( true );\r
+ } else {\r
+ range.setStartAt( element, CKEDITOR.POSITION_BEFORE_END );\r
+ range.collapse( true );\r
+ }\r
+ }\r
+ // If drop happens on no element elementFromPoint returns html or body.\r
+ //\r
+ // * |Lorem ipsum pulvinar purus et euismod.\r
+ //\r
+ // vestibulum tincidunt augue eget tempus.\r
+ //\r
+ // * - drop position\r
+ // | - expected cursor position\r
+ //\r
+ // In such case we can try to use default selection. If startContainer is not\r
+ // 'editable' element it is probably proper selection.\r
+ else if ( defaultRange && defaultRange.startContainer &&\r
+ !defaultRange.startContainer.equals( editor.editable() ) ) {\r
+ return defaultRange;\r
+\r
+ // Otherwise we can not find any drop position and we have to return null\r
+ // and cancel drop event.\r
+ } else {\r
+ return null;\r
+ }\r
+\r
+ }\r
+ } catch ( err ) {\r
+ return null;\r
+ }\r
+ } else {\r
+ return null;\r
+ }\r
+\r
+ return range;\r
+ },\r
+\r
+ /**\r
+ * This function tries to link the `evt.data.dataTransfer` property of the {@link CKEDITOR.editor#dragstart},\r
+ * {@link CKEDITOR.editor#dragend} and {@link CKEDITOR.editor#drop} events to a single\r
+ * {@link CKEDITOR.plugins.clipboard.dataTransfer} object.\r
+ *\r
+ * This method is automatically used by the core of the drag and drop functionality and\r
+ * usually does not have to be called manually when using the drag and drop events.\r
+ *\r
+ * This method behaves differently depending on whether the drag and drop events were fired\r
+ * artificially (to represent a non-native drag and drop) or whether they were caused by the native drag and drop.\r
+ *\r
+ * If the native event is not available, then it will create a new {@link CKEDITOR.plugins.clipboard.dataTransfer}\r
+ * instance (if it does not exist already) and will link it to this and all following event objects until\r
+ * the {@link #resetDragDataTransfer} method is called. It means that all three drag and drop events must be fired\r
+ * in order to ensure that the data transfer is bound correctly.\r
+ *\r
+ * If the native event is available, then the {@link CKEDITOR.plugins.clipboard.dataTransfer} is identified\r
+ * by its ID and a new instance is assigned to the `evt.data.dataTransfer` only if the ID changed or\r
+ * the {@link #resetDragDataTransfer} method was called.\r
+ *\r
+ * @since 4.5\r
+ * @param {CKEDITOR.dom.event} [evt] A drop event object.\r
+ * @param {CKEDITOR.editor} [sourceEditor] The source editor instance.\r
+ */\r
+ initDragDataTransfer: function( evt, sourceEditor ) {\r
+ // Create a new dataTransfer object based on the drop event.\r
+ // If this event was used on dragstart to create dataTransfer\r
+ // both dataTransfer objects will have the same id.\r
+ var nativeDataTransfer = evt.data.$ ? evt.data.$.dataTransfer : null,\r
+ dataTransfer = new this.dataTransfer( nativeDataTransfer, sourceEditor );\r
+\r
+ if ( !nativeDataTransfer ) {\r
+ // No native event.\r
+ if ( this.dragData ) {\r
+ dataTransfer = this.dragData;\r
+ } else {\r
+ this.dragData = dataTransfer;\r
+ }\r
+ } else {\r
+ // Native event. If there is the same id we will replace dataTransfer with the one\r
+ // created on drag, because it contains drag editor, drag content and so on.\r
+ // Otherwise (in case of drag from external source) we save new object to\r
+ // the global clipboard.dragData.\r
+ if ( this.dragData && dataTransfer.id == this.dragData.id ) {\r
+ dataTransfer = this.dragData;\r
+ } else {\r
+ this.dragData = dataTransfer;\r
+ }\r
+ }\r
+\r
+ evt.data.dataTransfer = dataTransfer;\r
+ },\r
+\r
+ /**\r
+ * Removes the global {@link #dragData} so the next call to {@link #initDragDataTransfer}\r
+ * always creates a new instance of {@link CKEDITOR.plugins.clipboard.dataTransfer}.\r
+ *\r
+ * @since 4.5\r
+ */\r
+ resetDragDataTransfer: function() {\r
+ this.dragData = null;\r
+ },\r
+\r
+ /**\r
+ * Global object storing the data transfer of the current drag and drop operation.\r
+ * Do not use it directly, use {@link #initDragDataTransfer} and {@link #resetDragDataTransfer}.\r
+ *\r
+ * Note: This object is global (meaning that it is not related to a single editor instance)\r
+ * in order to handle drag and drop from one editor into another.\r
+ *\r
+ * @since 4.5\r
+ * @private\r
+ * @property {CKEDITOR.plugins.clipboard.dataTransfer} dragData\r
+ */\r
+\r
+ /**\r
+ * Range object to save the drag range and remove its content after the drop.\r
+ *\r
+ * @since 4.5\r
+ * @private\r
+ * @property {CKEDITOR.dom.range} dragRange\r
+ */\r
+\r
+ /**\r
+ * Initializes and links data transfer objects based on the paste event. If the data\r
+ * transfer object was already initialized on this event, the function will\r
+ * return that object. In IE it is not possible to link copy/cut and paste events\r
+ * so the method always returns a new object. The same happens if there is no paste event\r
+ * passed to the method.\r
+ *\r
+ * @since 4.5\r
+ * @param {CKEDITOR.dom.event} [evt] A paste event object.\r
+ * @param {CKEDITOR.editor} [sourceEditor] The source editor instance.\r
+ * @returns {CKEDITOR.plugins.clipboard.dataTransfer} The data transfer object.\r
+ */\r
+ initPasteDataTransfer: function( evt, sourceEditor ) {\r
+ if ( !this.isCustomCopyCutSupported ) {\r
+ // Edge does not support custom copy/cut, but it have some useful data in the clipboardData (http://dev.ckeditor.com/ticket/13755).\r
+ return new this.dataTransfer( ( CKEDITOR.env.edge && evt && evt.data.$ && evt.data.$.clipboardData ) || null, sourceEditor );\r
+ } else if ( evt && evt.data && evt.data.$ ) {\r
+ var dataTransfer = new this.dataTransfer( evt.data.$.clipboardData, sourceEditor );\r
+\r
+ if ( this.copyCutData && dataTransfer.id == this.copyCutData.id ) {\r
+ dataTransfer = this.copyCutData;\r
+ dataTransfer.$ = evt.data.$.clipboardData;\r
+ } else {\r
+ this.copyCutData = dataTransfer;\r
+ }\r
+\r
+ return dataTransfer;\r
+ } else {\r
+ return new this.dataTransfer( null, sourceEditor );\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Prevents dropping on the specified element.\r
+ *\r
+ * @since 4.5\r
+ * @param {CKEDITOR.dom.element} element The element on which dropping should be disabled.\r
+ */\r
+ preventDefaultDropOnElement: function( element ) {\r
+ element && element.on( 'dragover', preventDefaultSetDropEffectToNone );\r
+ }\r
+ };\r
+\r
+ // Data type used to link drag and drop events.\r
+ //\r
+ // In IE URL data type is buggie and there is no way to mark drag & drop without\r
+ // modifying text data (which would be displayed if user drop content to the textarea)\r
+ // so we just read dragged text.\r
+ //\r
+ // In Chrome and Firefox we can use custom data types.\r
+ var clipboardIdDataType = CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ? 'cke/id' : 'Text';\r
+ /**\r
+ * Facade for the native `dataTransfer`/`clipboadData` object to hide all differences\r
+ * between browsers.\r
+ *\r
+ * @since 4.5\r
+ * @class CKEDITOR.plugins.clipboard.dataTransfer\r
+ * @constructor Creates a class instance.\r
+ * @param {Object} [nativeDataTransfer] A native data transfer object.\r
+ * @param {CKEDITOR.editor} [editor] The source editor instance. If the editor is defined, dataValue will\r
+ * be created based on the editor content and the type will be 'html'.\r
+ */\r
+ CKEDITOR.plugins.clipboard.dataTransfer = function( nativeDataTransfer, editor ) {\r
+ if ( nativeDataTransfer ) {\r
+ this.$ = nativeDataTransfer;\r
+ }\r
+\r
+ this._ = {\r
+ metaRegExp: /^<meta.*?>/i,\r
+ bodyRegExp: /<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i,\r
+ fragmentRegExp: /<!--(?:Start|End)Fragment-->/g,\r
+\r
+ data: {},\r
+ files: [],\r
+\r
+ normalizeType: function( type ) {\r
+ type = type.toLowerCase();\r
+\r
+ if ( type == 'text' || type == 'text/plain' ) {\r
+ return 'Text'; // IE support only Text and URL;\r
+ } else if ( type == 'url' ) {\r
+ return 'URL'; // IE support only Text and URL;\r
+ } else {\r
+ return type;\r
+ }\r
+ }\r
+ };\r
+\r
+ // Check if ID is already created.\r
+ this.id = this.getData( clipboardIdDataType );\r
+\r
+ // If there is no ID we need to create it. Different browsers needs different ID.\r
+ if ( !this.id ) {\r
+ if ( clipboardIdDataType == 'Text' ) {\r
+ // For IE10+ only Text data type is supported and we have to compare dragged\r
+ // and dropped text. If the ID is not set it means that empty string was dragged\r
+ // (ex. image with no alt). We change null to empty string.\r
+ this.id = '';\r
+ } else {\r
+ // String for custom data type.\r
+ this.id = 'cke-' + CKEDITOR.tools.getUniqueId();\r
+ }\r
+ }\r
+\r
+ // In IE10+ we can not use any data type besides text, so we do not call setData.\r
+ if ( clipboardIdDataType != 'Text' ) {\r
+ // Try to set ID so it will be passed from the drag to the drop event.\r
+ // On some browsers with some event it is not possible to setData so we\r
+ // need to catch exceptions.\r
+ try {\r
+ this.$.setData( clipboardIdDataType, this.id );\r
+ } catch ( err ) {}\r
+ }\r
+\r
+ if ( editor ) {\r
+ this.sourceEditor = editor;\r
+\r
+ this.setData( 'text/html', editor.getSelectedHtml( 1 ) );\r
+\r
+ // Without setData( 'text', ... ) on dragstart there is no drop event in Safari.\r
+ // Also 'text' data is empty as drop to the textarea does not work if we do not put there text.\r
+ if ( clipboardIdDataType != 'Text' && !this.getData( 'text/plain' ) ) {\r
+ this.setData( 'text/plain', editor.getSelection().getSelectedText() );\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Data transfer ID used to bind all dataTransfer\r
+ * objects based on the same event (e.g. in drag and drop events).\r
+ *\r
+ * @readonly\r
+ * @property {String} id\r
+ */\r
+\r
+ /**\r
+ * A native DOM event object.\r
+ *\r
+ * @readonly\r
+ * @property {Object} $\r
+ */\r
+\r
+ /**\r
+ * Source editor — the editor where the drag starts.\r
+ * Might be undefined if the drag starts outside the editor (e.g. when dropping files to the editor).\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.editor} sourceEditor\r
+ */\r
+\r
+ /**\r
+ * Private properties and methods.\r
+ *\r
+ * @private\r
+ * @property {Object} _\r
+ */\r
+ };\r
+\r
+ /**\r
+ * Data transfer operation (drag and drop or copy and paste) started and ended in the same\r
+ * editor instance.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {Number} [=1]\r
+ * @member CKEDITOR\r
+ */\r
+ CKEDITOR.DATA_TRANSFER_INTERNAL = 1;\r
+\r
+ /**\r
+ * Data transfer operation (drag and drop or copy and paste) started in one editor\r
+ * instance and ended in another.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {Number} [=2]\r
+ * @member CKEDITOR\r
+ */\r
+ CKEDITOR.DATA_TRANSFER_CROSS_EDITORS = 2;\r
+\r
+ /**\r
+ * Data transfer operation (drag and drop or copy and paste) started outside of the editor.\r
+ * The source of the data may be a textarea, HTML, another application, etc.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {Number} [=3]\r
+ * @member CKEDITOR\r
+ */\r
+ CKEDITOR.DATA_TRANSFER_EXTERNAL = 3;\r
+\r
+ CKEDITOR.plugins.clipboard.dataTransfer.prototype = {\r
+ /**\r
+ * Facade for the native `getData` method.\r
+ *\r
+ * @param {String} type The type of data to retrieve.\r
+ * @param {Boolean} [getNative=false] Indicates if the whole, original content of the dataTransfer should be returned.\r
+ * Introduced in CKEditor 4.7.0.\r
+ * @returns {String} type Stored data for the given type or an empty string if the data for that type does not exist.\r
+ */\r
+ getData: function( type, getNative ) {\r
+ function isEmpty( data ) {\r
+ return data === undefined || data === null || data === '';\r
+ }\r
+\r
+ function filterUnwantedCharacters( data ) {\r
+ if ( typeof data !== 'string' ) {\r
+ return data;\r
+ }\r
+\r
+ var htmlEnd = data.indexOf( '</html>' );\r
+\r
+ if ( htmlEnd !== -1 ) {\r
+ // Just cut everything after `</html>`, so everything after htmlEnd index + length of `</html>`.\r
+ // Required to workaround bug: https://bugs.chromium.org/p/chromium/issues/detail?id=696978\r
+ return data.substring( 0, htmlEnd + 7 );\r
+ }\r
+\r
+ return data;\r
+ }\r
+\r
+ type = this._.normalizeType( type );\r
+\r
+ var data = this._.data[ type ],\r
+ result;\r
+\r
+ if ( isEmpty( data ) ) {\r
+ try {\r
+ data = this.$.getData( type );\r
+ } catch ( e ) {}\r
+ }\r
+\r
+ if ( isEmpty( data ) ) {\r
+ data = '';\r
+ }\r
+\r
+ // Some browsers add <meta http-equiv="content-type" content="text/html; charset=utf-8"> at the begging of the HTML data\r
+ // or surround it with <html><head>...</head><body>(some content)<!--StartFragment--> and <!--EndFragment-->(some content)</body></html>\r
+ // This code removes meta tags and returns only the contents of the <body> element if found. Note that\r
+ // some significant content may be placed outside Start/EndFragment comments so it's kept.\r
+ //\r
+ // See http://dev.ckeditor.com/ticket/13583 for more details.\r
+ // Additionally http://dev.ckeditor.com/ticket/16847 adds a flag allowing to get the whole, original content.\r
+ if ( type == 'text/html' && !getNative ) {\r
+ data = data.replace( this._.metaRegExp, '' );\r
+\r
+ // Keep only contents of the <body> element\r
+ result = this._.bodyRegExp.exec( data );\r
+ if ( result && result.length ) {\r
+ data = result[ 1 ];\r
+\r
+ // Remove also comments.\r
+ data = data.replace( this._.fragmentRegExp, '' );\r
+ }\r
+ }\r
+ // Firefox on Linux put files paths as a text/plain data if there are files\r
+ // in the dataTransfer object. We need to hide it, because files should be\r
+ // handled on paste only if dataValue is empty.\r
+ else if ( type == 'Text' && CKEDITOR.env.gecko && this.getFilesCount() &&\r
+ data.substring( 0, 7 ) == 'file://' ) {\r
+ data = '';\r
+ }\r
+\r
+ return filterUnwantedCharacters( data );\r
+ },\r
+\r
+ /**\r
+ * Facade for the native `setData` method.\r
+ *\r
+ * @param {String} type The type of data to retrieve.\r
+ * @param {String} value The data to add.\r
+ */\r
+ setData: function( type, value ) {\r
+ type = this._.normalizeType( type );\r
+\r
+ this._.data[ type ] = value;\r
+\r
+ // There is "Unexpected call to method or property access." error if you try\r
+ // to set data of unsupported type on IE.\r
+ if ( !CKEDITOR.plugins.clipboard.isCustomDataTypesSupported && type != 'URL' && type != 'Text' ) {\r
+ return;\r
+ }\r
+\r
+ // If we use the text type to bind the ID, then if someone tries to set the text, we must also\r
+ // update ID accordingly. http://dev.ckeditor.com/ticket/13468.\r
+ if ( clipboardIdDataType == 'Text' && type == 'Text' ) {\r
+ this.id = value;\r
+ }\r
+\r
+ try {\r
+ this.$.setData( type, value );\r
+ } catch ( e ) {}\r
+ },\r
+\r
+ /**\r
+ * Gets the data transfer type.\r
+ *\r
+ * @param {CKEDITOR.editor} targetEditor The drop/paste target editor instance.\r
+ * @returns {Number} Possible values: {@link CKEDITOR#DATA_TRANSFER_INTERNAL},\r
+ * {@link CKEDITOR#DATA_TRANSFER_CROSS_EDITORS}, {@link CKEDITOR#DATA_TRANSFER_EXTERNAL}.\r
+ */\r
+ getTransferType: function( targetEditor ) {\r
+ if ( !this.sourceEditor ) {\r
+ return CKEDITOR.DATA_TRANSFER_EXTERNAL;\r
+ } else if ( this.sourceEditor == targetEditor ) {\r
+ return CKEDITOR.DATA_TRANSFER_INTERNAL;\r
+ } else {\r
+ return CKEDITOR.DATA_TRANSFER_CROSS_EDITORS;\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Copies the data from the native data transfer to a private cache.\r
+ * This function is needed because the data from the native data transfer\r
+ * is available only synchronously to the event listener. It is not possible\r
+ * to get the data asynchronously, after a timeout, and the {@link CKEDITOR.editor#paste}\r
+ * event is fired asynchronously — hence the need for caching the data.\r
+ */\r
+ cacheData: function() {\r
+ if ( !this.$ ) {\r
+ return;\r
+ }\r
+\r
+ var that = this,\r
+ i, file;\r
+\r
+ function getAndSetData( type ) {\r
+ type = that._.normalizeType( type );\r
+\r
+ var data = that.getData( type, true );\r
+ if ( data ) {\r
+ that._.data[ type ] = data;\r
+ }\r
+ }\r
+\r
+ // Copy data.\r
+ if ( CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ) {\r
+ if ( this.$.types ) {\r
+ for ( i = 0; i < this.$.types.length; i++ ) {\r
+ getAndSetData( this.$.types[ i ] );\r
+ }\r
+ }\r
+ } else {\r
+ getAndSetData( 'Text' );\r
+ getAndSetData( 'URL' );\r
+ }\r
+\r
+ // Copy files references.\r
+ file = this._getImageFromClipboard();\r
+ if ( ( this.$ && this.$.files ) || file ) {\r
+ this._.files = [];\r
+\r
+ // Edge have empty files property with no length (http://dev.ckeditor.com/ticket/13755).\r
+ if ( this.$.files && this.$.files.length ) {\r
+ for ( i = 0; i < this.$.files.length; i++ ) {\r
+ this._.files.push( this.$.files[ i ] );\r
+ }\r
+ }\r
+\r
+ // Don't include $.items if both $.files and $.items contains files, because,\r
+ // according to spec and browsers behavior, they contain the same files.\r
+ if ( this._.files.length === 0 && file ) {\r
+ this._.files.push( file );\r
+ }\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Gets the number of files in the dataTransfer object.\r
+ *\r
+ * @returns {Number} The number of files.\r
+ */\r
+ getFilesCount: function() {\r
+ if ( this._.files.length ) {\r
+ return this._.files.length;\r
+ }\r
+\r
+ if ( this.$ && this.$.files && this.$.files.length ) {\r
+ return this.$.files.length;\r
+ }\r
+\r
+ return this._getImageFromClipboard() ? 1 : 0;\r
+ },\r
+\r
+ /**\r
+ * Gets the file at the index given.\r
+ *\r
+ * @param {Number} i Index.\r
+ * @returns {File} File instance.\r
+ */\r
+ getFile: function( i ) {\r
+ if ( this._.files.length ) {\r
+ return this._.files[ i ];\r
+ }\r
+\r
+ if ( this.$ && this.$.files && this.$.files.length ) {\r
+ return this.$.files[ i ];\r
+ }\r
+\r
+ // File or null if the file was not found.\r
+ return i === 0 ? this._getImageFromClipboard() : undefined;\r
+ },\r
+\r
+ /**\r
+ * Checks if the data transfer contains any data.\r
+ *\r
+ * @returns {Boolean} `true` if the object contains no data.\r
+ */\r
+ isEmpty: function() {\r
+ var typesToCheck = {},\r
+ type;\r
+\r
+ // If dataTransfer contains files it is not empty.\r
+ if ( this.getFilesCount() ) {\r
+ return false;\r
+ }\r
+\r
+ // Add custom types.\r
+ for ( type in this._.data ) {\r
+ typesToCheck[ type ] = 1;\r
+ }\r
+\r
+ // Add native types.\r
+ if ( this.$ ) {\r
+ if ( CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ) {\r
+ if ( this.$.types ) {\r
+ for ( var i = 0; i < this.$.types.length; i++ ) {\r
+ typesToCheck[ this.$.types[ i ] ] = 1;\r
+ }\r
+ }\r
+ } else {\r
+ typesToCheck.Text = 1;\r
+ typesToCheck.URL = 1;\r
+ }\r
+ }\r
+\r
+ // Remove ID.\r
+ if ( clipboardIdDataType != 'Text' ) {\r
+ typesToCheck[ clipboardIdDataType ] = 0;\r
+ }\r
+\r
+ for ( type in typesToCheck ) {\r
+ if ( typesToCheck[ type ] && this.getData( type ) !== '' ) {\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ },\r
+\r
+ /**\r
+ * When the content of the clipboard is pasted in Chrome, the clipboard data object has an empty `files` property,\r
+ * but it is possible to get the file as `items[0].getAsFile();` (http://dev.ckeditor.com/ticket/12961).\r
+ *\r
+ * @private\r
+ * @returns {File} File instance or `null` if not found.\r
+ */\r
+ _getImageFromClipboard: function() {\r
+ var file;\r
+\r
+ if ( this.$ && this.$.items && this.$.items[ 0 ] ) {\r
+ try {\r
+ file = this.$.items[ 0 ].getAsFile();\r
+ // Duck typing\r
+ if ( file && file.type ) {\r
+ return file;\r
+ }\r
+ } catch ( err ) {\r
+ // noop\r
+ }\r
+ }\r
+\r
+ return undefined;\r
+ }\r
+ };\r
+} )();\r
+\r
+/**\r
+ * The default content type that is used when pasted data cannot be clearly recognized as HTML or text.\r
+ *\r
+ * For example: `'foo'` may come from a plain text editor or a website. It is not possible to recognize the content\r
+ * type in this case, so the default type will be used. At the same time it is clear that `'<b>example</b> text'` is\r
+ * HTML and its origin is a web page, email or another rich text editor.\r
+ *\r
+ * **Note:** If content type is text, then styles of the paste context are preserved.\r
+ *\r
+ * CKEDITOR.config.clipboard_defaultContentType = 'text';\r
+ *\r
+ * See also the {@link CKEDITOR.editor#paste} event and read more about the integration with clipboard\r
+ * in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * @since 4.0\r
+ * @cfg {'html'/'text'} [clipboard_defaultContentType='html']\r
+ * @member CKEDITOR.config\r
+ */\r
+\r
+/**\r
+ * Fired after the user initiated a paste action, but before the data is inserted into the editor.\r
+ * The listeners to this event are able to process the content before its insertion into the document.\r
+ *\r
+ * Read more about the integration with clipboard in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * See also:\r
+ *\r
+ * * the {@link CKEDITOR.config#pasteFilter} option,\r
+ * * the {@link CKEDITOR.editor#drop} event,\r
+ * * the {@link CKEDITOR.plugins.clipboard.dataTransfer} class.\r
+ *\r
+ * @since 3.1\r
+ * @event paste\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.editor} editor This editor instance.\r
+ * @param data\r
+ * @param {String} data.type The type of data in `data.dataValue`. Usually `'html'` or `'text'`, but for listeners\r
+ * with a priority smaller than `6` it may also be `'auto'` which means that the content type has not been recognised yet\r
+ * (this will be done by the content type sniffer that listens with priority `6`).\r
+ * @param {String} data.dataValue HTML to be pasted.\r
+ * @param {String} data.method Indicates the data transfer method. It could be drag and drop or copy and paste.\r
+ * Possible values: `'drop'`, `'paste'`. Introduced in CKEditor 4.5.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer Facade for the native dataTransfer object\r
+ * which provides access to various data types and files, and passes some data between linked events\r
+ * (like drag and drop). Introduced in CKEditor 4.5.\r
+ * @param {Boolean} [data.dontFilter=false] Whether the {@link CKEDITOR.editor#pasteFilter paste filter} should not\r
+ * be applied to data. This option has no effect when `data.type` equals `'text'` which means that for instance\r
+ * {@link CKEDITOR.config#forcePasteAsPlainText} has a higher priority. Introduced in CKEditor 4.5.\r
+ */\r
+\r
+/**\r
+ * Fired before the {@link #paste} event. Allows to preset data type.\r
+ *\r
+ * **Note:** This event is deprecated. Add a `0` priority listener for the\r
+ * {@link #paste} event instead.\r
+ *\r
+ * @deprecated\r
+ * @event beforePaste\r
+ * @member CKEDITOR.editor\r
+ */\r
+\r
+/**\r
+ * Fired after the {@link #paste} event if content was modified. Note that if the paste\r
+ * event does not insert any data, the `afterPaste` event will not be fired.\r
+ *\r
+ * @event afterPaste\r
+ * @member CKEDITOR.editor\r
+ */\r
+\r
+/**\r
+ * Facade for the native `drop` event. Fired when the native `drop` event occurs.\r
+ *\r
+ * **Note:** To manipulate dropped data, use the {@link CKEDITOR.editor#paste} event.\r
+ * Use the `drop` event only to control drag and drop operations (e.g. to prevent the ability to drop some content).\r
+ *\r
+ * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * See also:\r
+ *\r
+ * * The {@link CKEDITOR.editor#paste} event,\r
+ * * The {@link CKEDITOR.editor#dragstart} and {@link CKEDITOR.editor#dragend} events,\r
+ * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class.\r
+ *\r
+ * @since 4.5\r
+ * @event drop\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.editor} editor This editor instance.\r
+ * @param data\r
+ * @param {Object} data.$ Native drop event.\r
+ * @param {CKEDITOR.dom.node} data.target Drop target.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade.\r
+ * @param {CKEDITOR.dom.range} data.dragRange Drag range, lets you manipulate the drag range.\r
+ * Note that dragged HTML is saved as `text/html` data on `dragstart` so if you change the drag range\r
+ * on drop, dropped HTML will not change. You need to change it manually using\r
+ * {@link CKEDITOR.plugins.clipboard.dataTransfer#setData dataTransfer.setData}.\r
+ * @param {CKEDITOR.dom.range} data.dropRange Drop range, lets you manipulate the drop range.\r
+ */\r
+\r
+/**\r
+ * Facade for the native `dragstart` event. Fired when the native `dragstart` event occurs.\r
+ *\r
+ * This event can be canceled in order to block the drag start operation. It can also be fired to mimic the start of the drag and drop\r
+ * operation. For instance, the `widget` plugin uses this option to integrate its custom block widget drag and drop with\r
+ * the entire system.\r
+ *\r
+ * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * See also:\r
+ *\r
+ * * The {@link CKEDITOR.editor#paste} event,\r
+ * * The {@link CKEDITOR.editor#drop} and {@link CKEDITOR.editor#dragend} events,\r
+ * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class.\r
+ *\r
+ * @since 4.5\r
+ * @event dragstart\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.editor} editor This editor instance.\r
+ * @param data\r
+ * @param {Object} data.$ Native dragstart event.\r
+ * @param {CKEDITOR.dom.node} data.target Drag target.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade.\r
+ */\r
+\r
+/**\r
+ * Facade for the native `dragend` event. Fired when the native `dragend` event occurs.\r
+ *\r
+ * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * See also:\r
+ *\r
+ * * The {@link CKEDITOR.editor#paste} event,\r
+ * * The {@link CKEDITOR.editor#drop} and {@link CKEDITOR.editor#dragend} events,\r
+ * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class.\r
+ *\r
+ * @since 4.5\r
+ * @event dragend\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.editor} editor This editor instance.\r
+ * @param data\r
+ * @param {Object} data.$ Native dragend event.\r
+ * @param {CKEDITOR.dom.node} data.target Drag target.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade.\r
+ */\r
+\r
+/**\r
+ * Defines a filter which is applied to external data pasted or dropped into the editor. Possible values are:\r
+ *\r
+ * * `'plain-text'` – Content will be pasted as a plain text.\r
+ * * `'semantic-content'` – Known tags (except `div`, `span`) with all attributes (except\r
+ * `style` and `class`) will be kept.\r
+ * * `'h1 h2 p div'` – Custom rules compatible with {@link CKEDITOR.filter}.\r
+ * * `null` – Content will not be filtered by the paste filter (but it still may be filtered\r
+ * by [Advanced Content Filter](#!/guide/dev_advanced_content_filter)). This value can be used to\r
+ * disable the paste filter in Chrome and Safari, where this option defaults to `'semantic-content'`.\r
+ *\r
+ * Example:\r
+ *\r
+ * config.pasteFilter = 'plain-text';\r
+ *\r
+ * Custom setting:\r
+ *\r
+ * config.pasteFilter = 'h1 h2 p ul ol li; img[!src, alt]; a[!href]';\r
+ *\r
+ * Based on this configuration option, a proper {@link CKEDITOR.filter} instance will be defined and assigned to the editor\r
+ * as a {@link CKEDITOR.editor#pasteFilter}. You can tweak the paste filter settings on the fly on this object\r
+ * as well as delete or replace it.\r
+ *\r
+ * var editor = CKEDITOR.replace( 'editor', {\r
+ * pasteFilter: 'semantic-content'\r
+ * } );\r
+ *\r
+ * editor.on( 'instanceReady', function() {\r
+ * // The result of this will be that all semantic content will be preserved\r
+ * // except tables.\r
+ * editor.pasteFilter.disallow( 'table' );\r
+ * } );\r
+ *\r
+ * Note that the paste filter is applied only to **external** data. There are three data sources:\r
+ *\r
+ * * copied and pasted in the same editor (internal),\r
+ * * copied from one editor and pasted into another (cross-editor),\r
+ * * coming from all other sources like websites, MS Word, etc. (external).\r
+ *\r
+ * If {@link CKEDITOR.config#allowedContent Advanced Content Filter} is not disabled, then\r
+ * it will also be applied to pasted and dropped data. The paste filter job is to "normalize"\r
+ * external data which often needs to be handled differently than content produced by the editor.\r
+ *\r
+ * This setting defaults to `'semantic-content'` in Chrome, Opera and Safari (all Blink and Webkit based browsers)\r
+ * due to messy HTML which these browsers keep in the clipboard. In other browsers it defaults to `null`.\r
+ *\r
+ * @since 4.5\r
+ * @cfg {String} [pasteFilter='semantic-content' in Chrome and Safari and `null` in other browsers]\r
+ * @member CKEDITOR.config\r
+ */\r
+\r
+/**\r
+ * {@link CKEDITOR.filter Content filter} which is used when external data is pasted or dropped into the editor\r
+ * or a forced paste as plain text occurs.\r
+ *\r
+ * This object might be used on the fly to define rules for pasted external content.\r
+ * This object is available and used if the {@link CKEDITOR.plugins.clipboard clipboard} plugin is enabled and\r
+ * {@link CKEDITOR.config#pasteFilter} or {@link CKEDITOR.config#forcePasteAsPlainText} was defined.\r
+ *\r
+ * To enable the filter:\r
+ *\r
+ * var editor = CKEDITOR.replace( 'editor', {\r
+ * pasteFilter: 'plain-text'\r
+ * } );\r
+ *\r
+ * You can also modify the filter on the fly later on:\r
+ *\r
+ * editor.pasteFilter = new CKEDITOR.filter( 'p h1 h2; a[!href]' );\r
+ *\r
+ * Note that the paste filter is only applied to **external** data. There are three data sources:\r
+ *\r
+ * * copied and pasted in the same editor (internal),\r
+ * * copied from one editor and pasted into another (cross-editor),\r
+ * * coming from all other sources like websites, MS Word, etc. (external).\r
+ *\r
+ * If {@link CKEDITOR.config#allowedContent Advanced Content Filter} is not disabled, then\r
+ * it will also be applied to pasted and dropped data. The paste filter job is to "normalize"\r
+ * external data which often needs to be handled differently than content produced by the editor.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {CKEDITOR.filter} [pasteFilter]\r
+ * @member CKEDITOR.editor\r
+ */\r
+\r
+/**\r
+ * Duration of the notification displayed after pasting was blocked by the browser.\r
+ *\r
+ * @since 4.7.0\r
+ * @cfg {Number} [clipboard_notificationDuration=10000]\r
+ * @member CKEDITOR.config\r
+ */\r
+CKEDITOR.config.clipboard_notificationDuration = 10000;\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'contextmenu', 'az', {\r
+ options: 'Əlavə əməliyyatlar'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'bn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'contextmenu', 'es-mx', {\r
+ options: 'Opciones del menú contextual'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'fr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'contextmenu', 'oc', {\r
+ options: 'Opcions del menú contextual'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'pt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'sl', {\r
- options: 'Možnosti Kontekstnega Menija'\r
+ options: 'Možnosti kontekstnega menija'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'contextmenu', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
requires: 'menu',\r
\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
\r
- // Make sure the base class (CKEDITOR.menu) is loaded before it (#3318).\r
+ // Make sure the base class (CKEDITOR.menu) is loaded before it (http://dev.ckeditor.com/ticket/3318).\r
onLoad: function() {\r
/**\r
* Class replacing the non-configurable native context menu with a configurable CKEditor's equivalent.\r
var domEvent = event.data,\r
isCtrlKeyDown =\r
// Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event,\r
- // which make this property unreliable. (#4826)\r
+ // which make this property unreliable. (http://dev.ckeditor.com/ticket/4826)\r
( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) );\r
\r
if ( nativeContextMenuOnCtrl && isCtrlKeyDown )\r
// Cancel the browser context menu.\r
domEvent.preventDefault();\r
\r
- // Fix selection when non-editable element in Webkit/Blink (Mac) (#11306).\r
+ // Fix selection when non-editable element in Webkit/Blink (Mac) (http://dev.ckeditor.com/ticket/11306).\r
if ( CKEDITOR.env.mac && CKEDITOR.env.webkit ) {\r
var editor = this.editor,\r
contentEditableParent = new CKEDITOR.dom.elementPath( domEvent.getTarget(), editor.editable() ).contains( function( el ) {\r
CKEDITOR.tools.setTimeout( function() {\r
this.open( offsetParent, null, offsetX, offsetY );\r
\r
- // IE needs a short while to allow selection change before opening menu. (#7908)\r
+ // IE needs a short while to allow selection change before opening menu. (http://dev.ckeditor.com/ticket/7908)\r
}, CKEDITOR.env.ie ? 200 : 0, this );\r
}, this );\r
\r
* @param {Number} [offsetY]\r
*/\r
open: function( offsetParent, corner, offsetX, offsetY ) {\r
+ if ( this.editor.config.enableContextMenu === false ) {\r
+ return;\r
+ }\r
+\r
this.editor.focus();\r
offsetParent = offsetParent || CKEDITOR.document.getDocumentElement();\r
\r
- // #9362: Force selection check to update commands' states in the new context.\r
+ // http://dev.ckeditor.com/ticket/9362: Force selection check to update commands' states in the new context.\r
this.editor.selectionChange( 1 );\r
\r
this.show( offsetParent, corner, offsetX, offsetY );\r
* @cfg {Boolean} [browserContextMenuOnCtrl=true]\r
* @member CKEDITOR.config\r
*/\r
+\r
+/**\r
+ * Whether to enable the context menu. Regardless of the setting the [Context Menu](http://ckeditor.com/addon/contextmenu)\r
+ * plugin is still loaded.\r
+ *\r
+ * config.enableContextMenu = false;\r
+ *\r
+ * @since 4.7.0\r
+ * @cfg {Boolean} [enableContextMenu=true]\r
+ * @member CKEDITOR.config\r
+ */\r
// jscs:disable disallowMixedSpacesAndTabs\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
title = body.getChild( 0 ),\r
close = body.getChild( 1 );\r
\r
- // Don't allow dragging on dialog (#13184).\r
+ // Don't allow dragging on dialog (http://dev.ckeditor.com/ticket/13184).\r
editor.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement( body );\r
\r
- // IFrame shim for dialog that masks activeX in IE. (#7619)\r
+ // IFrame shim for dialog that masks activeX in IE. (http://dev.ckeditor.com/ticket/7619)\r
if ( CKEDITOR.env.ie && !CKEDITOR.env.quirks && !CKEDITOR.env.edge ) {\r
var src = 'javascript:void(function(){' + encodeURIComponent( 'document.open();(' + CKEDITOR.tools.fixDomain + ')();document.close();' ) + '}())', // jshint ignore:line\r
iframe = CKEDITOR.dom.element.createFromHtml( '<iframe' +\r
tabsToRemove = {},\r
i, processed, stopPropagation;\r
\r
- if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (#4750)\r
+ if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (http://dev.ckeditor.com/ticket/4750)\r
( buttonsOrder == 'rtl' && dir == 'ltr' ) || ( buttonsOrder == 'ltr' && dir == 'rtl' ) )\r
defaultDefinition.buttons.reverse();\r
\r
\r
if ( definition.onOk ) {\r
this.on( 'ok', function( evt ) {\r
- // Dialog confirm might probably introduce content changes (#5415).\r
+ // Dialog confirm might probably introduce content changes (http://dev.ckeditor.com/ticket/5415).\r
editor.fire( 'saveSnapshot' );\r
setTimeout( function() {\r
editor.fire( 'saveSnapshot' );\r
currentIndex = currentIndex + offset;\r
\r
if ( hasTabs && !me._.tabBarMode && ( currentIndex == focusList.length || currentIndex == -1 ) ) {\r
- // If the dialog was not in tab mode, then focus the first tab (#13027).\r
+ // If the dialog was not in tab mode, then focus the first tab (http://dev.ckeditor.com/ticket/13027).\r
me._.tabBarMode = true;\r
me._.tabs[ me._.currentTabId ][ 0 ].focus();\r
me._.currentFocusIndex = -1;\r
button && CKEDITOR.tools.setTimeout( button.click, 0, button );\r
processed = 1;\r
}\r
- stopPropagation = 1; // Always block the propagation (#4269)\r
+ stopPropagation = 1; // Always block the propagation (http://dev.ckeditor.com/ticket/4269)\r
} else if ( keystroke == 27 /*ESC*/ ) {\r
button = this.getButton( 'cancel' );\r
\r
if ( this.fire( 'cancel', { hide: true } ).hide !== false )\r
this.hide();\r
}\r
- stopPropagation = 1; // Always block the propagation (#4269)\r
+ stopPropagation = 1; // Always block the propagation (http://dev.ckeditor.com/ticket/4269)\r
} else {\r
return;\r
}\r
dialogElement.on( 'keydown', keydownHandler, this );\r
\r
// Some browsers instead, don't cancel key events in the keydown, but in the\r
- // keypress. So we must do a longer trip in those cases. (#4531,#8985)\r
+ // keypress. So we must do a longer trip in those cases. (http://dev.ckeditor.com/ticket/4531,http://dev.ckeditor.com/ticket/8985)\r
if ( CKEDITOR.env.gecko )\r
dialogElement.on( 'keypress', keypressHandler, this );\r
\r
}\r
}, this, null, 0xffffffff );\r
\r
- // IE6 BUG: Text fields and text areas are only half-rendered the first time the dialog appears in IE6 (#2661).\r
+ // IE6 BUG: Text fields and text areas are only half-rendered the first time the dialog appears in IE6 (http://dev.ckeditor.com/ticket/2661).\r
// This is still needed after [2708] and [2709] because text fields in hidden TR tags are still broken.\r
if ( CKEDITOR.env.ie6Compat ) {\r
this.on( 'load', function() {\r
var element = this._.element.getFirst(), rtl = this._.editor.lang.dir == 'rtl';\r
var isFixed = element.getComputedStyle( 'position' ) == 'fixed';\r
\r
- // (#8888) In some cases of a very small viewport, dialog is incorrectly\r
+ // (http://dev.ckeditor.com/ticket/8888) In some cases of a very small viewport, dialog is incorrectly\r
// positioned in IE7. It also happens that it remains sticky and user cannot\r
// scroll down/up to reveal dialog's content below/above the viewport; this is\r
// cumbersome.\r
// Reset all inputs back to their default value.\r
this.reset();\r
\r
- // Select the first tab by default.\r
- this.selectPage( this.definition.contents[ 0 ].id );\r
+ // Selects the first tab if no tab is already selected.\r
+ if ( this._.currentTabId === null ) {\r
+ this.selectPage( this.definition.contents[ 0 ].id );\r
+ }\r
\r
// Set z-index.\r
if ( CKEDITOR.dialog._.currentZIndex === null )\r
commitContent: function() {\r
var args = arguments;\r
this.foreach( function( widget ) {\r
- // Make sure IE triggers "change" event on last focused input before closing the dialog. (#7915)\r
+ // Make sure IE triggers "change" event on last focused input before closing the dialog. (http://dev.ckeditor.com/ticket/7915)\r
if ( CKEDITOR.env.ie && this._.currentFocusIndex == widget.focusIndex )\r
widget.getInputElement().$.blur();\r
\r
var editor = this._.editor;\r
editor.focus();\r
\r
- // Give a while before unlock, waiting for focus to return to the editable. (#172)\r
+ // Give a while before unlock, waiting for focus to return to the editable. (http://dev.ckeditor.com/ticket/172)\r
setTimeout( function() {\r
editor.focusManager.unlock();\r
\r
- // Fixed iOS focus issue (#12381).\r
+ // Fixed iOS focus issue (http://dev.ckeditor.com/ticket/12381).\r
// Keep in mind that editor.focus() does not work in this case.\r
if ( CKEDITOR.env.iOS ) {\r
editor.window.focus();\r
contentObj.resetInitValue && contentObj.resetInitValue();\r
} );\r
\r
- // Reset dialog state back to IDLE, if busy (#13213).\r
+ // Reset dialog state back to IDLE, if busy (http://dev.ckeditor.com/ticket/13213).\r
this.setState( CKEDITOR.DIALOG_STATE_IDLE );\r
},\r
\r
\r
// [IE] an invisible input[type='text'] will enlarge it's width\r
// if it's value is long when it shows, so we clear it's value\r
- // before it shows and then recover it (#5649)\r
+ // before it shows and then recover it (http://dev.ckeditor.com/ticket/5649)\r
if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat ) {\r
clearOrRecoverTextInputValue( selected[ 1 ] );\r
selected[ 1 ].show();\r
}\r
\r
function showCover( editor ) {\r
- var win = CKEDITOR.document.getWindow();\r
- var config = editor.config,\r
- backgroundColorStyle = config.dialog_backgroundCoverColor || 'white',\r
+ var win = CKEDITOR.document.getWindow(),\r
+ config = editor.config,\r
+ skinName = ( CKEDITOR.skinName || editor.config.skin ),\r
+ backgroundColorStyle = config.dialog_backgroundCoverColor || ( skinName == 'moono-lisa' ? 'black' : 'white' ),\r
backgroundCoverOpacity = config.dialog_backgroundCoverOpacity,\r
baseFloatZIndex = config.baseFloatZIndex,\r
coverKey = CKEDITOR.tools.genKey( backgroundColorStyle, backgroundCoverOpacity, baseFloatZIndex ),\r
resizeCover = resizeFunc;\r
win.on( 'resize', resizeFunc );\r
resizeFunc();\r
- // Using Safari/Mac, focus must be kept where it is (#7027)\r
+ // Using Safari/Mac, focus must be kept where it is (http://dev.ckeditor.com/ticket/7027)\r
if ( !( CKEDITOR.env.mac && CKEDITOR.env.webkit ) )\r
coverElement.focus();\r
\r
if ( elementDefinition && elementDefinition.padding !== undefined ) {\r
styles.push( 'padding:' + cssLength( elementDefinition.padding ) );\r
}\r
- // In IE Quirks alignment has to be done on table cells. (#7324)\r
+ // In IE Quirks alignment has to be done on table cells. (http://dev.ckeditor.com/ticket/7324)\r
if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && children[ i ].align ) {\r
styles.push( 'text-align:' + children[ i ].align );\r
}\r
html.push( 'height:100%;' );\r
html.push( 'width:' + cssLength( width || '100%' ), ';' );\r
\r
- // (#10123) Temp fix for dialog broken layout in latest webkit.\r
+ // (http://dev.ckeditor.com/ticket/10123) Temp fix for dialog broken layout in latest webkit.\r
if ( CKEDITOR.env.webkit )\r
html.push( 'float:none;' );\r
\r
styles.push( 'height:' + Math.floor( 100 / childHtmlList.length ) + '%' );\r
if ( elementDefinition && elementDefinition.padding !== undefined )\r
styles.push( 'padding:' + cssLength( elementDefinition.padding ) );\r
- // In IE Quirks alignment has to be done on table cells. (#7324)\r
+ // In IE Quirks alignment has to be done on table cells. (http://dev.ckeditor.com/ticket/7324)\r
if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && children[ i ].align )\r
styles.push( 'text-align:' + children[ i ].align );\r
if ( styles.length > 0 )\r
/**\r
* Generic dialog command. It opens a specific dialog when executed.\r
*\r
- * // Register the "link" command, which opens the "link" dialog.\r
+ * // Register the "link" command which opens the "link" dialog.\r
* editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link' ) );\r
*\r
* @class\r
* @param {String} dialogName The name of the dialog to open when executing\r
* this command.\r
* @param {Object} [ext] Additional command definition's properties.\r
+ * @param {String} [ext.tabId] You can provide additional property (`tabId`) if you wish to open the dialog on a specific tabId.\r
+ *\r
+ * // Open the dialog on the 'keystroke' tabId.\r
+ * editor.addCommand( 'keystroke', new CKEDITOR.dialogCommand( 'a11yHelp', { tabId: 'keystroke' } ) );\r
*/\r
CKEDITOR.dialogCommand = function( dialogName, ext ) {\r
this.dialogName = dialogName;\r
\r
CKEDITOR.dialogCommand.prototype = {\r
exec: function( editor ) {\r
- editor.openDialog( this.dialogName );\r
+ var tabId = this.tabId;\r
+ editor.openDialog( this.dialogName, function( dialog ) {\r
+ // Select different tab if it's provided (#830).\r
+ if ( tabId ) {\r
+ dialog.selectPage( tabId );\r
+ }\r
+ } );\r
},\r
\r
// Dialog commands just open a dialog ui, thus require no undo logic,\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
if ( !this._.domOnChangeRegistered ) {\r
dialog.on( 'load', function() {\r
this.getInputElement().on( 'change', function() {\r
- // Make sure 'onchange' doesn't get fired after dialog closed. (#5719)\r
+ // Make sure 'onchange' doesn't get fired after dialog closed. (http://dev.ckeditor.com/ticket/5719)\r
if ( !dialog.parts.dialog.isVisible() )\r
return;\r
\r
keyPressedOnMe = true;\r
} );\r
\r
- // Lower the priority this 'keyup' since 'ok' will close the dialog.(#3749)\r
+ // Lower the priority this 'keyup' since 'ok' will close the dialog.(http://dev.ckeditor.com/ticket/3749)\r
me.getInputElement().on( 'keyup', function( evt ) {\r
if ( evt.data.getKeystroke() == 13 && keyPressedOnMe ) {\r
dialog.getButton( 'ok' ) && setTimeout( function() {\r
if ( typeof inputDefinition.inputStyle != 'undefined' )\r
inputDefinition.style = inputDefinition.inputStyle;\r
\r
- // Make inputs of radio type focusable (#10866).\r
+ // Make inputs of radio type focusable (http://dev.ckeditor.com/ticket/10866).\r
inputDefinition.keyboardFocusable = true;\r
\r
children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) );\r
( function() {\r
element.on( 'click', function( evt ) {\r
me.click();\r
- // #9958\r
+ // http://dev.ckeditor.com/ticket/9958\r
evt.data.preventDefault();\r
} );\r
\r
' src="javascript:void('\r
];\r
\r
- // Support for custom document.domain on IE. (#10165)\r
+ // Support for custom document.domain on IE. (http://dev.ckeditor.com/ticket/10165)\r
html.push( CKEDITOR.env.ie ?\r
'(function(){' + encodeURIComponent(\r
'document.open();' +\r
'<label id="', _.labelId, '" for="', inputId, '" style="display:none">',\r
CKEDITOR.tools.htmlEncode( elementDefinition.label ),\r
'</label>',\r
- // Set width to make sure that input is not clipped by the iframe (#11253).\r
+ // Set width to make sure that input is not clipped by the iframe (http://dev.ckeditor.com/ticket/11253).\r
'<input style="width:100%" id="', inputId, '" aria-labelledby="', _.labelId, '" type="file" name="',\r
CKEDITOR.tools.htmlEncode( elementDefinition.id || 'cke_upload' ),\r
'" size="',\r
buttons[ i ].enable();\r
}\r
\r
- // #3465: Wait for the browser to finish rendering the dialog first.\r
+ // http://dev.ckeditor.com/ticket/3465: Wait for the browser to finish rendering the dialog first.\r
if ( CKEDITOR.env.gecko )\r
setTimeout( generateFormField, 500 );\r
else\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'elementspath', 'az', {\r
+ eleLabel: 'Elementin izləri',\r
+ eleTitle: '%1 element'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'bn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'elementspath', 'es-mx', {\r
+ eleLabel: 'Ruta de los elementos',\r
+ eleTitle: '%1 elemento'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'fr', {\r
- eleLabel: 'Elements path',\r
- eleTitle: '%1 éléments'\r
+ eleLabel: 'Chemin des éléments',\r
+ eleTitle: 'Élément %1'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'hr', {\r
- eleLabel: 'Putanja elemenata',\r
+ eleLabel: 'Putanje elemenata',\r
eleTitle: '%1 element'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'elementspath', 'oc', {\r
+ eleLabel: 'Camin dels elements',\r
+ eleTitle: 'Element %1'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'pt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'sl', {\r
eleLabel: 'Pot elementov',\r
- eleTitle: '%1 element'\r
+ eleTitle: 'Element %1'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'elementspath', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
var idBase = editor._.elementsPath.idBase;\r
var element = CKEDITOR.document.getById( idBase + '0' );\r
\r
- // Make the first button focus accessible for IE. (#3417)\r
+ // Make the first button focus accessible for IE. (http://dev.ckeditor.com/ticket/3417)\r
// Adobe AIR instead need while of delay.\r
element && element.focus( CKEDITOR.env.ie || CKEDITOR.env.air );\r
}\r
\r
CKEDITOR.plugins.add( 'elementspath', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
init: function( editor ) {\r
editor._.elementsPath = {\r
} );\r
\r
function onClick( elementIndex ) {\r
- var element = elementsPath.list[ elementIndex ];\r
+ var element = elementsPath.list[ elementIndex ],\r
+ selection;\r
+\r
if ( element.equals( editor.editable() ) || element.getAttribute( 'contenteditable' ) == 'true' ) {\r
var range = editor.createRange();\r
range.selectNodeContents( element );\r
- range.select();\r
+\r
+ selection = range.select();\r
} else {\r
- editor.getSelection().selectElement( element );\r
+ selection = editor.getSelection();\r
+ selection.selectElement( element );\r
+ }\r
+\r
+ // Explicitly fire selectionChange when clicking on an element path button. (http://dev.ckeditor.com/ticket/13548)\r
+ if ( CKEDITOR.env.ie ) {\r
+ editor.fire( 'selectionChange', { selection: selection, path: new CKEDITOR.dom.elementPath( element ) } );\r
}\r
\r
// It is important to focus() *after* the above selection\r
- // manipulation, otherwise Firefox will have troubles. #10119\r
+ // manipulation, otherwise Firefox will have troubles. http://dev.ckeditor.com/ticket/10119\r
editor.focus();\r
}\r
\r
filters = elementsPath.filters,\r
isContentEditable = true,\r
\r
- // Use elementPath to consider children of editable only (#11124).\r
+ // Use elementPath to consider children of editable only (http://dev.ckeditor.com/ticket/11124).\r
elementsChain = editor.elementPath().elements,\r
name;\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
return;\r
\r
// When range is in nested editable, we have to replace range with this one,\r
- // which have root property set to closest editable, to make auto paragraphing work. (#12162)\r
+ // which have root property set to closest editable, to make auto paragraphing work. (http://dev.ckeditor.com/ticket/12162)\r
range = replaceRangeWithClosestEditableRoot( range );\r
\r
var doc = range.document;\r
\r
newBlock;\r
\r
- // Exit the list when we're inside an empty list item block. (#5376)\r
+ // Exit the list when we're inside an empty list item block. (http://dev.ckeditor.com/ticket/5376)\r
if ( atBlockStart && atBlockEnd ) {\r
- // Exit the list when we're inside an empty list item block. (#5376)\r
+ // Exit the list when we're inside an empty list item block. (http://dev.ckeditor.com/ticket/5376)\r
if ( block && ( block.is( 'li' ) || block.getParent().is( 'li' ) ) ) {\r
// Make sure to point to the li when dealing with empty list item.\r
if ( !block.is( 'li' ) )\r
\r
var node;\r
\r
- // If this is a block under a list item, split it as well. (#1647)\r
+ // If this is a block under a list item, split it as well. (http://dev.ckeditor.com/ticket/1647)\r
if ( nextBlock ) {\r
node = nextBlock.getParent();\r
if ( node.is( 'li' ) ) {\r
if ( !isStartOfBlock && !isEndOfBlock ) {\r
// If the next block is an <li> with another list tree as the first\r
// child, we'll need to append a filler (<br>/NBSP) or the list item\r
- // wouldn't be editable. (#1420)\r
+ // wouldn't be editable. (http://dev.ckeditor.com/ticket/1420)\r
if ( nextBlock.is( 'li' ) ) {\r
var walkerRange = range.clone();\r
walkerRange.selectNodeContents( nextBlock );\r
\r
if ( previousBlock ) {\r
// Do not enter this block if it's a header tag, or we are in\r
- // a Shift+Enter (#77). Create a new block element instead\r
+ // a Shift+Enter (http://dev.ckeditor.com/ticket/77). Create a new block element instead\r
// (later in the code).\r
if ( previousBlock.is( 'li' ) || !( headerTagRegex.test( previousBlock.getName() ) || previousBlock.is( 'pre' ) ) ) {\r
// Otherwise, duplicate the previous block.\r
}\r
\r
if ( !newBlock ) {\r
- // We have already created a new list item. (#6849)\r
+ // We have already created a new list item. (http://dev.ckeditor.com/ticket/6849)\r
if ( node && node.is( 'li' ) )\r
newBlock = node;\r
else {\r
if ( !newBlock.getParent() )\r
range.insertNode( newBlock );\r
\r
- // list item start number should not be duplicated (#7330), but we need\r
- // to remove the attribute after it's onto the DOM tree because of old IEs (#7581).\r
+ // list item start number should not be duplicated (http://dev.ckeditor.com/ticket/7330), but we need\r
+ // to remove the attribute after it's onto the DOM tree because of old IEs (http://dev.ckeditor.com/ticket/7581).\r
newBlock.is( 'li' ) && newBlock.removeAttribute( 'value' );\r
\r
// This is tricky, but to make the new block visible correctly\r
} else {\r
var lineBreak;\r
\r
- // IE<8 prefers text node as line-break inside of <pre> (#4711).\r
+ // IE<8 prefers text node as line-break inside of <pre> (http://dev.ckeditor.com/ticket/4711).\r
if ( startBlockTag == 'pre' && CKEDITOR.env.ie && CKEDITOR.env.version < 8 )\r
lineBreak = doc.createText( '\r' );\r
else\r
function shiftEnter( editor ) {\r
// On SHIFT+ENTER:\r
// 1. We want to enforce the mode to be respected, instead\r
- // of cloning the current block. (#77)\r
+ // of cloning the current block. (http://dev.ckeditor.com/ticket/77)\r
return enter( editor, editor.activeShiftEnterMode, 1 );\r
}\r
\r
// Check path block specialities:\r
// 1. Cannot be a un-splittable element, e.g. table caption;\r
var path = editor.elementPath();\r
- if ( !path.isContextFor( 'p' ) ) {\r
+\r
+ if ( path && !path.isContextFor( 'p' ) ) {\r
mode = CKEDITOR.ENTER_BR;\r
forceMode = 1;\r
}\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'fakeobjects', 'az', {\r
+ anchor: 'Lövbər',\r
+ flash: 'Flash animasiya',\r
+ hiddenfield: 'Gizli xana',\r
+ iframe: 'IFrame',\r
+ unknown: 'Tanımamış obyekt'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'bn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'fakeobjects', 'es-mx', {\r
+ anchor: 'Ancla',\r
+ flash: 'Animación flash',\r
+ hiddenfield: 'Campo oculto',\r
+ iframe: 'IFrame',\r
+ unknown: 'Objeto desconocido'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'fr', {\r
anchor: 'Ancre',\r
flash: 'Animation Flash',\r
- hiddenfield: 'Champ caché',\r
- iframe: 'IFrame',\r
+ hiddenfield: 'Champ invisible',\r
+ iframe: 'Cadre de contenu incorporé',\r
unknown: 'Objet inconnu'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'fakeobjects', 'oc', {\r
+ anchor: 'Ancòra',\r
+ flash: 'Animacion Flash',\r
+ hiddenfield: 'Camp invisible',\r
+ iframe: 'Quadre de contengut incorporat',\r
+ unknown: 'Objècte desconegut'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'pt', {\r
- anchor: ' Inserir/Editar Ã\82ncora',\r
+ anchor: ' Inserir/Editar âncora',\r
flash: 'Animação Flash',\r
hiddenfield: 'Campo oculto',\r
iframe: 'IFrame',\r
- unknown: 'Objeto Desconhecido'\r
+ unknown: 'Objeto desconhecido'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'sl', {\r
anchor: 'Sidro',\r
- flash: 'Flash animacija',\r
+ flash: 'Animacija flash',\r
hiddenfield: 'Skrito polje',\r
iframe: 'IFrame',\r
unknown: 'Neznan objekt'\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'fakeobjects', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
CKEDITOR.plugins.add( 'fakeobjects', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
\r
init: function( editor ) {\r
} );\r
\r
/**\r
+ * Creates fake {@link CKEDITOR.dom.element} based on real element.\r
+ * Fake element is an img with special attributes, which keep real element properties.\r
+ *\r
* @member CKEDITOR.editor\r
- * @todo\r
+ * @param {CKEDITOR.dom.element} realElement Real element to transform.\r
+ * @param {String} className Class name which will be used as class of fake element.\r
+ * @param {String} realElementType Stores type of fake element.\r
+ * @param {Boolean} isResizable Keeps information if element is resizable.\r
+ * @returns {CKEDITOR.dom.element} Fake element.\r
*/\r
CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType, isResizable ) {\r
var lang = this.lang.fakeobjects,\r
align: realElement.getAttribute( 'align' ) || ''\r
};\r
\r
- // Do not set "src" on high-contrast so the alt text is displayed. (#8945)\r
+ // Do not set "src" on high-contrast so the alt text is displayed. (http://dev.ckeditor.com/ticket/8945)\r
if ( !CKEDITOR.env.hc )\r
attributes.src = CKEDITOR.tools.transparentImageData;\r
\r
};\r
\r
/**\r
+ * Creates fake {@link CKEDITOR.htmlParser.element} based on real element.\r
+ *\r
* @member CKEDITOR.editor\r
- * @todo\r
+ * @param {CKEDITOR.dom.element} realElement Real element to transform.\r
+ * @param {String} className Class name which will be used as class of fake element.\r
+ * @param {String} realElementType Store type of fake element.\r
+ * @param {Boolean} isResizable Keep information if element is resizable.\r
+ * @returns {CKEDITOR.htmlParser.element} Fake htmlParser element.\r
*/\r
CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable ) {\r
var lang = this.lang.fakeobjects,\r
align: realElement.attributes.align || ''\r
};\r
\r
- // Do not set "src" on high-contrast so the alt text is displayed. (#8945)\r
+ // Do not set "src" on high-contrast so the alt text is displayed. (http://dev.ckeditor.com/ticket/8945)\r
if ( !CKEDITOR.env.hc )\r
attributes.src = CKEDITOR.tools.transparentImageData;\r
\r
};\r
\r
/**\r
+ * Creates {@link CKEDITOR.dom.element} from fake element.\r
+ *\r
* @member CKEDITOR.editor\r
- * @todo\r
+ * @param {CKEDITOR.dom.element} fakeElement Fake element to transform.\r
+ * @returns {CKEDITOR.dom.element/null} Returns real element or `null` if transformed element wasn't fake.\r
*/\r
CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement ) {\r
if ( fakeElement.data( 'cke-real-node-type' ) != CKEDITOR.NODE_ELEMENT )\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
params.langCode = editor.langCode;\r
\r
var url = addQueryString( this.filebrowser.url, params );\r
- // TODO: V4: Remove backward compatibility (#8163).\r
+ // TODO: V4: Remove backward compatibility (http://dev.ckeditor.com/ticket/8163).\r
editor.popup( url, width, height, editor.config.filebrowserWindowFeatures || editor.config.fileBrowserWindowFeatures );\r
}\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
}\r
\r
return function( evt ) {\r
- // #10112 Do not fail on editable-less editor.\r
+ // http://dev.ckeditor.com/ticket/10112 Do not fail on editable-less editor.\r
if ( !( editable = editor.editable() ) )\r
return;\r
\r
alignSide = mid - editorRect.left > editorRect.right - mid ? 'left' : 'right';\r
}\r
\r
- // (#9769) If viewport width is less than space width,\r
+ // (http://dev.ckeditor.com/ticket/9769) If viewport width is less than space width,\r
// make sure space never cross the left boundary of the viewport.\r
// In other words: top-left corner of the space is always visible.\r
if ( spaceRect.width > viewRect.width ) {\r
offset = 0;\r
}\r
\r
- // (#9769) Finally, stick the space to the opposite side of\r
+ // (http://dev.ckeditor.com/ticket/9769) Finally, stick the space to the opposite side of\r
// the viewport when it's cut off horizontally on the left/right\r
// side like below.\r
//\r
}\r
\r
// Pin mode is fixed, so don't include scroll-x.\r
- // (#9903) For mode is "top" or "bottom", add opposite scroll-x for right-aligned space.\r
+ // (http://dev.ckeditor.com/ticket/9903) For mode is "top" or "bottom", add opposite scroll-x for right-aligned space.\r
var scroll = mode == 'pin' ? 0 : alignSide == 'left' ? pageScrollX : -pageScrollX;\r
\r
floatSpace.setStyle( alignSide, pixelate( ( mode == 'pin' ? pinnedOffsetX : dockedOffsetX ) + offset + scroll ) );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
iframe = element.getFirst(),\r
that = this;\r
\r
- // Disable native browser menu. (#4825)\r
+ // Disable native browser menu. (http://dev.ckeditor.com/ticket/4825)\r
element.disableContextMenu();\r
\r
this.element = element;\r
editor.on( 'resize', hide );\r
\r
// When resize of the window is triggered floatpanel should be repositioned according to new dimensions.\r
- // #11724. Fixes issue with undesired panel hiding on Android and iOS.\r
+ // http://dev.ckeditor.com/ticket/11724. Fixes issue with undesired panel hiding on Android and iOS.\r
doc.getWindow().on( 'resize', function() {\r
this.reposition();\r
}, this );\r
\r
var element = this.element,\r
iframe = this._.iframe,\r
- // Edge prefers iframe's window to the iframe, just like the rest of the browsers (#13143).\r
+ // Edge prefers iframe's window to the iframe, just like the rest of the browsers (http://dev.ckeditor.com/ticket/13143).\r
focused = CKEDITOR.env.ie && !CKEDITOR.env.edge ? iframe : new CKEDITOR.dom.window( iframe.$.contentWindow ),\r
doc = element.getDocument(),\r
positionedAncestor = this._.parentElement.getPositionedAncestor(),\r
left = position.x + ( offsetX || 0 ) - positionedAncestorPosition.x,\r
top = position.y + ( offsetY || 0 ) - positionedAncestorPosition.y;\r
\r
- // Floating panels are off by (-1px, 0px) in RTL mode. (#3438)\r
+ // Floating panels are off by (-1px, 0px) in RTL mode. (http://dev.ckeditor.com/ticket/3438)\r
if ( rtl && ( corner == 1 || corner == 4 ) )\r
left += offsetParent.$.offsetWidth;\r
else if ( !rtl && ( corner == 2 || corner == 3 ) )\r
\r
// With addEventListener compatible browsers, we must\r
// useCapture when registering the focus/blur events to\r
- // guarantee they will be firing in all situations. (#3068, #3222 )\r
+ // guarantee they will be firing in all situations. (http://dev.ckeditor.com/ticket/3068, http://dev.ckeditor.com/ticket/3222 )\r
CKEDITOR.event.useCapture = true;\r
\r
focused.on( 'blur', function( ev ) {\r
\r
if ( this.visible && !this._.activeChild ) {\r
// [iOS] Allow hide to be prevented if touch is bound\r
- // to any parent of the iframe blur happens before touch (#10714).\r
+ // to any parent of the iframe blur happens before touch (http://dev.ckeditor.com/ticket/10714).\r
if ( CKEDITOR.env.iOS ) {\r
if ( !this._.hideTimeout )\r
this._.hideTimeout = CKEDITOR.tools.setTimeout( doHide, 0, this );\r
}, this );\r
\r
// [iOS] if touch is bound to any parent of the iframe blur\r
- // happens twice before touchstart and before touchend (#10714).\r
+ // happens twice before touchstart and before touchend (http://dev.ckeditor.com/ticket/10714).\r
if ( CKEDITOR.env.iOS ) {\r
// Prevent false hiding on blur.\r
// We don't need to return focus here because touchend will fire anyway.\r
var target = element;\r
\r
// Reset panel width as the new content can be narrower\r
- // than the old one. (#9355)\r
+ // than the old one. (http://dev.ckeditor.com/ticket/9355)\r
target.removeStyle( 'width' );\r
\r
if ( block.autoSize ) {\r
\r
// Account for extra height needed due to IE quirks box model bug:\r
// http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug\r
- // (#3426)\r
+ // (http://dev.ckeditor.com/ticket/3426)\r
if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && width > 0 )\r
width += ( target.$.offsetWidth || 0 ) - ( target.$.clientWidth || 0 ) + 3;\r
\r
\r
// Account for extra height needed due to IE quirks box model bug:\r
// http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug\r
- // (#3426)\r
+ // (http://dev.ckeditor.com/ticket/3426)\r
if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && height > 0 )\r
height += ( target.$.offsetHeight || 0 ) - ( target.$.clientHeight || 0 ) + 3;\r
\r
\r
// If IE is in RTL, we have troubles with absolute\r
// position and horizontal scrolls. Here we have a\r
- // series of hacks to workaround it. (#6146)\r
+ // series of hacks to workaround it. (http://dev.ckeditor.com/ticket/6146)\r
if ( CKEDITOR.env.ie ) {\r
var offsetParent = new CKEDITOR.dom.element( element.$.offsetParent ),\r
scrollParent = offsetParent;\r
}\r
\r
// Trigger the onHide event of the previously active panel to prevent\r
- // incorrect styles from being applied (#6170)\r
+ // incorrect styles from being applied (http://dev.ckeditor.com/ticket/6170)\r
var innerElement = element.getFirst(),\r
activePanel;\r
if ( ( activePanel = innerElement.getCustomData( 'activePanel' ) ) )\r
// Focus the block now.\r
block.element.focus();\r
\r
- // #10623, #10951 - restore the viewport's scroll position after focusing list element.\r
+ // http://dev.ckeditor.com/ticket/10623, http://dev.ckeditor.com/ticket/10951 - restore the viewport's scroll position after focusing list element.\r
if ( CKEDITOR.env.webkit )\r
CKEDITOR.document.getBody().$.scrollTop = scrollTop;\r
\r
// We need this get fired manually because of unfired focus() function.\r
this.allowBlur( true );\r
+\r
+ // Ensure that the first item is focused (http://dev.ckeditor.com/ticket/16804).\r
+ if ( CKEDITOR.env.ie ) {\r
+ CKEDITOR.tools.setTimeout( function() {\r
+ block.markFirstDisplayed ? block.markFirstDisplayed() : block._.markFirstDisplayed();\r
+ }, 0 );\r
+ } else {\r
+ block.markFirstDisplayed ? block.markFirstDisplayed() : block._.markFirstDisplayed();\r
+ }\r
+\r
this._.editor.fire( 'panelShow', this );\r
}, 0, this );\r
}, CKEDITOR.env.air ? 200 : 0, this );\r
hide: function( returnFocus ) {\r
if ( this.visible && ( !this.onHide || this.onHide.call( this ) !== true ) ) {\r
this.hideChild();\r
- // Blur previously focused element. (#6671)\r
+ // Blur previously focused element. (http://dev.ckeditor.com/ticket/6671)\r
CKEDITOR.env.gecko && this._.iframe.getFrameDocument().$.activeElement.blur();\r
this.element.setStyle( 'display', 'none' );\r
this.visible = 0;\r
this.element.getFirst().removeCustomData( 'activePanel' );\r
\r
- // Return focus properly. (#6247)\r
+ // Return focus properly. (http://dev.ckeditor.com/ticket/6247)\r
var focusReturn = returnFocus && this._.returnFocus;\r
if ( focusReturn ) {\r
// Webkit requires focus moved out panel iframe first.\r
* @todo\r
*/\r
allowBlur: function( allow ) {\r
- // Prevent editor from hiding the panel. (#3222)\r
+ // Prevent editor from hiding the panel. (http://dev.ckeditor.com/ticket/3222)\r
var panel = this._.panel;\r
if ( allow !== undefined )\r
panel.allowBlur = allow;\r
panel.showBlock( blockName, offsetParent, corner, offsetX, offsetY );\r
this.blur();\r
\r
- /* #3767 IE: Second level menu may not have borders */\r
+ /* http://dev.ckeditor.com/ticket/3767 IE: Second level menu may not have borders */\r
if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {\r
setTimeout( function() {\r
panel.element.getChild( 0 ).$.style.cssText += '';\r
\r
for ( var i in panels ) {\r
var panel = panels[ i ];\r
- // Safe to destroy it since there're no more instances.(#4241)\r
+ // Safe to destroy it since there're no more instances.(http://dev.ckeditor.com/ticket/4241)\r
if ( isLastInstance )\r
panel.destroy();\r
- // Panel might be used by other instances, just hide them.(#4552)\r
+ // Panel might be used by other instances, just hide them.(http://dev.ckeditor.com/ticket/4552)\r
else\r
panel.element.hide();\r
}\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'format', 'az', {\r
+ label: 'Format',\r
+ panelTitle: 'Abzasın formatı',\r
+ tag_address: 'Ünvan',\r
+ tag_div: 'Normal (DIV)',\r
+ tag_h1: 'Başlıq 1',\r
+ tag_h2: 'Başlıq 2',\r
+ tag_h3: 'Başlıq 3',\r
+ tag_h4: 'Başlıq 4',\r
+ tag_h5: 'Başlıq 5',\r
+ tag_h6: 'Başlıq 6',\r
+ tag_p: 'Normal',\r
+ tag_pre: 'Formatı saxla'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'bn', {\r
- label: 'ফনà§\8dà¦\9f ফরমà§\87à¦\9f',\r
+ label: 'ধরন-পà§\8dরà¦\95à§\83তি',\r
panelTitle: 'ফন্ট ফরমেট',\r
tag_address: 'ঠিকানা',\r
tag_div: 'শীর্ষক (DIV)',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'format', 'es-mx', {\r
+ label: 'Formato',\r
+ panelTitle: 'Formato de párrafo',\r
+ tag_address: 'Dirección',\r
+ tag_div: 'Normal (DIV)',\r
+ tag_h1: 'Encabezado 1',\r
+ tag_h2: 'Encabezado 2',\r
+ tag_h3: 'Encabezado 3',\r
+ tag_h4: 'Encabezado 4',\r
+ tag_h5: 'Encabezado 5',\r
+ tag_h6: 'Encabezado 6',\r
+ tag_p: 'Normal',\r
+ tag_pre: 'Formateado'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'fr', {\r
label: 'Format',\r
panelTitle: 'Format de paragraphe',\r
tag_address: 'Adresse',\r
- tag_div: 'Normal (DIV)',\r
+ tag_div: 'Division',\r
tag_h1: 'Titre 1',\r
tag_h2: 'Titre 2',\r
tag_h3: 'Titre 3',\r
tag_h5: 'Titre 5',\r
tag_h6: 'Titre 6',\r
tag_p: 'Normal',\r
- tag_pre: 'Formaté'\r
+ tag_pre: 'Préformaté'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'hr', {\r
label: 'Format',\r
- panelTitle: 'Format',\r
- tag_address: 'Address',\r
- tag_div: 'Normal (DIV)',\r
- tag_h1: 'Heading 1',\r
- tag_h2: 'Heading 2',\r
- tag_h3: 'Heading 3',\r
- tag_h4: 'Heading 4',\r
- tag_h5: 'Heading 5',\r
- tag_h6: 'Heading 6',\r
- tag_p: 'Normal',\r
+ panelTitle: 'Format paragrafa',\r
+ tag_address: 'Adresa',\r
+ tag_div: 'Normalno (DIV)',\r
+ tag_h1: 'Naslov 1',\r
+ tag_h2: 'Naslov 2',\r
+ tag_h3: 'Naslov 3',\r
+ tag_h4: 'Naslov 4',\r
+ tag_h5: 'Naslov 5',\r
+ tag_h6: 'Naslov 6',\r
+ tag_p: 'Normalno',\r
tag_pre: 'Formatirano'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'format', 'oc', {\r
+ label: 'Format',\r
+ panelTitle: 'Format de paragraf',\r
+ tag_address: 'Adreça',\r
+ tag_div: 'Division (DIV)',\r
+ tag_h1: 'Títol 1',\r
+ tag_h2: 'Títol 2',\r
+ tag_h3: 'Títol 3',\r
+ tag_h4: 'Títol 4',\r
+ tag_h5: 'Títol 5',\r
+ tag_h6: 'Títol 6',\r
+ tag_p: 'Normal',\r
+ tag_pre: 'Preformatat'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'pt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'sl', {\r
label: 'Oblika',\r
- panelTitle: 'Oblika',\r
+ panelTitle: 'Oblika odstavka',\r
tag_address: 'Napis',\r
tag_div: 'Navaden (DIV)',\r
tag_h1: 'Naslov 1',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'format', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.add( 'format', {\r
requires: 'richcombo',\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
init: function( editor ) {\r
if ( editor.blockless )\r
\r
editor[ style.checkActive( elementPath, editor ) ? 'removeStyle' : 'applyStyle' ]( style );\r
\r
- // Save the undo snapshot after all changes are affected. (#4899)\r
+ // Save the undo snapshot after all changes are affected. (http://dev.ckeditor.com/ticket/4899)\r
setTimeout( function() {\r
editor.fire( 'saveSnapshot' );\r
}, 0 );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'horizontalrule', 'az', {\r
+ toolbar: 'Sərhəd xətti yarat'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'bn', {\r
- toolbar: 'রà§\87à¦\96া যà§\81à¦\95à§\8dত à¦\95র'\r
+ toolbar: 'à¦\85নà§\81à¦à§\82মিà¦\95 লাà¦\87ন যà§\8bà¦\97 à¦\95রি'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'horizontalrule', 'es-mx', {\r
+ toolbar: 'Insertar una línea horizontal'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'fr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'horizontalrule', 'oc', {\r
+ toolbar: 'Inserir una linha orizontala'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'pt', {\r
- toolbar: 'Inserir Linha Horizontal'\r
+ toolbar: 'Inserir linha horizontal'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'sl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'horizontalrule', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
// Register a plugin named "horizontalrule".\r
CKEDITOR.plugins.add( pluginName, {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'horizontalrule', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
--- /dev/null
+CKEDITOR.dialog.add( 'html5video', function( editor ) {\r
+ return {\r
+ title: editor.lang.html5video.title,\r
+ minWidth: 500,\r
+ minHeight: 100,\r
+ contents: [ {\r
+ id: 'info',\r
+ label: editor.lang.html5video.infoLabel,\r
+ elements: [ {\r
+ type: 'vbox',\r
+ padding: 0,\r
+ children: [\r
+ {\r
+ type: 'hbox',\r
+ widths: [ '365px', '110px' ],\r
+ align: 'right',\r
+ children: [ {\r
+ type: 'text',\r
+ id: 'url',\r
+ label: editor.lang.html5video.allowed,\r
+ required: true,\r
+ validate: CKEDITOR.dialog.validate.notEmpty( editor.lang.html5video.urlMissing ),\r
+ setup: function( widget ) {\r
+ this.setValue( widget.data.src );\r
+ },\r
+ commit: function( widget ) {\r
+ widget.setData( 'src', this.getValue() );\r
+ }\r
+ },\r
+ {\r
+ type: 'button',\r
+ id: 'browse',\r
+ // v-align with the 'txtUrl' field.\r
+ // TODO: We need something better than a fixed size here.\r
+ style: 'display:inline-block;margin-top:14px;',\r
+ align: 'center',\r
+ label: editor.lang.common.browseServer,\r
+ hidden: true,\r
+ filebrowser: 'info:url'\r
+ } ]\r
+ } ]\r
+ },\r
+ {\r
+ type: 'checkbox',\r
+ id: 'responsive',\r
+ label: editor.lang.html5video.responsive,\r
+ setup: function( widget ) {\r
+ this.setValue( widget.data.responsive );\r
+ },\r
+ commit: function( widget ) {\r
+ widget.setData( 'responsive', this.getValue()?'true':'' );\r
+ }\r
+ },\r
+ {\r
+ type: 'hbox',\r
+ id: 'size',\r
+ children: [ {\r
+ type: 'text',\r
+ id: 'width',\r
+ label: editor.lang.common.width,\r
+ setup: function( widget ) {\r
+ if ( widget.data.width ) {\r
+ this.setValue( widget.data.width );\r
+ }\r
+ },\r
+ commit: function( widget ) {\r
+ widget.setData( 'width', this.getValue() );\r
+ }\r
+ },\r
+ {\r
+ type: 'text',\r
+ id: 'height',\r
+ label: editor.lang.common.height,\r
+ setup: function( widget ) {\r
+ if ( widget.data.height ) {\r
+ this.setValue( widget.data.height );\r
+ }\r
+ },\r
+ commit: function( widget ) {\r
+ widget.setData( 'height', this.getValue() );\r
+ }\r
+ },\r
+ ]\r
+ },\r
+\r
+ {\r
+ type: 'hbox',\r
+ id: 'alignment',\r
+ children: [ {\r
+ type: 'radio',\r
+ id: 'align',\r
+ label: editor.lang.common.align,\r
+ items: [\r
+ [editor.lang.common.alignCenter, 'center'],\r
+ [editor.lang.common.alignLeft, 'left'],\r
+ [editor.lang.common.alignRight, 'right'],\r
+ [editor.lang.common.alignNone, 'none']\r
+ ],\r
+ 'default': 'center',\r
+ setup: function( widget ) {\r
+ if ( widget.data.align ) {\r
+ this.setValue( widget.data.align );\r
+ }\r
+ },\r
+ commit: function( widget ) {\r
+ widget.setData( 'align', this.getValue() );\r
+ }\r
+ } ]\r
+ } ]\r
+ },\r
+ {\r
+ id: 'Upload',\r
+ hidden: true,\r
+ filebrowser: 'uploadButton',\r
+ label: editor.lang.html5video.upload,\r
+ elements: [ {\r
+ type: 'file',\r
+ id: 'upload',\r
+ label: editor.lang.html5video.btnUpload,\r
+ style: 'height:40px',\r
+ size: 38\r
+ },\r
+ {\r
+ type: 'fileButton',\r
+ id: 'uploadButton',\r
+ filebrowser: 'info:url',\r
+ label: editor.lang.html5video.btnUpload,\r
+ 'for': [ 'Upload', 'upload' ]\r
+ } ]\r
+ },\r
+ {\r
+ id: 'advanced',\r
+ label: editor.lang.html5video.advanced,\r
+ elements: [ {\r
+ type: 'vbox',\r
+ padding: 0,\r
+ children: [ {\r
+ type: 'hbox',\r
+ children: [ {\r
+ type: 'radio',\r
+ id: 'autoplay',\r
+ label: editor.lang.html5video.autoplay,\r
+ items: [\r
+ [editor.lang.html5video.yes, 'yes'],\r
+ [editor.lang.html5video.no, 'no']\r
+ ],\r
+ 'default': 'no',\r
+ setup: function( widget ) {\r
+ if ( widget.data.autoplay ) {\r
+ this.setValue( widget.data.autoplay );\r
+ }\r
+ },\r
+ commit: function( widget ) {\r
+ widget.setData( 'autoplay', this.getValue() );\r
+ }\r
+ } ]\r
+ } ]\r
+ } ]\r
+ } ]\r
+ };\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.setLang( 'html5video', 'de', {\r
+ button: 'HTML5 Video einfügen',\r
+ title: 'HTML5 Video',\r
+ infoLabel: 'Video Infos',\r
+ allowed: 'Erlaubte Dateierweiterungen: MP4, WebM, Ogv',\r
+ urlMissing: 'Sie haben keine URL zur Video-Datei angegeben.',\r
+ videoProperties: 'Video-Einstellungen',\r
+ upload: 'Hochladen',\r
+ btnUpload: 'Zum Server senden',\r
+ advanced: 'Erweitert',\r
+ autoplay: 'Autoplay?',\r
+ yes: 'Ja',\r
+ no: 'Nein'\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.setLang( 'html5video', 'en', {\r
+ button: 'Insert HTML5 video',\r
+ title: 'HTML5 video',\r
+ infoLabel: 'Video info',\r
+ allowed: 'Allowed file extensions: MP4, WebM, Ogv',\r
+ urlMissing: 'Video source URL is missing.',\r
+ videoProperties: 'Video properties',\r
+ upload: 'Upload',\r
+ btnUpload: 'Send it to the server',\r
+ advanced: 'Advanced',\r
+ autoplay: 'Autoplay?',\r
+ yes: 'Yes',\r
+ no: 'No',\r
+ responsive: 'Responsive width'\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.setLang( 'html5video', 'es', {\r
+ button: 'Insertar video HTML5',\r
+ title: 'Video HTML5',\r
+ infoLabel: 'Información del video',\r
+ allowed: 'Extensiones de archivo permitidas: MP4, WebM, Ogv',\r
+ urlMissing: 'La URL del video no puede estar vacia.',\r
+ videoProperties: 'Propiedades del video',\r
+ upload: 'Cargar',\r
+ btnUpload: 'Enviar al servidor',\r
+ advanced: 'Avanzado',\r
+ autoplay: '¿Reproducir automáticamente?',\r
+ yes: 'Si',\r
+ no: 'No'\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.setLang( 'html5video', 'eu', {\r
+ button: 'Txertatu HTML5 bideoa',\r
+ title: 'HTML5 bideoa',\r
+ infoLabel: 'Bideoaren informazioa',\r
+ allowed: 'Baimendutako fitxategi luzapenak: MP4, WebM, Ogv',\r
+ urlMissing: 'Bideoaren URLak ezin du hutsik egon.',\r
+ videoProperties: 'Bideoaren propietateak',\r
+ upload: 'Kargatu',\r
+ btnUpload: 'Bidali zerbitzarira',\r
+ advanced: 'Aurreratua',\r
+ autoplay: 'Automatikoki erreproduzitu?',\r
+ yes: 'Bai',\r
+ no: 'Ez'\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.setLang( 'html5video', 'fr', {\r
+ button: 'Insérer un lecteur video HTML5',\r
+ title: 'HTML5 video',\r
+ infoLabel: 'Informations video',\r
+ allowed: 'Extensions de fichiers autorisées: MP4, WebM, Ogv',\r
+ urlMissing: 'URL de la source video manquante. Veuillez la renseigner.',\r
+ videoProperties: 'Propriétés Video',\r
+ upload: 'Télécharger',\r
+ btnUpload: 'Envoyer vers le serveur',\r
+ advanced: 'Avancé',\r
+ autoplay: 'Jouer automatiquement ?',\r
+ yes: 'Oui',\r
+ no: 'Non'\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.setLang( 'html5video', 'ru', {\r
+ button: 'Вставить HTML5 видео',\r
+ title: 'HTML5 видео',\r
+ infoLabel: 'Видео',\r
+ allowed: 'Допустимые расширения файлов: MP4, WebM, Ogv',\r
+ urlMissing: 'Не выбран источник видео',\r
+ videoProperties: 'Свойства видео',\r
+ upload: 'Загрузить',\r
+ btnUpload: 'Загрузить на сервер',\r
+ advanced: 'Дополнительно',\r
+ autoplay: 'Автовоспроизведение',\r
+ yes: 'Да',\r
+ no: 'Нет',\r
+ responsive: 'Адаптивная ширина'\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.setLang( 'html5video', 'uk', {\r
+ button: 'Вставити HTML5 відео',\r
+ title: 'HTML5 відео',\r
+ infoLabel: 'Інформація',\r
+ allowed: 'Допустимі розширення файлів: MP4, WebM, Ogv',\r
+ urlMissing: 'Не обрано джерела відео',\r
+ videoProperties: 'Властивості відео',\r
+ upload: 'Відвантажити',\r
+ btnUpload: 'Відвантажити на сервер',\r
+ advanced: 'Додатково',\r
+ autoplay: 'Автовідтворення?',\r
+ yes: 'Так',\r
+ no: 'Ні'\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.setLang( 'html5video', 'uz', {\r
+ button: 'HTML5 video qo‘shing',\r
+ title: 'HTML5 video',\r
+ infoLabel: 'Video ma\'lumot',\r
+ allowed: 'Ruxsat etilgan kengaytmalar: MP4, WebM, Ogv',\r
+ urlMissing: 'Video\'ning URL manbasi topilmadi.',\r
+ videoProperties: 'Video xususiyatlari',\r
+ upload: 'Yuklash',\r
+ btnUpload: 'Serverga jo‘natish',\r
+ advanced: 'Kengaytrilgan',\r
+ autoplay: 'Avtoijro?',\r
+ yes: 'Ha',\r
+ no: 'Yo‘q'\r
+} );\r
--- /dev/null
+CKEDITOR.plugins.add( 'html5video', {\r
+ requires: 'widget',\r
+ lang: 'de,en,eu,es,ru,uk,fr',\r
+ icons: 'html5video',\r
+ init: function( editor ) {\r
+ editor.widgets.add( 'html5video', {\r
+ button: editor.lang.html5video.button,\r
+ template: '<div class="ckeditor-html5-video"></div>',\r
+ /*\r
+ * Allowed content rules (http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules):\r
+ * - div-s with text-align,float,margin-left,margin-right inline style rules and required ckeditor-html5-video class.\r
+ * - video tags with src, controls, width and height attributes.\r
+ */\r
+ allowedContent: 'div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,controls,autoplay,width, height]{max-width,height};',\r
+ requiredContent: 'div(ckeditor-html5-video); video[src,controls];',\r
+ upcast: function( element ) {\r
+ return element.name === 'div' && element.hasClass( 'ckeditor-html5-video' );\r
+ },\r
+ dialog: 'html5video',\r
+ init: function() {\r
+ var src = '';\r
+ var autoplay = '';\r
+ var align = this.element.getStyle( 'text-align' );\r
+\r
+ var width = '';\r
+ var height = '';\r
+\r
+ // If there's a child (the video element)\r
+ if ( this.element.getChild( 0 ) ) {\r
+ // get it's attributes.\r
+ src = this.element.getChild( 0 ).getAttribute( 'src' );\r
+ width = this.element.getChild( 0 ).getAttribute( 'width' );\r
+ height = this.element.getChild( 0 ).getAttribute( 'height' );\r
+ autoplay = this.element.getChild( 0 ).getAttribute( 'autoplay' );\r
+ responsive = this.element.getAttribute( 'data-responsive' );\r
+ }\r
+\r
+ if ( src ) {\r
+ this.setData( 'src', src );\r
+\r
+ if ( align ) {\r
+ this.setData( 'align', align );\r
+ } else {\r
+ this.setData( 'align', 'none' );\r
+ }\r
+\r
+ if ( width ) {\r
+ this.setData( 'width', width );\r
+ }\r
+\r
+ if ( height ) {\r
+ this.setData( 'height', height );\r
+ }\r
+\r
+ if ( autoplay ) {\r
+ this.setData( 'autoplay', 'yes' );\r
+ }\r
+\r
+ if ( responsive ) {\r
+ this.setData( 'responsive', responsive );\r
+ }\r
+ }\r
+ },\r
+ data: function() {\r
+ // If there is an video source\r
+ if ( this.data.src ) {\r
+ // and there isn't a child (the video element)\r
+ if ( !this.element.getChild( 0 ) ) {\r
+ // Create a new <video> element.\r
+ var videoElement = new CKEDITOR.dom.element( 'video' );\r
+ // Set the controls attribute.\r
+ videoElement.setAttribute( 'controls', 'controls' );\r
+ // Append it to the container of the plugin.\r
+ this.element.append( videoElement );\r
+ }\r
+ this.element.getChild( 0 ).setAttribute( 'src', this.data.src );\r
+ if (this.data.width) this.element.getChild( 0 ).setAttribute( 'width', this.data.width );\r
+ if (this.data.height) this.element.getChild( 0 ).setAttribute( 'height', this.data.height );\r
+\r
+ if ( this.data.responsive ) {\r
+ this.element.setAttribute("data-responsive", this.data.responsive);\r
+ this.element.getChild( 0 ).setStyle( 'max-width', '100%' );\r
+ this.element.getChild( 0 ).setStyle( 'height', 'auto' );\r
+ } else {\r
+ this.element.getChild( 0 ).removeStyle( 'max-width' );\r
+ this.element.getChild( 0 ).removeStyle( 'height' );\r
+ }\r
+ }\r
+\r
+ this.element.removeStyle( 'float' );\r
+ this.element.removeStyle( 'margin-left' );\r
+ this.element.removeStyle( 'margin-right' );\r
+\r
+ if ( this.data.align === 'none' ) {\r
+ this.element.removeStyle( 'text-align' );\r
+ } else {\r
+ this.element.setStyle( 'text-align', this.data.align );\r
+ }\r
+\r
+ if ( this.data.align === 'left' ) {\r
+ this.element.setStyle( 'float', this.data.align );\r
+ this.element.setStyle( 'margin-right', '10px' );\r
+ } else if ( this.data.align === 'right' ) {\r
+ this.element.setStyle( 'float', this.data.align );\r
+ this.element.setStyle( 'margin-left', '10px' );\r
+ }\r
+\r
+ if ( this.element.getChild( 0 ) ) {\r
+ if ( this.data.autoplay === 'yes' ) {\r
+ this.element.getChild( 0 ).setAttribute( 'autoplay', 'autoplay' );\r
+ } else {\r
+ this.element.getChild( 0 ).removeAttribute( 'autoplay' );\r
+ }\r
+ }\r
+ }\r
+ } );\r
+\r
+ if ( editor.contextMenu ) {\r
+ editor.addMenuGroup( 'html5videoGroup' );\r
+ editor.addMenuItem( 'html5videoPropertiesItem', {\r
+ label: editor.lang.html5video.videoProperties,\r
+ icon: 'html5video',\r
+ command: 'html5video',\r
+ group: 'html5videoGroup'\r
+ });\r
+\r
+ editor.contextMenu.addListener( function( element ) {\r
+ if ( element &&\r
+ element.getChild( 0 ) &&\r
+ element.getChild( 0 ).hasClass &&\r
+ element.getChild( 0 ).hasClass( 'ckeditor-html5-video' ) ) {\r
+ return { html5videoPropertiesItem: CKEDITOR.TRISTATE_OFF };\r
+ }\r
+ });\r
+ }\r
+\r
+ CKEDITOR.dialog.add( 'html5video', this.path + 'dialogs/html5video.js' );\r
+ }\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
this._.indent = 0;\r
this._.indentation = '';\r
- // Indicate preformatted block context status. (#5789)\r
+ // Indicate preformatted block context status. (http://dev.ckeditor.com/ticket/5789)\r
this._.inPre = 0;\r
this._.rules = {};\r
\r
\r
if ( typeof attValue == 'string' ) {\r
this.forceSimpleAmpersand && ( attValue = attValue.replace( /&/g, '&' ) );\r
- // Browsers don't always escape special character in attribute values. (#4683, #4719).\r
+ // Browsers don't always escape special character in attribute values. (http://dev.ckeditor.com/ticket/4683, http://dev.ckeditor.com/ticket/4719).\r
attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );\r
}\r
\r
this._.indentation = '';\r
this._.afterCloser = 0;\r
this._.inPre = 0;\r
+ this._.needsSpace = 0;\r
},\r
\r
/**\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
// A subset of the specified attributes/styles\r
// should also be applied on the fake element to\r
- // have better visual effect. (#5240)\r
+ // have better visual effect. (http://dev.ckeditor.com/ticket/5240)\r
var extraStyles = {},\r
extraAttributes = {};\r
this.commitContent( iframeNode, extraStyles, extraAttributes );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'iframe', 'az', {\r
+ border: 'Çərçivə sərhədlərini göstər',\r
+ noUrl: 'Çərçivənin ünvanı daxil edin',\r
+ scrolling: 'Şürüşdürmələri əlavə et',\r
+ title: 'İFRAME elementinin alətləri',\r
+ toolbar: 'İFRAME'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'bn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'iframe', 'es-mx', {\r
+ border: 'Mostrar el borde del marco',\r
+ noUrl: 'Ingresa la URL del iframe',\r
+ scrolling: 'Habilitar la barra de desplazamiento',\r
+ title: 'Propiedades del IFrame',\r
+ toolbar: 'Iframe'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'fr', {\r
- border: 'Afficher une bordure de la IFrame',\r
- noUrl: 'Veuillez entrer l\'adresse du lien de la IFrame',\r
- scrolling: 'Permettre à la barre de défilement',\r
- title: 'Propriétés de la IFrame',\r
- toolbar: 'IFrame'\r
+ border: 'Afficher la bordure du cadre',\r
+ noUrl: 'Veuillez entrer l\'URL du contenu du cadre',\r
+ scrolling: 'Activer les barres de défilement',\r
+ title: 'Propriétés du cadre de contenu incorporé',\r
+ toolbar: 'Cadre de contenu incorporé'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'hr', {\r
border: 'Prikaži okvir IFrame-a',\r
- noUrl: 'Unesite URL iframe-a',\r
+ noUrl: 'Unesite URL IFrame-a',\r
scrolling: 'Omogući trake za skrolanje',\r
title: 'IFrame svojstva',\r
toolbar: 'IFrame'\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'iframe', 'oc', {\r
+ border: 'Afichar la bordadura del quadre',\r
+ noUrl: 'Entratz l\'URL del contengut del quadre',\r
+ scrolling: 'Activar las barras de desfilament',\r
+ title: 'Proprietats del quadre de contengut incorporat',\r
+ toolbar: 'Quadre de contengut incorporat'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'pt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'sl', {\r
- border: 'Pokaži mejo okvira',\r
+ border: 'Pokaži obrobo okvirja',\r
noUrl: 'Prosimo, vnesite iframe URL',\r
- scrolling: 'Omogoči scrollbars',\r
- title: 'IFrame Lastnosti',\r
+ scrolling: 'Omogoči drsnike',\r
+ title: 'Lastnosti IFrame',\r
toolbar: 'IFrame'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'sv', {\r
border: 'Visa ramkant',\r
noUrl: 'Skriv in URL för iFrame',\r
scrolling: 'Aktivera rullningslister',\r
- title: 'iFrame Egenskaper',\r
+ title: 'iFrame-egenskaper',\r
toolbar: 'iFrame'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'iframe', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.add( 'iframe', {\r
requires: 'dialog,fakeobjects',\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'iframe', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
var oImageOriginal = dialog.originalElement;\r
\r
- // Dialog may already closed. (#5505)\r
+ // Dialog may already closed. (http://dev.ckeditor.com/ticket/5505)\r
if ( !oImageOriginal )\r
return null;\r
\r
this.firstLoad = false;\r
this.dontResetSize = false;\r
\r
- // Possible fix for #12818.\r
+ // Possible fix for http://dev.ckeditor.com/ticket/12818.\r
updatePreview( this );\r
};\r
\r
\r
return {\r
title: editor.lang.image[ dialogType == 'image' ? 'title' : 'titleButton' ],\r
- minWidth: 420,\r
+ minWidth: ( CKEDITOR.skinName || editor.config.skin ) == 'moono-lisa' ? 500 : 420,\r
minHeight: 360,\r
onShow: function() {\r
this.imageElement = false;\r
this.linkEditMode = true;\r
\r
// If there is an existing link, by default keep it (true).\r
- // It will be removed if certain conditions are met and Link tab is enabled. (#13351)\r
+ // It will be removed if certain conditions are met and Link tab is enabled. (http://dev.ckeditor.com/ticket/13351)\r
this.addLink = true;\r
\r
// Look for Image element.\r
type: 'hbox',\r
widths: [ '280px', '110px' ],\r
align: 'right',\r
+ className: 'cke_dialog_image_url',\r
children: [ {\r
id: 'txtUrl',\r
type: 'text',\r
this.getDialog().dontResetSize = true;\r
\r
field.setValue( url ); // And call this.onChange()\r
- // Manually set the initial value.(#4191)\r
+ // Manually set the initial value.(http://dev.ckeditor.com/ticket/4191)\r
field.setInitValue();\r
}\r
},\r
{\r
id: 'ratioLock',\r
type: 'html',\r
+ className: 'cke_dialog_image_ratiolock',\r
style: 'margin-top:30px;width:40px;height:40px;',\r
onLoad: function() {\r
// Activate Reset button\r
{\r
type: 'button',\r
id: 'browse',\r
+ className: 'cke_dialog_image_browse',\r
filebrowser: {\r
action: 'Browse',\r
target: 'Link:txtUrl',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'image', 'az', {\r
+ alt: 'Alternativ mətn',\r
+ border: 'Sərhəd',\r
+ btnUpload: 'Serverə yüklə',\r
+ button2Img: 'Şəkil tipli düyməni şəklə çevirmək istədiyinizə əminsinizmi?',\r
+ hSpace: 'Üfüqi boşluq',\r
+ img2Button: 'Şəkli şəkil tipli düyməyə çevirmək istədiyinizə əminsinizmi?',\r
+ infoTab: 'Şəkil haqqında məlumat',\r
+ linkTab: 'Link',\r
+ lockRatio: 'Ölçülərin uyğunluğu saxla',\r
+ menu: 'Şəklin seçimləri',\r
+ resetSize: 'Ölçüləri qaytar',\r
+ title: 'Şəklin seçimləri',\r
+ titleButton: 'Şəkil tipli düyməsinin seçimləri',\r
+ upload: 'Serverə yüklə',\r
+ urlMissing: 'Şəklin ünvanı yanlışdır.',\r
+ vSpace: 'Şaquli boşluq',\r
+ validateBorder: 'Sərhədin eni rəqəm olmalıdır.',\r
+ validateHSpace: 'Üfüqi boşluq rəqəm olmalıdır.',\r
+ validateVSpace: 'Şaquli boşluq rəqəm olmalıdır.'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'bn', {\r
menu: 'ছবির প্রোপার্টি',\r
resetSize: 'সাইজ পূর্বাবস্থায় ফিরিয়ে দাও',\r
title: 'ছবির প্রোপার্টি',\r
- titleButton: 'ছবি বাটন প্রোপার্টি',\r
+ titleButton: 'ছবির বাটন সম্বন্ধীয়',\r
upload: 'আপলোড',\r
urlMissing: 'Image source URL is missing.', // MISSING\r
vSpace: 'ভার্টিকেল স্পেস',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'image', 'es-mx', {\r
+ alt: 'Texto alternativo',\r
+ border: 'Borde',\r
+ btnUpload: 'Enviar al servidor',\r
+ button2Img: '¿Desea transformar el botón de imagen seleccionado en una imagen simple?',\r
+ hSpace: 'Espacio horizontal',\r
+ img2Button: '¿Desea transformar la imagen seleccionada en un botón de imagen?',\r
+ infoTab: 'Información de imagen',\r
+ linkTab: 'Enlace',\r
+ lockRatio: 'Bloquear aspecto',\r
+ menu: 'Propiedades de la imagen',\r
+ resetSize: 'Reiniciar tamaño',\r
+ title: 'Propiedades de la imagen',\r
+ titleButton: 'Propiedades del botón de imagen',\r
+ upload: 'Cargar',\r
+ urlMissing: 'Falta la URL de origen de la imagen.',\r
+ vSpace: 'Espacio vertical',\r
+ validateBorder: 'El borde debe ser un número entero.',\r
+ validateHSpace: 'El espacio horizontal debe ser un número entero.',\r
+ validateVSpace: 'El espacio vertical debe ser un número entero.'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'fr', {\r
- alt: 'Texte de remplacement',\r
+ alt: 'Texte alternatif',\r
border: 'Bordure',\r
btnUpload: 'Envoyer sur le serveur',\r
- button2Img: 'Voulez-vous transformer le bouton image sélectionné en simple image?',\r
+ button2Img: 'Voulez-vous transformer le bouton avec image sélectionné en simple image ?',\r
hSpace: 'Espacement horizontal',\r
- img2Button: 'Voulez-vous transformer l\'image en bouton image?',\r
+ img2Button: 'Voulez-vous transformer l\'image sélectionnée en bouton avec image ?',\r
infoTab: 'Informations sur l\'image',\r
linkTab: 'Lien',\r
lockRatio: 'Conserver les proportions',\r
menu: 'Propriétés de l\'image',\r
- resetSize: 'Taille d\'origine',\r
+ resetSize: 'Réinitialiser la taille',\r
title: 'Propriétés de l\'image',\r
- titleButton: 'Propriétés du bouton image',\r
- upload: 'Envoyer',\r
- urlMissing: 'L\'adresse source de l\'image est manquante.',\r
+ titleButton: 'Propriétés du bouton avec image',\r
+ upload: 'Téléverser',\r
+ urlMissing: 'L\'URL source de l\'image est manquante.',\r
vSpace: 'Espacement vertical',\r
- validateBorder: 'Bordure doit être un entier.',\r
- validateHSpace: 'HSpace doit être un entier.',\r
- validateVSpace: 'VSpace doit être un entier.'\r
+ validateBorder: 'La bordure doit être un nombre entier.',\r
+ validateHSpace: 'L\'espacement horizontal doit être un nombre entier.',\r
+ validateVSpace: 'L\'espacement vertical doit être un nombre entier.'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'hr', {\r
hSpace: 'HSpace',\r
img2Button: 'Želite li promijeniti odabranu sliku u gumb?',\r
infoTab: 'Info slike',\r
- linkTab: 'Link',\r
+ linkTab: 'Veza',\r
lockRatio: 'Zaključaj odnos',\r
menu: 'Svojstva slika',\r
resetSize: 'Obriši veličinu',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'image', 'oc', {\r
+ alt: 'Tèxte alternatiu',\r
+ border: 'Bordadura',\r
+ btnUpload: 'Mandar sul servidor',\r
+ button2Img: 'Volètz transformar lo boton amb imatge seleccionat en imatge simple ?',\r
+ hSpace: 'Espaçament orizontal',\r
+ img2Button: 'Volètz transformar l\'imatge seleccionat en boton amb imatge ?',\r
+ infoTab: 'Informacions sus l\'imatge',\r
+ linkTab: 'Ligam',\r
+ lockRatio: 'Conservar las proporcions',\r
+ menu: 'Proprietats de l\'imatge',\r
+ resetSize: 'Reïnicializar la talha',\r
+ title: 'Proprietats de l\'imatge',\r
+ titleButton: 'Proprietats del boton amb imatge',\r
+ upload: 'Mandar',\r
+ urlMissing: 'L\'URL font de l\'imatge es mancanta.',\r
+ vSpace: 'Espaçament vertical',\r
+ validateBorder: 'La bordadura deu èsser un nombre entièr.',\r
+ validateHSpace: 'L\'espaçament orizontal deu èsser un nombre entièr.',\r
+ validateVSpace: 'L\'espaçament vertical deu èsser un nombre entièr.'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'pt', {\r
- alt: 'Texto Alternativo',\r
+ alt: 'Texto alternativo',\r
border: 'Limite',\r
btnUpload: 'Enviar para o servidor',\r
- button2Img: 'Deseja transformar o botão com imagem selecionado em uma imagem?',\r
- hSpace: 'Esp.Horiz',\r
- img2Button: 'Deseja transformar a imagem selecionada em um botão com imagem?',\r
- infoTab: 'Informação da Imagem',\r
+ button2Img: 'Deseja transformar o botão com imagem selecionado numa imagem simples?',\r
+ hSpace: 'Esp. Horiz',\r
+ img2Button: 'Deseja transformar a imagem selecionada num botão com imagem?',\r
+ infoTab: 'Informação da imagem',\r
linkTab: 'Hiperligação',\r
lockRatio: 'Proporcional',\r
menu: 'Propriedades da Imagem',\r
- resetSize: 'Tamanho Original',\r
- title: 'Propriedades da Imagem',\r
- titleButton: 'Propriedades do Botão de imagens',\r
+ resetSize: 'Tamanho original',\r
+ title: 'Propriedades da imagem',\r
+ titleButton: 'Propriedades do botão de imagem',\r
upload: 'Carregar',\r
- urlMissing: 'O URL da fonte da imagem está em falta.',\r
- vSpace: 'Esp.Vert',\r
- validateBorder: 'A borda tem de ser um numero.',\r
+ urlMissing: 'O URL de origem da imagem está em falta.',\r
+ vSpace: 'Esp. Vert',\r
+ validateBorder: 'A borda tem de ser um número inteiro.',\r
validateHSpace: 'HSpace tem de ser um numero.',\r
validateVSpace: 'VSpace tem de ser um numero.'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'sl', {\r
alt: 'Nadomestno besedilo',\r
border: 'Obroba',\r
btnUpload: 'Pošlji na strežnik',\r
- button2Img: 'Želiš pretvoriti izbrani gumb s sliko v preprosto sliko?',\r
- hSpace: 'Vodoravni razmik',\r
- img2Button: 'Želiš pretvoriti izbrano sliko v gumb s sliko?',\r
+ button2Img: 'Želite pretvoriti izbrani gumb s sliko v preprosto sliko?',\r
+ hSpace: 'Vodoravni odmik',\r
+ img2Button: 'Želite pretvoriti izbrano sliko v gumb s sliko?',\r
infoTab: 'Podatki o sliki',\r
linkTab: 'Povezava',\r
lockRatio: 'Zakleni razmerje',\r
resetSize: 'Ponastavi velikost',\r
title: 'Lastnosti slike',\r
titleButton: 'Lastnosti gumba s sliko',\r
- upload: 'Pošlji',\r
- urlMissing: 'Manjka vir (URL) slike.',\r
- vSpace: 'Navpični razmik',\r
+ upload: 'Naloži',\r
+ urlMissing: 'Manjka URL vira slike.',\r
+ vSpace: 'Navpični odmik',\r
validateBorder: 'Meja mora biti celo število.',\r
- validateHSpace: 'HSpace mora biti celo število.',\r
+ validateHSpace: 'Vodoravni odmik mora biti celo število.',\r
validateVSpace: 'VSpace mora biti celo število.'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'image', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.add( 'image', {\r
requires: 'dialog',\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'image', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
init: function( editor ) {\r
// Abort when Image2 is to be loaded since both plugins\r
- // share the same button, command, etc. names (#11222).\r
+ // share the same button, command, etc. names (http://dev.ckeditor.com/ticket/11222).\r
if ( editor.plugins.image2 )\r
return;\r
\r
},\r
afterInit: function( editor ) {\r
// Abort when Image2 is to be loaded since both plugins\r
- // share the same button, command, etc. names (#11222).\r
+ // share the same button, command, etc. names (http://dev.ckeditor.com/ticket/11222).\r
if ( editor.plugins.image2 )\r
return;\r
\r
- // Customize the behavior of the alignment commands. (#7430)\r
+ // Customize the behavior of the alignment commands. (http://dev.ckeditor.com/ticket/7430)\r
setupAlignCommand( 'left' );\r
setupAlignCommand( 'right' );\r
setupAlignCommand( 'center' );\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'indent', 'az', {\r
+ indent: 'Sol boşluqu artır',\r
+ outdent: 'Sol boşluqu azalt'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'bn', {\r
- indent: 'à¦\87নডà§\87নà§\8dà¦\9f বাà§\9cাà¦\93',\r
+ indent: 'à¦\87নডà§\87নà§\8dà¦\9f বাà§\9cাà¦\87',\r
outdent: 'ইনডেন্ট কমাও'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'indent', 'es-mx', {\r
+ indent: 'Incrementar sangría',\r
+ outdent: 'Decrementar sangría'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'fr', {\r
- indent: 'Augmenter le retrait (tabulation)',\r
- outdent: 'Diminuer le retrait (tabulation)'\r
+ indent: 'Augmenter le retrait',\r
+ outdent: 'Diminuer le retrait'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'indent', 'oc', {\r
+ indent: 'Aumentar l\'alinèa',\r
+ outdent: 'Dmesir l\'alinèa'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'pt', {\r
- indent: 'Aumentar Avanço',\r
- outdent: 'Diminuir Avanço'\r
+ indent: 'Aumentar avanço',\r
+ outdent: 'Diminuir avanço'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'sl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'indent', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
CKEDITOR.plugins.add( 'indent', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'indent,indent-rtl,outdent,outdent-rtl', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
}\r
};\r
\r
+ this.contentTransformations = [\r
+ [ 'div: splitMarginShorthand' ],\r
+ [ 'h1: splitMarginShorthand' ],\r
+ [ 'h2: splitMarginShorthand' ],\r
+ [ 'h3: splitMarginShorthand' ],\r
+ [ 'h4: splitMarginShorthand' ],\r
+ [ 'h5: splitMarginShorthand' ],\r
+ [ 'h6: splitMarginShorthand' ],\r
+ [ 'ol: splitMarginShorthand' ],\r
+ [ 'p: splitMarginShorthand' ],\r
+ [ 'pre: splitMarginShorthand' ],\r
+ [ 'ul: splitMarginShorthand' ]\r
+ ];\r
+\r
if ( this.enterBr )\r
this.allowedContent.div = true;\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
// Indent and outdent lists with TAB/SHIFT+TAB key. Indenting can\r
// be done for any list item that isn't the first child of the parent.\r
editor.on( 'key', function( evt ) {\r
+ var path = editor.elementPath();\r
+\r
if ( editor.mode != 'wysiwyg' )\r
return;\r
\r
if ( evt.data.keyCode == this.indentKey ) {\r
- var list = this.getContext( editor.elementPath() );\r
+ // Prevent of getting context of empty path (#424)(https://dev.ckeditor.com/ticket/17028).\r
+ if ( !path ) {\r
+ return;\r
+ }\r
+\r
+ var list = this.getContext( path );\r
\r
if ( list ) {\r
// Don't indent if in first list item of the parent.\r
// Outdent, however, can always be done to collapse\r
// the list into a paragraph (div).\r
- if ( this.isIndent && CKEDITOR.plugins.indentList.firstItemInPath( this.context, editor.elementPath(), list ) )\r
+ if ( this.isIndent && CKEDITOR.plugins.indentList.firstItemInPath( this.context, path, list ) )\r
return;\r
\r
// Exec related global indentation command. Global\r
function indentList( editor ) {\r
var that = this,\r
database = this.database,\r
- context = this.context;\r
+ context = this.context,\r
+ range;\r
\r
function indent( listNode ) {\r
// Our starting and ending points of the range might be inside some blocks under a list item...\r
\r
for ( i = startItem.getCustomData( 'listarray_index' ); i <= lastItem.getCustomData( 'listarray_index' ); i++ ) {\r
listArray[ i ].indent += indentOffset;\r
- // Make sure the newly created sublist get a brand-new element of the same type. (#5372)\r
+ // Make sure the newly created sublist get a brand-new element of the same type. (http://dev.ckeditor.com/ticket/5372)\r
if ( indentOffset > 0 ) {\r
var listRoot = listArray[ i ].parent;\r
listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() );\r
var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, listNode.getDirection() );\r
\r
// Avoid nested <li> after outdent even they're visually same,\r
- // recording them for later refactoring.(#3982)\r
+ // recording them for later refactoring.(http://dev.ckeditor.com/ticket/3982)\r
if ( !that.isIndent ) {\r
var parentLiElement;\r
if ( ( parentLiElement = listNode.getParent() ) && parentLiElement.is( 'li' ) ) {\r
// Nest preceding <ul>/<ol> inside current <li> if any.\r
while ( ( followingList = followingList.getNext() ) && followingList.is && followingList.getName() in context ) {\r
// IE requires a filler NBSP for nested list inside empty list item,\r
- // otherwise the list item will be inaccessiable. (#4476)\r
+ // otherwise the list item will be inaccessiable. (http://dev.ckeditor.com/ticket/4476)\r
if ( CKEDITOR.env.needsNbspFiller && !li.getFirst( neitherWhitespacesNorBookmark ) )\r
li.append( range.document.createText( '\u00a0' ) );\r
\r
\r
var selection = editor.getSelection(),\r
ranges = selection && selection.getRanges(),\r
- iterator = ranges.createIterator(),\r
- range;\r
+ iterator = ranges.createIterator();\r
\r
while ( ( range = iterator.getNextRange() ) ) {\r
var nearestListBlock = range.getCommonAncestor();\r
\r
while ( nearestListBlock && !( nearestListBlock.type == CKEDITOR.NODE_ELEMENT && context[ nearestListBlock.getName() ] ) ) {\r
- // Avoid having plugin propagate to parent of editor in inline mode by canceling the indentation. (#12796)\r
+ // Avoid having plugin propagate to parent of editor in inline mode by canceling the indentation. (http://dev.ckeditor.com/ticket/12796)\r
if ( editor.editable().equals( nearestListBlock ) ) {\r
nearestListBlock = false;\r
break;\r
range.setEndAt( nearestListBlock, CKEDITOR.POSITION_BEFORE_END );\r
}\r
\r
- // Avoid having selection enclose the entire list. (#6138)\r
+ // Avoid having selection enclose the entire list. (http://dev.ckeditor.com/ticket/6138)\r
// [<ul><li>...</li></ul>] =><ul><li>[...]</li></ul>\r
if ( !nearestListBlock ) {\r
var selectedNode = range.getEnclosedNode();\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'justify', 'az', {\r
+ block: 'Eninə görə',\r
+ center: 'Mərkəz',\r
+ left: 'Soldan düzləndir',\r
+ right: 'Sağdan düzləndir'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'bn', {\r
- block: 'বà§\8dলà¦\95 à¦\9cাসà§\8dà¦\9fিফাà¦\87',\r
+ block: 'যাà¦\9aাà¦\87 à¦\95রি',\r
center: 'মাঝ বরাবর ঘেষা',\r
left: 'বা দিকে ঘেঁষা',\r
right: 'ডান দিকে ঘেঁষা'\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'justify', 'es-mx', {\r
+ block: 'Justificar',\r
+ center: 'Centrar',\r
+ left: 'Alinear a la izquierda',\r
+ right: 'Alinear a la derecha'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'fr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'justify', 'oc', {\r
+ block: 'Justificar',\r
+ center: 'Centrar',\r
+ left: 'Alinhar a esquèrra',\r
+ right: 'Alinhar a dreita'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'pt', {\r
block: 'Justificado',\r
- center: 'Alinhar ao Centro',\r
+ center: 'Alinhar ao centro',\r
left: 'Alinhar à esquerda',\r
right: 'Alinhar à direita'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'sl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'justify', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
this.name = name;\r
this.value = value;\r
this.context = 'p';\r
-\r
var classes = editor.config.justifyClasses,\r
blockTag = editor.config.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div';\r
\r
if ( block.isReadOnly() )\r
continue;\r
\r
+ // Check if style or class might be applied to currently processed element (#455).\r
+ var tag = block.getName(),\r
+ isAllowedTextAlign, isAllowedCssClass;\r
+\r
+ isAllowedTextAlign = editor.activeFilter.check( tag + '{text-align}' );\r
+ isAllowedCssClass = editor.activeFilter.check( tag + '(' + cssClassName + ')' );\r
+\r
+ if ( !isAllowedCssClass && !isAllowedTextAlign ) {\r
+ continue;\r
+ }\r
+\r
block.removeAttribute( 'align' );\r
block.removeStyle( 'text-align' );\r
\r
\r
var apply = ( this.state == CKEDITOR.TRISTATE_OFF ) && ( !useComputedState || ( getAlignment( block, true ) != this.value ) );\r
\r
- if ( cssClassName ) {\r
+ if ( cssClassName && isAllowedCssClass ) {\r
// Append the desired class name.\r
if ( apply )\r
block.addClass( cssClassName );\r
else if ( !className )\r
block.removeAttribute( 'class' );\r
- } else if ( apply ) {\r
+ } else if ( apply && isAllowedTextAlign ) {\r
block.setStyle( 'text-align', this.value );\r
}\r
}\r
},\r
\r
refresh: function( editor, path ) {\r
- var firstBlock = path.block || path.blockLimit;\r
-\r
- this.setState( firstBlock.getName() != 'body' && getAlignment( firstBlock, this.editor.config.useComputedState ) == this.value ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );\r
+ var firstBlock = path.block || path.blockLimit,\r
+ name = firstBlock.getName(),\r
+ isEditable = firstBlock.equals( editor.editable() ),\r
+ isStylable = this.cssClassName ? editor.activeFilter.check( name + '(' + this.cssClassName + ')' ) :\r
+ editor.activeFilter.check( name + '{text-align}' );\r
+\r
+ // #455\r
+ // 1. Check if we are directly in editbale. Justification should be always allowed, and not highlighted.\r
+ // Checking path.elements.length is required to filter out situation `body > ul` where ul is selected and path.blockLimit returns editable.\r
+ // 2. Check if current element can have applied specific class.\r
+ // 3. Check if current element can have applied text-align style.\r
+ if ( isEditable && path.elements.length === 1 ) {\r
+ this.setState( CKEDITOR.TRISTATE_OFF );\r
+ } else if ( !isEditable && isStylable ) {\r
+ // 2 & 3 in one condition.\r
+ this.setState( getAlignment( firstBlock, this.editor.config.useComputedState ) == this.value ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );\r
+ } else {\r
+ this.setState( CKEDITOR.TRISTATE_DISABLED );\r
+ }\r
}\r
};\r
\r
CKEDITOR.plugins.add( 'justify', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'justifyblock,justifycenter,justifyleft,justifyright', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
toolbar: 'align,40'\r
} );\r
}\r
-\r
editor.on( 'dirChanged', onDirChanged );\r
}\r
} );\r
--- /dev/null
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+ <meta charset="utf-8">\r
+ <title>Widget Drag & Drop with Lineutils — CKEditor Sample</title>\r
+ <script src="../../../ckeditor.js"></script>\r
+ <script>\r
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )\r
+ CKEDITOR.tools.enableHtml5Elements( document );\r
+ </script>\r
+ <link href="../../../samples/old/sample.css" rel="stylesheet">\r
+ <link href="../../image2/samples/contents.css" rel="stylesheet">\r
+</head>\r
+<body>\r
+ <h1 class="samples">\r
+ <a href="../../../samples/old/index.html">CKEditor Samples</a> » Widget Drag & Drop with Lineutils\r
+ </h1>\r
+\r
+ <h3>Classic (iframe-based) Editor</h3>\r
+\r
+ <textarea id="editor1" cols="10" rows="10">\r
+ <h1>Apollo 11</h1>\r
+\r
+ <figure class="caption" style="float:right"><img alt="Saturn V" src="../../image2/samples/assets/image1.jpg" width="200" />\r
+ <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+ </figure>\r
+\r
+ <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p>\r
+\r
+ <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>\r
+\r
+ <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>\r
+\r
+ <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>\r
+\r
+ <blockquote>\r
+ <p>One small step for [a] man, one giant leap for mankind.</p>\r
+ </blockquote>\r
+\r
+ <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>\r
+\r
+ <div style="text-align:center">\r
+ <figure class="caption" style="display:inline-block"><img alt="The Eagle" height="123" src="../../image2/samples/assets/image2.jpg" width="136" />\r
+ <figcaption>The Eagle in lunar orbit</figcaption>\r
+ </figure>\r
+ </div>\r
+\r
+ <blockquote>\r
+ <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>\r
+ </blockquote>\r
+\r
+ <figure class="caption" style="float:right"><img alt="The Eagle" src="../../image2/samples/assets/image2.jpg" width="200" />\r
+ <figcaption>The Eagle in lunar orbit</figcaption>\r
+ </figure>\r
+\r
+ <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>\r
+\r
+ <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p>\r
+\r
+ <ol>\r
+ <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>\r
+ <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>\r
+ <li><strong>Lunar Module</strong> for landing on the Moon.</li>\r
+ </ol>\r
+\r
+ <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>\r
+\r
+ <figure class="caption"><img alt="Saturn V" height="129" src="../../image2/samples/assets/image1.jpg" width="101" />\r
+ <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+ </figure>\r
+\r
+ <hr />\r
+ <p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>\r
+\r
+ </textarea>\r
+\r
+ <h3>Inline Editor</h3>\r
+\r
+ <div id="editor2" contenteditable="true" style="outline: 2px solid #ccc">\r
+ <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+ <tbody>\r
+ <tr>\r
+ <td>This table</td>\r
+ <td>is the</td>\r
+ <td>very first</td>\r
+ <td>element of the document.</td>\r
+ </tr>\r
+ <tr>\r
+ <td>We are still</td>\r
+ <td>able to acces</td>\r
+ <td>the space before it.</td>\r
+ <td style="padding: 25px">\r
+ <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+ <tbody>\r
+ <tr>\r
+ <td>This table is inside of a cell of another table.</td>\r
+ </tr>\r
+ <tr>\r
+ <td>We can type either before or after it though.</td>\r
+ </tr>\r
+ </tbody>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </tbody>\r
+ </table>\r
+\r
+ <hr />\r
+ <hr />\r
+ <ol style="width: 300px">\r
+ <li>This numbered list...</li>\r
+ <li>...is a neighbour of a horizontal line...</li>\r
+ <li style="padding: 20px;">\r
+ <ol>\r
+ <li>Nested list!</li>\r
+ </ol>\r
+ </li>\r
+ </ol>\r
+\r
+ <figure class="caption"><img alt="Saturn V" src="../../image2/samples/assets/image1.jpg" width="100" />\r
+ <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+ </figure>\r
+\r
+ <ul style="width: 450px">\r
+ <li>We can type between the lists...</li>\r
+ <li>...thanks to <strong>Magicline</strong>.</li>\r
+ </ul>\r
+\r
+ <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>\r
+\r
+ <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>\r
+\r
+ <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>\r
+\r
+ <div id="last" style="padding: 10px; text-align: center;">\r
+ <p>This text is wrapped in a <tt>DIV</tt> element. We can type after this element though.</p>\r
+ </div>\r
+ </div>\r
+\r
+ <script>\r
+\r
+ CKEDITOR.replace( 'editor1', {\r
+ extraPlugins: 'image2',\r
+ height: 450,\r
+ removePlugins: 'image,forms',\r
+ contentsCss: [ '../../../contents.css', '../../image2/samples/contents.css' ]\r
+ } );\r
+\r
+ CKEDITOR.inline( 'editor2', {\r
+ extraPlugins: 'image2',\r
+ height: 450,\r
+ removePlugins: 'image,forms'\r
+ } );\r
+\r
+ </script>\r
+\r
+ <div id="footer">\r
+ <hr>\r
+ <p>\r
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
+ </p>\r
+ <p id="copy">\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Knabben. All rights reserved.\r
+ </p>\r
+ </div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+ <meta charset="utf-8">\r
+ <title>Lineutils — CKEditor Sample</title>\r
+ <script src="../../../ckeditor.js"></script>\r
+ <link href="../../../samples/old/sample.css" rel="stylesheet">\r
+</head>\r
+<body>\r
+ <h1 class="samples">\r
+ <a href="../../../samples/old/index.html">CKEditor Samples</a> » Lineutils\r
+ </h1>\r
+\r
+ <h3>Classic (iframe-based) Editor</h3>\r
+\r
+ <textarea id="editor1" cols="10" rows="10">\r
+ <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+ <tbody>\r
+ <tr>\r
+ <td>This table</td>\r
+ <td>is the</td>\r
+ <td>very first</td>\r
+ <td>element of the document.</td>\r
+ </tr>\r
+ <tr>\r
+ <td>We are still</td>\r
+ <td>able to acces</td>\r
+ <td>the space before it.</td>\r
+ <td style="padding: 25px">\r
+ <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+ <tbody>\r
+ <tr>\r
+ <td>This table is inside of a cell of another table.</td>\r
+ </tr>\r
+ <tr>\r
+ <td>We can type either before or after it though.</td>\r
+ </tr>\r
+ </tbody>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </tbody>\r
+ </table>\r
+\r
+ <p>Two succesive horizontal lines (<tt>HR</tt> tags). We can access the space in between:</p>\r
+\r
+ <hr />\r
+ <hr />\r
+ <ol style="width: 300px">\r
+ <li>This numbered list...</li>\r
+ <li>...is a neighbour of a horizontal line...</li>\r
+ <li style="padding: 20px;">\r
+ <ol>\r
+ <li>Nested list!</li>\r
+ </ol>\r
+ </li>\r
+ </ol>\r
+\r
+ <ul style="width: 450px">\r
+ <li>We can type between the lists...</li>\r
+ <li>...thanks to <strong>Magicline</strong>.</li>\r
+ </ul>\r
+\r
+ <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>\r
+\r
+ <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>\r
+\r
+ <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>\r
+\r
+ <div id="last" style="padding: 10px; text-align: center;">\r
+ <p>This text is wrapped in a <tt>DIV</tt> element. We can type after this element though.</p>\r
+ </div>\r
+ </textarea>\r
+\r
+ <h3>Inline Editor</h3>\r
+\r
+ <div id="editor2" contenteditable="true" style="outline: 2px solid #ccc">\r
+ <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+ <tbody>\r
+ <tr>\r
+ <td>This table</td>\r
+ <td>is the</td>\r
+ <td>very first</td>\r
+ <td>element of the document.</td>\r
+ </tr>\r
+ <tr>\r
+ <td>We are still</td>\r
+ <td>able to acces</td>\r
+ <td>the space before it.</td>\r
+ <td style="padding: 25px">\r
+ <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+ <tbody>\r
+ <tr>\r
+ <td>This table is inside of a cell of another table.</td>\r
+ </tr>\r
+ <tr>\r
+ <td>We can type either before or after it though.</td>\r
+ </tr>\r
+ </tbody>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </tbody>\r
+ </table>\r
+\r
+ <p>Two succesive horizontal lines (<tt>HR</tt> tags). We can access the space in between:</p>\r
+\r
+ <hr />\r
+ <hr />\r
+ <ol style="width: 300px">\r
+ <li>This numbered list...</li>\r
+ <li>...is a neighbour of a horizontal line...</li>\r
+ <li style="padding: 20px;">\r
+ <ol>\r
+ <li>Nested list!</li>\r
+ </ol>\r
+ </li>\r
+ </ol>\r
+\r
+ <ul style="width: 450px">\r
+ <li>We can type between the lists...</li>\r
+ <li>...thanks to <strong>Magicline</strong>.</li>\r
+ </ul>\r
+\r
+ <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>\r
+\r
+ <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>\r
+\r
+ <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>\r
+\r
+ <div id="last" style="padding: 10px; text-align: center;">\r
+ <p>This text is wrapped in a <tt>DIV</tt> element. We can type after this element though.</p>\r
+ </div>\r
+ </div>\r
+\r
+ <h3>Extreme inline</h3>\r
+\r
+ <div id="editor3" contenteditable="true" style="left: 123px; outline: 1px solid red; border: 15px solid green; position: relative; top: 30; left: 30px;">\r
+ <div style="padding: 20px; background: gray; width: 300px" class="1">Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim.</div>\r
+ <div style="background: violet; padding: 30px;" class="static">\r
+ Position static\r
+ <div style="background: green; padding: 30px; border: 14px solid orange">foo</div>\r
+ </div>\r
+ <dl class="2">\r
+ <dt>Key</dt><dd>Value</dd>\r
+ </dl>\r
+ <div>Whatever</div>\r
+ <hr id="hr">\r
+ <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>\r
+ <hr>\r
+ <hr>\r
+ <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>\r
+ <div style="background: green; padding: 30px; width: 200px">foo</div>\r
+ </div>\r
+\r
+ <h3>Classic (iframe-based) Editor, H-scroll</h3>\r
+\r
+ <textarea id="editor4" cols="10" rows="10">\r
+ <hr />\r
+ <hr />\r
+ <ol style="width: 1500px">\r
+ <li>This numbered list...</li>\r
+ <li>...is a neighbour of a horizontal line...</li>\r
+ <li style="padding: 20px;">\r
+ <ol>\r
+ <li>Nested list!</li>\r
+ </ol>\r
+ </li>\r
+ </ol>\r
+\r
+ <ul style="width: 450px">\r
+ <li>We can type between the lists...</li>\r
+ <li>...thanks to <strong>Magicline</strong>.</li>\r
+ </ul>\r
+\r
+ <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>\r
+\r
+ <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>\r
+\r
+ <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>\r
+\r
+ <div id="last" style="padding: 10px; text-align: center;">\r
+ <p>This text is wrapped in a <tt>DIV</tt> element. We can type after this element though.</p>\r
+ </div>\r
+ </textarea>\r
+\r
+ <script>\r
+\r
+ CKEDITOR.addCss(\r
+ '.cke_editable * { outline: 1px solid #BCEBFF }'\r
+ );\r
+\r
+ function callback() {\r
+ var helpers = CKEDITOR.plugins.lineutils;\r
+ var liner = new helpers.liner( this );\r
+ var locator = new helpers.locator( this );\r
+ var finder = new helpers.finder( this, {\r
+ lookups: {\r
+ 'is block and first child': function( el ) {\r
+ if ( el.is( CKEDITOR.dtd.$listItem ) )\r
+ return;\r
+\r
+ if ( el.is( CKEDITOR.dtd.$block ) )\r
+ return CKEDITOR.LINEUTILS_BEFORE | CKEDITOR.LINEUTILS_AFTER;\r
+ }\r
+ }\r
+ } ).start( function( relations, x, y ) {\r
+ locator.locate( relations );\r
+\r
+ var locations = locator.locations,\r
+ uid, type;\r
+\r
+ liner.prepare( relations, locations );\r
+\r
+ for ( uid in locations ) {\r
+ for ( type in locations[ uid ] )\r
+ liner.placeLine( { uid: uid, type: type } );\r
+ }\r
+\r
+ liner.cleanup();\r
+ } );\r
+ }\r
+\r
+ CKEDITOR.disableAutoInline = true;\r
+\r
+ CKEDITOR.replace( 'editor1', {\r
+ extraPlugins: 'lineutils',\r
+ height: 450,\r
+ removePlugins: 'magicline',\r
+ allowedContent: true,\r
+ contentsCss: [ '../../../contents.css' ],\r
+ on: {\r
+ contentDom: callback\r
+ }\r
+ } );\r
+\r
+ CKEDITOR.inline( 'editor2', {\r
+ extraPlugins: 'lineutils',\r
+ removePlugins: 'magicline',\r
+ allowedContent: true,\r
+ contentsCss: [ '../../../contents.css' ],\r
+ on: {\r
+ contentDom: callback\r
+ }\r
+ } );\r
+\r
+ CKEDITOR.inline( 'editor3', {\r
+ extraPlugins: 'lineutils',\r
+ removePlugins: 'magicline',\r
+ allowedContent: true,\r
+ contentsCss: [ '../../../contents.css' ],\r
+ on: {\r
+ contentDom: callback\r
+ }\r
+ } );\r
+\r
+ CKEDITOR.replace( 'editor4', {\r
+ extraPlugins: 'lineutils',\r
+ removePlugins: 'magicline',\r
+ allowedContent: true,\r
+ contentsCss: [ '../../../contents.css' ],\r
+ on: {\r
+ contentDom: callback\r
+ }\r
+ } );\r
+\r
+\r
+ </script>\r
+\r
+ <div id="footer">\r
+ <hr>\r
+ <p>\r
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
+ </p>\r
+ <p id="copy">\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Knabben. All rights reserved.\r
+ </p>\r
+ </div>\r
+</body>\r
+</html>\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+ /**\r
+ * @fileOverview A set of utilities to find and create horizontal spaces in edited content.\r
+ */\r
+\r
+'use strict';\r
+\r
+( function() {\r
+\r
+ CKEDITOR.plugins.add( 'lineutils' );\r
+\r
+ /**\r
+ * Determines a position relative to an element in DOM (before).\r
+ *\r
+ * @readonly\r
+ * @property {Number} [=0]\r
+ * @member CKEDITOR\r
+ */\r
+ CKEDITOR.LINEUTILS_BEFORE = 1;\r
+\r
+ /**\r
+ * Determines a position relative to an element in DOM (after).\r
+ *\r
+ * @readonly\r
+ * @property {Number} [=2]\r
+ * @member CKEDITOR\r
+ */\r
+ CKEDITOR.LINEUTILS_AFTER = 2;\r
+\r
+ /**\r
+ * Determines a position relative to an element in DOM (inside).\r
+ *\r
+ * @readonly\r
+ * @property {Number} [=4]\r
+ * @member CKEDITOR\r
+ */\r
+ CKEDITOR.LINEUTILS_INSIDE = 4;\r
+\r
+ /**\r
+ * A utility that traverses the DOM tree and discovers elements\r
+ * (relations) matching user-defined lookups.\r
+ *\r
+ * @private\r
+ * @class CKEDITOR.plugins.lineutils.finder\r
+ * @constructor Creates a Finder class instance.\r
+ * @param {CKEDITOR.editor} editor Editor instance that the Finder belongs to.\r
+ * @param {Object} def Finder's definition.\r
+ * @since 4.3\r
+ */\r
+ function Finder( editor, def ) {\r
+ CKEDITOR.tools.extend( this, {\r
+ editor: editor,\r
+ editable: editor.editable(),\r
+ doc: editor.document,\r
+ win: editor.window\r
+ }, def, true );\r
+\r
+ this.inline = this.editable.isInline();\r
+\r
+ if ( !this.inline ) {\r
+ this.frame = this.win.getFrame();\r
+ }\r
+\r
+ this.target = this[ this.inline ? 'editable' : 'doc' ];\r
+ }\r
+\r
+ Finder.prototype = {\r
+ /**\r
+ * Initializes searching for elements with every mousemove event fired.\r
+ * To stop searching use {@link #stop}.\r
+ *\r
+ * @param {Function} [callback] Function executed on every iteration.\r
+ */\r
+ start: function( callback ) {\r
+ var that = this,\r
+ editor = this.editor,\r
+ doc = this.doc,\r
+ el, elfp, x, y;\r
+\r
+ var moveBuffer = CKEDITOR.tools.eventsBuffer( 50, function() {\r
+ if ( editor.readOnly || editor.mode != 'wysiwyg' )\r
+ return;\r
+\r
+ that.relations = {};\r
+\r
+ // Sometimes it happens that elementFromPoint returns null (especially on IE).\r
+ // Any further traversal makes no sense if there's no start point. Abort.\r
+ // Note: In IE8 elementFromPoint may return zombie nodes of undefined nodeType,\r
+ // so rejecting those as well.\r
+ if ( !( elfp = doc.$.elementFromPoint( x, y ) ) || !elfp.nodeType ) {\r
+ return;\r
+ }\r
+\r
+ el = new CKEDITOR.dom.element( elfp );\r
+\r
+ that.traverseSearch( el );\r
+\r
+ if ( !isNaN( x + y ) ) {\r
+ that.pixelSearch( el, x, y );\r
+ }\r
+\r
+ callback && callback( that.relations, x, y );\r
+ } );\r
+\r
+ // Searching starting from element from point on mousemove.\r
+ this.listener = this.editable.attachListener( this.target, 'mousemove', function( evt ) {\r
+ x = evt.data.$.clientX;\r
+ y = evt.data.$.clientY;\r
+\r
+ moveBuffer.input();\r
+ } );\r
+\r
+ this.editable.attachListener( this.inline ? this.editable : this.frame, 'mouseout', function() {\r
+ moveBuffer.reset();\r
+ } );\r
+ },\r
+\r
+ /**\r
+ * Stops observing mouse events attached by {@link #start}.\r
+ */\r
+ stop: function() {\r
+ if ( this.listener ) {\r
+ this.listener.removeListener();\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Returns a range representing the relation, according to its element\r
+ * and type.\r
+ *\r
+ * @param {Object} location Location containing a unique identifier and type.\r
+ * @returns {CKEDITOR.dom.range} Range representing the relation.\r
+ */\r
+ getRange: ( function() {\r
+ var where = {};\r
+\r
+ where[ CKEDITOR.LINEUTILS_BEFORE ] = CKEDITOR.POSITION_BEFORE_START;\r
+ where[ CKEDITOR.LINEUTILS_AFTER ] = CKEDITOR.POSITION_AFTER_END;\r
+ where[ CKEDITOR.LINEUTILS_INSIDE ] = CKEDITOR.POSITION_AFTER_START;\r
+\r
+ return function( location ) {\r
+ var range = this.editor.createRange();\r
+\r
+ range.moveToPosition( this.relations[ location.uid ].element, where[ location.type ] );\r
+\r
+ return range;\r
+ };\r
+ } )(),\r
+\r
+ /**\r
+ * Stores given relation in a {@link #relations} object. Processes the relation\r
+ * to normalize and avoid duplicates.\r
+ *\r
+ * @param {CKEDITOR.dom.element} el Element of the relation.\r
+ * @param {Number} type Relation, one of `CKEDITOR.LINEUTILS_AFTER`, `CKEDITOR.LINEUTILS_BEFORE`, `CKEDITOR.LINEUTILS_INSIDE`.\r
+ */\r
+ store: ( function() {\r
+ function merge( el, type, relations ) {\r
+ var uid = el.getUniqueId();\r
+\r
+ if ( uid in relations ) {\r
+ relations[ uid ].type |= type;\r
+ } else {\r
+ relations[ uid ] = { element: el, type: type };\r
+ }\r
+ }\r
+\r
+ return function( el, type ) {\r
+ var alt;\r
+\r
+ // Normalization to avoid duplicates:\r
+ // CKEDITOR.LINEUTILS_AFTER becomes CKEDITOR.LINEUTILS_BEFORE of el.getNext().\r
+ if ( is( type, CKEDITOR.LINEUTILS_AFTER ) && isStatic( alt = el.getNext() ) && alt.isVisible() ) {\r
+ merge( alt, CKEDITOR.LINEUTILS_BEFORE, this.relations );\r
+ type ^= CKEDITOR.LINEUTILS_AFTER;\r
+ }\r
+\r
+ // Normalization to avoid duplicates:\r
+ // CKEDITOR.LINEUTILS_INSIDE becomes CKEDITOR.LINEUTILS_BEFORE of el.getFirst().\r
+ if ( is( type, CKEDITOR.LINEUTILS_INSIDE ) && isStatic( alt = el.getFirst() ) && alt.isVisible() ) {\r
+ merge( alt, CKEDITOR.LINEUTILS_BEFORE, this.relations );\r
+ type ^= CKEDITOR.LINEUTILS_INSIDE;\r
+ }\r
+\r
+ merge( el, type, this.relations );\r
+ };\r
+ } )(),\r
+\r
+ /**\r
+ * Traverses the DOM tree towards root, checking all ancestors\r
+ * with lookup rules, avoiding duplicates. Stores positive relations\r
+ * in the {@link #relations} object.\r
+ *\r
+ * @param {CKEDITOR.dom.element} el Element which is the starting point.\r
+ */\r
+ traverseSearch: function( el ) {\r
+ var l, type, uid;\r
+\r
+ // Go down DOM towards root (or limit).\r
+ do {\r
+ uid = el.$[ 'data-cke-expando' ];\r
+\r
+ // This element was already visited and checked.\r
+ if ( uid && uid in this.relations ) {\r
+ continue;\r
+ }\r
+\r
+ if ( el.equals( this.editable ) ) {\r
+ return;\r
+ }\r
+\r
+ if ( isStatic( el ) ) {\r
+ // Collect all addresses yielded by lookups for that element.\r
+ for ( l in this.lookups ) {\r
+\r
+ if ( ( type = this.lookups[ l ]( el ) ) ) {\r
+ this.store( el, type );\r
+ }\r
+ }\r
+ }\r
+ } while ( !isLimit( el ) && ( el = el.getParent() ) );\r
+ },\r
+\r
+ /**\r
+ * Iterates vertically pixel-by-pixel within a given element starting\r
+ * from given coordinates, searching for elements in the neighborhood.\r
+ * Once an element is found it is processed by {@link #traverseSearch}.\r
+ *\r
+ * @param {CKEDITOR.dom.element} el Element which is the starting point.\r
+ * @param {Number} [x] Horizontal mouse coordinate relative to the viewport.\r
+ * @param {Number} [y] Vertical mouse coordinate relative to the viewport.\r
+ */\r
+ pixelSearch: ( function() {\r
+ var contains = CKEDITOR.env.ie || CKEDITOR.env.webkit ?\r
+ function( el, found ) {\r
+ return el.contains( found );\r
+ } : function( el, found ) {\r
+ return !!( el.compareDocumentPosition( found ) & 16 );\r
+ };\r
+\r
+ // Iterates pixel-by-pixel from starting coordinates, moving by defined\r
+ // step and getting elementFromPoint in every iteration. Iteration stops when:\r
+ // * A valid element is found.\r
+ // * Condition function returns `false` (i.e. reached boundaries of viewport).\r
+ // * No element is found (i.e. coordinates out of viewport).\r
+ // * Element found is ascendant of starting element.\r
+ //\r
+ // @param {Object} doc Native DOM document.\r
+ // @param {Object} el Native DOM element.\r
+ // @param {Number} xStart Horizontal starting coordinate to use.\r
+ // @param {Number} yStart Vertical starting coordinate to use.\r
+ // @param {Number} step Step of the algorithm.\r
+ // @param {Function} condition A condition relative to current vertical coordinate.\r
+ function iterate( el, xStart, yStart, step, condition ) {\r
+ var y = yStart,\r
+ tryouts = 0,\r
+ found;\r
+\r
+ while ( condition( y ) ) {\r
+ y += step;\r
+\r
+ // If we try and we try, and still nothing's found, let's end\r
+ // that party.\r
+ if ( ++tryouts == 25 ) {\r
+ return;\r
+ }\r
+\r
+ found = this.doc.$.elementFromPoint( xStart, y );\r
+\r
+ // Nothing found. This is crazy... but...\r
+ // It might be that a line, which is in different document,\r
+ // covers that pixel (elementFromPoint is doc-sensitive).\r
+ // Better let's have another try.\r
+ if ( !found ) {\r
+ continue;\r
+ }\r
+\r
+ // Still in the same element.\r
+ else if ( found == el ) {\r
+ tryouts = 0;\r
+ continue;\r
+ }\r
+\r
+ // Reached the edge of an element and found an ancestor or...\r
+ // A line, that covers that pixel. Better let's have another try.\r
+ else if ( !contains( el, found ) ) {\r
+ continue;\r
+ }\r
+\r
+ tryouts = 0;\r
+\r
+ // Found a valid element. Stop iterating.\r
+ if ( isStatic( ( found = new CKEDITOR.dom.element( found ) ) ) ) {\r
+ return found;\r
+ }\r
+ }\r
+ }\r
+\r
+ return function( el, x, y ) {\r
+ var paneHeight = this.win.getViewPaneSize().height,\r
+\r
+ // Try to find an element iterating *up* from the starting point.\r
+ neg = iterate.call( this, el.$, x, y, -1, function( y ) {\r
+ return y > 0;\r
+ } ),\r
+\r
+ // Try to find an element iterating *down* from the starting point.\r
+ pos = iterate.call( this, el.$, x, y, 1, function( y ) {\r
+ return y < paneHeight;\r
+ } );\r
+\r
+ if ( neg ) {\r
+ this.traverseSearch( neg );\r
+\r
+ // Iterate towards DOM root until neg is a direct child of el.\r
+ while ( !neg.getParent().equals( el ) ) {\r
+ neg = neg.getParent();\r
+ }\r
+ }\r
+\r
+ if ( pos ) {\r
+ this.traverseSearch( pos );\r
+\r
+ // Iterate towards DOM root until pos is a direct child of el.\r
+ while ( !pos.getParent().equals( el ) ) {\r
+ pos = pos.getParent();\r
+ }\r
+ }\r
+\r
+ // Iterate forwards starting from neg and backwards from\r
+ // pos to harvest all children of el between those elements.\r
+ // Stop when neg and pos meet each other or there's none of them.\r
+ // TODO (?) reduce number of hops forwards/backwards.\r
+ while ( neg || pos ) {\r
+ if ( neg ) {\r
+ neg = neg.getNext( isStatic );\r
+ }\r
+\r
+ if ( !neg || neg.equals( pos ) ) {\r
+ break;\r
+ }\r
+\r
+ this.traverseSearch( neg );\r
+\r
+ if ( pos ) {\r
+ pos = pos.getPrevious( isStatic );\r
+ }\r
+\r
+ if ( !pos || pos.equals( neg ) ) {\r
+ break;\r
+ }\r
+\r
+ this.traverseSearch( pos );\r
+ }\r
+ };\r
+ } )(),\r
+\r
+ /**\r
+ * Unlike {@link #traverseSearch}, it collects **all** elements from editable's DOM tree\r
+ * and runs lookups for every one of them, collecting relations.\r
+ *\r
+ * @returns {Object} {@link #relations}.\r
+ */\r
+ greedySearch: function() {\r
+ this.relations = {};\r
+\r
+ var all = this.editable.getElementsByTag( '*' ),\r
+ i = 0,\r
+ el, type, l;\r
+\r
+ while ( ( el = all.getItem( i++ ) ) ) {\r
+ // Don't consider editable, as it might be inline,\r
+ // and i.e. checking it's siblings is pointless.\r
+ if ( el.equals( this.editable ) ) {\r
+ continue;\r
+ }\r
+\r
+ // On IE8 element.getElementsByTagName returns comments... sic! (http://dev.ckeditor.com/ticket/13176)\r
+ if ( el.type != CKEDITOR.NODE_ELEMENT ) {\r
+ continue;\r
+ }\r
+\r
+ // Don't visit non-editable internals, for example widget's\r
+ // guts (above wrapper, below nested). Still check editable limits,\r
+ // as they are siblings with editable contents.\r
+ if ( !el.hasAttribute( 'contenteditable' ) && el.isReadOnly() ) {\r
+ continue;\r
+ }\r
+\r
+ if ( isStatic( el ) && el.isVisible() ) {\r
+ // Collect all addresses yielded by lookups for that element.\r
+ for ( l in this.lookups ) {\r
+ if ( ( type = this.lookups[ l ]( el ) ) ) {\r
+ this.store( el, type );\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ return this.relations;\r
+ }\r
+\r
+ /**\r
+ * Relations express elements in DOM that match user-defined {@link #lookups}.\r
+ * Every relation has its own `type` that determines whether\r
+ * it refers to the space before, after or inside the `element`.\r
+ * This object stores relations found by {@link #traverseSearch} or {@link #greedySearch}, structured\r
+ * in the following way:\r
+ *\r
+ * relations: {\r
+ * // Unique identifier of the element.\r
+ * Number: {\r
+ * // Element of this relation.\r
+ * element: {@link CKEDITOR.dom.element}\r
+ * // Conjunction of CKEDITOR.LINEUTILS_BEFORE, CKEDITOR.LINEUTILS_AFTER and CKEDITOR.LINEUTILS_INSIDE.\r
+ * type: Number\r
+ * },\r
+ * ...\r
+ * }\r
+ *\r
+ * @property {Object} relations\r
+ * @readonly\r
+ */\r
+\r
+ /**\r
+ * A set of user-defined functions used by Finder to check if an element\r
+ * is a valid relation, belonging to {@link #relations}.\r
+ * When the criterion is met, lookup returns a logical conjunction of `CKEDITOR.LINEUTILS_BEFORE`,\r
+ * `CKEDITOR.LINEUTILS_AFTER` or `CKEDITOR.LINEUTILS_INSIDE`.\r
+ *\r
+ * Lookups are passed along with Finder's definition.\r
+ *\r
+ * lookups: {\r
+ * 'some lookup': function( el ) {\r
+ * if ( someCondition )\r
+ * return CKEDITOR.LINEUTILS_BEFORE;\r
+ * },\r
+ * ...\r
+ * }\r
+ *\r
+ * @property {Object} lookups\r
+ */\r
+ };\r
+\r
+\r
+ /**\r
+ * A utility that analyses relations found by\r
+ * CKEDITOR.plugins.lineutils.finder and locates them\r
+ * in the viewport as horizontal lines of specific coordinates.\r
+ *\r
+ * @private\r
+ * @class CKEDITOR.plugins.lineutils.locator\r
+ * @constructor Creates a Locator class instance.\r
+ * @param {CKEDITOR.editor} editor Editor instance that Locator belongs to.\r
+ * @since 4.3\r
+ */\r
+ function Locator( editor, def ) {\r
+ CKEDITOR.tools.extend( this, def, {\r
+ editor: editor\r
+ }, true );\r
+ }\r
+\r
+ Locator.prototype = {\r
+ /**\r
+ * Locates the Y coordinate for all types of every single relation and stores\r
+ * them in an object.\r
+ *\r
+ * @param {Object} relations {@link CKEDITOR.plugins.lineutils.finder#relations}.\r
+ * @returns {Object} {@link #locations}.\r
+ */\r
+ locate: ( function() {\r
+ function locateSibling( rel, type ) {\r
+ var sib = rel.element[ type === CKEDITOR.LINEUTILS_BEFORE ? 'getPrevious' : 'getNext' ]();\r
+\r
+ // Return the middle point between siblings.\r
+ if ( sib && isStatic( sib ) ) {\r
+ rel.siblingRect = sib.getClientRect();\r
+\r
+ if ( type == CKEDITOR.LINEUTILS_BEFORE ) {\r
+ return ( rel.siblingRect.bottom + rel.elementRect.top ) / 2;\r
+ } else {\r
+ return ( rel.elementRect.bottom + rel.siblingRect.top ) / 2;\r
+ }\r
+ }\r
+\r
+ // If there's no sibling, use the edge of an element.\r
+ else {\r
+ if ( type == CKEDITOR.LINEUTILS_BEFORE ) {\r
+ return rel.elementRect.top;\r
+ } else {\r
+ return rel.elementRect.bottom;\r
+ }\r
+ }\r
+ }\r
+\r
+ return function( relations ) {\r
+ var rel;\r
+\r
+ this.locations = {};\r
+\r
+ for ( var uid in relations ) {\r
+ rel = relations[ uid ];\r
+ rel.elementRect = rel.element.getClientRect();\r
+\r
+ if ( is( rel.type, CKEDITOR.LINEUTILS_BEFORE ) ) {\r
+ this.store( uid, CKEDITOR.LINEUTILS_BEFORE, locateSibling( rel, CKEDITOR.LINEUTILS_BEFORE ) );\r
+ }\r
+\r
+ if ( is( rel.type, CKEDITOR.LINEUTILS_AFTER ) ) {\r
+ this.store( uid, CKEDITOR.LINEUTILS_AFTER, locateSibling( rel, CKEDITOR.LINEUTILS_AFTER ) );\r
+ }\r
+\r
+ // The middle point of the element.\r
+ if ( is( rel.type, CKEDITOR.LINEUTILS_INSIDE ) ) {\r
+ this.store( uid, CKEDITOR.LINEUTILS_INSIDE, ( rel.elementRect.top + rel.elementRect.bottom ) / 2 );\r
+ }\r
+ }\r
+\r
+ return this.locations;\r
+ };\r
+ } )(),\r
+\r
+ /**\r
+ * Calculates distances from every location to given vertical coordinate\r
+ * and sorts locations according to that distance.\r
+ *\r
+ * @param {Number} y The vertical coordinate used for sorting, used as a reference.\r
+ * @param {Number} [howMany] Determines the number of "closest locations" to be returned.\r
+ * @returns {Array} Sorted, array representation of {@link #locations}.\r
+ */\r
+ sort: ( function() {\r
+ var locations, sorted,\r
+ dist, i;\r
+\r
+ function distance( y, uid, type ) {\r
+ return Math.abs( y - locations[ uid ][ type ] );\r
+ }\r
+\r
+ return function( y, howMany ) {\r
+ locations = this.locations;\r
+ sorted = [];\r
+\r
+ for ( var uid in locations ) {\r
+ for ( var type in locations[ uid ] ) {\r
+ dist = distance( y, uid, type );\r
+\r
+ // An array is empty.\r
+ if ( !sorted.length ) {\r
+ sorted.push( { uid: +uid, type: type, dist: dist } );\r
+ } else {\r
+ // Sort the array on fly when it's populated.\r
+ for ( i = 0; i < sorted.length; i++ ) {\r
+ if ( dist < sorted[ i ].dist ) {\r
+ sorted.splice( i, 0, { uid: +uid, type: type, dist: dist } );\r
+ break;\r
+ }\r
+ }\r
+\r
+ // Nothing was inserted, so the distance is bigger than\r
+ // any of already calculated: push to the end.\r
+ if ( i == sorted.length ) {\r
+ sorted.push( { uid: +uid, type: type, dist: dist } );\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ if ( typeof howMany != 'undefined' ) {\r
+ return sorted.slice( 0, howMany );\r
+ } else {\r
+ return sorted;\r
+ }\r
+ };\r
+ } )(),\r
+\r
+ /**\r
+ * Stores the location in a collection.\r
+ *\r
+ * @param {Number} uid Unique identifier of the relation.\r
+ * @param {Number} type One of `CKEDITOR.LINEUTILS_BEFORE`, `CKEDITOR.LINEUTILS_AFTER` and `CKEDITOR.LINEUTILS_INSIDE`.\r
+ * @param {Number} y Vertical position of the relation.\r
+ */\r
+ store: function( uid, type, y ) {\r
+ if ( !this.locations[ uid ] ) {\r
+ this.locations[ uid ] = {};\r
+ }\r
+\r
+ this.locations[ uid ][ type ] = y;\r
+ }\r
+\r
+ /**\r
+ * @readonly\r
+ * @property {Object} locations\r
+ */\r
+ };\r
+\r
+ var tipCss = {\r
+ display: 'block',\r
+ width: '0px',\r
+ height: '0px',\r
+ 'border-color': 'transparent',\r
+ 'border-style': 'solid',\r
+ position: 'absolute',\r
+ top: '-6px'\r
+ },\r
+\r
+ lineStyle = {\r
+ height: '0px',\r
+ 'border-top': '1px dashed red',\r
+ position: 'absolute',\r
+ 'z-index': 9999\r
+ },\r
+\r
+ lineTpl =\r
+ '<div data-cke-lineutils-line="1" class="cke_reset_all" style="{lineStyle}">' +\r
+ '<span style="{tipLeftStyle}"> </span>' +\r
+ '<span style="{tipRightStyle}"> </span>' +\r
+ '</div>';\r
+\r
+ /**\r
+ * A utility that draws horizontal lines in DOM according to locations\r
+ * returned by CKEDITOR.plugins.lineutils.locator.\r
+ *\r
+ * @private\r
+ * @class CKEDITOR.plugins.lineutils.liner\r
+ * @constructor Creates a Liner class instance.\r
+ * @param {CKEDITOR.editor} editor Editor instance that Liner belongs to.\r
+ * @param {Object} def Liner's definition.\r
+ * @since 4.3\r
+ */\r
+ function Liner( editor, def ) {\r
+ var editable = editor.editable();\r
+\r
+ CKEDITOR.tools.extend( this, {\r
+ editor: editor,\r
+ editable: editable,\r
+ inline: editable.isInline(),\r
+ doc: editor.document,\r
+ win: editor.window,\r
+ container: CKEDITOR.document.getBody(),\r
+ winTop: CKEDITOR.document.getWindow()\r
+ }, def, true );\r
+\r
+ this.hidden = {};\r
+ this.visible = {};\r
+\r
+ if ( !this.inline ) {\r
+ this.frame = this.win.getFrame();\r
+ }\r
+\r
+ this.queryViewport();\r
+\r
+ // Callbacks must be wrapped. Otherwise they're not attached\r
+ // to global DOM objects (i.e. topmost window) for every editor\r
+ // because they're treated as duplicates. They belong to the\r
+ // same prototype shared among Liner instances.\r
+ var queryViewport = CKEDITOR.tools.bind( this.queryViewport, this ),\r
+ hideVisible = CKEDITOR.tools.bind( this.hideVisible, this ),\r
+ removeAll = CKEDITOR.tools.bind( this.removeAll, this );\r
+\r
+ editable.attachListener( this.winTop, 'resize', queryViewport );\r
+ editable.attachListener( this.winTop, 'scroll', queryViewport );\r
+\r
+ editable.attachListener( this.winTop, 'resize', hideVisible );\r
+ editable.attachListener( this.win, 'scroll', hideVisible );\r
+\r
+ editable.attachListener( this.inline ? editable : this.frame, 'mouseout', function( evt ) {\r
+ var x = evt.data.$.clientX,\r
+ y = evt.data.$.clientY;\r
+\r
+ this.queryViewport();\r
+\r
+ // Check if mouse is out of the element (iframe/editable).\r
+ if ( x <= this.rect.left || x >= this.rect.right || y <= this.rect.top || y >= this.rect.bottom ) {\r
+ this.hideVisible();\r
+ }\r
+\r
+ // Check if mouse is out of the top-window vieport.\r
+ if ( x <= 0 || x >= this.winTopPane.width || y <= 0 || y >= this.winTopPane.height ) {\r
+ this.hideVisible();\r
+ }\r
+ }, this );\r
+\r
+ editable.attachListener( editor, 'resize', queryViewport );\r
+ editable.attachListener( editor, 'mode', removeAll );\r
+ editor.on( 'destroy', removeAll );\r
+\r
+ this.lineTpl = new CKEDITOR.template( lineTpl ).output( {\r
+ lineStyle: CKEDITOR.tools.writeCssText(\r
+ CKEDITOR.tools.extend( {}, lineStyle, this.lineStyle, true )\r
+ ),\r
+ tipLeftStyle: CKEDITOR.tools.writeCssText(\r
+ CKEDITOR.tools.extend( {}, tipCss, {\r
+ left: '0px',\r
+ 'border-left-color': 'red',\r
+ 'border-width': '6px 0 6px 6px'\r
+ }, this.tipCss, this.tipLeftStyle, true )\r
+ ),\r
+ tipRightStyle: CKEDITOR.tools.writeCssText(\r
+ CKEDITOR.tools.extend( {}, tipCss, {\r
+ right: '0px',\r
+ 'border-right-color': 'red',\r
+ 'border-width': '6px 6px 6px 0'\r
+ }, this.tipCss, this.tipRightStyle, true )\r
+ )\r
+ } );\r
+ }\r
+\r
+ Liner.prototype = {\r
+ /**\r
+ * Permanently removes all lines (both hidden and visible) from DOM.\r
+ */\r
+ removeAll: function() {\r
+ var l;\r
+\r
+ for ( l in this.hidden ) {\r
+ this.hidden[ l ].remove();\r
+ delete this.hidden[ l ];\r
+ }\r
+\r
+ for ( l in this.visible ) {\r
+ this.visible[ l ].remove();\r
+ delete this.visible[ l ];\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Hides a given line.\r
+ *\r
+ * @param {CKEDITOR.dom.element} line The line to be hidden.\r
+ */\r
+ hideLine: function( line ) {\r
+ var uid = line.getUniqueId();\r
+\r
+ line.hide();\r
+\r
+ this.hidden[ uid ] = line;\r
+ delete this.visible[ uid ];\r
+ },\r
+\r
+ /**\r
+ * Shows a given line.\r
+ *\r
+ * @param {CKEDITOR.dom.element} line The line to be shown.\r
+ */\r
+ showLine: function( line ) {\r
+ var uid = line.getUniqueId();\r
+\r
+ line.show();\r
+\r
+ this.visible[ uid ] = line;\r
+ delete this.hidden[ uid ];\r
+ },\r
+\r
+ /**\r
+ * Hides all visible lines.\r
+ */\r
+ hideVisible: function() {\r
+ for ( var l in this.visible ) {\r
+ this.hideLine( this.visible[ l ] );\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Shows a line at given location.\r
+ *\r
+ * @param {Object} location Location object containing the unique identifier of the relation\r
+ * and its type. Usually returned by {@link CKEDITOR.plugins.lineutils.locator#sort}.\r
+ * @param {Function} [callback] A callback to be called once the line is shown.\r
+ */\r
+ placeLine: function( location, callback ) {\r
+ var styles, line, l;\r
+\r
+ // No style means that line would be out of viewport.\r
+ if ( !( styles = this.getStyle( location.uid, location.type ) ) ) {\r
+ return;\r
+ }\r
+\r
+ // Search for any visible line of a different hash first.\r
+ // It's faster to re-position visible line than to show it.\r
+ for ( l in this.visible ) {\r
+ if ( this.visible[ l ].getCustomData( 'hash' ) !== this.hash ) {\r
+ line = this.visible[ l ];\r
+ break;\r
+ }\r
+ }\r
+\r
+ // Search for any hidden line of a different hash.\r
+ if ( !line ) {\r
+ for ( l in this.hidden ) {\r
+ if ( this.hidden[ l ].getCustomData( 'hash' ) !== this.hash ) {\r
+ this.showLine( ( line = this.hidden[ l ] ) );\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ // If no line available, add the new one.\r
+ if ( !line ) {\r
+ this.showLine( ( line = this.addLine() ) );\r
+ }\r
+\r
+ // Mark the line with current hash.\r
+ line.setCustomData( 'hash', this.hash );\r
+\r
+ // Mark the line as visible.\r
+ this.visible[ line.getUniqueId() ] = line;\r
+\r
+ line.setStyles( styles );\r
+\r
+ callback && callback( line );\r
+ },\r
+\r
+ /**\r
+ * Creates a style set to be used by the line, representing a particular\r
+ * relation (location).\r
+ *\r
+ * @param {Number} uid Unique identifier of the relation.\r
+ * @param {Number} type Type of the relation.\r
+ * @returns {Object} An object containing styles.\r
+ */\r
+ getStyle: function( uid, type ) {\r
+ var rel = this.relations[ uid ],\r
+ loc = this.locations[ uid ][ type ],\r
+ styles = {},\r
+ hdiff;\r
+\r
+ // Line should be between two elements.\r
+ if ( rel.siblingRect ) {\r
+ styles.width = Math.max( rel.siblingRect.width, rel.elementRect.width );\r
+ }\r
+ // Line is relative to a single element.\r
+ else {\r
+ styles.width = rel.elementRect.width;\r
+ }\r
+\r
+ // Let's calculate the vertical position of the line.\r
+ if ( this.inline ) {\r
+ // (http://dev.ckeditor.com/ticket/13155)\r
+ styles.top = loc + this.winTopScroll.y - this.rect.relativeY;\r
+ } else {\r
+ styles.top = this.rect.top + this.winTopScroll.y + loc;\r
+ }\r
+\r
+ // Check if line would be vertically out of the viewport.\r
+ if ( styles.top - this.winTopScroll.y < this.rect.top || styles.top - this.winTopScroll.y > this.rect.bottom ) {\r
+ return false;\r
+ }\r
+\r
+ // Now let's calculate the horizontal alignment (left and width).\r
+ if ( this.inline ) {\r
+ // (http://dev.ckeditor.com/ticket/13155)\r
+ styles.left = rel.elementRect.left - this.rect.relativeX;\r
+ } else {\r
+ if ( rel.elementRect.left > 0 )\r
+ styles.left = this.rect.left + rel.elementRect.left;\r
+\r
+ // H-scroll case. Left edge of element may be out of viewport.\r
+ else {\r
+ styles.width += rel.elementRect.left;\r
+ styles.left = this.rect.left;\r
+ }\r
+\r
+ // H-scroll case. Right edge of element may be out of viewport.\r
+ if ( ( hdiff = styles.left + styles.width - ( this.rect.left + this.winPane.width ) ) > 0 ) {\r
+ styles.width -= hdiff;\r
+ }\r
+ }\r
+\r
+ // Finally include horizontal scroll of the global window.\r
+ styles.left += this.winTopScroll.x;\r
+\r
+ // Append 'px' to style values.\r
+ for ( var style in styles ) {\r
+ styles[ style ] = CKEDITOR.tools.cssLength( styles[ style ] );\r
+ }\r
+\r
+ return styles;\r
+ },\r
+\r
+ /**\r
+ * Adds a new line to DOM.\r
+ *\r
+ * @returns {CKEDITOR.dom.element} A brand-new line.\r
+ */\r
+ addLine: function() {\r
+ var line = CKEDITOR.dom.element.createFromHtml( this.lineTpl );\r
+\r
+ line.appendTo( this.container );\r
+\r
+ return line;\r
+ },\r
+\r
+ /**\r
+ * Assigns a unique hash to the instance that is later used\r
+ * to tell unwanted lines from new ones. This method **must** be called\r
+ * before a new set of relations is to be visualized so {@link #cleanup}\r
+ * eventually hides obsolete lines. This is because lines\r
+ * are re-used between {@link #placeLine} calls and the number of\r
+ * necessary ones may vary depending on the number of relations.\r
+ *\r
+ * @param {Object} relations {@link CKEDITOR.plugins.lineutils.finder#relations}.\r
+ * @param {Object} locations {@link CKEDITOR.plugins.lineutils.locator#locations}.\r
+ */\r
+ prepare: function( relations, locations ) {\r
+ this.relations = relations;\r
+ this.locations = locations;\r
+ this.hash = Math.random();\r
+ },\r
+\r
+ /**\r
+ * Hides all visible lines that do not belong to current hash\r
+ * and no longer represent relations (locations).\r
+ *\r
+ * See also: {@link #prepare}.\r
+ */\r
+ cleanup: function() {\r
+ var line;\r
+\r
+ for ( var l in this.visible ) {\r
+ line = this.visible[ l ];\r
+\r
+ if ( line.getCustomData( 'hash' ) !== this.hash ) {\r
+ this.hideLine( line );\r
+ }\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Queries dimensions of the viewport, editable, frame etc.\r
+ * that are used for correct positioning of the line.\r
+ */\r
+ queryViewport: function() {\r
+ this.winPane = this.win.getViewPaneSize();\r
+ this.winTopScroll = this.winTop.getScrollPosition();\r
+ this.winTopPane = this.winTop.getViewPaneSize();\r
+\r
+ // (http://dev.ckeditor.com/ticket/13155)\r
+ this.rect = this.getClientRect( this.inline ? this.editable : this.frame );\r
+ },\r
+\r
+ /**\r
+ * Returns `boundingClientRect` of an element, shifted by the position\r
+ * of `container` when the container is not `static` (http://dev.ckeditor.com/ticket/13155).\r
+ *\r
+ * See also: {@link CKEDITOR.dom.element#getClientRect}.\r
+ *\r
+ * @param {CKEDITOR.dom.element} el A DOM element.\r
+ * @returns {Object} A shifted rect, extended by `relativeY` and `relativeX` properties.\r
+ */\r
+ getClientRect: function( el ) {\r
+ var rect = el.getClientRect(),\r
+ relativeContainerDocPosition = this.container.getDocumentPosition(),\r
+ relativeContainerComputedPosition = this.container.getComputedStyle( 'position' );\r
+\r
+ // Static or not, those values are used to offset the position of the line so they cannot be undefined.\r
+ rect.relativeX = rect.relativeY = 0;\r
+\r
+ if ( relativeContainerComputedPosition != 'static' ) {\r
+ // Remember the offset used to shift the clientRect.\r
+ rect.relativeY = relativeContainerDocPosition.y;\r
+ rect.relativeX = relativeContainerDocPosition.x;\r
+\r
+ rect.top -= rect.relativeY;\r
+ rect.bottom -= rect.relativeY;\r
+ rect.left -= rect.relativeX;\r
+ rect.right -= rect.relativeX;\r
+ }\r
+\r
+ return rect;\r
+ }\r
+ };\r
+\r
+ function is( type, flag ) {\r
+ return type & flag;\r
+ }\r
+\r
+ var floats = { left: 1, right: 1, center: 1 },\r
+ positions = { absolute: 1, fixed: 1 };\r
+\r
+ function isElement( node ) {\r
+ return node && node.type == CKEDITOR.NODE_ELEMENT;\r
+ }\r
+\r
+ function isFloated( el ) {\r
+ return !!( floats[ el.getComputedStyle( 'float' ) ] || floats[ el.getAttribute( 'align' ) ] );\r
+ }\r
+\r
+ function isPositioned( el ) {\r
+ return !!positions[ el.getComputedStyle( 'position' ) ];\r
+ }\r
+\r
+ function isLimit( node ) {\r
+ return isElement( node ) && node.getAttribute( 'contenteditable' ) == 'true';\r
+ }\r
+\r
+ function isStatic( node ) {\r
+ return isElement( node ) && !isFloated( node ) && !isPositioned( node );\r
+ }\r
+\r
+ /**\r
+ * Global namespace storing definitions and global helpers for the Line Utilities plugin.\r
+ *\r
+ * @private\r
+ * @class\r
+ * @singleton\r
+ * @since 4.3\r
+ */\r
+ CKEDITOR.plugins.lineutils = {\r
+ finder: Finder,\r
+ locator: Locator,\r
+ liner: Liner\r
+ };\r
+} )();\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
} ), 'cke_anchor', 'anchor' );\r
}\r
\r
+\r
+ function getSelectedAnchor( selection ) {\r
+ var range = selection.getRanges()[ 0 ],\r
+ element = selection.getSelectedElement();\r
+\r
+ // In case of table cell selection, we want to shrink selection from td to a element.\r
+ range.shrink( CKEDITOR.SHRINK_ELEMENT );\r
+ element = range.getEnclosedNode();\r
+\r
+ if ( element && element.type === CKEDITOR.NODE_ELEMENT &&\r
+ ( element.data( 'cke-real-element-type' ) === 'anchor' || element.is( 'a' ) ) ) {\r
+ return element;\r
+ }\r
+ }\r
+\r
return {\r
title: editor.lang.link.anchor.title,\r
minWidth: 300,\r
var newFake = createFakeAnchor( editor, attributes );\r
newFake.replace( this._.selectedElement );\r
\r
- // Selecting fake element for IE. (#11377)\r
- if ( CKEDITOR.env.ie )\r
+ // Selecting fake element for IE. (http://dev.ckeditor.com/ticket/11377)\r
+ if ( CKEDITOR.env.ie ) {\r
editor.getSelection().selectElement( newFake );\r
+ }\r
} else {\r
this._.selectedElement.setAttributes( attributes );\r
}\r
// Apply style.\r
var style = new CKEDITOR.style( { element: 'a', attributes: attributes } );\r
style.type = CKEDITOR.STYLE_INLINE;\r
- editor.applyStyle( style );\r
+ style.applyToRange( range );\r
}\r
}\r
},\r
\r
onShow: function() {\r
var sel = editor.getSelection(),\r
- fullySelected = sel.getSelectedElement(),\r
+ fullySelected = getSelectedAnchor( sel ),\r
fakeSelected = fullySelected && fullySelected.data( 'cke-realelement' ),\r
linkElement = fakeSelected ?\r
CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, fullySelected ) :\r
loadElements.call( this, linkElement );\r
!fakeSelected && sel.selectElement( linkElement );\r
\r
- if ( fullySelected )\r
+ if ( fullySelected ) {\r
this._.selectedElement = fullySelected;\r
+ }\r
}\r
\r
this.getContentElement( 'info', 'txtName' ).focus();\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
( function() {\r
CKEDITOR.dialog.add( 'link', function( editor ) {\r
- var plugin = CKEDITOR.plugins.link;\r
+ var plugin = CKEDITOR.plugins.link,\r
+ initialLinkText;\r
+\r
+ function createRangeForLink( editor, link ) {\r
+ var range = editor.createRange();\r
+\r
+ range.setStartBefore( link );\r
+ range.setEndAfter( link );\r
+\r
+ return range;\r
+ }\r
+\r
+ function insertLinksIntoSelection( editor, data ) {\r
+ var attributes = plugin.getLinkAttributes( editor, data ),\r
+ ranges = editor.getSelection().getRanges(),\r
+ style = new CKEDITOR.style( {\r
+ element: 'a',\r
+ attributes: attributes.set\r
+ } ),\r
+ rangesToSelect = [],\r
+ range,\r
+ text,\r
+ nestedLinks,\r
+ i,\r
+ j;\r
+\r
+ style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why.\r
+\r
+ for ( i = 0; i < ranges.length; i++ ) {\r
+ range = ranges[ i ];\r
+\r
+ // Use link URL as text with a collapsed cursor.\r
+ if ( range.collapsed ) {\r
+ // Short mailto link text view (http://dev.ckeditor.com/ticket/5736).\r
+ text = new CKEDITOR.dom.text( data.linkText || ( data.type == 'email' ?\r
+ data.email.address : attributes.set[ 'data-cke-saved-href' ] ), editor.document );\r
+ range.insertNode( text );\r
+ range.selectNodeContents( text );\r
+ } else if ( initialLinkText !== data.linkText ) {\r
+ text = new CKEDITOR.dom.text( data.linkText, editor.document );\r
+\r
+ // Shrink range to preserve block element.\r
+ range.shrink( CKEDITOR.SHRINK_TEXT );\r
+\r
+ // Use extractHtmlFromRange to remove markup within the selection. Also this method is a little\r
+ // smarter than range#deleteContents as it plays better e.g. with table cells.\r
+ editor.editable().extractHtmlFromRange( range );\r
+\r
+ range.insertNode( text );\r
+ }\r
+\r
+ // Editable links nested within current range should be removed, so that the link is applied to whole selection.\r
+ nestedLinks = range._find( 'a' );\r
+\r
+ for ( j = 0; j < nestedLinks.length; j++ ) {\r
+ nestedLinks[ j ].remove( true );\r
+ }\r
+\r
+\r
+ // Apply style.\r
+ style.applyToRange( range, editor );\r
+\r
+ rangesToSelect.push( range );\r
+ }\r
+\r
+ editor.getSelection().selectRanges( rangesToSelect );\r
+ }\r
+\r
+ function editLinksInSelection( editor, selectedElements, data ) {\r
+ var attributes = plugin.getLinkAttributes( editor, data ),\r
+ ranges = [],\r
+ element,\r
+ href,\r
+ textView,\r
+ newText,\r
+ i;\r
+\r
+ for ( i = 0; i < selectedElements.length; i++ ) {\r
+ // We're only editing an existing link, so just overwrite the attributes.\r
+ element = selectedElements[ i ];\r
+ href = element.data( 'cke-saved-href' );\r
+ textView = element.getHtml();\r
+\r
+ element.setAttributes( attributes.set );\r
+ element.removeAttributes( attributes.removed );\r
+\r
+\r
+ if ( data.linkText && initialLinkText != data.linkText ) {\r
+ // Display text has been changed.\r
+ newText = data.linkText;\r
+ } else if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {\r
+ // Update text view when user changes protocol (http://dev.ckeditor.com/ticket/4612).\r
+ // Short mailto link text view (http://dev.ckeditor.com/ticket/5736).\r
+ newText = data.type == 'email' ? data.email.address : attributes.set[ 'data-cke-saved-href' ];\r
+ }\r
+\r
+ if ( newText ) {\r
+ element.setText( newText );\r
+ }\r
+\r
+ ranges.push( createRangeForLink( editor, element ) );\r
+ }\r
+\r
+ // We changed the content, so need to select it again.\r
+ editor.getSelection().selectRanges( ranges );\r
+ }\r
\r
// Handles the event when the "Target" selection box is changed.\r
var targetChanged = function() {\r
\r
return {\r
title: linkLang.title,\r
- minWidth: 350,\r
- minHeight: 230,\r
+ minWidth: ( CKEDITOR.skinName || editor.config.skin ) == 'moono-lisa' ? 450 : 350,\r
+ minHeight: 240,\r
contents: [ {\r
id: 'info',\r
label: linkLang.info,\r
title: linkLang.info,\r
elements: [ {\r
+ type: 'text',\r
+ id: 'linkDisplayText',\r
+ label: linkLang.displayText,\r
+ setup: function() {\r
+ this.enable();\r
+\r
+ this.setValue( editor.getSelection().getSelectedText() );\r
+\r
+ // Keep inner text so that it can be compared in commit function. By obtaining value from getData()\r
+ // we get value stripped from new line chars which is important when comparing the value later on.\r
+ initialLinkText = this.getValue();\r
+ },\r
+ commit: function( data ) {\r
+ data.linkText = this.isEnabled() ? this.getValue() : '';\r
+ }\r
+ },\r
+ {\r
id: 'linkType',\r
type: 'select',\r
label: linkLang.type,\r
label: commonLang.protocol,\r
'default': 'http://',\r
items: [\r
- // Force 'ltr' for protocol names in BIDI. (#5433)\r
+ // Force 'ltr' for protocol names in BIDI. (http://dev.ckeditor.com/ticket/5433)\r
[ 'http://\u200E', 'http://' ],\r
[ 'https://\u200E', 'https://' ],\r
[ 'ftp://\u200E', 'ftp://' ],\r
},\r
commit: function( data ) {\r
// IE will not trigger the onChange event if the mouse has been used\r
- // to carry all the operations #4724\r
+ // to carry all the operations http://dev.ckeditor.com/ticket/4724\r
this.onChange();\r
\r
if ( !data.url )\r
setup: setupAdvParams,\r
commit: commitAdvParams\r
} ]\r
+ },\r
+ {\r
+ type: 'hbox',\r
+ widths: [ '45%', '55%' ],\r
+ children: [ {\r
+ type: 'checkbox',\r
+ id: 'download',\r
+ requiredContent: 'a[download]',\r
+ label: linkLang.download,\r
+ setup: function( data ) {\r
+ if ( data.download !== undefined )\r
+ this.setValue( 'checked', 'checked' );\r
+ },\r
+ commit: function( data ) {\r
+ if ( this.getValue() ) {\r
+ data.download = this.getValue();\r
+ }\r
+ }\r
+ } ]\r
} ]\r
} ]\r
} ],\r
onShow: function() {\r
var editor = this.getParentEditor(),\r
selection = editor.getSelection(),\r
- element = null;\r
+ displayTextField = this.getContentElement( 'info', 'linkDisplayText' ).getElement().getParent().getParent(),\r
+ elements = plugin.getSelectedLink( editor, true ),\r
+ firstLink = elements[ 0 ] || null;\r
\r
// Fill in all the relevant fields if there's already one link selected.\r
- if ( ( element = plugin.getSelectedLink( editor ) ) && element.hasAttribute( 'href' ) ) {\r
+ if ( firstLink && firstLink.hasAttribute( 'href' ) ) {\r
// Don't change selection if some element is already selected.\r
// For example - don't destroy fake selection.\r
- if ( !selection.getSelectedElement() )\r
- selection.selectElement( element );\r
- } else {\r
- element = null;\r
+ if ( !selection.getSelectedElement() && !selection.isInTable() ) {\r
+ selection.selectElement( firstLink );\r
+ }\r
}\r
\r
- var data = plugin.parseLinkAttributes( editor, element );\r
+ var data = plugin.parseLinkAttributes( editor, firstLink );\r
+\r
+ // Here we'll decide whether or not we want to show Display Text field.\r
+ if ( elements.length <= 1 && plugin.showDisplayTextForElement( firstLink, editor ) ) {\r
+ displayTextField.show();\r
+ } else {\r
+ displayTextField.hide();\r
+ }\r
\r
// Record down the selected element in the dialog.\r
- this._.selectedElement = element;\r
+ this._.selectedElements = elements;\r
\r
this.setupContent( data );\r
},\r
// Collect data from fields.\r
this.commitContent( data );\r
\r
- var selection = editor.getSelection(),\r
- attributes = plugin.getLinkAttributes( editor, data );\r
-\r
- if ( !this._.selectedElement ) {\r
- var range = selection.getRanges()[ 0 ];\r
-\r
- // Use link URL as text with a collapsed cursor.\r
- if ( range.collapsed ) {\r
- // Short mailto link text view (#5736).\r
- var text = new CKEDITOR.dom.text( data.type == 'email' ?\r
- data.email.address : attributes.set[ 'data-cke-saved-href' ], editor.document );\r
- range.insertNode( text );\r
- range.selectNodeContents( text );\r
- }\r
-\r
- // Apply style.\r
- var style = new CKEDITOR.style( {\r
- element: 'a',\r
- attributes: attributes.set\r
- } );\r
-\r
- style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why.\r
- style.applyToRange( range, editor );\r
- range.select();\r
+ if ( !this._.selectedElements.length ) {\r
+ insertLinksIntoSelection( editor, data );\r
} else {\r
- // We're only editing an existing link, so just overwrite the attributes.\r
- var element = this._.selectedElement,\r
- href = element.data( 'cke-saved-href' ),\r
- textView = element.getHtml();\r
-\r
- element.setAttributes( attributes.set );\r
- element.removeAttributes( attributes.removed );\r
-\r
- // Update text view when user changes protocol (#4612).\r
- if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {\r
- // Short mailto link text view (#5736).\r
- element.setHtml( data.type == 'email' ?\r
- data.email.address : attributes.set[ 'data-cke-saved-href' ] );\r
-\r
- // We changed the content, so need to select it again.\r
- selection.selectElement( element );\r
- }\r
+ editLinksInSelection( editor, this._.selectedElements, data );\r
\r
- delete this._.selectedElement;\r
+ delete this._.selectedElements;\r
}\r
},\r
onLoad: function() {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'af', {\r
anchorName: 'Op ankernaam',\r
charset: 'Karakterstel van geskakelde bron',\r
cssClasses: 'CSS klasse',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-posadres',\r
emailBody: 'Berig-inhoud',\r
emailSubject: 'Berig-onderwerp',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ar', {\r
anchorName: 'حسب إسم الإشارة المرجعية',\r
charset: 'ترميز المادة المطلوبة',\r
cssClasses: 'فئات التنسيق',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'البريد الإلكتروني',\r
emailBody: 'محتوى الرسالة',\r
emailSubject: 'موضوع الرسالة',\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'link', 'az', {\r
+ acccessKey: 'Qısayol düyməsi',\r
+ advanced: 'Geniş seçimləri',\r
+ advisoryContentType: 'Məsləhətli məzmunun növü',\r
+ advisoryTitle: 'Məsləhətli başlıq',\r
+ anchor: {\r
+ toolbar: 'Xeş',\r
+ menu: 'Xeşi redaktə et',\r
+ title: 'Xeşin seçimləri',\r
+ name: 'Xeşin adı',\r
+ errorName: 'Xeşin adı yanlışdır',\r
+ remove: 'Xeşin adı sil'\r
+ },\r
+ anchorId: 'ID görə',\r
+ anchorName: 'Xeşin adına görə',\r
+ charset: 'Hədəfin kodlaşdırması',\r
+ cssClasses: 'Üslub klası',\r
+ download: 'Məcburi yükləmə',\r
+ displayText: 'Göstərilən mətn',\r
+ emailAddress: 'E-poçt ünvanı',\r
+ emailBody: 'Mesajın məzmunu',\r
+ emailSubject: 'Mesajın başlığı',\r
+ id: 'ID',\r
+ info: 'Linkin xüsusiyyətləri',\r
+ langCode: 'Dilin kodu',\r
+ langDir: 'Yaziların istiqaməti',\r
+ langDirLTR: 'Soldan sağa (LTR)',\r
+ langDirRTL: 'Sağdan sola (RTL)',\r
+ menu: 'Linki redaktə et',\r
+ name: 'Ad',\r
+ noAnchors: '(heç bir xeş tapılmayıb)',\r
+ noEmail: 'E-poçt ünvanı daxil edin',\r
+ noUrl: 'Linkin URL-ı daxil edin',\r
+ other: '<digər>',\r
+ popupDependent: 'Asılı (Netscape)',\r
+ popupFeatures: 'Pəncərənin xüsusiyyətləri',\r
+ popupFullScreen: 'Tam ekran rejimi (IE)',\r
+ popupLeft: 'Solda',\r
+ popupLocationBar: 'Ünvan paneli',\r
+ popupMenuBar: 'Menyu paneli',\r
+ popupResizable: 'Olçülər dəyişilir',\r
+ popupScrollBars: 'Sürüşdürmələr göstər',\r
+ popupStatusBar: 'Bildirişlərin paneli',\r
+ popupToolbar: 'Alətlərin paneli',\r
+ popupTop: 'Yuxarıda',\r
+ rel: 'Münasibət',\r
+ selectAnchor: 'Xeşi seçin',\r
+ styles: 'Üslub',\r
+ tabIndex: 'Tabın nömrəsi',\r
+ target: 'Hədəf çərçivə',\r
+ targetFrame: '<freym>',\r
+ targetFrameName: 'Freymin adı',\r
+ targetPopup: '<yeni pəncərə>',\r
+ targetPopupName: 'Pəncərənin adı',\r
+ title: 'Link',\r
+ toAnchor: 'Xeş',\r
+ toEmail: 'E-poçt',\r
+ toUrl: 'URL',\r
+ toolbar: 'Link',\r
+ type: 'Linkin növü',\r
+ unlink: 'Linki sil',\r
+ upload: 'Serverə yüklə'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'bg', {\r
anchorName: 'По име на котва',\r
charset: 'Тип на свързания ресурс',\r
cssClasses: 'Класове за CSS',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-mail aдрес',\r
emailBody: 'Съдържание',\r
emailSubject: 'Тема',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'bn', {\r
- acccessKey: 'à¦\8fà¦\95à§\8dসà§\87স কী',\r
+ acccessKey: 'পà§\8dরবà§\87শ কী',\r
advanced: 'এডভান্সড',\r
advisoryContentType: 'পরামর্শ কন্টেন্টের প্রকার',\r
advisoryTitle: 'পরামর্শ শীর্ষক',\r
anchorName: 'নোঙরের নাম দিয়ে',\r
charset: 'লিংক রিসোর্স ক্যারেক্টর সেট',\r
cssClasses: 'স্টাইল-শীট ক্লাস',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'ইমেইল ঠিকানা',\r
emailBody: 'মেসেজের দেহ',\r
emailSubject: 'মেসেজের বিষয়',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'bs', {\r
anchorName: 'Po nazivu sidra',\r
charset: 'Linked Resource Charset',\r
cssClasses: 'Klase CSS stilova',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-Mail Adresa',\r
emailBody: 'Poruka',\r
emailSubject: 'Subjekt poruke',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ca', {\r
anchorName: 'Per nom d\'àncora',\r
charset: 'Conjunt de caràcters font enllaçat',\r
cssClasses: 'Classes del full d\'estil',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Text a mostrar',\r
emailAddress: 'Adreça de correu electrònic',\r
emailBody: 'Cos del missatge',\r
emailSubject: 'Assumpte del missatge',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'cs', {\r
anchorName: 'Podle jména kotvy',\r
charset: 'Přiřazená znaková sada',\r
cssClasses: 'Třída stylu',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Zobrazit text',\r
emailAddress: 'E-mailová adresa',\r
emailBody: 'Tělo zprávy',\r
emailSubject: 'Předmět zprávy',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'cy', {\r
anchorName: 'Gan Enw\'r Angor',\r
charset: 'Set Nodau\'r Adnodd Cysylltiedig',\r
cssClasses: 'Dosbarthiadau Dalen Arddull',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Cyfeiriad E-Bost',\r
emailBody: 'Corff y Neges',\r
emailSubject: 'Testun y Neges',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'da', {\r
anchorName: 'Efter ankernavn',\r
charset: 'Tegnsæt',\r
cssClasses: 'Typografiark',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-mailadresse',\r
emailBody: 'Besked',\r
emailSubject: 'Emne',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'de-ch', {\r
anchorName: 'Nach Ankername',\r
charset: 'Verknüpfter Ressourcenzeichensatz',\r
cssClasses: 'Formatvorlagenklasse',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-Mail-Adresse',\r
emailBody: 'Nachrichtentext',\r
emailSubject: 'Betreffzeile',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'de', {\r
anchorName: 'Nach Ankername',\r
charset: 'Verknüpfter Ressourcenzeichensatz',\r
cssClasses: 'Formatvorlagenklasse',\r
+ download: 'Herunterladen erzwingen',\r
+ displayText: 'Anzeigetext',\r
emailAddress: 'E-Mail-Adresse',\r
emailBody: 'Nachrichtentext',\r
emailSubject: 'Betreffzeile',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'el', {\r
anchorName: 'Βάσει του Ονόματος Άγκυρας',\r
charset: 'Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής',\r
cssClasses: 'Κλάσεις Φύλλων Στυλ',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Διεύθυνση E-mail',\r
emailBody: 'Κείμενο Μηνύματος',\r
emailSubject: 'Θέμα Μηνύματος',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'en-au', {\r
anchorName: 'By Anchor Name',\r
charset: 'Linked Resource Charset',\r
cssClasses: 'Stylesheet Classes',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-Mail Address',\r
emailBody: 'Message Body',\r
emailSubject: 'Message Subject',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'en-ca', {\r
anchorName: 'By Anchor Name',\r
charset: 'Linked Resource Charset',\r
cssClasses: 'Stylesheet Classes',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-Mail Address',\r
emailBody: 'Message Body',\r
emailSubject: 'Message Subject',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'en-gb', {\r
anchorName: 'By Anchor Name',\r
charset: 'Linked Resource Charset',\r
cssClasses: 'Stylesheet Classes',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-Mail Address',\r
emailBody: 'Message Body',\r
emailSubject: 'Message Subject',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'en', {\r
anchorName: 'By Anchor Name',\r
charset: 'Linked Resource Charset',\r
cssClasses: 'Stylesheet Classes',\r
+ download: 'Force Download',\r
+ displayText: 'Display Text',\r
emailAddress: 'E-Mail Address',\r
emailBody: 'Message Body',\r
emailSubject: 'Message Subject',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'eo', {\r
anchorName: 'Per Ankronomo',\r
charset: 'Signaro de la Ligita Rimedo',\r
cssClasses: 'Klasoj de Stilfolioj',\r
+ download: 'Altrudi Elŝuton',\r
+ displayText: 'Vidigi Tekston',\r
emailAddress: 'Retpoŝto',\r
emailBody: 'Mesaĝa korpo',\r
emailSubject: 'Mesaĝa Temo',\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'link', 'es-mx', {\r
+ acccessKey: 'Llave de acceso',\r
+ advanced: 'Avanzada',\r
+ advisoryContentType: 'Tipo de contenido consultivo',\r
+ advisoryTitle: 'Título asesor',\r
+ anchor: {\r
+ toolbar: 'Ancla',\r
+ menu: 'Editar ancla',\r
+ title: 'Propiedades del ancla',\r
+ name: 'Nombre del ancla',\r
+ errorName: 'Escriba el nombre del ancla',\r
+ remove: 'Remover ancla'\r
+ },\r
+ anchorId: 'Por Id del elemento',\r
+ anchorName: 'Por nombre del ancla',\r
+ charset: 'Recurso relacionado Charset',\r
+ cssClasses: 'Clases de estilo de hoja',\r
+ download: 'Forzar la descarga',\r
+ displayText: 'Mostrar texto',\r
+ emailAddress: 'Dirección de correo electrónico',\r
+ emailBody: 'Cuerpo del mensaje',\r
+ emailSubject: 'Asunto del mensaje',\r
+ id: 'Id',\r
+ info: 'Información del enlace',\r
+ langCode: 'Código del idioma',\r
+ langDir: 'Dirección del idioma',\r
+ langDirLTR: 'Izquierda a Derecha (LTR)',\r
+ langDirRTL: 'Derecha a Izquierda (RTL)',\r
+ menu: 'Editar enlace',\r
+ name: 'Nombre',\r
+ noAnchors: '(No hay anclas disponibles en el documento)',\r
+ noEmail: 'Escriba la dirección de correo electrónico',\r
+ noUrl: 'Escriba la URL del enlace',\r
+ other: '<other>',\r
+ popupDependent: 'Dependiente (Netscape)',\r
+ popupFeatures: 'Ventana emergente',\r
+ popupFullScreen: 'Pantalla completa (IE)',\r
+ popupLeft: 'Posición Izquierda',\r
+ popupLocationBar: 'Ubicación de la barra',\r
+ popupMenuBar: 'Barra de menú',\r
+ popupResizable: 'Redimensionable',\r
+ popupScrollBars: 'Barras de desplazamiento',\r
+ popupStatusBar: 'Barra de estado',\r
+ popupToolbar: 'Barra de herramienta',\r
+ popupTop: 'Posición superior',\r
+ rel: 'Relación',\r
+ selectAnchor: 'Selecciona un ancla',\r
+ styles: 'Estilo',\r
+ tabIndex: 'Indice de tabulación',\r
+ target: 'Objetivo',\r
+ targetFrame: '<frame>',\r
+ targetFrameName: 'Nombre del marco de destino',\r
+ targetPopup: '<popup window>',\r
+ targetPopupName: 'Nombre de ventana emergente',\r
+ title: 'Enlace',\r
+ toAnchor: 'Enlace al ancla en el texto',\r
+ toEmail: 'Correo electrónico',\r
+ toUrl: 'URL',\r
+ toolbar: 'Enlace',\r
+ type: 'Tipo de enlace',\r
+ unlink: 'Desconectar',\r
+ upload: 'Subir'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'es', {\r
anchorName: 'Por Nombre de Referencia',\r
charset: 'Fuente de caracteres vinculado',\r
cssClasses: 'Clases de hojas de estilo',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Dirección de E-Mail',\r
emailBody: 'Cuerpo del Mensaje',\r
emailSubject: 'Título del Mensaje',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'et', {\r
anchorName: 'Ankru nime järgi',\r
charset: 'Lingitud ressursi märgistik',\r
cssClasses: 'Stiilistiku klassid',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-posti aadress',\r
emailBody: 'Sõnumi tekst',\r
emailSubject: 'Sõnumi teema',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'eu', {\r
anchorName: 'Aingura-izenaren arabera',\r
charset: 'Estekatutako baliabide karaktere-jokoa',\r
cssClasses: 'Estilo-orriko klaseak',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Bistaratu testua',\r
emailAddress: 'E-posta helbidea',\r
emailBody: 'Mezuaren gorputza',\r
emailSubject: 'Mezuaren gaia',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'fa', {\r
anchorName: 'با نام لنگر',\r
charset: 'نویسهگان منبع پیوند شده',\r
cssClasses: 'کلاسهای شیوهنامه(Stylesheet)',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'نشانی پست الکترونیکی',\r
emailBody: 'متن پیام',\r
emailSubject: 'موضوع پیام',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'fi', {\r
anchorName: 'Ankkurin nimen mukaan',\r
charset: 'Linkitetty kirjaimisto',\r
cssClasses: 'Tyyliluokat',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Sähköpostiosoite',\r
emailBody: 'Viesti',\r
emailSubject: 'Aihe',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'fo', {\r
anchorName: 'Eftir navni á marknasteini',\r
charset: 'Atknýtt teknsett',\r
cssClasses: 'Typografi klassar',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Teldupost-adressa',\r
emailBody: 'Breyðtekstur',\r
emailSubject: 'Evni',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'fr-ca', {\r
anchorName: 'Par nom',\r
charset: 'Encodage de la cible',\r
cssClasses: 'Classes CSS',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Courriel',\r
emailBody: 'Corps du message',\r
emailSubject: 'Objet du message',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'fr', {\r
acccessKey: 'Touche d\'accessibilité',\r
advanced: 'Avancé',\r
- advisoryContentType: 'Type de contenu (ex: text/html)',\r
- advisoryTitle: 'Description (title)',\r
+ advisoryContentType: 'Type de contenu (indicatif)',\r
+ advisoryTitle: 'Infobulle',\r
anchor: {\r
toolbar: 'Ancre',\r
- menu: 'Editer l\'ancre',\r
+ menu: 'Modifier l\'ancre',\r
title: 'Propriétés de l\'ancre',\r
name: 'Nom de l\'ancre',\r
errorName: 'Veuillez entrer le nom de l\'ancre.',\r
},\r
anchorId: 'Par ID d\'élément',\r
anchorName: 'Par nom d\'ancre',\r
- charset: 'Charset de la cible',\r
- cssClasses: 'Classe CSS',\r
- emailAddress: 'Adresse E-Mail',\r
+ charset: 'Encodage de la ressource liée',\r
+ cssClasses: 'Classes de style',\r
+ download: 'Forcer le téléchargement',\r
+ displayText: 'Afficher le texte',\r
+ emailAddress: 'Adresse électronique',\r
emailBody: 'Corps du message',\r
emailSubject: 'Sujet du message',\r
- id: 'Id',\r
- info: 'Infos sur le lien',\r
+ id: 'ID',\r
+ info: 'Informations sur le lien',\r
langCode: 'Code de langue',\r
langDir: 'Sens d\'écriture',\r
langDirLTR: 'Gauche à droite',\r
- langDirRTL: 'Droite à gauche',\r
- menu: 'Editer le lien',\r
+ langDirRTL: 'Droite à gauche (RTL)',\r
+ menu: 'Modifier le lien',\r
name: 'Nom',\r
noAnchors: '(Aucune ancre disponible dans ce document)',\r
- noEmail: 'Veuillez entrer l\'adresse e-mail',\r
- noUrl: 'Veuillez entrer l\'adresse du lien',\r
+ noEmail: 'Veuillez entrer l\'adresse électronique',\r
+ noUrl: 'Veuillez entrer l\'URL du lien',\r
other: '<autre>',\r
popupDependent: 'Dépendante (Netscape)',\r
- popupFeatures: 'Options de la fenêtre popup',\r
+ popupFeatures: 'Caractéristiques de la fenêtre surgissante',\r
popupFullScreen: 'Plein écran (IE)',\r
- popupLeft: 'Position gauche',\r
+ popupLeft: 'À gauche',\r
popupLocationBar: 'Barre d\'adresse',\r
popupMenuBar: 'Barre de menu',\r
popupResizable: 'Redimensionnable',\r
popupScrollBars: 'Barres de défilement',\r
- popupStatusBar: 'Barre de status',\r
+ popupStatusBar: 'Barre d\'état',\r
popupToolbar: 'Barre d\'outils',\r
- popupTop: 'Position haute',\r
+ popupTop: 'En haut',\r
rel: 'Relation',\r
- selectAnchor: 'Sélectionner l\'ancre',\r
+ selectAnchor: 'Sélectionner une ancre',\r
styles: 'Style',\r
- tabIndex: 'Index de tabulation',\r
+ tabIndex: 'Indice de tabulation',\r
target: 'Cible',\r
targetFrame: '<cadre>',\r
- targetFrameName: 'Nom du Cadre destination',\r
- targetPopup: '<fenêtre popup>',\r
- targetPopupName: 'Nom de la fenêtre popup',\r
+ targetFrameName: 'Nom du cadre affecté',\r
+ targetPopup: '<fenêtre surgissante>',\r
+ targetPopupName: 'Nom de la fenêtre surgissante',\r
title: 'Lien',\r
toAnchor: 'Ancre',\r
- toEmail: 'E-mail',\r
+ toEmail: 'Courriel',\r
toUrl: 'URL',\r
toolbar: 'Lien',\r
type: 'Type de lien',\r
unlink: 'Supprimer le lien',\r
- upload: 'Envoyer'\r
+ upload: 'Téléverser'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'gl', {\r
anchorName: 'Polo nome da ancoraxe',\r
charset: 'Codificación do recurso ligado',\r
cssClasses: 'Clases da folla de estilos',\r
+ download: 'Forzar a descarga',\r
+ displayText: 'Amosar o texto',\r
emailAddress: 'Enderezo de correo',\r
emailBody: 'Corpo da mensaxe',\r
emailSubject: 'Asunto da mensaxe',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'gu', {\r
anchorName: 'ઍંકર નામથી પસંદ કરો',\r
charset: 'લિંક રિસૉર્સ કૅરિક્ટર સેટ',\r
cssClasses: 'સ્ટાઇલ-શીટ ક્લાસ',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'ઈ-મેલ સરનામું',\r
emailBody: 'સંદેશ',\r
emailSubject: 'ઈ-મેલ વિષય',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'he', {\r
anchorName: 'עפ"י שם העוגן',\r
charset: 'קידוד המשאב המקושר',\r
cssClasses: 'גיליונות עיצוב קבוצות',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'כתובת הדוא"ל',\r
emailBody: 'גוף ההודעה',\r
emailSubject: 'נושא ההודעה',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'hi', {\r
anchorName: 'ऐंकर नाम से',\r
charset: 'लिंक रिसोर्स करॅक्टर सॅट',\r
cssClasses: 'स्टाइल-शीट क्लास',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'ई-मेल पता',\r
emailBody: 'संदेश',\r
emailSubject: 'संदेश विषय',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'hr', {\r
acccessKey: 'Pristupna tipka',\r
advanced: 'Napredno',\r
- advisoryContentType: 'Advisory vrsta sadržaja',\r
- advisoryTitle: 'Advisory naslov',\r
+ advisoryContentType: 'Savjetodavna vrsta sadržaja',\r
+ advisoryTitle: 'Savjetodavni naslov',\r
anchor: {\r
toolbar: 'Ubaci/promijeni sidro',\r
menu: 'Svojstva sidra',\r
anchorName: 'Po nazivu sidra',\r
charset: 'Kodna stranica povezanih resursa',\r
cssClasses: 'Stylesheet klase',\r
+ download: 'Preuzmi na silu',\r
+ displayText: 'Prikaži tekst',\r
emailAddress: 'E-Mail adresa',\r
emailBody: 'Sadržaj poruke',\r
emailSubject: 'Naslov',\r
targetFrameName: 'Ime ciljnog okvira',\r
targetPopup: '<popup prozor>',\r
targetPopupName: 'Naziv popup prozora',\r
- title: 'Link',\r
+ title: 'Veza',\r
toAnchor: 'Sidro na ovoj stranici',\r
toEmail: 'E-Mail',\r
toUrl: 'URL',\r
- toolbar: 'Ubaci/promijeni link',\r
- type: 'Link vrsta',\r
- unlink: 'Ukloni link',\r
+ toolbar: 'Ubaci/promijeni vezu',\r
+ type: 'Vrsta veze',\r
+ unlink: 'Ukloni vezu',\r
upload: 'Pošalji'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'hu', {\r
anchorName: 'Horgony név szerint',\r
charset: 'Hivatkozott tartalom kódlapja',\r
cssClasses: 'Stíluskészlet',\r
+ download: 'Kötelező letöltés',\r
+ displayText: 'Megjelenített szöveg',\r
emailAddress: 'E-Mail cím',\r
emailBody: 'Üzenet',\r
emailSubject: 'Üzenet tárgya',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'id', {\r
anchorName: 'By Anchor Name', // MISSING\r
charset: 'Linked Resource Charset', // MISSING\r
cssClasses: 'Kelas Stylesheet',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Alamat E-mail',\r
emailBody: 'Message Body', // MISSING\r
emailSubject: 'Judul Pesan',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'is', {\r
anchorName: 'Eftir akkerisnafni',\r
charset: 'Táknróf',\r
cssClasses: 'Stílsniðsflokkur',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Netfang',\r
emailBody: 'Meginmál',\r
emailSubject: 'Efni',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'it', {\r
anchorName: 'Per Nome',\r
charset: 'Set di caretteri della risorsa collegata',\r
cssClasses: 'Nome classe CSS',\r
+ download: 'Forza scaricamento',\r
+ displayText: 'Mostra testo',\r
emailAddress: 'Indirizzo E-Mail',\r
emailBody: 'Corpo del messaggio',\r
emailSubject: 'Oggetto del messaggio',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ja', {\r
anchorName: 'アンカー名',\r
charset: 'リンク先のcharset',\r
cssClasses: 'スタイルシートクラス',\r
+ download: '強制的にダウンロード',\r
+ displayText: '表示文字',\r
emailAddress: 'E-Mail アドレス',\r
emailBody: '本文',\r
emailSubject: '件名',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ka', {\r
anchorName: 'ღუზის სახელით',\r
charset: 'კოდირება',\r
cssClasses: 'CSS კლასი',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'ელფოსტის მისამართები',\r
emailBody: 'წერილის ტექსტი',\r
emailSubject: 'წერილის სათაური',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'km', {\r
anchorName: 'តាមឈ្មោះយុថ្កា',\r
charset: 'លេខកូតអក្សររបស់ឈ្នាប់',\r
cssClasses: 'Stylesheet Classes',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'អាសយដ្ឋានអ៊ីមែល',\r
emailBody: 'តួអត្ថបទ',\r
emailSubject: 'ប្រធានបទសារ',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ko', {\r
anchorName: '책갈피 이름',\r
charset: '링크된 자료 문자열 인코딩',\r
cssClasses: '스타일시트 클래스',\r
+ download: '강제 다운로드',\r
+ displayText: '보이는 글자',\r
emailAddress: '이메일 주소',\r
emailBody: '메시지 내용',\r
emailSubject: '메시지 제목',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ku', {\r
anchorName: 'بەپێی ناوی لەنگەر',\r
charset: 'بەستەری سەرچاوەی نووسە',\r
cssClasses: 'شێوازی چینی پەڕه',\r
+ download: 'داگرتنی بەهێز',\r
+ displayText: 'پیشاندانی دەق',\r
emailAddress: 'ناونیشانی ئیمەیل',\r
emailBody: 'ناوەڕۆکی نامە',\r
emailSubject: 'بابەتی نامە',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'lt', {\r
anchorName: 'Pagal žymės vardą',\r
charset: 'Susietų išteklių simbolių lentelė',\r
cssClasses: 'Stilių lentelės klasės',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'El.pašto adresas',\r
emailBody: 'Žinutės turinys',\r
emailSubject: 'Žinutės tema',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'lv', {\r
anchorName: 'Pēc iezīmes nosaukuma',\r
charset: 'Pievienotā resursa kodējums',\r
cssClasses: 'Stilu saraksta klases',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-pasta adrese',\r
emailBody: 'Ziņas saturs',\r
emailSubject: 'Ziņas tēma',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'mk', {\r
anchorName: 'By Anchor Name', // MISSING\r
charset: 'Linked Resource Charset', // MISSING\r
cssClasses: 'Stylesheet Classes', // MISSING\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-Mail Address', // MISSING\r
emailBody: 'Message Body', // MISSING\r
emailSubject: 'Message Subject', // MISSING\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'mn', {\r
anchorName: 'Зангуугийн нэрээр',\r
charset: 'Тэмдэгт оноох нөөцөд холбогдсон',\r
cssClasses: 'Stylesheet классууд',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Э-шуудангийн хаяг',\r
emailBody: 'Зурвасны их бие',\r
emailSubject: 'Зурвасны гарчиг',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ms', {\r
anchorName: 'dengan menggunakan nama pautan',\r
charset: 'Linked Resource Charset',\r
cssClasses: 'Kelas-kelas Stylesheet',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Alamat E-Mail',\r
emailBody: 'Isi Kandungan Mesej',\r
emailSubject: 'Subjek Mesej',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'nb', {\r
advisoryContentType: 'Type',\r
advisoryTitle: 'Tittel',\r
anchor: {\r
- toolbar: 'Sett inn/Rediger anker',\r
- menu: 'Egenskaper for anker',\r
+ toolbar: 'Anker',\r
+ menu: 'Rediger anker',\r
title: 'Egenskaper for anker',\r
name: 'Ankernavn',\r
errorName: 'Vennligst skriv inn ankernavnet',\r
anchorName: 'Anker etter navn',\r
charset: 'Lenket tegnsett',\r
cssClasses: 'Stilarkklasser',\r
+ download: 'Tving nedlasting',\r
+ displayText: 'Tekst som skal vises',\r
emailAddress: 'E-postadresse',\r
emailBody: 'Melding',\r
emailSubject: 'Meldingsemne',\r
info: 'Lenkeinfo',\r
langCode: 'Språkkode',\r
langDir: 'Språkretning',\r
- langDirLTR: 'Venstre til høyre (VTH)',\r
- langDirRTL: 'Høyre til venstre (HTV)',\r
+ langDirLTR: 'Venstre til høyre (LTR)',\r
+ langDirRTL: 'Høyre til venstre (RTL)',\r
menu: 'Rediger lenke',\r
name: 'Navn',\r
noAnchors: '(Ingen anker i dokumentet)',\r
toAnchor: 'Lenke til anker i teksten',\r
toEmail: 'E-post',\r
toUrl: 'URL',\r
- toolbar: 'Sett inn/Rediger lenke',\r
+ toolbar: 'Lenke',\r
type: 'Lenketype',\r
unlink: 'Fjern lenke',\r
upload: 'Last opp'\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'nl', {\r
anchorName: 'Op naam interne link',\r
charset: 'Karakterset van gelinkte bron',\r
cssClasses: 'Stylesheet-klassen',\r
+ download: 'Download forceren',\r
+ displayText: 'Weergavetekst',\r
emailAddress: 'E-mailadres',\r
emailBody: 'Inhoud bericht',\r
emailSubject: 'Onderwerp bericht',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'no', {\r
anchorName: 'Anker etter navn',\r
charset: 'Lenket tegnsett',\r
cssClasses: 'Stilarkklasser',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Tekst som skal vises',\r
emailAddress: 'E-postadresse',\r
emailBody: 'Melding',\r
emailSubject: 'Meldingsemne',\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'link', 'oc', {\r
+ acccessKey: 'Tòca d\'accessibilitat',\r
+ advanced: 'Avançat',\r
+ advisoryContentType: 'Tipe de contengut (indicatiu)',\r
+ advisoryTitle: 'Infobulla',\r
+ anchor: {\r
+ toolbar: 'Ancòra',\r
+ menu: 'Modificar l\'ancòra',\r
+ title: 'Proprietats de l\'ancòra',\r
+ name: 'Nom de l\'ancòra',\r
+ errorName: 'Entratz lo nom de l\'ancòra',\r
+ remove: 'Suprimir l\'ancòra'\r
+ },\r
+ anchorId: 'Per ID d\'element',\r
+ anchorName: 'Per nom d\'ancòra',\r
+ charset: 'Encodatge de la ressorsa ligada',\r
+ cssClasses: 'Classas d\'estil',\r
+ download: 'Forçar lo telecargament',\r
+ displayText: 'Afichar lo tèxte',\r
+ emailAddress: 'Adreça electronica',\r
+ emailBody: 'Còs del messatge',\r
+ emailSubject: 'Subjècte del messatge',\r
+ id: 'Id',\r
+ info: 'Informacions sul ligam',\r
+ langCode: 'Còdi de lenga',\r
+ langDir: 'Sens d\'escritura',\r
+ langDirLTR: 'Esquèrra a dreita (LTR)',\r
+ langDirRTL: 'Dreita a esquèrra (RTL)',\r
+ menu: 'Modificar lo ligam',\r
+ name: 'Nom',\r
+ noAnchors: '(Cap d\'ancòra pas disponibla dins aqueste document)',\r
+ noEmail: 'Entratz l\'adreça electronica',\r
+ noUrl: 'Entratz l\'URL del ligam',\r
+ other: '<autre>',\r
+ popupDependent: 'Dependenta (Netscape)',\r
+ popupFeatures: 'Caracteristicas de la fenèstra sorgissenta',\r
+ popupFullScreen: 'Ecran complet (IE)',\r
+ popupLeft: 'A esquèrra',\r
+ popupLocationBar: 'Barra d\'adreça',\r
+ popupMenuBar: 'Barra de menú',\r
+ popupResizable: 'Redimensionable',\r
+ popupScrollBars: 'Barras de desfilament',\r
+ popupStatusBar: 'Barra d\'estat',\r
+ popupToolbar: 'Barra d\'aisinas',\r
+ popupTop: 'Amont',\r
+ rel: 'Relacion',\r
+ selectAnchor: 'Seleccionar una ancòra',\r
+ styles: 'Estil',\r
+ tabIndex: 'Indici de tabulacion',\r
+ target: 'Cibla',\r
+ targetFrame: '<quadre>',\r
+ targetFrameName: 'Nom del quadre afectat',\r
+ targetPopup: '<fenèstra sorgissenta>',\r
+ targetPopupName: 'Nom de la fenèstra sorgissenta',\r
+ title: 'Ligam',\r
+ toAnchor: 'Ancòra',\r
+ toEmail: 'Corrièl',\r
+ toUrl: 'URL',\r
+ toolbar: 'Ligam',\r
+ type: 'Tipe de ligam',\r
+ unlink: 'Suprimir lo ligam',\r
+ upload: 'Mandar'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'pl', {\r
anchorName: 'Wg nazwy',\r
charset: 'Kodowanie znaków obiektu docelowego',\r
cssClasses: 'Nazwa klasy CSS',\r
+ download: 'Wymuś pobieranie',\r
+ displayText: 'Wyświetlany tekst',\r
emailAddress: 'Adres e-mail',\r
emailBody: 'Treść',\r
emailSubject: 'Temat',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'pt-br', {\r
anchorName: 'Nome da âncora',\r
charset: 'Charset do Link',\r
cssClasses: 'Classe de CSS',\r
+ download: 'Forçar Download',\r
+ displayText: 'Exibir Texto',\r
emailAddress: 'Endereço E-Mail',\r
emailBody: 'Corpo da Mensagem',\r
emailSubject: 'Assunto da Mensagem',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'pt', {\r
- acccessKey: 'Chave de Acesso',\r
+ acccessKey: 'Chave de acesso',\r
advanced: 'Avançado',\r
- advisoryContentType: 'Tipo de Conteúdo',\r
+ advisoryContentType: 'Tipo de conteúdo',\r
advisoryTitle: 'Título',\r
anchor: {\r
- toolbar: ' Inserir/Editar Ã\82ncora',\r
- menu: 'Propriedades da Ã\82ncora',\r
- title: 'Propriedades da Ã\82ncora',\r
- name: 'Nome da Ã\82ncora',\r
+ toolbar: ' Inserir/Editar âncora',\r
+ menu: 'Propriedades da âncora',\r
+ title: 'Propriedades da âncora',\r
+ name: 'Nome da âncora',\r
errorName: 'Por favor, introduza o nome da âncora',\r
- remove: 'Remove Anchor'\r
+ remove: 'Remover âncora'\r
},\r
- anchorId: 'Por ID de elemento',\r
+ anchorId: 'Por ID do elemento',\r
anchorName: 'Por Nome de Referência',\r
charset: 'Fonte de caracteres vinculado',\r
- cssClasses: 'Classes de Estilo de Folhas Classes',\r
- emailAddress: 'Endereço de E-Mail',\r
- emailBody: 'Corpo da Mensagem',\r
- emailSubject: 'Título de Mensagem',\r
+ cssClasses: 'Classes de Estilo',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Mostrar texto',\r
+ emailAddress: 'Endereço de email',\r
+ emailBody: 'Corpo da mensagem',\r
+ emailSubject: 'Título de mensagem',\r
id: 'ID',\r
- info: 'Informação de Hiperligação',\r
- langCode: 'Orientação de idioma',\r
+ info: 'Informação da hiperligação',\r
+ langCode: 'Código de idioma',\r
langDir: 'Orientação de idioma',\r
- langDirLTR: 'Esquerda à Direita (LTR)',\r
- langDirRTL: 'Direita a Esquerda (RTL)',\r
- menu: 'Editar Hiperligação',\r
+ langDirLTR: 'Esquerda para a Direita (EPD)',\r
+ langDirRTL: 'Direita para a Esquerda (DPE)',\r
+ menu: 'Editar hiperligação',\r
name: 'Nome',\r
- noAnchors: '(Não há referências disponíveis no documento)',\r
- noEmail: 'Por favor introduza o endereço de e-mail',\r
- noUrl: 'Por favor introduza a hiperligação URL',\r
+ noAnchors: '(Não existem âncoras no documento)',\r
+ noEmail: 'Por favor, escreva o endereço de email',\r
+ noUrl: 'Por favor, introduza o endereço URL',\r
other: '<outro>',\r
popupDependent: 'Dependente (Netscape)',\r
- popupFeatures: 'Características de Janela de Popup',\r
- popupFullScreen: 'Janela Completa (IE)',\r
- popupLeft: 'Posição Esquerda',\r
+ popupFeatures: 'Características de janela flutuante',\r
+ popupFullScreen: 'Janela completa (IE)',\r
+ popupLeft: 'Posição esquerda',\r
popupLocationBar: 'Barra de localização',\r
- popupMenuBar: 'Barra de Menu',\r
+ popupMenuBar: 'Barra de menu',\r
popupResizable: 'Redimensionável',\r
popupScrollBars: 'Barras de deslocamento',\r
- popupStatusBar: 'Barra de Estado',\r
+ popupStatusBar: 'Barra de estado',\r
popupToolbar: 'Barra de ferramentas',\r
- popupTop: 'Posição Direita',\r
+ popupTop: 'Posição topo',\r
rel: 'Relação',\r
- selectAnchor: 'Seleccionar una referência',\r
+ selectAnchor: 'Selecionar âncora',\r
styles: 'Estilo',\r
tabIndex: 'Índice de tabulação',\r
target: 'Alvo',\r
targetFrame: '<frame>',\r
- targetFrameName: 'Nome do Frame Destino',\r
+ targetFrameName: 'Nome da janela de destino',\r
targetPopup: '<janela de popup>',\r
- targetPopupName: 'Nome da Janela de Popup',\r
+ targetPopupName: 'Nome da janela flutuante',\r
title: 'Hiperligação',\r
- toAnchor: 'Referência a esta página',\r
+ toAnchor: 'Ligar a âncora no texto',\r
toEmail: 'Email',\r
toUrl: 'URL',\r
- toolbar: 'Inserir/Editar Hiperligação',\r
- type: 'Tipo de Hiperligação',\r
- unlink: 'Eliminar Hiperligação',\r
+ toolbar: 'Hiperligação',\r
+ type: 'Tipo de hiperligação',\r
+ unlink: 'Eliminar hiperligação',\r
upload: 'Carregar'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ro', {\r
anchorName: 'după numele ancorei',\r
charset: 'Setul de caractere al resursei legate',\r
cssClasses: 'Clasele cu stilul paginii (CSS)',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Adresă de e-mail',\r
emailBody: 'Opțiuni Meniu Contextual',\r
emailSubject: 'Subiectul mesajului',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ru', {\r
anchorName: 'По имени',\r
charset: 'Кодировка ресурса',\r
cssClasses: 'Классы CSS',\r
+ download: 'Скачать как файл',\r
+ displayText: 'Отображаемый текст',\r
emailAddress: 'Email адрес',\r
emailBody: 'Текст сообщения',\r
emailSubject: 'Тема сообщения',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'si', {\r
anchorName: 'By Anchor Name', // MISSING\r
charset: 'Linked Resource Charset', // MISSING\r
cssClasses: 'විලාසපත්ර පන්තිය',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-Mail Address', // MISSING\r
emailBody: 'Message Body', // MISSING\r
emailSubject: 'Message Subject', // MISSING\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'sk', {\r
anchorName: 'Podľa mena kotvy',\r
charset: 'Priradená znaková sada',\r
cssClasses: 'Triedy štýlu',\r
+ download: 'Vynútené sťahovanie.',\r
+ displayText: 'Zobraziť text',\r
emailAddress: 'E-Mailová adresa',\r
emailBody: 'Telo správy',\r
emailSubject: 'Predmet správy',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'sl', {\r
- acccessKey: 'Dostopno Geslo',\r
+ acccessKey: 'Tipka za dostop',\r
advanced: 'Napredno',\r
- advisoryContentType: 'Predlagani tip vsebine (content-type)',\r
+ advisoryContentType: 'Predlagana vrsta vsebine',\r
advisoryTitle: 'Predlagani naslov',\r
anchor: {\r
- toolbar: 'Vstavi/uredi zaznamek',\r
- menu: 'Lastnosti zaznamka',\r
- title: 'Lastnosti zaznamka',\r
- name: 'Ime zaznamka',\r
- errorName: 'Prosim vnesite ime zaznamka',\r
- remove: 'Remove Anchor'\r
+ toolbar: 'Sidro',\r
+ menu: 'Uredi sidro',\r
+ title: 'Lastnosti sidra',\r
+ name: 'Ime sidra',\r
+ errorName: 'Prosimo, vnesite ime sidra',\r
+ remove: 'Odstrani sidro'\r
},\r
anchorId: 'Po ID-ju elementa',\r
- anchorName: 'Po imenu zaznamka',\r
- charset: 'Kodna tabela povezanega vira',\r
- cssClasses: 'Razred stilne predloge',\r
- emailAddress: 'Elektronski naslov',\r
- emailBody: 'Vsebina sporočila',\r
- emailSubject: 'Predmet sporočila',\r
+ anchorName: 'Po imenu sidra',\r
+ charset: 'Nabor znakov povezanega vira',\r
+ cssClasses: 'Razredi slogovne predloge',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
+ emailAddress: 'E-poštni naslov',\r
+ emailBody: 'Telo sporočila',\r
+ emailSubject: 'Zadeva sporočila',\r
id: 'Id',\r
info: 'Podatki o povezavi',\r
- langCode: 'Smer jezika',\r
+ langCode: 'Koda jezika',\r
langDir: 'Smer jezika',\r
langDirLTR: 'Od leve proti desni (LTR)',\r
langDirRTL: 'Od desne proti levi (RTL)',\r
menu: 'Uredi povezavo',\r
name: 'Ime',\r
- noAnchors: '(V tem dokumentu ni zaznamkov)',\r
- noEmail: 'Vnesite elektronski naslov',\r
+ noAnchors: '(V tem dokumentu ni sider)',\r
+ noEmail: 'Vnesite e-poštni naslov',\r
noUrl: 'Vnesite URL povezave',\r
- other: '<drug>',\r
+ other: '<drugo>',\r
popupDependent: 'Podokno (Netscape)',\r
popupFeatures: 'Značilnosti pojavnega okna',\r
- popupFullScreen: 'Celozaslonska slika (IE)',\r
+ popupFullScreen: 'Celozaslonsko (IE)',\r
popupLeft: 'Lega levo',\r
popupLocationBar: 'Naslovna vrstica',\r
popupMenuBar: 'Menijska vrstica',\r
popupToolbar: 'Orodna vrstica',\r
popupTop: 'Lega na vrhu',\r
rel: 'Odnos',\r
- selectAnchor: 'Izberi zaznamek',\r
+ selectAnchor: 'Izberite sidro',\r
styles: 'Slog',\r
tabIndex: 'Številka tabulatorja',\r
target: 'Cilj',\r
targetPopup: '<pojavno okno>',\r
targetPopupName: 'Ime pojavnega okna',\r
title: 'Povezava',\r
- toAnchor: 'Zaznamek na tej strani',\r
- toEmail: 'Elektronski naslov',\r
+ toAnchor: 'Sidro na tej strani',\r
+ toEmail: 'E-pošta',\r
toUrl: 'URL',\r
toolbar: 'Vstavi/uredi povezavo',\r
type: 'Vrsta povezave',\r
unlink: 'Odstrani povezavo',\r
- upload: 'Prenesi'\r
+ upload: 'Naloži'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'sq', {\r
anchorName: 'Sipas Emrit të Spirancës',\r
charset: 'Seti i Karaktereve të Burimeve të Nëdlidhura',\r
cssClasses: 'Klasa stili CSS',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Posta Elektronike',\r
emailBody: 'Trupi i Porosisë',\r
emailSubject: 'Titulli i Porosisë',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'sr-latn', {\r
anchorName: 'Po nazivu sidra',\r
charset: 'Linked Resource Charset',\r
cssClasses: 'Stylesheet klase',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'E-Mail adresa',\r
emailBody: 'Sadržaj poruke',\r
emailSubject: 'Naslov',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'sr', {\r
anchorName: 'По називу сидра',\r
charset: 'Linked Resource Charset',\r
cssClasses: 'Stylesheet класе',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Адреса електронске поште',\r
emailBody: 'Садржај поруке',\r
emailSubject: 'Наслов',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'sv', {\r
anchorName: 'Efter ankarnamn',\r
charset: 'Teckenuppställning',\r
cssClasses: 'Stilmall',\r
+ download: 'Tvinga nerladdning',\r
+ displayText: 'Visningstext',\r
emailAddress: 'E-postadress',\r
emailBody: 'Innehåll',\r
emailSubject: 'Ämne',\r
popupLeft: 'Position från vänster',\r
popupLocationBar: 'Adressfält',\r
popupMenuBar: 'Menyfält',\r
- popupResizable: 'Resizable', // MISSING\r
+ popupResizable: 'Skalbart',\r
popupScrollBars: 'Scrolllista',\r
popupStatusBar: 'Statusfält',\r
popupToolbar: 'Verktygsfält',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'th', {\r
anchorName: 'ชื่อ',\r
charset: 'ลิงค์เชื่อมโยงไปยังชุดตัวอักษร',\r
cssClasses: 'คลาสของไฟล์กำหนดลักษณะการแสดงผล',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'อีเมล์ (E-Mail)',\r
emailBody: 'ข้อความ',\r
emailSubject: 'หัวเรื่อง',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'tr', {\r
anchorName: 'Bağlantı Adı ile',\r
charset: 'Bağlı Kaynak Karakter Gurubu',\r
cssClasses: 'Biçem Sayfası Sınıfları',\r
+ download: 'İndirmeye Zorla',\r
+ displayText: 'Gösterim Metni',\r
emailAddress: 'E-Posta Adresi',\r
emailBody: 'İleti Gövdesi',\r
emailSubject: 'İleti Konusu',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'tt', {\r
anchorName: 'Якорь исеме буенча',\r
charset: 'Linked Resource Charset', // MISSING\r
cssClasses: 'Стильләр класслары',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Электрон почта адресы',\r
emailBody: 'Хат эчтәлеге',\r
emailSubject: 'Хат темасы',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'ug', {\r
anchorName: 'لەڭگەرلىك نۇقتا ئاتى بويىچە',\r
charset: 'ھەرپ كودلىنىشى',\r
cssClasses: 'ئۇسلۇب خىلى ئاتى',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'ئادرېس',\r
emailBody: 'مەزمۇن',\r
emailSubject: 'ماۋزۇ',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'uk', {\r
anchorName: 'За ім\'ям елементу',\r
charset: 'Кодування',\r
cssClasses: 'Клас CSS',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Адреса ел. пошти',\r
emailBody: 'Тіло повідомлення',\r
emailSubject: 'Тема листа',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'vi', {\r
anchorName: 'Theo tên điểm neo',\r
charset: 'Bảng mã của tài nguyên được liên kết đến',\r
cssClasses: 'Lớp Stylesheet',\r
+ download: 'Force Download', // MISSING\r
+ displayText: 'Display Text', // MISSING\r
emailAddress: 'Thư điện tử',\r
emailBody: 'Nội dung thông điệp',\r
emailSubject: 'Tiêu đề thông điệp',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'zh-cn', {\r
anchorName: '按锚点名称',\r
charset: '字符编码',\r
cssClasses: '样式类名称',\r
+ download: '强制下载',\r
+ displayText: '显示文本',\r
emailAddress: '地址',\r
emailBody: '内容',\r
emailSubject: '主题',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'link', 'zh', {\r
anchorName: '依錨點名稱',\r
charset: '連結資源的字元集',\r
cssClasses: '樣式表類別',\r
+ download: '強制下載',\r
+ displayText: '顯示文字',\r
emailAddress: '電子郵件地址',\r
emailBody: '郵件本文',\r
emailSubject: '郵件主旨',\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.add( 'link', {\r
requires: 'dialog,fakeobjects',\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'anchor,anchor-rtl,link,unlink', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
required = 'a[href]';\r
\r
if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'advanced' ) )\r
- allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)' );\r
+ allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)' );\r
if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'target' ) )\r
allowed = allowed.replace( ']', ',target,onclick]' );\r
\r
CKEDITOR.dialog.add( 'anchor', this.path + 'dialogs/anchor.js' );\r
\r
editor.on( 'doubleclick', function( evt ) {\r
- var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || evt.data.element;\r
+ // If the link has descendants and the last part of it is also a part of a word partially\r
+ // unlinked, clicked element may be a descendant of the link, not the link itself (http://dev.ckeditor.com/ticket/11956).\r
+ // The evt.data.element.getAscendant( 'img', 1 ) condition allows opening anchor dialog if the anchor is empty (#501).\r
+ var element = evt.data.element.getAscendant( { a: 1, img: 1 }, true );\r
\r
- if ( !element.isReadOnly() ) {\r
+ if ( element && !element.isReadOnly() ) {\r
if ( element.is( 'a' ) ) {\r
evt.data.dialog = ( element.getAttribute( 'name' ) && ( !element.getAttribute( 'href' ) || !element.getChildCount() ) ) ? 'anchor' : 'link';\r
\r
\r
// If event was cancelled, link passed in event data will not be selected.\r
editor.on( 'doubleclick', function( evt ) {\r
- // Make sure both links and anchors are selected (#11822).\r
+ // Make sure both links and anchors are selected (http://dev.ckeditor.com/ticket/11822).\r
if ( evt.data.dialog in { link: 1, anchor: 1 } && evt.data.link )\r
editor.getSelection().selectElement( evt.data.link );\r
}, null, null, 20 );\r
*\r
* @since 3.2.1\r
* @param {CKEDITOR.editor} editor\r
+ * @param {Boolean} [returnMultiple=false] Indicates whether the function should return only the first selected link or all of them.\r
+ * @returns {CKEDITOR.dom.element/CKEDITOR.dom.element[]/null} A single link element or an array of link\r
+ * elements relevant to the current selection.\r
*/\r
- getSelectedLink: function( editor ) {\r
- var selection = editor.getSelection();\r
- var selectedElement = selection.getSelectedElement();\r
- if ( selectedElement && selectedElement.is( 'a' ) )\r
+ getSelectedLink: function( editor, returnMultiple ) {\r
+ var selection = editor.getSelection(),\r
+ selectedElement = selection.getSelectedElement(),\r
+ ranges = selection.getRanges(),\r
+ links = [],\r
+ link,\r
+ range,\r
+ i;\r
+\r
+ if ( !returnMultiple && selectedElement && selectedElement.is( 'a' ) ) {\r
return selectedElement;\r
+ }\r
+\r
+ for ( i = 0; i < ranges.length; i++ ) {\r
+ range = selection.getRanges()[ i ];\r
\r
- var range = selection.getRanges()[ 0 ];\r
+ // Skip bogus to cover cases of multiple selection inside tables (#tp2245).\r
+ range.shrink( CKEDITOR.SHRINK_TEXT, false, { skipBogus: true } );\r
+ link = editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 );\r
\r
- if ( range ) {\r
- range.shrink( CKEDITOR.SHRINK_TEXT );\r
- return editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 );\r
+ if ( link && returnMultiple ) {\r
+ links.push( link );\r
+ } else if ( link ) {\r
+ return link;\r
+ }\r
}\r
- return null;\r
+\r
+ return returnMultiple ? links : null;\r
},\r
\r
/**\r
var editable = editor.editable(),\r
\r
// The scope of search for anchors is the entire document for inline editors\r
- // and editor's editable for classic editor/divarea (#11359).\r
+ // and editor's editable for classic editor/divarea (http://dev.ckeditor.com/ticket/11359).\r
scope = ( editable.isInline() && !editor.plugins.divarea ) ? editor.document : editable,\r
\r
links = scope.getElementsByTag( 'a' ),\r
fakeAnchor: true,\r
\r
/**\r
- * For browsers that do not support CSS3 `a[name]:empty()`. Note that IE9 is included because of #7783.\r
+ * For browsers that do not support CSS3 `a[name]:empty()`. Note that IE9 is included because of http://dev.ckeditor.com/ticket/7783.\r
*\r
* @readonly\r
* @deprecated 4.3.3 It is set to `false` in every browser.\r
if ( ( javascriptMatch = href.match( javascriptProtocolRegex ) ) ) {\r
if ( emailProtection == 'encode' ) {\r
href = href.replace( encodedEmailLinkRegex, function( match, protectedAddress, rest ) {\r
- // Without it 'undefined' is appended to e-mails without subject and body (#9192).\r
+ // Without it 'undefined' is appended to e-mails without subject and body (http://dev.ckeditor.com/ticket/9192).\r
rest = rest || '';\r
\r
return 'mailto:' +\r
\r
var featureMatch;\r
while ( ( featureMatch = popupFeaturesRegex.exec( onclickMatch[ 2 ] ) ) ) {\r
- // Some values should remain numbers (#7300)\r
+ // Some values should remain numbers (http://dev.ckeditor.com/ticket/7300)\r
if ( ( featureMatch[ 2 ] == 'yes' || featureMatch[ 2 ] == '1' ) && !( featureMatch[ 1 ] in { height: 1, width: 1, top: 1, left: 1 } ) )\r
retval.target[ featureMatch[ 1 ] ] = true;\r
else if ( isFinite( featureMatch[ 2 ] ) )\r
};\r
}\r
\r
+ var download = element.getAttribute( 'download' );\r
+ if ( download !== null ) {\r
+ retval.download = true;\r
+ }\r
+\r
var advanced = {};\r
\r
for ( var a in advAttrNames ) {\r
}\r
}\r
\r
+ // Force download attribute.\r
+ if ( data.download ) {\r
+ set.download = '';\r
+ }\r
+\r
// Advanced attributes.\r
if ( data.advanced ) {\r
for ( var a in advAttrNames ) {\r
set[ 'data-cke-saved-name' ] = set.name;\r
}\r
\r
- // Browser need the "href" fro copy/paste link to work. (#6641)\r
+ // Browser need the "href" fro copy/paste link to work. (http://dev.ckeditor.com/ticket/6641)\r
if ( set[ 'data-cke-saved-href' ] )\r
set.href = set[ 'data-cke-saved-href' ];\r
\r
target: 1,\r
onclick: 1,\r
'data-cke-pa-onclick': 1,\r
- 'data-cke-saved-name': 1\r
+ 'data-cke-saved-name': 1,\r
+ 'download': 1\r
};\r
\r
if ( data.advanced )\r
set: set,\r
removed: CKEDITOR.tools.objectKeys( removed )\r
};\r
+ },\r
+\r
+\r
+ /**\r
+ * Determines whether an element should have a "Display Text" field in the Link dialog.\r
+ *\r
+ * @since 4.5.11\r
+ * @param {CKEDITOR.dom.element/null} element Selected element, `null` if none selected or if a ranged selection\r
+ * is made.\r
+ * @param {CKEDITOR.editor} editor The editor instance for which the check is performed.\r
+ * @returns {Boolean}\r
+ */\r
+ showDisplayTextForElement: function( element, editor ) {\r
+ var undesiredElements = {\r
+ img: 1,\r
+ table: 1,\r
+ tbody: 1,\r
+ thead: 1,\r
+ tfoot: 1,\r
+ input: 1,\r
+ select: 1,\r
+ textarea: 1\r
+ },\r
+ selection = editor.getSelection();\r
+\r
+ // Widget duck typing, we don't want to show display text for widgets.\r
+ if ( editor.widgets && editor.widgets.focused ) {\r
+ return false;\r
+ }\r
+\r
+ if ( selection && selection.getRanges().length > 1 ) {\r
+ return false;\r
+ }\r
+\r
+ return !element || !element.getName || !element.is( undesiredElements );\r
}\r
};\r
\r
CKEDITOR.unlinkCommand = function() {};\r
CKEDITOR.unlinkCommand.prototype = {\r
exec: function( editor ) {\r
+ // IE/Edge removes link from selection while executing "unlink" command when cursor\r
+ // is right before/after link's text. Therefore whole link must be selected and the\r
+ // position of cursor must be restored to its initial state after unlinking. (http://dev.ckeditor.com/ticket/13062)\r
+ if ( CKEDITOR.env.ie ) {\r
+ var range = editor.getSelection().getRanges()[ 0 ],\r
+ link = ( range.getPreviousEditableNode() && range.getPreviousEditableNode().getAscendant( 'a', true ) ) ||\r
+ ( range.getNextEditableNode() && range.getNextEditableNode().getAscendant( 'a', true ) ),\r
+ bookmark;\r
+\r
+ if ( range.collapsed && link ) {\r
+ bookmark = range.createBookmark();\r
+ range.selectNodeContents( link );\r
+ range.select();\r
+ }\r
+ }\r
+\r
var style = new CKEDITOR.style( { element: 'a', type: CKEDITOR.STYLE_INLINE, alwaysRemoveElement: 1 } );\r
editor.removeStyle( style );\r
+\r
+ if ( bookmark ) {\r
+ range.moveToBookmark( bookmark );\r
+ range.select();\r
+ }\r
},\r
\r
refresh: function( editor, path ) {\r
\r
contextSensitive: 1,\r
startDisabled: 1,\r
- requiredContent: 'a[href]'\r
+ requiredContent: 'a[href]',\r
+ editorFocus: 1\r
};\r
\r
CKEDITOR.removeAnchorCommand = function() {};\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'list', 'az', {\r
+ bulletedlist: 'Markerlənmiş siyahını başlat/sil',\r
+ numberedlist: 'Nömrələnmiş siyahını başlat/sil'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'bn', {\r
- bulletedlist: 'বুলেট লিস্ট লেবেল',\r
+ bulletedlist: 'বুলেটেড তালিকা প্রবেশ/অপসারন করি',\r
numberedlist: 'সাংখ্যিক লিস্টের লেবেল'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'list', 'es-mx', {\r
+ bulletedlist: 'Insertar/Remover Lista con viñetas',\r
+ numberedlist: 'Insertar/Remover Lista numerada'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'fr', {\r
- bulletedlist: 'Insérer/Supprimer la liste à puces',\r
- numberedlist: 'Insérer/Supprimer la liste numérotée'\r
+ bulletedlist: 'Insérer/Supprimer une liste à puces',\r
+ numberedlist: 'Insérer/Supprimer une liste numérotée'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'nb', {\r
- bulletedlist: 'Legg til / fjern punktmerket liste',\r
+ bulletedlist: 'Legg til / fjern punktliste',\r
numberedlist: 'Legg til / fjern nummerert liste'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'list', 'oc', {\r
+ bulletedlist: 'Inserir/Suprimir una lista amb de piuses',\r
+ numberedlist: 'Inserir/Suprimir una lista numerotada'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'pt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'sl', {\r
- bulletedlist: 'Označen seznam',\r
- numberedlist: 'Oštevilčen seznam'\r
+ bulletedlist: 'Vstavi/odstrani neoštevilčen seznam',\r
+ numberedlist: 'Vstavi/odstrani oštevilčen seznam'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'list', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
for ( var i = 0, count = listNode.getChildCount(); i < count; i++ ) {\r
var listItem = listNode.getChild( i );\r
\r
- // Fixing malformed nested lists by moving it into a previous list item. (#6236)\r
+ // Fixing malformed nested lists by moving it into a previous list item. (http://dev.ckeditor.com/ticket/6236)\r
if ( listItem.type == CKEDITOR.NODE_ELEMENT && listItem.getName() in CKEDITOR.dtd.$list )\r
CKEDITOR.plugins.list.listToArray( listItem, database, baseArray, baseIndentLevel + 1 );\r
\r
currentListItem.append( item.contents[ i ].clone( 1, 1 ) );\r
currentIndex++;\r
} else if ( item.indent == Math.max( indentLevel, 0 ) + 1 ) {\r
- // Maintain original direction (#6861).\r
+ // Maintain original direction (http://dev.ckeditor.com/ticket/6861).\r
var currDir = listArray[ currentIndex - 1 ].element.getDirection( 1 ),\r
listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode, currDir != orgDir ? orgDir : null );\r
\r
// If the next block is an <li> with another list tree as the first\r
// child, we'll need to append a filler (<br>/NBSP) or the list item\r
- // wouldn't be editable. (#6724)\r
+ // wouldn't be editable. (http://dev.ckeditor.com/ticket/6724)\r
if ( !currentListItem.getChildCount() && CKEDITOR.env.needsNbspFiller && doc.$.documentMode <= 7 )\r
currentListItem.append( doc.createText( '\xa0' ) );\r
currentListItem.append( listData.listNode );\r
contentBlock.appendTo( listItem );\r
else {\r
contentBlock.copyAttributes( listItem );\r
- // Remove direction attribute after it was merged into list root. (#7657)\r
+ // Remove direction attribute after it was merged into list root. (http://dev.ckeditor.com/ticket/7657)\r
if ( listDir && contentBlock.getDirection() ) {\r
listItem.removeStyle( 'direction' );\r
listItem.removeAttribute( 'dir' );\r
\r
var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, groupObj.root.getAttribute( 'dir' ) );\r
\r
- // Compensate <br> before/after the list node if the surrounds are non-blocks.(#3836)\r
+ // Compensate <br> before/after the list node if the surrounds are non-blocks.(http://dev.ckeditor.com/ticket/3836)\r
var docFragment = newList.listNode,\r
boundaryNode, siblingNode;\r
\r
// Checks wheather this block should be element preserved (not transformed to <li>) when creating list.\r
function shouldPreserveBlock( block ) {\r
return (\r
- // #5335\r
+ // http://dev.ckeditor.com/ticket/5335\r
block.is( 'pre' ) ||\r
- // #5271 - this is a header.\r
+ // http://dev.ckeditor.com/ticket/5271 - this is a header.\r
headerTagRegex.test( block.getName() ) ||\r
// 11083 - this is a non-editable element.\r
block.getAttribute( 'contenteditable' ) == 'false'\r
\r
var elementType = CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT );\r
\r
- // Merge child nodes with direction preserved. (#7448)\r
+ // Merge child nodes with direction preserved. (http://dev.ckeditor.com/ticket/7448)\r
function mergeChildren( from, into, refNode, forward ) {\r
var child, itemDir;\r
while ( ( child = from[ forward ? 'getLast' : 'getFirst' ]( elementType ) ) ) {\r
selection.selectRanges( ranges );\r
}\r
// Maybe a single range there enclosing the whole list,\r
- // turn on the list state manually(#4129).\r
+ // turn on the list state manually(http://dev.ckeditor.com/ticket/4129).\r
else {\r
var range = ranges.length == 1 && ranges[ 0 ],\r
enclosedNode = range && range.getEnclosedNode();\r
\r
// First, try to group by a list ancestor.\r
for ( var i = pathElementsCount - 1; i >= 0 && ( element = pathElements[ i ] ); i-- ) {\r
- // Don't leak outside block limit (#3940).\r
+ // Don't leak outside block limit (http://dev.ckeditor.com/ticket/3940).\r
if ( listNodeNames[ element.getName() ] && blockLimit.contains( element ) ) {\r
// If we've encountered a list inside a block limit\r
// The last group object of the block limit element should\r
// no longer be valid. Since paragraphs after the list\r
// should belong to a different group of paragraphs before\r
- // the list. (Bug #1309)\r
+ // the list. (Bug http://dev.ckeditor.com/ticket/1309)\r
blockLimit.removeCustomData( 'list_group_object_' + index );\r
\r
var groupObj = element.getCustomData( 'list_group_object' );\r
function mergeSibling( rtl ) {\r
var sibling = listNode[ rtl ? 'getPrevious' : 'getNext' ]( nonEmpty );\r
if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT && sibling.is( listNode.getName() ) ) {\r
- // Move children order by merge direction.(#3820)\r
+ // Move children order by merge direction.(http://dev.ckeditor.com/ticket/3820)\r
mergeChildren( listNode, sibling, null, !rtl );\r
\r
listNode.remove();\r
nextPath = nextCursor.startPath();\r
nextBlock = nextPath.block;\r
\r
- // Abort when nothing to be removed (#10890).\r
+ // Abort when nothing to be removed (http://dev.ckeditor.com/ticket/10890).\r
if ( !nextBlock )\r
break;\r
\r
nextBlock.remove();\r
}\r
\r
- // Check if need to further merge with the list resides after the merged block. (#9080)\r
+ // Check if need to further merge with the list resides after the merged block. (http://dev.ckeditor.com/ticket/9080)\r
var walkerRng = nextCursor.clone(), editable = editor.editable();\r
walkerRng.setEndAt( editable, CKEDITOR.POSITION_BEFORE_END );\r
var walker = new CKEDITOR.dom.walker( walkerRng );\r
\r
CKEDITOR.plugins.add( 'list', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'bulletedlist,bulletedlist-rtl,numberedlist,numberedlist-rtl', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
} );\r
}\r
\r
- // Handled backspace/del key to join list items. (#8248,#9080)\r
+ // Handled backspace/del key to join list items. (http://dev.ckeditor.com/ticket/8248,http://dev.ckeditor.com/ticket/9080)\r
editor.on( 'key', function( evt ) {\r
// Use getKey directly in order to ignore modifiers.\r
// Justification: http://dev.ckeditor.com/ticket/11861#comment:13\r
// Place cursor at the end of previous block.\r
cursor.moveToElementEditEnd( joinWith );\r
\r
- // And then just before end of closest block element (#12729).\r
+ // And then just before end of closest block element (http://dev.ckeditor.com/ticket/12729).\r
cursor.moveToPosition( cursor.endPath().block, CKEDITOR.POSITION_BEFORE_END );\r
}\r
}\r
}\r
else {\r
var list = path.contains( listNodeNames );\r
- // Backspace pressed at the start of list outdents the first list item. (#9129)\r
+ // Backspace pressed at the start of list outdents the first list item. (http://dev.ckeditor.com/ticket/9129)\r
if ( list && range.checkBoundaryOfElement( list, CKEDITOR.START ) ) {\r
li = list.getFirst( nonEmpty );\r
\r
nextLine = range.clone();\r
nextLine.moveToElementEditStart( next );\r
\r
- // #13409\r
+ // http://dev.ckeditor.com/ticket/13409\r
// For the following case and similar\r
//\r
// <ul>\r
}\r
}\r
\r
- // Moving `cursor` and `next line` only when at the end literally (#12729).\r
+ // Moving `cursor` and `next line` only when at the end literally (http://dev.ckeditor.com/ticket/12729).\r
if ( isAtEnd == 2 ) {\r
cursor.moveToPosition( cursor.endPath().block, CKEDITOR.POSITION_BEFORE_END );\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
'<a id="{id}_option" _cke_focus=1 hidefocus=true' +\r
' title="{title}"' +\r
' href="javascript:void(\'{val}\')" ' +\r
- ' {onclick}="CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;"' + // #188\r
+ ' {onclick}="CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;"' + // http://dev.ckeditor.com/ticket/188\r
' role="option">' +\r
'{text}' +\r
'</a>' +\r
keys[ 38 ] = 'prev'; // ARROW-UP\r
keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB\r
keys[ 32 ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // SPACE\r
- CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (#8041).\r
+ CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (http://dev.ckeditor.com/ticket/8041).\r
\r
this._.pendingHtml = [];\r
this._.pendingList = [];\r
this.onMark && this.onMark( item );\r
},\r
\r
+ markFirstDisplayed: function() {\r
+ var context = this;\r
+ this._.markFirstDisplayed( function() {\r
+ if ( !context.multiSelect )\r
+ context.unmarkAll();\r
+ } );\r
+ },\r
+\r
unmark: function( value ) {\r
var doc = this.element.getDocument(),\r
itemId = this._.items[ value ],\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'liststyle', 'az', {\r
+ armenian: 'Erməni nömrələmə',\r
+ bulletedTitle: 'Markerlənmiş siyahının xüsusiyyətləri',\r
+ circle: 'Dəirəcik',\r
+ decimal: 'Rəqəm (1, 2, 3 və s.)',\r
+ decimalLeadingZero: 'Aparıcı sıfır olan rəqəm (01, 02, 03 və s.)',\r
+ disc: 'Disk',\r
+ georgian: 'Gürcü nömrələmə (an, ban, gan, və s.)',\r
+ lowerAlpha: 'Kiçik hərflər (a, b, c, d, e və s.)',\r
+ lowerGreek: 'Kiçik Yunan hərfləri (alfa, beta, qamma və s.)',\r
+ lowerRoman: 'Rum rəqəmləri (i, ii, iii, iv, v və s.)',\r
+ none: 'Yoxdur',\r
+ notset: '<seçilməmiş>',\r
+ numberedTitle: 'Nömrəli siyahının xüsusiyyətləri',\r
+ square: 'Dördbucaq',\r
+ start: 'Başlanğıc',\r
+ type: 'Növ',\r
+ upperAlpha: 'Böyük hərflər (a, b, c, d, e və s.)',\r
+ upperRoman: 'Böyük Rum rəqəmləri (I, II, III, IV, V və s.)',\r
+ validateStartNumber: 'Siyahının başlanğıc nömrəsi tam və müsbət rəqəm olmalıdır.'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'bn', {\r
- armenian: 'Armenian numbering',\r
+ armenian: 'আর্মেনিয়ান সংখ্যাক্রমে বিন্যাস',\r
bulletedTitle: 'Bulleted List Properties',\r
circle: 'Circle',\r
decimal: 'Decimal (1, 2, 3, etc.)',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'liststyle', 'es-mx', {\r
+ armenian: 'Numeración armenia',\r
+ bulletedTitle: 'Propiedades de la lista con viñetas',\r
+ circle: 'Círculo',\r
+ decimal: 'Decimal (1, 2, 3, etc.)',\r
+ decimalLeadingZero: 'Decimal con cero (01, 02, 03, etc.)',\r
+ disc: 'Desc',\r
+ georgian: 'Numeración gregoriana (an, ban, gan, etc.)',\r
+ lowerAlpha: 'Alfabeto minúscula (a, b, c, d, e, etc.)',\r
+ lowerGreek: 'Griego minúscula (alpha, beta, gamma, etc.)',\r
+ lowerRoman: 'Romano minúscula (i, ii, iii, iv, v, etc.)',\r
+ none: 'Ninguno',\r
+ notset: '<not set>',\r
+ numberedTitle: 'Propiedades de la lista numerada',\r
+ square: 'Cuadrado',\r
+ start: 'Inicio',\r
+ type: 'Tipo',\r
+ upperAlpha: 'Abecedario mayúscula (A, B, C, D, E, etc.)',\r
+ upperRoman: 'Romanos mayúscula (I, II, III, IV, V, etc.)',\r
+ validateStartNumber: 'El número de inicio de la lista debe ser un número entero.'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'fr', {\r
decimalLeadingZero: 'Décimal précédé par un 0 (01, 02, 03, etc.)',\r
disc: 'Disque',\r
georgian: 'Numération géorgienne (an, ban, gan, etc.)',\r
- lowerAlpha: 'Alphabétique minuscules (a, b, c, d, e, etc.)',\r
- lowerGreek: 'Grec minuscule (alpha, beta, gamma, etc.)',\r
- lowerRoman: 'Nombres romains minuscules (i, ii, iii, iv, v, etc.)',\r
+ lowerAlpha: 'Lettres minuscules (a, b, c, d, e, etc.)',\r
+ lowerGreek: 'Grec minuscule (alpha, bêta, gamma, etc.)',\r
+ lowerRoman: 'Chiffres romains minuscules (i, ii, iii, iv, v, etc.)',\r
none: 'Aucun',\r
- notset: '<Non défini>',\r
+ notset: '<indéfini>',\r
numberedTitle: 'Propriétés de la liste numérotée',\r
square: 'Carré',\r
start: 'Début',\r
type: 'Type',\r
- upperAlpha: 'Alphabétique majuscules (A, B, C, D, E, etc.)',\r
- upperRoman: 'Nombres romains majuscules (I, II, III, IV, V, etc.)',\r
+ upperAlpha: 'Lettres majuscules (A, B, C, D, E, etc.)',\r
+ upperRoman: 'Chiffres romains majuscules (I, II, III, IV, V, etc.)',\r
validateStartNumber: 'Le premier élément de la liste doit être un nombre entier.'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'nb', {\r
armenian: 'Armensk nummerering',\r
- bulletedTitle: 'Egenskaper for punktmerket liste',\r
+ bulletedTitle: 'Egenskaper for punktliste',\r
circle: 'Sirkel',\r
decimal: 'Tall (1, 2, 3, osv.)',\r
decimalLeadingZero: 'Tall, med førstesiffer null (01, 02, 03, osv.)',\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'liststyle', 'oc', {\r
+ armenian: 'Numerotacion armènia',\r
+ bulletedTitle: 'Proprietats de la lista de piuses',\r
+ circle: 'Cercle',\r
+ decimal: 'Decimal (1, 2, 3, etc.)',\r
+ decimalLeadingZero: 'Decimal precedit per un 0 (01, 02, 03, etc.)',\r
+ disc: 'Disc',\r
+ georgian: 'Numeracion georgiana (an, ban, gan, etc.)',\r
+ lowerAlpha: 'Letras minusculas (a, b, c, d, e, etc.)',\r
+ lowerGreek: 'Grèc minuscula (alfa, bèta, gamma, etc.)',\r
+ lowerRoman: 'Chifras romanas minusculas (i, ii, iii, iv, v, etc.)',\r
+ none: 'Pas cap',\r
+ notset: '<indefinit>',\r
+ numberedTitle: 'Proprietats de la lista numerotada',\r
+ square: 'Carrat',\r
+ start: 'Començament',\r
+ type: 'Tipe',\r
+ upperAlpha: 'Letras majusculas (A, B, C, D, E, etc.)',\r
+ upperRoman: 'Chifras romanas majusculas (I, II, III, IV, V, etc.)',\r
+ validateStartNumber: 'Lo primièr element de la lista deu èsser un nombre entièr.'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'pt', {\r
armenian: 'Numeração armênia',\r
- bulletedTitle: 'Bulleted List Properties',\r
+ bulletedTitle: 'Propriedades da lista não numerada',\r
circle: 'Círculo',\r
decimal: 'Decimal (1, 2, 3, etc.)',\r
- decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',\r
+ decimalLeadingZero: 'Zero decimal à esquerda (01, 02, 03, etc.)',\r
disc: 'Disco',\r
- georgian: 'Georgian numbering (an, ban, gan, etc.)',\r
- lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',\r
- lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',\r
- lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',\r
+ georgian: 'Numeração georgiana (an, ban, gan, etc.)',\r
+ lowerAlpha: 'Minúsculas (a, b, c, d, e, etc.)',\r
+ lowerGreek: 'Grego em minúsculas (alpha, beta, gamma, etc.)',\r
+ lowerRoman: 'Romano em minúsculas (i, ii, iii, iv, v, etc.)',\r
none: 'Nenhum',\r
notset: '<not set>',\r
numberedTitle: 'Numbered List Properties',\r
square: 'Quadrado',\r
start: 'Iniciar',\r
type: 'Tipo',\r
- upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',\r
- upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',\r
- validateStartNumber: 'List start number must be a whole number.'\r
+ upperAlpha: 'Maiúsculas (A, B, C, D, E, etc.)',\r
+ upperRoman: 'Romanos em maiúscula (I, II, III, IV, V, etc.)',\r
+ validateStartNumber: 'A lista tem iniciar por um número inteiro'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'sl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'liststyle', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.liststyle = {\r
requires: 'dialog,contextmenu',\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
init: function( editor ) {\r
if ( editor.blockless )\r
\r
def = new CKEDITOR.dialogCommand( 'numberedListStyle', {\r
requiredContent: 'ol',\r
- allowedContent: 'ol{list-style-type}[start]'\r
+ allowedContent: 'ol{list-style-type}[start]; li{list-style-type}[value]',\r
+ contentTransformations: [\r
+ [ 'ol: listTypeToStyle' ]\r
+ ]\r
} );\r
cmd = editor.addCommand( 'numberedListStyle', def );\r
editor.addFeature( cmd );\r
\r
def = new CKEDITOR.dialogCommand( 'bulletedListStyle', {\r
requiredContent: 'ul',\r
- allowedContent: 'ul{list-style-type}'\r
+ allowedContent: 'ul{list-style-type}',\r
+ contentTransformations: [\r
+ [ 'ul: listTypeToStyle' ]\r
+ ]\r
} );\r
cmd = editor.addCommand( 'bulletedListStyle', def );\r
editor.addFeature( cmd );\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'magicline', 'az', {\r
+ title: 'Abzası burada əlavə et'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'magicline', 'es-mx', {\r
+ title: 'Insertar un párrafo aquí'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.setLang( 'magicline', 'fr', {\r
- title: 'Insérez un paragraphe ici'\r
+ title: 'Insérer un paragraphe ici'\r
} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'magicline', 'oc', {\r
+ title: 'Inserir un paragraf aicí'\r
+} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.setLang( 'magicline', 'pt', {\r
- title: 'Insira aqui o parágrafo'\r
+ title: 'Inserir parágrafo aqui'\r
} );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
( function() {\r
CKEDITOR.plugins.add( 'magicline', {\r
- lang: 'af,ar,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,es-mx,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,oc,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
init: initPlugin\r
} );\r
\r
// %REMOVE_START%\r
// Internal DEBUG uses tools located in the topmost window.\r
\r
- // (#9701) Due to security limitations some browsers may throw\r
+ // (http://dev.ckeditor.com/ticket/9701) Due to security limitations some browsers may throw\r
// errors when accessing window.top object. Do it safely first then.\r
try {\r
that.debug = window.top.DEBUG;\r
var elements, element, i;\r
\r
for ( var t in { p: 1, br: 1, div: 1 } ) {\r
- // document.find is not available in QM (#11149).\r
+ // document.find is not available in QM (http://dev.ckeditor.com/ticket/11149).\r
elements = editor.document.getElementsByTag( t );\r
\r
for ( i = elements.count(); i--; ) {\r
function elementFromPoint( doc, mouse ) {\r
var pointedElement = doc.$.elementFromPoint( mouse.x, mouse.y );\r
\r
- // IE9QM: from times to times it will return an empty object on scroll bar hover. (#12185)\r
+ // IE9QM: from times to times it will return an empty object on scroll bar hover. (http://dev.ckeditor.com/ticket/12185)\r
return pointedElement && pointedElement.nodeType ?\r
new CKEDITOR.dom.element( pointedElement ) :\r
null;\r
// If trigger is an element, neither editable nor editable's ascendant.\r
if ( trigger && that.editable.contains( trigger ) ) {\r
// Check for closest editable limit.\r
- // Don't consider trigger as a limit as it may be nested editable (includeSelf=false) (#12009).\r
+ // Don't consider trigger as a limit as it may be nested editable (includeSelf=false) (http://dev.ckeditor.com/ticket/12009).\r
var limit = getClosestEditableLimit( trigger );\r
\r
// Trigger in nested editable area.\r
\r
// Consider the editable to be an element with overflow:scroll\r
// and non-zero scrollTop/scrollLeft value.\r
- // For example: divarea editable. (#9383)\r
+ // For example: divarea editable. (http://dev.ckeditor.com/ticket/9383)\r
styleSet.top += view.editable.scroll.top;\r
styleSet.left += view.editable.scroll.left;\r
}\r
var selected = editor.getSelection().getStartElement(),\r
limit;\r
\r
- // (#9833) Go down to the closest non-inline element in DOM structure\r
+ // (http://dev.ckeditor.com/ticket/9833) Go down to the closest non-inline element in DOM structure\r
// since inline elements don't participate in in magicline.\r
selected = selected.getAscendant( DTD_BLOCK, 1 );\r
\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'maximize', 'az', {\r
+ maximize: 'Aşkarla',\r
+ minimize: 'Gizlət'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'bn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'maximize', 'es-mx', {\r
+ maximize: 'Maximizar',\r
+ minimize: 'Minimizar'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'fr', {\r
maximize: 'Agrandir',\r
- minimize: 'Minimiser'\r
+ minimize: 'Réduire'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'maximize', 'oc', {\r
+ maximize: 'Maximizar',\r
+ minimize: 'Minimizar'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'pt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'sl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'maximize', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
}\r
\r
retval.inline = $element.style.cssText || '';\r
- if ( !isInsideEditor ) // Reset any external styles that might interfere. (#2474)\r
+ if ( !isInsideEditor ) // Reset any external styles that might interfere. (http://dev.ckeditor.com/ticket/2474)\r
$element.style.cssText = 'position: static; overflow: visible';\r
\r
restoreFormStyles( data );\r
if ( editor.editable().isInline() )\r
return;\r
\r
- // Refresh all editor instances on the page (#5724).\r
+ // Refresh all editor instances on the page (http://dev.ckeditor.com/ticket/5724).\r
var all = CKEDITOR.instances;\r
for ( var i in all ) {\r
var one = all[ i ];\r
if ( one.mode == 'wysiwyg' && !one.readOnly ) {\r
var body = one.document.getBody();\r
// Refresh 'contentEditable' otherwise\r
- // DOM lifting breaks design mode. (#5560)\r
+ // DOM lifting breaks design mode. (http://dev.ckeditor.com/ticket/5560)\r
body.setAttribute( 'contentEditable', false );\r
body.setAttribute( 'contentEditable', true );\r
}\r
\r
CKEDITOR.plugins.add( 'maximize', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'maximize', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
var savedState = CKEDITOR.TRISTATE_OFF;\r
\r
editor.addCommand( 'maximize', {\r
- // Disabled on iOS (#8307).\r
+ // Disabled on iOS (http://dev.ckeditor.com/ticket/8307).\r
modes: { wysiwyg: !CKEDITOR.env.iOS, source: !CKEDITOR.env.iOS },\r
readOnly: 1,\r
editorFocus: false,\r
\r
// Hide scroll bars.\r
var styles = {\r
- overflow: CKEDITOR.env.webkit ? '' : 'hidden', // #6896\r
+ overflow: CKEDITOR.env.webkit ? '' : 'hidden', // http://dev.ckeditor.com/ticket/6896\r
width: 0,\r
height: 0\r
};\r
!CKEDITOR.env.gecko && mainDocument.getDocumentElement().setStyle( 'position', 'fixed' );\r
!( CKEDITOR.env.gecko && CKEDITOR.env.quirks ) && mainDocument.getBody().setStyles( styles );\r
\r
- // Scroll to the top left (IE needs some time for it - #4923).\r
+ // Scroll to the top left (IE needs some time for it - http://dev.ckeditor.com/ticket/4923).\r
CKEDITOR.env.ie ? setTimeout( function() {\r
mainWindow.$.scrollTo( 0, 0 );\r
}, 0 ) : mainWindow.$.scrollTo( 0, 0 );\r
\r
// Resize and move to top left.\r
- // Special treatment for FF Quirks (#7284)\r
+ // Special treatment for FF Quirks (http://dev.ckeditor.com/ticket/7284)\r
container.setStyle( 'position', CKEDITOR.env.gecko && CKEDITOR.env.quirks ? 'fixed' : 'absolute' );\r
- container.$.offsetLeft; // SAFARI BUG: See #2066.\r
+ container.$.offsetLeft; // SAFARI BUG: See http://dev.ckeditor.com/ticket/2066.\r
container.setStyles( {\r
// Show under floatpanels (-1) and context menu (-2).\r
'z-index': editor.config.baseFloatZIndex - 5,\r
top: '0px'\r
} );\r
\r
- // Add cke_maximized class before resize handle since that will change things sizes (#5580)\r
+ // Add cke_maximized class before resize handle since that will change things sizes (http://dev.ckeditor.com/ticket/5580)\r
container.addClass( 'cke_maximized' );\r
\r
resizeHandler();\r
\r
- // Still not top left? Fix it. (Bug #174)\r
+ // Still not top left? Fix it. (Bug http://dev.ckeditor.com/ticket/174)\r
var offset = container.getDocumentPosition();\r
container.setStyles( {\r
left: ( -1 * offset.x ) + 'px',\r
top: ( -1 * offset.y ) + 'px'\r
} );\r
\r
- // Fixing positioning editor chrome in Firefox break design mode. (#5149)\r
+ // Fixing positioning editor chrome in Firefox break design mode. (http://dev.ckeditor.com/ticket/5149)\r
CKEDITOR.env.gecko && refreshCursor( editor );\r
}\r
// Restore from fullscreen if the state is on.\r
// Remove cke_maximized class.\r
container.removeClass( 'cke_maximized' );\r
\r
- // Webkit requires a re-layout on editor chrome. (#6695)\r
+ // Webkit requires a re-layout on editor chrome. (http://dev.ckeditor.com/ticket/6695)\r
if ( CKEDITOR.env.webkit ) {\r
container.setStyle( 'display', 'inline' );\r
setTimeout( function() {\r
\r
// Toggle button label.\r
var button = this.uiItems[ 0 ];\r
- // Only try to change the button if it exists (#6166)\r
+ // Only try to change the button if it exists (http://dev.ckeditor.com/ticket/6166)\r
if ( button ) {\r
var label = ( this.state == CKEDITOR.TRISTATE_OFF ) ? lang.maximize.maximize : lang.maximize.minimize;\r
var buttonNode = CKEDITOR.document.getById( button._.id );\r
// Restore selection and scroll position in editing area.\r
if ( editor.mode == 'wysiwyg' ) {\r
if ( savedSelection ) {\r
- // Fixing positioning editor chrome in Firefox break design mode. (#5149)\r
+ // Fixing positioning editor chrome in Firefox break design mode. (http://dev.ckeditor.com/ticket/5149)\r
CKEDITOR.env.gecko && refreshCursor( editor );\r
\r
editor.getSelection().selectRanges( savedSelection );\r
toolbar: 'tools,10'\r
} );\r
\r
- // Restore the command state after mode change, unless it has been changed to disabled (#6467)\r
+ // Restore the command state after mode change, unless it has been changed to disabled (http://dev.ckeditor.com/ticket/6467)\r
editor.on( 'mode', function() {\r
var command = editor.getCommand( 'maximize' );\r
command.setState( command.state == CKEDITOR.TRISTATE_DISABLED ? CKEDITOR.TRISTATE_DISABLED : savedState );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
};\r
\r
/**\r
- * Adds one or more items from the specified definition array to the editor context menu.\r
+ * Adds one or more items from the specified definition object to the editor context menu.\r
*\r
* @method\r
- * @param {Array} definitions List of definitions for each menu item as if {@link #addMenuItem} is called.\r
+ * @param {Object} definitions Object where keys are used as itemName and corresponding values as definition for a {@link #addMenuItem} call.\r
* @member CKEDITOR.editor\r
*/\r
editor.addMenuItems = function( definitions ) {\r
' class="cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href="{href}"' +\r
' title="{title}"' +\r
' tabindex="-1"' +\r
- '_cke_focus=1' +\r
+ ' _cke_focus=1' +\r
' hidefocus="true"' +\r
' role="{role}"' +\r
+ ' aria-label="{label}"' +\r
+ ' aria-describedby="{id}_description"' +\r
' aria-haspopup="{hasPopup}"' +\r
' aria-disabled="{disabled}"' +\r
- ' {ariaChecked}';\r
+ ' {ariaChecked}' +\r
+ ' draggable="false"';\r
\r
// Some browsers don't cancel key events in the keydown but in the\r
// keypress.\r
menuItemSource += ' onkeypress="return false;"';\r
\r
// With Firefox, we need to force the button to redraw, otherwise it\r
- // will remain in the focus state.\r
- if ( CKEDITOR.env.gecko )\r
- menuItemSource += ' onblur="this.style.cssText = this.style.cssText;"';\r
+ // will remain in the focus state. Also we some extra help to prevent dragging (http://dev.ckeditor.com/ticket/10373).\r
+ if ( CKEDITOR.env.gecko ) {\r
+ menuItemSource += ( ' onblur="this.style.cssText = this.style.cssText;"' +\r
+ ' ondragstart="return false;"' );\r
+ }\r
\r
- // #188\r
+ // http://dev.ckeditor.com/ticket/188\r
menuItemSource += ' onmouseover="CKEDITOR.tools.callFunction({hoverFn},{index});"' +\r
' onmouseout="CKEDITOR.tools.callFunction({moveOutFn},{index});" ' +\r
( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) +\r
'>';\r
\r
menuItemSource +=\r
+ //'' +\r
'<span class="cke_menubutton_inner">' +\r
'<span class="cke_menubutton_icon">' +\r
'<span class="cke_button_icon cke_button__{iconName}_icon" style="{iconStyle}"></span>' +\r
'<span class="cke_menubutton_label">' +\r
'{label}' +\r
'</span>' +\r
+ '{shortcutHtml}' +\r
'{arrowHtml}' +\r
'</span>' +\r
- '</a></span>';\r
+ '</a><span id="{id}_description" class="cke_voice_label" aria-hidden="false">{ariaShortcut}</span></span>';\r
\r
var menuArrowSource = '<span class="cke_menuarrow">' +\r
'<span>{label}</span>' +\r
'</span>';\r
\r
+ var menuShortcutSource = '<span class="cke_menubutton_label cke_menubutton_shortcut">' +\r
+ '{shortcut}' +\r
+ '</span>';\r
+\r
var menuItemTpl = CKEDITOR.addTemplate( 'menuItem', menuItemSource ),\r
- menuArrowTpl = CKEDITOR.addTemplate( 'menuArrow', menuArrowSource );\r
+ menuArrowTpl = CKEDITOR.addTemplate( 'menuArrow', menuArrowSource ),\r
+ menuShortcutTpl = CKEDITOR.addTemplate( 'menuShortcut', menuShortcutSource );\r
\r
/**\r
* @class\r
\r
// Show the submenu.\r
// This timeout is needed to give time for the sub-menu get\r
- // focus when JAWS is running. (#9844)\r
+ // focus when JAWS is running. (http://dev.ckeditor.com/ticket/9844)\r
setTimeout( function() {\r
menu.show( element, 2 );\r
}, 0 );\r
add: function( item ) {\r
// Later we may sort the items, but Array#sort is not stable in\r
// some browsers, here we're forcing the original sequence with\r
- // 'order' attribute if it hasn't been assigned. (#3868)\r
+ // 'order' attribute if it hasn't been assigned. (http://dev.ckeditor.com/ticket/3868)\r
if ( !item.order )\r
item.order = this.items.length;\r
\r
keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB\r
keys[ ( editor.lang.dir == 'rtl' ? 37 : 39 ) ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // ARROW-RIGHT/ARROW-LEFT(rtl)\r
keys[ 32 ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // SPACE\r
- CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (#8041).\r
+ CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (http://dev.ckeditor.com/ticket/8041).\r
\r
element = this._.element = block.element;\r
\r
render: function( menu, index, output ) {\r
var id = menu.id + String( index ),\r
state = ( typeof this.state == 'undefined' ) ? CKEDITOR.TRISTATE_OFF : this.state,\r
- ariaChecked = '';\r
+ ariaChecked = '',\r
+ editor = this.editor,\r
+ keystroke,\r
+ command,\r
+ shortcut;\r
\r
var stateName = state == CKEDITOR.TRISTATE_ON ? 'on' : state == CKEDITOR.TRISTATE_DISABLED ? 'disabled' : 'off';\r
\r
if ( this.icon && !( /\./ ).test( this.icon ) )\r
iconName = this.icon;\r
\r
+ if ( this.command ) {\r
+ command = editor.getCommand( this.command );\r
+ keystroke = editor.getCommandKeystroke( command );\r
+\r
+ if ( keystroke ) {\r
+ shortcut = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard, keystroke );\r
+ }\r
+ }\r
+\r
var params = {\r
id: id,\r
name: this.name,\r
state: stateName,\r
hasPopup: hasSubMenu ? 'true' : 'false',\r
disabled: state == CKEDITOR.TRISTATE_DISABLED,\r
- title: this.label,\r
+ title: this.label + ( shortcut ? ' (' + shortcut.display + ')' : '' ),\r
+ ariaShortcut: shortcut ? editor.lang.common.keyboardShortcut + ' ' + shortcut.aria : '',\r
href: 'javascript:void(\'' + ( this.label || '' ).replace( "'" + '' ) + '\')', // jshint ignore:line\r
hoverFn: menu._.itemOverFn,\r
moveOutFn: menu._.itemOutFn,\r
clickFn: menu._.itemClickFn,\r
index: index,\r
iconStyle: CKEDITOR.skin.getIconStyle( iconName, ( this.editor.lang.dir == 'rtl' ), iconName == this.icon ? null : this.icon, this.iconOffset ),\r
+ shortcutHtml: shortcut ? menuShortcutTpl.output( { shortcut: shortcut.display } ) : '',\r
arrowHtml: hasSubMenu ? menuArrowTpl.output( { label: arrowLabel } ) : '',\r
role: this.role ? this.role : 'menuitem',\r
ariaChecked: ariaChecked\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'az', {\r
+ closed: 'Xəbərdarlıq pəncərəsi bağlanıb'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ca', {\r
+ closed: 'Notificació tancada.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'cs', {\r
+ closed: 'Oznámení zavřeno.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'da', {\r
+ closed: 'Notefikation lukket.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'de-ch', {\r
+ closed: 'Benachrichtigung geschlossen.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'de', {\r
+ closed: 'Benachrichtigung geschlossen.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'en', {\r
+ closed: 'Notification closed.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'eo', {\r
+ closed: 'Sciigo fermita'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'es-mx', {\r
+ closed: 'Notificación cerrada.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'es', {\r
+ closed: 'Notificación cerrada.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'eu', {\r
+ closed: 'Jakinarazpena itxita.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'fr', {\r
+ closed: 'Notification fermée.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'gl', {\r
+ closed: 'Notificación pechada.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'hr', {\r
+ closed: 'Obavijest zatvorena.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'hu', {\r
+ closed: 'Értesítés bezárva.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'id', {\r
+ closed: 'Pemberitahuan ditutup'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'it', {\r
+ closed: 'Notifica chiusa.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ja', {\r
+ closed: '通知を閉じました。'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'km', {\r
+ closed: 'បានបិទការផ្ដល់ដំណឹង។'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ko', {\r
+ closed: '알림이 닫힘.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ku', {\r
+ closed: 'ئاگادارکەرەوەکە داخرا.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'nb', {\r
+ closed: 'Varsling lukket.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'nl', {\r
+ closed: 'Melding gesloten.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'oc', {\r
+ closed: 'Notificacion tampada.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'pl', {\r
+ closed: 'Powiadomienie zostało zamknięte.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'pt-br', {\r
+ closed: 'Notificação fechada.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'pt', {\r
+ closed: 'Notificação encerrada.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ru', {\r
+ closed: 'Уведомление закрыто'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'sk', {\r
+ closed: 'Notifikácia zatvorená.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'sv', {\r
+ closed: 'Notifiering stängd.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'tr', {\r
+ closed: 'Uyarılar kapatıldı.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ug', {\r
+ closed: 'ئوقتۇرۇش تاقالدى.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'uk', {\r
+ closed: 'Сповіщення закрито.'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'zh-cn', {\r
+ closed: '通知已关闭'\r
+} );\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'zh', {\r
+ closed: '通知已關閉。'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/**\r
+ * @fileOverview The "Notification" plugin.\r
+ *\r
+ */\r
+\r
+'use strict';\r
+\r
+CKEDITOR.plugins.add( 'notification', {\r
+ lang: 'az,ca,cs,da,de,de-ch,en,eo,es,es-mx,eu,fr,gl,hr,hu,id,it,ja,km,ko,ku,nb,nl,oc,pl,pt,pt-br,ru,sk,sv,tr,ug,uk,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+\r
+ init: function( editor ) {\r
+ editor._.notificationArea = new Area( editor );\r
+\r
+ // Overwrites default `editor.showNotification`.\r
+ editor.showNotification = function( message, type, progressOrDuration ) {\r
+ var progress, duration;\r
+\r
+ if ( type == 'progress' ) {\r
+ progress = progressOrDuration;\r
+ } else {\r
+ duration = progressOrDuration;\r
+ }\r
+\r
+ var notification = new CKEDITOR.plugins.notification( editor, {\r
+ message: message,\r
+ type: type,\r
+ progress: progress,\r
+ duration: duration\r
+ } );\r
+\r
+ notification.show();\r
+\r
+ return notification;\r
+ };\r
+\r
+ // Close the last notification on ESC.\r
+ editor.on( 'key', function( evt ) {\r
+ if ( evt.data.keyCode == 27 ) { /* ESC */\r
+ var notifications = editor._.notificationArea.notifications;\r
+\r
+ if ( !notifications.length ) {\r
+ return;\r
+ }\r
+\r
+ // As long as this is not a common practice to inform screen-reader users about actions, in this case\r
+ // this is the best solution (unfortunately there is no standard for accessibility for notifications).\r
+ // Notification has an `alert` aria role what means that it does not get a focus nor is needed to be\r
+ // closed (unlike `alertdialog`). However notification will capture ESC key so we need to inform user\r
+ // why it does not do other actions.\r
+ say( editor.lang.notification.closed );\r
+\r
+ // Hide last.\r
+ notifications[ notifications.length - 1 ].hide();\r
+\r
+ evt.cancel();\r
+ }\r
+ } );\r
+\r
+ // Send the message to the screen readers.\r
+ function say( text ) {\r
+ var message = new CKEDITOR.dom.element( 'div' );\r
+ message.setStyles( {\r
+ position: 'fixed',\r
+ 'margin-left': '-9999px'\r
+ } );\r
+ message.setAttributes( {\r
+ 'aria-live': 'assertive',\r
+ 'aria-atomic': 'true'\r
+ } );\r
+ message.setText( text );\r
+\r
+ CKEDITOR.document.getBody().append( message );\r
+\r
+ setTimeout( function() {\r
+ message.remove();\r
+ }, 100 );\r
+ }\r
+ }\r
+} );\r
+\r
+/**\r
+ * Notification class. Notifications are used to display short messages to the user. They might be used to show the result of\r
+ * asynchronous actions or information about changes in the editor content. It is recommended to use them instead of\r
+ * alert dialogs. They should **not** be used if a user response is required nor with dialog windows (e.g. in dialog validation).\r
+ *\r
+ * There are four types of notifications available, see the {@link #type} property.\r
+ *\r
+ * Note that the notification constructor only creates a notification instance. To show it, use the {@link #show} method:\r
+ *\r
+ * var notification = new CKEDITOR.plugins.notification( editor, { message: 'Foo' } );\r
+ * notification.show();\r
+ *\r
+ * You can also use the {@link CKEDITOR.editor#showNotification} method:\r
+ *\r
+ * editor.showNotification( 'Foo' );\r
+ *\r
+ * All of the notification actions: ({@link #show}, {@link #update} and {@link #hide}) fire cancelable events\r
+ * on the related {@link CKEDITOR.editor} instance so you can integrate editor notifications with your website notifications.\r
+ *\r
+ * Refer to the [Notifications](http://docs.ckeditor.com/#!/guide/dev_notifications) article for more information about this feature.\r
+ *\r
+ * @since 4.5\r
+ * @class CKEDITOR.plugins.notification\r
+ * @constructor Create a notification object. Call {@link #show} to show the created notification.\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ * @param {Object} options\r
+ * @param {String} options.message The message displayed in the notification.\r
+ * @param {String} [options.type='info'] Notification type, see {@link #type}.\r
+ * @param {Number} [options.progress=0] If the type is `progress` this may be a progress from 0 to 1.\r
+ * @param {Number} [options.duration] How long the notification will be visible, see {@link #duration}.\r
+ */\r
+function Notification( editor, options ) {\r
+ CKEDITOR.tools.extend( this, options, {\r
+ editor: editor,\r
+ id: 'cke-' + CKEDITOR.tools.getUniqueId(),\r
+ area: editor._.notificationArea\r
+ } );\r
+\r
+ if ( !options.type ) {\r
+ this.type = 'info';\r
+ }\r
+\r
+ this.element = this._createElement();\r
+\r
+ // Don't allow dragging on notification (http://dev.ckeditor.com/ticket/13184).\r
+ editor.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement( this.element );\r
+}\r
+\r
+/**\r
+ * The editor instance.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.editor} editor\r
+ */\r
+\r
+/**\r
+ * Message displayed in the notification.\r
+ *\r
+ * @readonly\r
+ * @property {String} message\r
+ */\r
+\r
+/**\r
+ * Notification type. There are four types available:\r
+ *\r
+ * * `info` (default) – Information for the user (e.g. "File is uploading.", "ACF modified content."),\r
+ * * `warning` – Warning or error message (e.g. "This type of file is not supported.",\r
+ * "You cannot paste the script."),\r
+ * * `success` – Information that an operation finished successfully (e.g. "File uploaded.", "Data imported.").\r
+ * * `progress` – Information about the progress of an operation. When the operation is done, the notification\r
+ * type should be changed to `success`.\r
+ *\r
+ * @readonly\r
+ * @property {String} type\r
+ */\r
+\r
+/**\r
+ * If the notification {@link #type} is `'progress'`, this is the progress from `0` to `1`.\r
+ *\r
+ * @readonly\r
+ * @property {Number} progress\r
+ */\r
+\r
+/**\r
+ * Notification duration. Determines after how many milliseconds the notification should close automatically.\r
+ * `0` means that the notification will not close automatically and that the user needs to close it manually.\r
+ * The default value for `warning` and `progress` notifications is `0`. For `info` and `success` the value can\r
+ * either be set through the {@link CKEDITOR.config#notification_duration} configuration option or equals `5000`\r
+ * if the configuration option is not set.\r
+ *\r
+ * @readonly\r
+ * @property {Number} duration\r
+ */\r
+\r
+/**\r
+ * Unique notification ID.\r
+ *\r
+ * @readonly\r
+ * @property {Number} id\r
+ */\r
+\r
+/**\r
+ * Notification DOM element. There is one element per notification. It is created when the notification is created,\r
+ * even if it is not shown. If the notification is hidden, the element is detached from the document but not deleted.\r
+ * It will be reused if the notification is shown again.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.dom.element} element\r
+ */\r
+\r
+/**\r
+ * {@link CKEDITOR.plugins.notification.area Notification area} reference.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.notification.area} area\r
+ */\r
+\r
+Notification.prototype = {\r
+ /**\r
+ * Adds the notification element to the notification area. The notification will be hidden automatically if\r
+ * {@link #duration} is set.\r
+ *\r
+ * Fires the {@link CKEDITOR.editor#notificationShow} event.\r
+ */\r
+ show: function() {\r
+ if ( this.editor.fire( 'notificationShow', { notification: this } ) === false ) {\r
+ return;\r
+ }\r
+\r
+ this.area.add( this );\r
+\r
+ this._hideAfterTimeout();\r
+ },\r
+\r
+ /**\r
+ * Updates the notification object and element.\r
+ *\r
+ * Fires the {@link CKEDITOR.editor#notificationUpdate} event.\r
+ *\r
+ * @param {Object} options\r
+ * @param {String} [options.message] {@link #message}\r
+ * @param {String} [options.type] {@link #type}\r
+ * @param {Number} [options.progress] {@link #progress}\r
+ * @param {Number} [options.duration] {@link #duration}\r
+ * @param {Boolean} [options.important=false] If the update is important, the notification will be shown\r
+ * if it was hidden and read by screen readers.\r
+ */\r
+ update: function( options ) {\r
+ var show = true;\r
+\r
+ if ( this.editor.fire( 'notificationUpdate', { notification: this, options: options } ) === false ) {\r
+ // The idea of cancelable event is to let user create his own way of displaying notification, so if\r
+ // `notificationUpdate` event will be canceled there will be no interaction with notification area, but on\r
+ // the other hand the logic should work anyway so object will be updated (including `element` property).\r
+ // Note: we can safely update the element's attributes below, because this element is created inside\r
+ // the constructor. If the notificatinShow event was canceled as well, the element is detached from DOM.\r
+ show = false;\r
+ }\r
+\r
+ var element = this.element,\r
+ messageElement = element.findOne( '.cke_notification_message' ),\r
+ progressElement = element.findOne( '.cke_notification_progress' ),\r
+ type = options.type;\r
+\r
+ element.removeAttribute( 'role' );\r
+\r
+ // Change type to progress if `options.progress` is set.\r
+ if ( options.progress && this.type != 'progress' ) {\r
+ type = 'progress';\r
+ }\r
+\r
+ if ( type ) {\r
+ element.removeClass( this._getClass() );\r
+ element.removeAttribute( 'aria-label' );\r
+\r
+ this.type = type;\r
+\r
+ element.addClass( this._getClass() );\r
+ element.setAttribute( 'aria-label', this.type );\r
+\r
+ if ( this.type == 'progress' && !progressElement ) {\r
+ progressElement = this._createProgressElement();\r
+ progressElement.insertBefore( messageElement );\r
+ } else if ( this.type != 'progress' && progressElement ) {\r
+ progressElement.remove();\r
+ }\r
+ }\r
+\r
+ if ( options.message !== undefined ) {\r
+ this.message = options.message;\r
+ messageElement.setHtml( this.message );\r
+ }\r
+\r
+ if ( options.progress !== undefined ) {\r
+ this.progress = options.progress;\r
+\r
+ if ( progressElement ) {\r
+ progressElement.setStyle( 'width', this._getPercentageProgress() );\r
+ }\r
+ }\r
+\r
+ if ( show && options.important ) {\r
+ element.setAttribute( 'role', 'alert' );\r
+\r
+ if ( !this.isVisible() ) {\r
+ this.area.add( this );\r
+ }\r
+ }\r
+\r
+ // Overwrite even if it is undefined.\r
+ this.duration = options.duration;\r
+\r
+ this._hideAfterTimeout();\r
+ },\r
+\r
+ /**\r
+ * Removes the notification element from the notification area.\r
+ *\r
+ * Fires the {@link CKEDITOR.editor#notificationHide} event.\r
+ */\r
+ hide: function() {\r
+ if ( this.editor.fire( 'notificationHide', { notification: this } ) === false ) {\r
+ return;\r
+ }\r
+\r
+ this.area.remove( this );\r
+ },\r
+\r
+ /**\r
+ * Returns `true` if the notification is in the notification area.\r
+ *\r
+ * @returns {Boolean} `true` if the notification is in the notification area.\r
+ */\r
+ isVisible: function() {\r
+ return CKEDITOR.tools.indexOf( this.area.notifications, this ) >= 0;\r
+ },\r
+\r
+ /**\r
+ * Creates the notification DOM element.\r
+ *\r
+ * @private\r
+ * @returns {CKEDITOR.dom.element} Notification DOM element.\r
+ */\r
+ _createElement: function() {\r
+ var notification = this,\r
+ notificationElement, notificationMessageElement, notificationCloseElement,\r
+ close = this.editor.lang.common.close;\r
+\r
+ notificationElement = new CKEDITOR.dom.element( 'div' );\r
+ notificationElement.addClass( 'cke_notification' );\r
+ notificationElement.addClass( this._getClass() );\r
+ notificationElement.setAttributes( {\r
+ id: this.id,\r
+ role: 'alert',\r
+ 'aria-label': this.type\r
+ } );\r
+\r
+ if ( this.type == 'progress' )\r
+ notificationElement.append( this._createProgressElement() );\r
+\r
+ notificationMessageElement = new CKEDITOR.dom.element( 'p' );\r
+ notificationMessageElement.addClass( 'cke_notification_message' );\r
+ notificationMessageElement.setHtml( this.message );\r
+ notificationElement.append( notificationMessageElement );\r
+\r
+ notificationCloseElement = CKEDITOR.dom.element.createFromHtml(\r
+ '<a class="cke_notification_close" href="javascript:void(0)" title="' + close + '" role="button" tabindex="-1">' +\r
+ '<span class="cke_label">X</span>' +\r
+ '</a>' );\r
+ notificationElement.append( notificationCloseElement );\r
+\r
+ notificationCloseElement.on( 'click', function() {\r
+ // Focus editor on close (http://dev.ckeditor.com/ticket/12865)\r
+ notification.editor.focus();\r
+\r
+ notification.hide();\r
+ } );\r
+\r
+ return notificationElement;\r
+ },\r
+\r
+ /**\r
+ * Gets the notification CSS class.\r
+ *\r
+ * @private\r
+ * @returns {String} Notification CSS class.\r
+ */\r
+ _getClass: function() {\r
+ return ( this.type == 'progress' ) ?\r
+ 'cke_notification_info' :\r
+ ( 'cke_notification_' + this.type );\r
+ },\r
+\r
+ /**\r
+ * Creates a progress element for the notification element.\r
+ *\r
+ * @private\r
+ * @returns {CKEDITOR.dom.element} Progress element for the notification element.\r
+ */\r
+ _createProgressElement: function() {\r
+ var element = new CKEDITOR.dom.element( 'span' );\r
+ element.addClass( 'cke_notification_progress' );\r
+ element.setStyle( 'width', this._getPercentageProgress() );\r
+ return element;\r
+ },\r
+\r
+ /**\r
+ * Gets the progress as a percentage (ex. `0.3` -> `30%`).\r
+ *\r
+ * @private\r
+ * @returns {String} Progress as a percentage.\r
+ */\r
+ _getPercentageProgress: function() {\r
+ return Math.round( ( this.progress || 0 ) * 100 ) + '%';\r
+ },\r
+\r
+ /**\r
+ * Hides the notification after a timeout.\r
+ *\r
+ * @private\r
+ */\r
+ _hideAfterTimeout: function() {\r
+ var notification = this,\r
+ duration;\r
+\r
+ if ( this._hideTimeoutId ) {\r
+ clearTimeout( this._hideTimeoutId );\r
+ }\r
+\r
+ if ( typeof this.duration == 'number' ) {\r
+ duration = this.duration;\r
+ } else if ( this.type == 'info' || this.type == 'success' ) {\r
+ duration = ( typeof this.editor.config.notification_duration == 'number' ) ?\r
+ this.editor.config.notification_duration :\r
+ 5000;\r
+ }\r
+\r
+ if ( duration ) {\r
+ notification._hideTimeoutId = setTimeout( function() {\r
+ notification.hide();\r
+ }, duration );\r
+ }\r
+ }\r
+};\r
+\r
+/**\r
+ * Notification area is an area where all notifications are put. The area is laid out dynamically.\r
+ * When the first notification is added, the area is shown and all listeners are added.\r
+ * When the last notification is removed, the area is hidden and all listeners are removed.\r
+ *\r
+ * @since 4.5\r
+ * @private\r
+ * @class CKEDITOR.plugins.notification.area\r
+ * @constructor\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ */\r
+function Area( editor ) {\r
+ var that = this;\r
+\r
+ this.editor = editor;\r
+ this.notifications = [];\r
+ this.element = this._createElement();\r
+ this._uiBuffer = CKEDITOR.tools.eventsBuffer( 10, this._layout, this );\r
+ this._changeBuffer = CKEDITOR.tools.eventsBuffer( 500, this._layout, this );\r
+\r
+ editor.on( 'destroy', function() {\r
+ that._removeListeners();\r
+ that.element.remove();\r
+ } );\r
+}\r
+\r
+/**\r
+ * The editor instance.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.editor} editor\r
+ */\r
+\r
+/**\r
+ * The array of added notifications.\r
+ *\r
+ * @readonly\r
+ * @property {Array} notifications\r
+ */\r
+\r
+/**\r
+ * Notification area DOM element. This element is created when the area object is created. It will be attached to the document\r
+ * when the first notification is added and removed when the last notification is removed.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.dom.element} element\r
+ */\r
+\r
+/**\r
+ * Notification width. Cached for performance reasons.\r
+ *\r
+ * @private\r
+ * @property {CKEDITOR.dom.element} _notificationWidth\r
+ */\r
+\r
+/**\r
+ * Notification margin. Cached for performance reasons.\r
+ *\r
+ * @private\r
+ * @property {CKEDITOR.dom.element} _notificationMargin\r
+ */\r
+\r
+/**\r
+ * Event buffer object for UI events to optimize performance.\r
+ *\r
+ * @private\r
+ * @property {Object} _uiBuffer\r
+ */\r
+\r
+/**\r
+ * Event buffer object for editor change events to optimize performance.\r
+ *\r
+ * @private\r
+ * @property {Object} _changeBuffer\r
+ */\r
+\r
+Area.prototype = {\r
+ /**\r
+ * Adds the notification to the notification area. If it is the first notification, the area will also be attached to\r
+ * the document and listeners will be attached.\r
+ *\r
+ * Note that the proper way to show a notification is to call the {@link CKEDITOR.plugins.notification#show} method.\r
+ *\r
+ * @param {CKEDITOR.plugins.notification} notification Notification to add.\r
+ */\r
+ add: function( notification ) {\r
+ this.notifications.push( notification );\r
+\r
+ this.element.append( notification.element );\r
+\r
+ if ( this.element.getChildCount() == 1 ) {\r
+ CKEDITOR.document.getBody().append( this.element );\r
+ this._attachListeners();\r
+ }\r
+\r
+ this._layout();\r
+ },\r
+\r
+ /**\r
+ * Removes the notification from the notification area. If it is the last notification, the area will also be\r
+ * detached from the document and listeners will be detached.\r
+ *\r
+ * Note that the proper way to hide a notification is to call the {@link CKEDITOR.plugins.notification#hide} method.\r
+ *\r
+ * @param {CKEDITOR.plugins.notification} notification Notification to remove.\r
+ */\r
+ remove: function( notification ) {\r
+ var i = CKEDITOR.tools.indexOf( this.notifications, notification );\r
+\r
+ if ( i < 0 ) {\r
+ return;\r
+ }\r
+\r
+ this.notifications.splice( i, 1 );\r
+\r
+ notification.element.remove();\r
+\r
+ if ( !this.element.getChildCount() ) {\r
+ this._removeListeners();\r
+ this.element.remove();\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Creates the notification area element.\r
+ *\r
+ * @private\r
+ * @returns {CKEDITOR.dom.element} Notification area element.\r
+ */\r
+ _createElement: function() {\r
+ var editor = this.editor,\r
+ config = editor.config,\r
+ notificationArea = new CKEDITOR.dom.element( 'div' );\r
+\r
+ notificationArea.addClass( 'cke_notifications_area' );\r
+ notificationArea.setAttribute( 'id', 'cke_notifications_area_' + editor.name );\r
+ notificationArea.setStyle( 'z-index', config.baseFloatZIndex - 2 );\r
+\r
+ return notificationArea;\r
+ },\r
+\r
+ /**\r
+ * Attaches listeners to the notification area.\r
+ *\r
+ * @private\r
+ */\r
+ _attachListeners: function() {\r
+ var win = CKEDITOR.document.getWindow(),\r
+ editor = this.editor;\r
+\r
+ win.on( 'scroll', this._uiBuffer.input );\r
+ win.on( 'resize', this._uiBuffer.input );\r
+ editor.on( 'change', this._changeBuffer.input );\r
+ editor.on( 'floatingSpaceLayout', this._layout, this, null, 20 );\r
+ editor.on( 'blur', this._layout, this, null, 20 );\r
+ },\r
+\r
+ /**\r
+ * Detaches listeners from the notification area.\r
+ *\r
+ * @private\r
+ */\r
+ _removeListeners: function() {\r
+ var win = CKEDITOR.document.getWindow(),\r
+ editor = this.editor;\r
+\r
+ win.removeListener( 'scroll', this._uiBuffer.input );\r
+ win.removeListener( 'resize', this._uiBuffer.input );\r
+ editor.removeListener( 'change', this._changeBuffer.input );\r
+ editor.removeListener( 'floatingSpaceLayout', this._layout );\r
+ editor.removeListener( 'blur', this._layout );\r
+ },\r
+\r
+ /**\r
+ * Sets the position of the notification area based on the editor content, toolbar as well as\r
+ * viewport position and dimensions.\r
+ *\r
+ * @private\r
+ */\r
+ _layout: function() {\r
+ var area = this.element,\r
+ editor = this.editor,\r
+ contentsRect = editor.ui.contentsElement.getClientRect(),\r
+ contentsPos = editor.ui.contentsElement.getDocumentPosition(),\r
+ top,\r
+ topRect,\r
+ areaRect = area.getClientRect(),\r
+ notification,\r
+ notificationWidth = this._notificationWidth,\r
+ notificationMargin = this._notificationMargin,\r
+ win = CKEDITOR.document.getWindow(),\r
+ scrollPos = win.getScrollPosition(),\r
+ viewRect = win.getViewPaneSize(),\r
+ body = CKEDITOR.document.getBody(),\r
+ bodyPos = body.getDocumentPosition(),\r
+ cssLength = CKEDITOR.tools.cssLength;\r
+\r
+ // Cache for optimization\r
+ if ( !notificationWidth || !notificationMargin ) {\r
+ notification = this.element.getChild( 0 );\r
+ notificationWidth = this._notificationWidth = notification.getClientRect().width;\r
+ notificationMargin = this._notificationMargin =\r
+ parseInt( notification.getComputedStyle( 'margin-left' ), 10 ) +\r
+ parseInt( notification.getComputedStyle( 'margin-right' ), 10 );\r
+ }\r
+\r
+ // Check if toolbar exist and if so, then assign values to it (#491).\r
+ if ( editor.toolbar ) {\r
+ top = editor.ui.space( 'top' );\r
+ topRect = top.getClientRect();\r
+ }\r
+\r
+\r
+ // --------------------------------------- Horizontal layout ----------------------------------------\r
+\r
+ // +---Viewport-------------------------------+ +---Viewport-------------------------------+\r
+ // | | | |\r
+ // | +---Toolbar----------------------------+ | | +---Content----------------------------+ |\r
+ // | | | | | | | |\r
+ // | +---Content----------------------------+ | | | | |\r
+ // | | | | | +---Toolbar----------------------+ | |\r
+ // | | +------Notification------+ | | | | | | |\r
+ // | | | | OR | +--------------------------------+ | |\r
+ // | | | | | | | |\r
+ // | | | | | | +------Notification------+ | |\r
+ // | | | | | | | |\r
+ // | | | | | | | |\r
+ // | +--------------------------------------+ | | +--------------------------------------+ |\r
+ // +------------------------------------------+ +------------------------------------------+\r
+ if ( top && top.isVisible() &&\r
+ topRect.bottom > contentsRect.top &&\r
+ topRect.bottom < contentsRect.bottom - areaRect.height ) {\r
+ setBelowToolbar();\r
+\r
+ // +---Viewport-------------------------------+\r
+ // | |\r
+ // | +---Content----------------------------+ |\r
+ // | | | |\r
+ // | | +------Notification------+ | |\r
+ // | | | |\r
+ // | | | |\r
+ // | | | |\r
+ // | +--------------------------------------+ |\r
+ // | |\r
+ // +------------------------------------------+\r
+ } else if ( contentsRect.top > 0 ) {\r
+ setTopStandard();\r
+\r
+ // +---Content----------------------------+\r
+ // | |\r
+ // +---Viewport-------------------------------+\r
+ // | | | |\r
+ // | | +------Notification------+ | |\r
+ // | | | |\r
+ // | | | |\r
+ // | | | |\r
+ // | +--------------------------------------+ |\r
+ // | |\r
+ // +------------------------------------------+\r
+ } else if ( contentsPos.y + contentsRect.height - areaRect.height > scrollPos.y ) {\r
+ setTopFixed();\r
+\r
+ // +---Content----------------------------+ +---Content----------------------------+\r
+ // | | | |\r
+ // | | | |\r
+ // | | | +------Notification------+ |\r
+ // | | | |\r
+ // | | OR +--------------------------------------+\r
+ // +---Viewport-------------------------------+\r
+ // | | +------Notification------+ | | +---Viewport-------------------------------+\r
+ // | | | | | |\r
+ // | +--------------------------------------+ | | |\r
+ // | | | |\r
+ // +------------------------------------------+ +------------------------------------------+\r
+ } else {\r
+ setBottom();\r
+ }\r
+\r
+ function setTopStandard() {\r
+ area.setStyles( {\r
+ position: 'absolute',\r
+ top: cssLength( contentsPos.y )\r
+ } );\r
+ }\r
+\r
+ function setBelowToolbar() {\r
+ area.setStyles( {\r
+ position: 'fixed',\r
+ top: cssLength( topRect.bottom )\r
+ } );\r
+ }\r
+\r
+ function setTopFixed() {\r
+ area.setStyles( {\r
+ position: 'fixed',\r
+ top: 0\r
+ } );\r
+ }\r
+\r
+ function setBottom() {\r
+ area.setStyles( {\r
+ position: 'absolute',\r
+ top: cssLength( contentsPos.y + contentsRect.height - areaRect.height )\r
+ } );\r
+ }\r
+\r
+ // ---------------------------------------- Vertical layout -----------------------------------------\r
+\r
+ var leftBase = area.getStyle( 'position' ) == 'fixed' ?\r
+ contentsRect.left :\r
+ body.getComputedStyle( 'position' ) != 'static' ? contentsPos.x - bodyPos.x : contentsPos.x;\r
+\r
+ // Content is narrower than notification\r
+ if ( contentsRect.width < notificationWidth + notificationMargin ) {\r
+\r
+ // +---Viewport-------------------------------+\r
+ // | |\r
+ // | +---Content------------+ |\r
+ // | | | |\r
+ // | +------Notification------+ | |\r
+ // | | | |\r
+ // | +----------------------+ |\r
+ // | |\r
+ // +------------------------------------------+\r
+ if ( contentsPos.x + notificationWidth + notificationMargin > scrollPos.x + viewRect.width ) {\r
+ setRight();\r
+\r
+ // +---Viewport-------------------------------+ +---Viewport--------------------------+\r
+ // | | | |\r
+ // | +---Content------------+ | +---Content------------+ |\r
+ // | | | | | | | |\r
+ // | | +------Notification------+ | OR | +------Notification------+ |\r
+ // | | | | | | | |\r
+ // | +----------------------+ | +----------------------+ |\r
+ // | | | |\r
+ // +------------------------------------------+ +-------------------------------------+\r
+ } else {\r
+ setLeft();\r
+ }\r
+\r
+ // Content is wider than notification.\r
+ } else {\r
+\r
+ // +--+Viewport+------------------------+\r
+ // | |\r
+ // | +---Content-----------------------------------------+\r
+ // | | | |\r
+ // | | +-----+Notification+-----+ |\r
+ // | | | |\r
+ // | | | |\r
+ // | | | |\r
+ // | +---------------------------------------------------+\r
+ // | |\r
+ // +------------------------------------+\r
+ if ( contentsPos.x + notificationWidth + notificationMargin > scrollPos.x + viewRect.width ) {\r
+ setLeft();\r
+\r
+ // +---Viewport-------------------------+\r
+ // | |\r
+ // | +---Content----------------------------------------------+\r
+ // | | | |\r
+ // | | +------Notification------+ | |\r
+ // | | | |\r
+ // | | | |\r
+ // | +--------------------------------------------------------+\r
+ // | |\r
+ // +------------------------------------+\r
+ } else if ( contentsPos.x + contentsRect.width / 2 +\r
+ notificationWidth / 2 + notificationMargin > scrollPos.x + viewRect.width ) {\r
+ setRightFixed();\r
+\r
+ // +---Viewport-------------------------+\r
+ // | |\r
+ // +---Content----------------------------+ |\r
+ // | | | |\r
+ // | +------Notification------+ | |\r
+ // | | | |\r
+ // | | | |\r
+ // +--------------------------------------+ |\r
+ // | |\r
+ // +------------------------------------+\r
+ } else if ( contentsRect.left + contentsRect.width - notificationWidth - notificationMargin < 0 ) {\r
+ setRight();\r
+\r
+ // +---Viewport-------------------------+\r
+ // | |\r
+ // +---Content---------------------------------------------+ |\r
+ // | | | |\r
+ // | | +------Notification------+ | |\r
+ // | | | |\r
+ // | | | |\r
+ // +-------------------------------------------------------+ |\r
+ // | |\r
+ // +------------------------------------+\r
+ } else if ( contentsRect.left + contentsRect.width / 2 - notificationWidth / 2 < 0 ) {\r
+ setLeftFixed();\r
+\r
+ // +---Viewport-------------------------+\r
+ // | |\r
+ // | +---Content----------------------+ |\r
+ // | | | |\r
+ // | | +-----Notification-----+ | |\r
+ // | | | |\r
+ // | | | |\r
+ // | +--------------------------------+ |\r
+ // | |\r
+ // +------------------------------------+\r
+ } else {\r
+ setCenter();\r
+ }\r
+ }\r
+\r
+ function setLeft() {\r
+ area.setStyle( 'left', cssLength( leftBase ) );\r
+ }\r
+\r
+ function setLeftFixed() {\r
+ area.setStyle( 'left', cssLength( leftBase - contentsPos.x + scrollPos.x ) );\r
+ }\r
+\r
+ function setCenter() {\r
+ area.setStyle( 'left', cssLength( leftBase + contentsRect.width / 2 - notificationWidth / 2 - notificationMargin / 2 ) );\r
+ }\r
+\r
+ function setRight() {\r
+ area.setStyle( 'left', cssLength( leftBase + contentsRect.width - notificationWidth - notificationMargin ) );\r
+ }\r
+\r
+ function setRightFixed() {\r
+ area.setStyle( 'left', cssLength( leftBase - contentsPos.x + scrollPos.x + viewRect.width -\r
+ notificationWidth - notificationMargin ) );\r
+ }\r
+ }\r
+};\r
+\r
+CKEDITOR.plugins.notification = Notification;\r
+\r
+/**\r
+ * After how many milliseconds the notification of the `info` and `success`\r
+ * {@link CKEDITOR.plugins.notification#type type} should close automatically.\r
+ * `0` means that notifications will not close automatically.\r
+ * Note that `warning` and `progress` notifications will never close automatically.\r
+ *\r
+ * Refer to the [Notifications](http://docs.ckeditor.com/#!/guide/dev_notifications) article\r
+ * for more information about this feature.\r
+ *\r
+ * @since 4.5\r
+ * @cfg {Number} [notification_duration=5000]\r
+ * @member CKEDITOR.config\r
+ */\r
+\r
+/**\r
+ * Event fired when the {@link CKEDITOR.plugins.notification#show} method is called, before the\r
+ * notification is shown. If this event is canceled, the notification will not be shown.\r
+ *\r
+ * Using this event allows you to fully customize how a notification will be shown. It may be used to integrate\r
+ * the CKEditor notification system with your web page notifications.\r
+ *\r
+ * @since 4.5\r
+ * @event notificationShow\r
+ * @member CKEDITOR.editor\r
+ * @param data\r
+ * @param {CKEDITOR.plugins.notification} data.notification Notification which will be shown.\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ */\r
+\r
+/**\r
+ * Event fired when the {@link CKEDITOR.plugins.notification#update} method is called, before the\r
+ * notification is updated. If this event is canceled, the notification will not be shown even if the update was important,\r
+ * but the object will be updated anyway. Note that canceling this event does not prevent updating {@link #element}\r
+ * attributes, but if {@link #notificationShow} was canceled as well, this element is detached from the DOM.\r
+ *\r
+ * Using this event allows you to fully customize how a notification will be updated. It may be used to integrate\r
+ * the CKEditor notification system with your web page notifications.\r
+ *\r
+ * @since 4.5\r
+ * @event notificationUpdate\r
+ * @member CKEDITOR.editor\r
+ * @param data\r
+ * @param {CKEDITOR.plugins.notification} data.notification Notification which will be updated.\r
+ * Note that it contains the data that has not been updated yet.\r
+ * @param {Object} data.options Update options, see {@link CKEDITOR.plugins.notification#update}.\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ */\r
+\r
+/**\r
+ * Event fired when the {@link CKEDITOR.plugins.notification#hide} method is called, before the\r
+ * notification is hidden. If this event is canceled, the notification will not be hidden.\r
+ *\r
+ * Using this event allows you to fully customize how a notification will be hidden. It may be used to integrate\r
+ * the CKEditor notification system with your web page notifications.\r
+ *\r
+ * @since 4.5\r
+ * @event notificationHide\r
+ * @member CKEDITOR.editor\r
+ * @param data\r
+ * @param {CKEDITOR.plugins.notification} data.notification Notification which will be hidden.\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ */\r
--- /dev/null
+The MIT License (MIT)\r
+\r
+Copyright (c) Ingo Herbote\r
+\r
+Permission is hereby granted, free of charge, to any person obtaining a copy\r
+of this software and associated documentation files (the "Software"), to deal\r
+in the Software without restriction, including without limitation the rights\r
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+copies of the Software, and to permit persons to whom the Software is\r
+furnished to do so, subject to the following conditions:\r
+\r
+The above copyright notice and this permission notice shall be included in all\r
+copies or substantial portions of the Software.\r
+\r
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+SOFTWARE.\r
--- /dev/null
+CKEditor-oEmbed-Plugin\r
+======================\r
+\r
+oEmbed Plugin for CKEditor\r
+\r
+This Plugin allows to insert embedded content (such as photos, videos, audio, and other rich media) via the OEmbed API. You only have to provide the url to the site (It works also when the url is shortened) you want to embed and the plugin does the rest.\r
+\r
+This Plugin uses the jquery-oembed-all Plugin located at https://github.com/starfishmod/jquery-oembed-all.\r
+\r
+####Demo\r
+\r
+http://w8tcha.github.com/CKEditor-oEmbed-Plugin/\r
+\r
+####Currently Supported Sites...\r
+\r
+###Video\r
+* Youtube - oembed - YQL\r
+* Blip - oEmbed\r
+* Hulu - oEmbed\r
+* Vimeo - oEmbed\r
+* National film board of Canada - oEmbed\r
+* Qik - oEmbed\r
+* Dotsub - oEmbed\r
+* Clikthrough - oEmbed\r
+* Kino Map - oEmbed\r
+* Funny Or Die - Embedded\r
+* College Humour - Embedded\r
+* Metacafe - Embedded\r
+* embedr - Embedded\r
+* 5min - oEmbed is XML only - using YQL to translate it\r
+* ustream.tv - oEmbed is not JSONP enabled - using YQL to translate it\r
+* viddler - OGP\r
+* twitvid - Embedded\r
+* bambuser - Embedded\r
+* xtranormal - Embedded\r
+* Gametrailers - Embedded\r
+* Vzarr - Embedded\r
+* VHX - oembed\r
+* bambuser - oembed\r
+* dailymotion.com - oembed\r
+* animoto - oembed\r
+* justin.tv - YQL JSON\r
+* livestream - OGP\r
+* scivee - embedded\r
+* veoh - embedded\r
+* minoto-video - oembed using YQL\r
+* TrailerAddict - OGP\r
+* vodpod - oembed YQL - broken as the oembed has absolute positioning which breaks the display\r
+* fora.tv -OGP YQL\r
+* TED - OGP YQL\r
+* Aniboom - embedded\r
+* Comedy Central - OGP\r
+* snotr - embedded\r
+* zapiks - OGP\r
+* youku - embedded\r
+* wistia - Oembed\r
+\r
+###Audio\r
+* Soundcloud - oEmbed\r
+* HuffDuffer - oEmbed\r
+* BandCamp - YQL and Embedded\r
+* podomatic - OGP\r
+* rdio.com - oEmbed\r
+* hark.com - OGP\r
+* chirb.it - YQL and oembed\r
+* official.fm - YQL and oembed\r
+* mixcloud - YQL and oembed\r
+* shoudio - oembed\r
+* audioboo.fm - OGP\r
+* Spotify - OGP YQL\r
+\r
+###Photo\r
+* flickr - oEmbed\r
+* photobucket - oEmbed\r
+* instagram - oEmbed\r
+* yfrog - oEmbed\r
+* 23HQ - oEmbed\r
+* Smugmug - oEmbed\r
+* twitpic - OGP YQL\r
+* 500px.com - OGP\r
+* visual.ly - YQL Lookup\r
+* img.ly - Thumbnail view\r
+* imgur.com - Thumbnail view\r
+* twitgoo.com - Thumbnail view\r
+* gravatar - Thumbnail view when using mailto\r
+* pintrest - YQL - Embedded view of a sort.\r
+* circuitlab - image view\r
+* skitch - YQL oembed\r
+* graphic.ly - OGP\r
+* dribble - jsonp lookup\r
+* Lockerz - YQL lookup\r
+* AsciiArtFarts - YQL Lookup\r
+* lego cusoo - OGP over YQL\r
+* plannary - OGP over YQL\r
+* propic - OGP\r
+* avairy.com - OGP\r
+* lomography - ogp\r
+* weheartit - ogp\r
+* glogster - ogp\r
+* chart.ly - embedded\r
+* twitrpix - OGP\r
+* chictopia - OGP\r
+\r
+###Rich\r
+* Meetup - oEmbed\r
+* gigapans - Embedded\r
+* Slideshare - oEmbed\r
+* ebay - Embedded\r
+* scribd - Embedded\r
+* screenr - Embedded\r
+* tumblr- JSONP lookup\r
+* imdb - JSONP lookup via imdbapi.com\r
+* wikipedia- JSONP lookup\r
+* github- JSONP lookup (CSS)\r
+* eventful - OGP\r
+* myspace - OGP\r
+* live Journal - JSONP Lookup (CSS)\r
+* wordpress - oEmbed (wordpress.com, wp.me, blogs.cnn.com, techcrunch.com). I can add other wordpress sites as well.\r
+* circuitbee -Embedded\r
+* stack overflow - JSONP Lookup (CSS)\r
+* Facebook - JSONP Lookup (CSS)\r
+* Pastebin - Embedded\r
+* Pastie - YQL lookup\r
+* kickstarter - Embedded\r
+* issuu - OGP\r
+* reelapp.com - Embedded\r
+* Etsy - OGP over YQL\r
+* Amazon - Embedded - Requires Affiliate code\r
+* linkedin - Embedded IFRAME - found a link that works :)\r
+* Lanyrd - YQL (CSS)\r
+* twitter - Oembed - status only - but that is ok I think\r
+* github gist - oembed\r
+* speakerdeck - yql oembed\r
+* dipity - yql oembed\r
+* dailymile - oembed\r
+* deviantart - oembed\r
+* Roomshare Japan - oembed\r
+* mobypictures - oembed\r
+* prezi - embedded\r
+* popplet - embedded\r
+* authorstream - OGP\r
+* googlecalendar - Iframe\r
+* cacoo - oembed\r
+* pearltrees - embedded\r
+* urtak - oembed - is broken in iframe return atm -seems to be an embed.ly issue??\r
+* jotform - embedded\r
+* Urban Dictionary - YQL lookup\r
+* Ars Technica - YQL Lookup\r
+* Eventbrite - OGP YQL\r
+* last.fm OGP YQL\r
+* Rotten Tomatoes - OGP YQL\r
+* iFixit - OGP\r
+* qwiki - OGP\r
+* brighttalk - Meta info\r
+* tinychat - OGP\r
+* tourwrist - embedded\r
+* bnter - OGP\r
+* bigthink - OGP\r
+* wirewax - OGP\r
+* whosay - OGP\r
+* timetoast - embedded\r
+* tripline - OGP\r
+* jsfiddle - embedded\r
+\r
+\r
+####License\r
+\r
+Licensed under the terms of the MIT License.\r
+\r
+####Dependencies\r
+This Plugin requires the following plugins to work: Widget, Dialog.\r
+\r
+####Installation\r
+\r
+ 1. Before you can use the plugin you also need to download & install the widget plugin, if you have it not installed. http://ckeditor.com/addon/widget\r
+ 2. Extract the contents of the file into the "plugins" folder of CKEditor.\r
+ 3. In the CKEditor configuration file (config.js) add the following code:\r
+\r
+````js\r
+config.extraPlugins = 'oembed,widget';\r
+````\r
+\r
+2a. Additionally you can also set the default values vor the Max. Width/Height Values\r
+\r
+````js\r
+config.oembed_maxWidth = '560';\r
+config.oembed_maxHeight = '315';\r
+````\r
+\r
+and also you can define an css class for the embeded content wrapper (div), by default there is no Class defined\r
+\r
+````js\r
+config.oembed_WrapperClass = 'embededContent';\r
+````\r
+\r
+\r
+3. and also include the plugin in the toolbar\r
+\r
+````js\r
+toolbar :[ ... ['oembed']...]\r
+````\r
--- /dev/null
+CKEDITOR.plugins.setLang('oembed', 'de', {\r
+ title : "Medien Inhalt einbinden (Bilder, Video, Inhalt)",\r
+ button : "Medien Inhalt von Verschiedenen Seiten einbinden",\r
+ pasteUrl : "Fügen Sie eine Url (Gekürzte Urls werden auch erkannt) ein von einer Seite die Unterstützt wird (z.B.: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...",\r
+ invalidUrl : "Sie müssem eine korrekte URL an!",\r
+ noEmbedCode : "Kein embed Code gefunden, oder Seite wird nicht Unterstützt!",\r
+ url : "URL:",\r
+ width: "Breite:",\r
+ height: "Höhe:",\r
+ widthTitle: "Breite für den eingebundenen Inhalt",\r
+ heightTitle: "Höhe für den eingebundenen Inhalt",\r
+ maxWidth: "Max. Breite:",\r
+ maxHeight: "Max. Höhe:",\r
+ maxWidthTitle: "Maximale Breite für den eingebundenen Inhalt",\r
+ maxHeightTitle: "Maximale Höhe für den eingebundenen Inhalt",\r
+ resizeType: "Größenveränderungsmodus (Nur Video's):",\r
+ none:'None',\r
+ noresize: "Keine Veränderung (Standardgröße)",\r
+ responsive: "Responsive",\r
+ custom: "Eigene Größe",\r
+ noVimeo: "Der Eigentümber dieses Videos hat Domain einschränkungen für dieses Video gesetzt das Video kann nicht in die Webseite eingebunden werden.",\r
+ Error: "Inhalt konnte nicht gefunden werden, bitte Versuchen sie eine Andere URL."\r
+});\r
--- /dev/null
+CKEDITOR.plugins.setLang('oembed', 'en', {\r
+ title: "Embed Media Content (Photo, Video, Audio or Rich Content)",\r
+ button: "Embed Media from External Sites",\r
+ pasteUrl: "Paste a URL (shorted URLs are also supported) from one of the supported sites (e.g. YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.).",\r
+ invalidUrl: "Please provide a valid URL.",\r
+ noEmbedCode: "No embed code found, or site is not supported.",\r
+ url: "URL:",\r
+ width: "Width:",\r
+ height: "Height:",\r
+ widthTitle: "Width for the embeded content",\r
+ heightTitle: "Height for the embeded content",\r
+ maxWidth: "Max. Width:",\r
+ maxHeight: "Max. Height:",\r
+ maxWidthTitle: "Maximum Width for the embeded Content",\r
+ maxHeightTitle: "Maximum Height for the embeded Content",\r
+ none:'None',\r
+ resizeType: "Resize Type (videos only):",\r
+ noresize: "No Resize (use default)",\r
+ responsive: "Responsive Resize",\r
+ custom: "Specific Resize",\r
+ noVimeo: "The owner of this video has set domain restrictions and you will not be able to embed it on your website.",\r
+ Error: "Media Content could not been retrieved, please try a different URL."\r
+});\r
--- /dev/null
+// French Translation by https://github.com/wissim\r
+\r
+CKEDITOR.plugins.setLang('oembed', 'fr', {\r
+ title : "Intégrer des contenus multimédia externes. (Photo, Video, Audio, ...)",\r
+ button : "Insérer des contenus multimédia provenant de nombreux sites.",\r
+ pasteUrl : "Coller l'URL de partage que vous voulez publier. De nombreux services sont pris en charge tels que : (YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.). Vous pouvez aussi utiliser les URLs courtes.",\r
+ invalidUrl : "Merci de fournir une URL valide !",\r
+ noEmbedCode : "Aucun code d'intégration trouvé ou le site n'est pas supporté !",\r
+ url : "URL:",\r
+ width: "Largeur:",\r
+ height: "Hauteur:",\r
+ widthTitle: "Largeur du conteneur.",\r
+ heightTitle: "Hauteur du conteneur.",\r
+ maxWidth: "Max. Largeur:",\r
+ maxHeight: "Max. Hauteur:",\r
+ maxWidthTitle: "Largeur maximale du conteneur.",\r
+ maxHeightTitle: "Hauteur maximale du conteneur.",\r
+ resizeType: "Resize Type (Only Video's):",\r
+ none:'None',\r
+ noresize: "No Resize (use default)",\r
+ responsive: "Responsive Resize",\r
+ custom: "Specific Resize",\r
+ noVimeo: "The owner of this video has set domain restrictions and you will not be able to embed it on your website.",\r
+ Error: "Media Content could not been retrieved, please try a different URL."\r
+});\r
--- /dev/null
+CKEDITOR.plugins.setLang('oembed', 'nl', {\r
+ title : "Integratie van media-inhoud (foto's, video, content)",\r
+ button : "Media-inhoud van externe websites",\r
+ pasteUrl : "Geef een URL van een pagina in dat ondersteund wordt (Bijv.: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...",\r
+ invalidUrl : "Gelieve een geldige URL op te geven!",\r
+ noEmbedCode : "Geen embed code gevonden, of de website wordt niet ondersteund!",\r
+ url : "URL:",\r
+ width: "Breedte:",\r
+ height: "Hoogte:",\r
+ widthTitle: "Breedte voor de ingevoegde inhoud",\r
+ heightTitle: "Hoogte voor de ingevoegde inhoud",\r
+ maxWidth: "Maximale breedte:",\r
+ maxHeight: "Maximale hoogte:",\r
+ maxWidthTitle: "Maximum breedte voor de ingevoegde inhoud",\r
+ maxHeightTitle: "Maximum hoogte voor de ingevoegde inhoud",\r
+ none:'None',\r
+ resizeType: "Type formaat aanpassing (enkel video's):",\r
+ noresize: "Geen formaat aanpassing (gebruik standaard)",\r
+ responsive: "Responsieve formaat aanpassing",\r
+ custom: "Specifieke formaat aanpassing",\r
+ noVimeo: "De eigenaar van deze video heeft restricties ingesteld waardoor je deze video niet kunt invoegen op je eigen website.",\r
+ Error: "Media inhoud kon niet worden opgehaald, gelieve een andere URL te proberen."\r
+});\r
--- /dev/null
+CKEDITOR.plugins.setLang('oembed', 'pl', {\r
+ title: "Osadzanie multimediów (zdjęć, filmów, dźwięku, bogatych treści)",\r
+ button: "Osadzanie multimediów z witryn zewnętrznych",\r
+ pasteUrl: "Wklej tutaj adres URL (adresy skrócone są również obsługiwane) z jednej z obsługiwanych stron (YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, itp.).",\r
+ invalidUrl: "Proszę wprowadzić prawidłowy adres URL!",\r
+ noEmbedCode: "Odnośnik nieprawidłowy lub nieobsługiwany!",\r
+ url: "URL:",\r
+ width: "szerokość:",\r
+ height: "wysokość:",\r
+ widthTitle: "Szerokość osadzanej zawartości",\r
+ heightTitle: "Wysokość osadzanej zawartości",\r
+ maxWidth: "Maks. szerokość:",\r
+ maxHeight: "Maks. wysokość:",\r
+ maxWidthTitle: "Maksymalna szerokość osadzanej zawartości",\r
+ maxHeightTitle: "Maksymalna wysokość osadzanej zawartości",\r
+ resizeType: "Typ zmiany rozmiaru (tylko nagrania wideo):",\r
+ none:'None',\r
+ noresize: "Bez zmiany rozmiaru (domyślne)",\r
+ responsive: "Responsywna zmiana rozmiaru",\r
+ custom: "Narzucona zmiana rozmiaru",\r
+ noVimeo: "Właściciel nagrania wideo nałożył ograniczenia domenowe, nagrania nie można osadzić w witrynie.",\r
+ Error: "Nie można uzyskać zawartości multimedialnej, proszę spróbować inny adres URL."\r
+});\r
--- /dev/null
+CKEDITOR.plugins.setLang('oembed', 'pt-br', {\r
+ title: "Conteúdo embed de mídia (foto, vídeo, audio, rich)",\r
+ button: "Conteúdo embed de mídia de vários sites",\r
+ pasteUrl: "Cole aqui a URL (inclusive URLs encurtadas) de um dos sites que o plugin suporta (ex. YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...",\r
+ invalidUrl: "Por favor informe uma URL válida!",\r
+ noEmbedCode: "Nenhum código embed foi encontrado, ou esse site não está na lista dos sites suportados pelo plugin!",\r
+ url: "URL:",\r
+ width: "Largura:",\r
+ height: "Altura:",\r
+ widthTitle: "Largura do conteúdo embebed",\r
+ heightTitle: "Altura do conteúdo embeded",\r
+ maxWidth: "Largura máx.:",\r
+ maxHeight: "Altura máx.:",\r
+ maxWidthTitle: "Largura máxima do conteúdo embeded",\r
+ maxHeightTitle: "Altura máxima do conteúdo embeded",\r
+ resizeType: "Tipo de redimensionamento (Somente para video):",\r
+ none:'None',\r
+ noresize: "Sem redimensionamento (default)",\r
+ responsive: "Redimensionamento responsivo",\r
+ custom: "Redimensionamento específico",\r
+ noVimeo: "O dono desse vídeo tem restrições de domínio a você não poderá utilizá-lo em seu site.",\r
+ Error: "Esse conteúdo de mídia não foi encontrado, por favor tente uma URL diferente."\r
+});\r
--- /dev/null
+CKEDITOR.plugins.setLang('oembed', 'ru', {\r
+ title: "Внедрить медиа-контент (видео, аудио, фото и т.д.)",\r
+ button: "Внедрить медиа-контент с различных сайтов",\r
+ pasteUrl: "Вставьте ссылку на страницу с медиа-контентом (например YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, и т.д.)",\r
+ invalidUrl: "Вы ввели некорректный URL",\r
+ noEmbedCode: "Не обнаружен код для вставки. Возможно, вы ввели ссылку с неподдерживаемого сайта.",\r
+ url: "URL:",\r
+ width: "Ширина:",\r
+ height: "Высота:",\r
+ widthTitle: "Ширина внедряемого медиа-контента",\r
+ heightTitle: "Высота внедряемого медиа-контента",\r
+ maxWidth: "Макс. ширина:",\r
+ maxHeight: "Макс. высота:",\r
+ maxWidthTitle: "Максимальная ширина внедряемого медиа-контента",\r
+ maxHeightTitle: "Максимальная высота внедряемого медиа-контента",\r
+ resizeType: "Изменение размера (только для видео):",\r
+ none:'None',\r
+ noresize: "Без изменения (стандартный размер)",\r
+ responsive: "Задать максимальный размер",\r
+ custom: "Задать конкретный размер",\r
+ noVimeo: "Владелец этого видео установил ограничения на домен, и вы не можете его встроить на ваш сайт.",\r
+ Error: "Невозможно получить медиа-контент. Попробуйте другой URL."\r
+});\r
--- /dev/null
+CKEDITOR.plugins.setLang('oembed', 'tr', {\r
+ title: "Medya içeriği ekle (Fotoğraf, Video, Ses Dosyası, Zengin Medya İçeriği)",\r
+ button: "Farklı sitelerden medya içeriği ekle",\r
+ pasteUrl: "Desteklenen sitelerden bir URL ekleyin (Kısaltılmış URL de olabilir) (örnek: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.)...",\r
+ invalidUrl: "Lütfen geçerli bir URL adresi tanımlayın!",\r
+ noEmbedCode: "Embed kodu bulunamadı veya site desteklenmiyor!",\r
+ url: "URL:",\r
+ width: "Genişlik:",\r
+ height: "Yükseklik:",\r
+ widthTitle: "Eklenecek içerik için genişlik",\r
+ heightTitle: "Eklenecek içerik için yükseklik",\r
+ maxWidth: "Max. genişlik:",\r
+ maxHeight: "Max. yükseklik:",\r
+ maxWidthTitle: "Eklenecek içerik için max. genişlik",\r
+ maxHeightTitle: "Eklenecek içerik için max. yükseklik",\r
+ resizeType: "Boyutlandır (sadece videolarda geçerli):",\r
+ none:'None',\r
+ noresize: "Boyutlandırma yapma (default kullan)",\r
+ responsive: "Esnek (Responsive) boyutlandırma",\r
+ custom: "Özel boyutlandırma",\r
+ noVimeo: "Bu videonun sahibi alan adı kısıtlaması ayarlamış, web sitenizde bu video çalışmayacaktır.",\r
+ Error: "Medya içeriği alınamadı, farklı bir URL deneyin."\r
+});\r
--- /dev/null
+(function(n){function r(){var n=window.location.protocol;return n==="file:"?"http://":"//"}function f(n,t){return t=t?t:"",n?f(--n,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*60))+t):t}function s(n,t){var i=n.apiendpoint,u="",r;i+=i.indexOf("?")<=0?"?":"&";i=i.replace("#","%23");n.maxWidth!==null&&(typeof n.params.maxwidth=="undefined"||n.params.maxwidth===null)&&(n.params.maxwidth=n.maxWidth);n.maxHeight!==null&&(typeof n.params.maxheight=="undefined"||n.params.maxheight===null)&&(n.params.maxheight=n.maxHeight);for(r in n.params)r!=n.callbackparameter&&n.params[r]!==null&&(u+="&"+escape(r)+"="+n.params[r]);return i+="format="+n.format+"&url="+escape(t)+u,n.dataType!="json"&&(i+="&"+n.callbackparameter+"=?"),i}function u(i,r,u){n("#jqoembeddata").data(r,i.code);t.beforeEmbed.call(u,i);t.onEmbed.call(u,i);t.afterEmbed.call(u,i)}function e(i,e,o){var p,a,tt,v;if(n("#jqoembeddata").data(e)!=undefined&&o.embedtag.tag!="iframe")a={code:n("#jqoembeddata").data(e)},u(a,e,i);else if(o.yql){var w=o.yql.from||"htmlstring",g=o.yql.url?o.yql.url(e):e,nt="SELECT * FROM "+w+' WHERE url="'+g+'" and '+(/html/.test(w)?"xpath":"itemPath")+"='"+(o.yql.xpath||"/")+"'";w=="html"&&(nt+=" and compat='html5'");v=n.extend({url:r()+"query.yahooapis.com/v1/public/yql",dataType:"jsonp",data:{q:nt,format:"json",env:"store://datatables.org/alltableswithkeys",callback:"?"},success:function(t){var s,f,c,r,h,l;if(o.yql.xpath&&o.yql.xpath=="//meta|//title|//link"){for(f={},t.query.results==null&&(t.query.results={meta:[]}),r=0,h=t.query.results.meta.length;r<h;r++)(c=t.query.results.meta[r].name||t.query.results.meta[r].property||null,c!=null)&&(f[c.toLowerCase()]=t.query.results.meta[r].content);if(f.hasOwnProperty("title")&&f.hasOwnProperty("og:title")||t.query.results.title!=null&&(f.title=t.query.results.title),!f.hasOwnProperty("og:image")&&t.query.results.hasOwnProperty("link"))for(r=0,h=t.query.results.link.length;r<h;r++)t.query.results.link[r].hasOwnProperty("rel")&&t.query.results.link[r].rel=="apple-touch-icon"&&(f["og:image"]=t.query.results.link[r].href.charAt(0)=="/"?g.match(/^(([a-z]+:)?(\/\/)?[^\/]+\/).*$/)[1]+t.query.results.link[r].href:t.query.results.link[r].href);s=o.yql.datareturn(f)}else s=o.yql.datareturn?o.yql.datareturn(t.query.results):t.query.results.result;s!==!1&&(l=n.extend({},s),l.code=s,u(l,e,i))},error:function(){t.onError.call(i,e,o)}},t.ajaxOptions||{});n.ajax(v)}else if(o.templateRegex)if(o.embedtag.tag!==""){var it=o.embedtag.flashvars||"",b=o.embedtag.tag||"embed",h=o.embedtag.width||"auto",rt=o.embedtag.nocache||0,c=o.embedtag.height||"auto",y=e.replace(o.templateRegex,o.apiendpoint);if(o.nocache||(y+="&jqoemcache="+f(5)),o.apikey&&(y=y.replace("_APIKEY_",t.apikeys[o.name])),t.maxHeight&&t.maxWidth)if(t.useResponsiveResize){var l=0,k=h,d=c;h>t.maxWidth&&(l=t.maxWidth/h,k=t.maxWidth,d=c*l,c=c*l,h=h*l);c>t.maxHeight&&(l=t.maxHeight/c,d=t.maxHeight,k=h*l,h=h*l);c=d;h=k}else c=t.maxHeight,h=t.maxWidth;p=n("<"+b+"/>").attr("src",y).attr("width",h).attr("height",c).attr("allowfullscreen",o.embedtag.allowfullscreen||"true").attr("allowscriptaccess",o.embedtag.allowfullscreen||"always").css("max-height",t.maxHeight||"auto").css("max-width",t.maxWidth||"auto");b=="embed"&&p.attr("type",o.embedtag.type||"application/x-shockwave-flash").attr("flashvars",e.replace(o.templateRegex,it));b=="iframe"&&p.attr("scrolling",o.embedtag.scrolling||"no").attr("frameborder",o.embedtag.frameborder||"0");a={code:p};u(a,e,i)}else o.apiendpoint?(o.apikey&&(o.apiendpoint=o.apiendpoint.replace("_APIKEY_",t.apikeys[o.name])),v=n.extend({url:e.replace(o.templateRegex,o.apiendpoint),dataType:"jsonp",success:function(t){var r=n.extend({},t);r.code=o.templateData(t);u(r,e,i)},error:function(){t.onError.call(i,e,o)}},t.ajaxOptions||{}),n.ajax(v)):(a={code:e.replace(o.templateRegex,o.template)},u(a,e,i));else tt=s(o,e),v=n.extend({url:tt,dataType:o.dataType||"jsonp",success:function(t){var r=n.extend({},t);switch(r.type){case"file":case"photo":r.code=n.fn.oembed.getPhotoCode(e,r);break;case"link":r.code=r.provider_name=="Flickr"?n.fn.oembed.getPhotoCode(e,r):n.fn.oembed.getGenericCode(e,r);break;case"video":case"rich":r.code=n.fn.oembed.getRichCode(e,r);break;default:r.code=n.fn.oembed.getGenericCode(e,r)}u(r,e,i)},error:function(){t.onError.call(i,e,o)}},t.ajaxOptions||{}),n.ajax(v)}function o(n){if(n===null)return null;var t,i={};for(t in n)t!==null&&(i[t.toLowerCase()]=n[t]);return i}n.fn.oembed=function(i,r,u){t=n.extend(!0,n.fn.oembed.defaults,r);var f=["0rz.tw","1link.in","1url.com","2.gp","2big.at","2tu.us","3.ly","307.to","4ms.me","4sq.com","4url.cc","6url.com","7.ly","a.gg","a.nf","aa.cx","abcurl.net","ad.vu","adf.ly","adjix.com","afx.cc","all.fuseurl.com","alturl.com","amzn.to","ar.gy","arst.ch","atu.ca","azc.cc","b23.ru","b2l.me","bacn.me","bcool.bz","binged.it","bit.ly","bizj.us","bloat.me","bravo.ly","bsa.ly","budurl.com","canurl.com","chilp.it","chzb.gr","cl.lk","cl.ly","clck.ru","cli.gs","cliccami.info","clickthru.ca","clop.in","conta.cc","cort.as","cot.ag","crks.me","ctvr.us","cutt.us","dai.ly","decenturl.com","dfl8.me","digbig.com","http://digg.com/[^/]+$","disq.us","dld.bz","dlvr.it","do.my","doiop.com","dopen.us","easyuri.com","easyurl.net","eepurl.com","eweri.com","fa.by","fav.me","fb.me","fbshare.me","ff.im","fff.to","fire.to","firsturl.de","firsturl.net","flic.kr","flq.us","fly2.ws","fon.gs","freak.to","fuseurl.com","fuzzy.to","fwd4.me","fwib.net","g.ro.lt","gizmo.do","gl.am","go.9nl.com","go.ign.com","go.usa.gov","goo.gl","goshrink.com","gurl.es","hex.io","hiderefer.com","hmm.ph","href.in","hsblinks.com","htxt.it","huff.to","hulu.com","hurl.me","hurl.ws","icanhaz.com","idek.net","ilix.in","is.gd","its.my","ix.lt","j.mp","jijr.com","kl.am","klck.me","korta.nu","krunchd.com","l9k.net","lat.ms","liip.to","liltext.com","linkbee.com","linkbun.ch","liurl.cn","ln-s.net","ln-s.ru","lnk.gd","lnk.ms","lnkd.in","lnkurl.com","lru.jp","lt.tl","lurl.no","macte.ch","mash.to","merky.de","migre.me","miniurl.com","minurl.fr","mke.me","moby.to","moourl.com","mrte.ch","myloc.me","myurl.in","n.pr","nbc.co","nblo.gs","nn.nf","not.my","notlong.com","nsfw.in","nutshellurl.com","nxy.in","nyti.ms","o-x.fr","oc1.us","om.ly","omf.gd","omoikane.net","on.cnn.com","on.mktw.net","onforb.es","orz.se","ow.ly","ping.fm","pli.gs","pnt.me","politi.co","post.ly","pp.gg","profile.to","ptiturl.com","pub.vitrue.com","qlnk.net","qte.me","qu.tc","qy.fi","r.ebay.com","r.im","rb6.me","read.bi","readthis.ca","reallytinyurl.com","redir.ec","redirects.ca","redirx.com","retwt.me","ri.ms","rickroll.it","riz.gd","rt.nu","ru.ly","rubyurl.com","rurl.org","rww.tw","s4c.in","s7y.us","safe.mn","sameurl.com","sdut.us","shar.es","shink.de","shorl.com","short.ie","short.to","shortlinks.co.uk","shorturl.com","shout.to","show.my","shrinkify.com","shrinkr.com","shrt.fr","shrt.st","shrten.com","shrunkin.com","simurl.com","slate.me","smallr.com","smsh.me","smurl.name","sn.im","snipr.com","snipurl.com","snurl.com","sp2.ro","spedr.com","srnk.net","srs.li","starturl.com","stks.co","su.pr","surl.co.uk","surl.hu","t.cn","t.co","t.lh.com","ta.gd","tbd.ly","tcrn.ch","tgr.me","tgr.ph","tighturl.com","tiniuri.com","tiny.cc","tiny.ly","tiny.pl","tinylink.in","tinyuri.ca","tinyurl.com","tk.","tl.gd","tmi.me","tnij.org","tnw.to","tny.com","to.ly","togoto.us","totc.us","toysr.us","tpm.ly","tr.im","tra.kz","trunc.it","twhub.com","twirl.at","twitclicks.com","twitterurl.net","twitterurl.org","twiturl.de","twurl.cc","twurl.nl","u.mavrev.com","u.nu","u76.org","ub0.cc","ulu.lu","updating.me","ur1.ca","url.az","url.co.uk","url.ie","url360.me","url4.eu","urlborg.com","urlbrief.com","urlcover.com","urlcut.com","urlenco.de","urli.nl","urls.im","urlshorteningservicefortwitter.com","urlx.ie","urlzen.com","usat.ly","use.my","vb.ly","vevo.ly","vgn.am","vl.am","vm.lc","w55.de","wapo.st","wapurl.co.uk","wipi.es","wp.me","x.vu","xr.com","xrl.in","xrl.us","xurl.es","xurl.jp","y.ahoo.it","yatuc.com","ye.pe","yep.it","yfrog.com","yhoo.it","yiyd.com","youtu.be","yuarel.com","z0p.de","zi.ma","zi.mu","zipmyurl.com","zud.me","zurl.ws","zz.gd","zzang.kr","›.ws","✩.ws","✿.ws","❥.ws","➔.ws","➞.ws","➡.ws","➨.ws","➯.ws","➹.ws","➽.ws"];return n("#jqoembeddata").length===0&&n('<span id="jqoembeddata"><\/span>').appendTo("body"),this.each(function(){var h=n(this),s=i&&(!i.indexOf("http://")||!i.indexOf("https://"))?i:h.attr("href"),r,c,l,a,v;if(u?t.onEmbed=u:t.onEmbed||(t.onEmbed=function(i){n.fn.oembed.insertCode(this,t.embedMethod,i)}),s!==null&&s!==undefined){for(c=0,l=f.length;c<l;c++)if(a=new RegExp("://"+f[c]+"/","i"),s.match(a)!==null)return v=n.extend({url:"http://api.longurl.org/v2/expand",dataType:"jsonp",data:{url:s,format:"json"},success:function(i){s=i["long-url"];r=n.fn.oembed.getOEmbedProvider(i["long-url"]);r!==null?(r.params=o(t[r.name])||{},r.maxWidth=t.maxWidth,r.maxHeight=t.maxHeight,e(h,s,r)):t.onProviderNotFound.call(h,s)}},t.ajaxOptions||{}),n.ajax(v),h;r=n.fn.oembed.getOEmbedProvider(s);r!==null?(r.params=o(t[r.name])||{},r.maxWidth=t.maxWidth,r.maxHeight=t.maxHeight,e(h,s,r)):t.onProviderNotFound.call(h,s)}return h})};var t;n.fn.oembed.defaults={maxWidth:null,maxHeight:null,useResponsiveResize:!1,includeHandle:!0,embedMethod:"auto",onProviderNotFound:function(){},beforeEmbed:function(){},afterEmbed:function(){},onEmbed:!1,onError:function(){},ajaxOptions:{timeout:2e3}};n.fn.oembed.insertCode=function(i,r,u){if(u!==null){r=="auto"&&i.attr("href")!==null?r="append":r=="auto"&&(r="replace");switch(r){case"replace":i.replaceWith(u.code);break;case"fill":i.html(u.code);break;case"append":i.wrap('<div class="oembedall-container"><\/div>');var f=i.parent();t.includeHandle&&n('<span class="oembedall-closehide">↓<\/span>').insertBefore(i).click(function(){var t=encodeURIComponent(n(this).text());n(this).html(t=="%E2%86%91"?"↓":"↑");n(this).parent().children().last().toggle()});f.append("<br/>");try{u.code.clone().appendTo(f)}catch(e){f.append(u.code)}}}};n.fn.oembed.getPhotoCode=function(n,t){var i,r=t.title?t.title:"",u;return r+=t.author_name?" - "+t.author_name:"",r+=t.provider_name?" - "+t.provider_name:"",t.url?i='<div><a href="'+n+"\" target='_blank'><img src=\""+t.url+'" alt="'+r+'"/><\/a><\/div>':t.thumbnail_url?(u=t.thumbnail_url.replace("_s","_b"),i='<div><a href="'+n+"\" target='_blank'><img src=\""+u+'" alt="'+r+'"/><\/a><\/div>'):i=t.provider_name=="Flickr"?'<p><a href="'+n+"\" target='_blank'>"+n+"<\/a><\/p>":"<div>Error loading this picture<\/div>",i};n.fn.oembed.getRichCode=function(n,t){return t.html};n.fn.oembed.getGenericCode=function(n,t){var r=t.title!==null?t.title:n,i='<a href="'+n+'">'+r+"<\/a>";return t.html&&(i+="<div>"+t.html+"<\/div>"),i};n.fn.oembed.getOEmbedProvider=function(t){for(var r,u,f,i=0;i<n.fn.oembed.providers.length;i++)for(r=0,u=n.fn.oembed.providers[i].urlschemes.length;r<u;r++)if(f=new RegExp(n.fn.oembed.providers[i].urlschemes[r],"i"),t.match(f)!==null)return n.fn.oembed.providers[i];return null};n.fn.oembed.OEmbedProvider=function(i,r,u,f,e){this.name=i;this.type=r;this.urlschemes=u;this.apiendpoint=f;this.maxWidth=500;this.maxHeight=400;e=e||{};e.useYQL&&(e.yql=e.useYQL=="xml"?{xpath:"//oembed/html",from:"xml",apiendpoint:this.apiendpoint,url:function(n){return this.apiendpoint+"?format=xml&url="+n},datareturn:function(n){return n.html.replace(/.*\[CDATA\[(.*)\]\]>$/,"$1")||""}}:{from:"json",apiendpoint:this.apiendpoint,url:function(n){return this.apiendpoint+"?format=json&url="+n},datareturn:function(i){var f,o,s;if(i.json.type!="video"&&(i.json.url||i.json.thumbnail_url)&&!i.json.html.indexOf("iframe"))return'<img src="'+(i.json.url||i.json.thumbnail_url)+'" />';if(i.json.html.indexOf("iframe")){i.json.html.indexOf("allowfullscreen>")&&(i.json.html=i.json.html.replace("allowfullscreen>",'allowfullscreen="false">'));var e=n.parseHTML(i.json.html),r=e[0].width,u=e[0].height;return t.maxHeight&&t.maxWidth&&(t.useResponsiveResize?(o=r,s=u,r>t.maxWidth&&(f=t.maxWidth/r,o=t.maxWidth,s=u*f,u=u*f,r=r*f),u>t.maxHeight&&(f=t.maxHeight/u,s=t.maxHeight,o=r*f),u=s,r=o):(u=t.maxHeight,r=t.maxWidth)),e[0].width=r,e[0].height=u,e[0].outerHTML}return i.json.html||""}},this.apiendpoint=null);for(var o in e)this[o]=e[o];this.format=this.format||"json";this.callbackparameter=this.callbackparameter||"callback";this.embedtag=this.embedtag||{tag:""}};n.fn.updateOEmbedProvider=function(t,i,r,u,f){for(var o,e=0;e<n.fn.oembed.providers.length;e++)if(n.fn.oembed.providers[e].name===t&&(i!==null&&(n.fn.oembed.providers[e].type=i),r!==null&&(n.fn.oembed.providers[e].urlschemes=r),u!==null&&(n.fn.oembed.providers[e].apiendpoint=u),f!==null)){n.fn.oembed.providers[e].extraSettings=f;for(o in f)f[o]!==null&&(n.fn.oembed.providers[e][o]=f[o])}};n.fn.oembed.providers=[new n.fn.oembed.OEmbedProvider("youtube","video",["youtube\\.com/watch.+v=[\\w-]+&?","youtu\\.be/[\\w-]+","youtube.com/embed"],r()+"www.youtube.com/embed/$1?wmode=transparent",{templateRegex:/.*(?:v\=|be\/|embed\/)([\w\-]+)&?.*/,embedtag:{tag:"iframe",width:"425",height:"349"}}),new n.fn.oembed.OEmbedProvider("youtubeiframe","video",["youtube.com/embed"],"$1?wmode=transparent",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"425",height:"349"}}),new n.fn.oembed.OEmbedProvider("wistia","video",["wistia.com/m/.+","wistia.com/embed/.+","wi.st/m/.+","wi.st/embed/.+"],"http://fast.wistia.com/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("xtranormal","video",["xtranormal\\.com/watch/.+"],"http://www.xtranormal.com/xtraplayr/$1/$2",{templateRegex:/.*com\/watch\/([\w\-]+)\/([\w\-]+).*/,embedtag:{tag:"iframe",width:"320",height:"269"}}),new n.fn.oembed.OEmbedProvider("scivee","video",["scivee.tv/node/.+"],"http://www.scivee.tv/flash/embedCast.swf?",{templateRegex:/.*tv\/node\/(.+)/,embedtag:{width:"480",height:"400",flashvars:"id=$1&type=3"}}),new n.fn.oembed.OEmbedProvider("veoh","video",["veoh.com/watch/.+"],"http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1337&permalinkId=$1&player=videodetailsembedded&videoAutoPlay=0&id=anonymous",{templateRegex:/.*watch\/([^\?]+).*/,embedtag:{width:"410",height:"341"}}),new n.fn.oembed.OEmbedProvider("gametrailers","video",["gametrailers\\.com/video/.+"],"http://media.mtvnservices.com/mgid:moses:video:gametrailers.com:$2",{templateRegex:/.*com\/video\/([\w\-]+)\/([\w\-]+).*/,embedtag:{width:"512",height:"288"}}),new n.fn.oembed.OEmbedProvider("funnyordie","video",["funnyordie\\.com/videos/.+"],"http://player.ordienetworks.com/flash/fodplayer.swf?",{templateRegex:/.*videos\/([^\/]+)\/([^\/]+)?/,embedtag:{width:512,height:328,flashvars:"key=$1"}}),new n.fn.oembed.OEmbedProvider("colledgehumour","video",["collegehumor\\.com/video/.+"],"http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=$1&use_node_id=true&fullscreen=1",{templateRegex:/.*video\/([^\/]+).*/,embedtag:{width:600,height:338}}),new n.fn.oembed.OEmbedProvider("metacafe","video",["metacafe\\.com/watch/.+"],"http://www.metacafe.com/fplayer/$1/$2.swf",{templateRegex:/.*watch\/(\d+)\/(\w+)\/.*/,embedtag:{width:400,height:345}}),new n.fn.oembed.OEmbedProvider("bambuser","video",["bambuser\\.com/channel/.*/broadcast/.*"],"http://static.bambuser.com/r/player.swf?vid=$1",{templateRegex:/.*bambuser\.com\/channel\/.*\/broadcast\/(\w+).*/,embedtag:{width:512,height:339}}),new n.fn.oembed.OEmbedProvider("twitvid","video",["twitvid\\.com/.+"],"http://www.twitvid.com/embed.php?guid=$1&autoplay=0",{templateRegex:/.*twitvid\.com\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360}}),new n.fn.oembed.OEmbedProvider("aniboom","video",["aniboom\\.com/animation-video/.+"],"http://api.aniboom.com/e/$1",{templateRegex:/.*animation-video\/(\d+).*/,embedtag:{width:594,height:334}}),new n.fn.oembed.OEmbedProvider("vzaar","video",["vzaar\\.com/videos/.+","vzaar.tv/.+"],"http://view.vzaar.com/$1/player?",{templateRegex:/.*\/(\d+).*/,embedtag:{tag:"iframe",width:576,height:324}}),new n.fn.oembed.OEmbedProvider("snotr","video",["snotr\\.com/video/.+"],"http://www.snotr.com/embed/$1",{templateRegex:/.*\/(\d+).*/,embedtag:{tag:"iframe",width:400,height:330,nocache:1}}),new n.fn.oembed.OEmbedProvider("youku","video",["v.youku.com/v_show/id_.+"],"http://player.youku.com/player.php/sid/$1/v.swf",{templateRegex:/.*id_(.+)\.html.*/,embedtag:{width:480,height:400,nocache:1}}),new n.fn.oembed.OEmbedProvider("tudou","video",["tudou.com/programs/view/.+/"],"http://www.tudou.com/v/$1/v.swf",{templateRegex:/.*view\/(.+)\//,embedtag:{width:480,height:400,nocache:1}}),new n.fn.oembed.OEmbedProvider("embedr","video",["embedr\\.com/playlist/.+"],"http://embedr.com/swf/slider/$1/425/520/default/false/std?",{templateRegex:/.*playlist\/([^\/]+).*/,embedtag:{width:425,height:520}}),new n.fn.oembed.OEmbedProvider("blip","video",["blip\\.tv/.+"],"http://blip.tv/oembed/"),new n.fn.oembed.OEmbedProvider("minoto-video","video",["http://api.minoto-video.com/publishers/.+/videos/.+","http://dashboard.minoto-video.com/main/video/details/.+","http://embed.minoto-video.com/.+"],"http://api.minoto-video.com/services/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("animoto","video",["animoto.com/play/.+"],"http://animoto.com/services/oembed"),new n.fn.oembed.OEmbedProvider("hulu","video",["hulu\\.com/watch/.*"],"http://www.hulu.com/api/oembed.json"),new n.fn.oembed.OEmbedProvider("ustream","video",["ustream\\.tv/recorded/.*"],"http://www.ustream.tv/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("videojug","video",["videojug\\.com/(film|payer|interview).*"],"http://www.videojug.com/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("sapo","video",["videos\\.sapo\\.pt/.*"],"http://videos.sapo.pt/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("vodpod","video",["vodpod.com/watch/.*"],"http://vodpod.com/oembed.js",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("vimeo","video",["www.vimeo.com/groups/.*/videos/.*","www.vimeo.com/.*","vimeo.com/groups/.*/videos/.*","vimeo.com/.*"],"//vimeo.com/api/oembed.json"),new n.fn.oembed.OEmbedProvider("dailymotion","video",["dailymotion\\.com/.+"],"http://www.dailymotion.com/services/oembed"),new n.fn.oembed.OEmbedProvider("5min","video",["www\\.5min\\.com/.+"],"http://api.5min.com/oembed.xml",{useYQL:"xml"}),new n.fn.oembed.OEmbedProvider("National Film Board of Canada","video",["nfb\\.ca/film/.+"],"http://www.nfb.ca/remote/services/oembed/",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("qik","video",["qik\\.com/\\w+"],"http://qik.com/api/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("revision3","video",["revision3\\.com"],"http://revision3.com/api/oembed/"),new n.fn.oembed.OEmbedProvider("dotsub","video",["dotsub\\.com/view/.+"],"http://dotsub.com/services/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("clikthrough","video",["clikthrough\\.com/theater/video/\\d+"],"http://clikthrough.com/services/oembed"),new n.fn.oembed.OEmbedProvider("Kinomap","video",["kinomap\\.com/.+"],"http://www.kinomap.com/oembed"),new n.fn.oembed.OEmbedProvider("VHX","video",["vhx.tv/.+"],"http://vhx.tv/services/oembed.json"),new n.fn.oembed.OEmbedProvider("bambuser","video",["bambuser.com/.+"],"http://api.bambuser.com/oembed/iframe.json"),new n.fn.oembed.OEmbedProvider("justin.tv","video",["justin.tv/.+"],"http://api.justin.tv/api/embed/from_url.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("official.fm","rich",["official.fm/.+"],"http://official.fm/services/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("chirbit","rich",["chirb.it/.+"],"http://chirb.it/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("Huffduffer","rich",["huffduffer.com/[-.\\w@]+/\\d+"],"http://huffduffer.com/oembed"),new n.fn.oembed.OEmbedProvider("Spotify","rich",["open.spotify.com/(track|album|user)/"],"https://embed.spotify.com/oembed/"),new n.fn.oembed.OEmbedProvider("shoudio","rich",["shoudio.com/.+","shoud.io/.+"],"http://shoudio.com/api/oembed"),new n.fn.oembed.OEmbedProvider("mixcloud","rich",["mixcloud.com/.+"],r()+"www.mixcloud.com/oembed/",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("rdio.com","rich",["rd.io/.+","rdio.com"],r()+"www.rdio.com/api/oembed/"),new n.fn.oembed.OEmbedProvider("Soundcloud","rich",["soundcloud.com/.+","snd.sc/.+"],r()+"soundcloud.com/oembed",{format:"js"}),new n.fn.oembed.OEmbedProvider("bandcamp","rich",["bandcamp\\.com/album/.+"],null,{yql:{xpath:"//meta[contains(@content, \\'EmbeddedPlayer\\')]",from:"html",datareturn:function(n){return n.meta?'<iframe width="400" height="100" src="'+n.meta.content+'" allowtransparency="true" frameborder="0"><\/iframe>':!1}}}),new n.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"http://backend.deviantart.com/oembed",{format:"jsonp"}),new n.fn.oembed.OEmbedProvider("skitch","photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(n){return"http://skitch.com/oembed/?format=json&url="+n},datareturn:function(t){return n.fn.oembed.getPhotoCode(t.json.url,t.json)}}}),new n.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new n.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"http://flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new n.fn.oembed.OEmbedProvider("photobucket","photo",["photobucket\\.com/(albums|groups)/.+"],r()+"photobucket.com/oembed/"),new n.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],r()+"api.instagram.com/oembed"),new n.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new n.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(n){return n.image_teaser_url?'<img src="'+n.image_teaser_url+'"/>':!1}}),new n.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"],"http://www.23hq.com/23/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"http://img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],r()+"imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new n.fn.oembed.OEmbedProvider("gravtar","photo",["mailto:.+"],null,{templateRegex:/mailto:([^\/]+).*/,template:function(n,t){return'<img src="http://gravatar.com/avatar/'+t.md5()+'.jpg" alt="on Gravtar" class="jqoaImg">'}}),new n.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json?id="),new n.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new n.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new n.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new n.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new n.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"],"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}),new n.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&embedId=pt-embed-$1-693&treeId=$1&pearlId=$2&treeTitle=Diagrams%2FVisualization&site=www.pearltrees.com%2FF"}}),new n.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"http://prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550,height:400,flashvars:"prezi_id=$1&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"}}),new n.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(n,t){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2e3),"<div id='"+t+"' class='tourwrist-tour-embed direct'><\/div> <script type='text/javascript' src='http://tourwrist.com/tour_embed.js'><\/script>"}}),new n.fn.oembed.OEmbedProvider("meetup","rich",["meetup\\.(com|ps)/.+"],r()+"api.meetup.com/oembed"),new n.fn.oembed.OEmbedProvider("ebay","rich",["ebay\\.*"],r()+"togo.ebay.com/togo/togo.swf?2008013100",{templateRegex:/.*\/([^\/]+)\/(\d{10,13}).*/,embedtag:{width:355,height:300,flashvars:"base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1"}}),new n.fn.oembed.OEmbedProvider("wikipedia","rich",["wikipedia.org/wiki/.+"],"http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json§ion=0&callback=?",{templateRegex:/.*\/\/([\w]+).*\/wiki\/([^\/]+).*/,templateData:function(n){if(!n.parse)return!1;var t=n.parse.text["*"].replace(/href="\/wiki/g,'href="http://en.wikipedia.org/wiki');return'<div id="content"><h3><a class="nav-link" href="http://en.wikipedia.org/wiki/'+n.parse.displaytitle+'">'+n.parse.displaytitle+"<\/a><\/h3>"+t+"<\/div>"}}),new n.fn.oembed.OEmbedProvider("imdb","rich",["imdb.com/title/.+"],"http://www.imdbapi.com/?i=$1&callback=?",{templateRegex:/.*\/title\/([^\/]+).*/,templateData:function(n){return n.Title?'<div id="content"><h3><a class="nav-link" href="http://imdb.com/title/'+n.ID+'/">'+n.Title+"<\/a> ("+n.Year+")<\/h3><p>Starring: "+n.Actors+'<\/p><div id="photo-wrap" style="margin: auto;width:600px;height:450px;"><img class="photo" id="photo-display" src="'+n.Poster+'" alt="'+n.Title+'"><\/div> <div id="view-photo-caption">'+n.Plot+"<\/div><\/div>":!1}}),new n.fn.oembed.OEmbedProvider("livejournal","rich",["livejournal.com/"],"http://ljpic.seacrow.com/json/$2$4?jsonp=?",{templateRegex:/(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/,templateData:function(n){return!!n.username&&'<div><img src="'+n.image+'" align="left" style="margin-right: 1em;" /><span class="oembedall-ljuser"><a href="http://'+n.username+'.livejournal.com/profile"><img src="http://www.livejournal.com/img/userinfo.gif" alt="[info]" width="17" height="17" /><\/a><a href="http://'+n.username+'.livejournal.com/">'+n.username+"<\/a><\/span><br />"+n.name+"<\/div>"}}),new n.fn.oembed.OEmbedProvider("circuitbee","rich",["circuitbee\\.com/circuit/view/.+"],"http://c.circuitbee.com/build/r/schematic-embed.html?id=$1",{templateRegex:/.*circuit\/view\/(\d+).*/,embedtag:{tag:"iframe",width:"500",height:"350"}}),new n.fn.oembed.OEmbedProvider("googlecalendar","rich",["www.google.com/calendar/embed?.+"],"$1",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"800",height:"600"}}),new n.fn.oembed.OEmbedProvider("jsfiddle","rich",["jsfiddle.net/[^/]+/?"],"http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?",{templateRegex:/.*net\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new n.fn.oembed.OEmbedProvider("jsbin","rich",["jsbin.com/.+"],"http://jsbin.com/$1/?",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new n.fn.oembed.OEmbedProvider("jotform","rich",["form.jotform.co/form/.+"],"$1?",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"100%",height:"507"}}),new n.fn.oembed.OEmbedProvider("reelapp","rich",["reelapp\\.com/.+"],"http://www.reelapp.com/$1/embed",{templateRegex:/.*com\/(\S{6}).*/,embedtag:{tag:"iframe",width:"400",height:"338"}}),new n.fn.oembed.OEmbedProvider("linkedin","rich",["linkedin.com/pub/.+"],"https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"368px",height:"auto"}}),new n.fn.oembed.OEmbedProvider("timetoast","rich",["timetoast.com/timelines/[0-9]+"],"http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1",{templateRegex:/.*timelines\/([0-9]*)/,embedtag:{width:550,height:400,nocache:1}}),new n.fn.oembed.OEmbedProvider("pastebin","rich",["pastebin\\.com/[\\S]{8}"],"http://pastebin.com/embed_iframe.php?i=$1",{templateRegex:/.*\/(\S{8}).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new n.fn.oembed.OEmbedProvider("mixlr","rich",["mixlr.com/.+"],"http://mixlr.com/embed/$1?autoplay=ae",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new n.fn.oembed.OEmbedProvider("pastie","rich",["pastie\\.org/pastes/.+"],null,{yql:{xpath:'//pre[@class="textmate-source"]'}}),new n.fn.oembed.OEmbedProvider("github","rich",["gist.github.com/.+"],"https://github.com/api/oembed"),new n.fn.oembed.OEmbedProvider("github","rich",["github.com/[-.\\w@]+/[-.\\w@]+"],"https://api.github.com/repos/$1/$2?callback=?",{templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,templateData:function(n){return n.data.html_url?'<div class="oembedall-githubrepos"><ul class="oembedall-repo-stats"><li>'+n.data.language+'<\/li><li class="oembedall-watchers"><a title="Watchers" href="'+n.data.html_url+'/watchers">◉ '+n.data.watchers+'<\/a><\/li><li class="oembedall-forks"><a title="Forks" href="'+n.data.html_url+'/network">ɥ '+n.data.forks+'<\/a><\/li><\/ul><h3><a href="'+n.data.html_url+'">'+n.data.name+'<\/a><\/h3><div class="oembedall-body"><p class="oembedall-description">'+n.data.description+'<\/p><p class="oembedall-updated-at">Last updated: '+n.data.pushed_at+"<\/p><\/div><\/div>":!1}}),new n.fn.oembed.OEmbedProvider("facebook","rich",["facebook.com/(people/[^\\/]+/\\d+|[^\\/]+$)"],"https://graph.facebook.com/$2$3/?callback=?",{templateRegex:/.*facebook.com\/(people\/[^\/]+\/(\d+).*|([^\/]+$))/,templateData:function(n){if(!n.id)return!1;var t='<div class="oembedall-facebook1"><div class="oembedall-facebook2"><a href="http://www.facebook.com/">facebook<\/a> ';return t+=n.from?'<a href="http://www.facebook.com/'+n.from.id+'">'+n.from.name+"<\/a>":n.link?'<a href="'+n.link+'">'+n.name+"<\/a>":n.username?'<a href="http://www.facebook.com/'+n.username+'">'+n.name+"<\/a>":'<a href="http://www.facebook.com/'+n.id+'">'+n.name+"<\/a>",t+='<\/div><div class="oembedall-facebookBody"><div class="contents">',t+=n.picture?'<a href="'+n.link+'"><img src="'+n.picture+'"><\/a>':'<img src="https://graph.facebook.com/'+n.id+'/picture">',n.from&&(t+='<a href="'+n.link+'">'+n.name+"<\/a>"),n.founded&&(t+="Founded: <strong>"+n.founded+"<\/strong><br>"),n.category&&(t+="Category: <strong>"+n.category+"<\/strong><br>"),n.website&&(t+='Website: <strong><a href="'+n.website+'">'+n.website+"<\/a><\/strong><br>"),n.gender&&(t+="Gender: <strong>"+n.gender+"<\/strong><br>"),n.description&&(t+=n.description+"<br>"),t+"<\/div><\/div>"}}),new n.fn.oembed.OEmbedProvider("stackoverflow","rich",["stackoverflow.com/questions/[\\d]+"],"http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?",{templateRegex:/.*questions\/([\d]+).*/,templateData:function(t){if(!t.questions)return!1;var r=t.questions[0],f=n(r.body).text(),u='<div class="oembedall-stoqembed"><div class="oembedall-statscontainer"><div class="oembedall-statsarrow"><\/div><div class="oembedall-stats"><div class="oembedall-vote"><div class="oembedall-votes"><span class="oembedall-vote-count-post"><strong>'+(r.up_vote_count-r.down_vote_count)+'<\/strong><\/span><div class="oembedall-viewcount">vote(s)<\/div><\/div><\/div><div class="oembedall-status"><strong>'+r.answer_count+'<\/strong>answer<\/div><\/div><div class="oembedall-views">'+r.view_count+' view(s)<\/div><\/div><div class="oembedall-summary"><h3><a class="oembedall-question-hyperlink" href="http://stackoverflow.com/questions/'+r.question_id+'/">'+r.title+'<\/a><\/h3><div class="oembedall-excerpt">'+f.substring(0,100)+'...<\/div><div class="oembedall-tags">';for(i in r.tags)u+='<a title="" class="oembedall-post-tag" href="http://stackoverflow.com/questions/tagged/'+r.tags[i]+'">'+r.tags[i]+"<\/a>";return u+('<\/div><div class="oembedall-fr"><div class="oembedall-user-info"><div class="oembedall-user-gravatar32"><a href="http://stackoverflow.com/users/'+r.owner.user_id+"/"+r.owner.display_name+'"><img width="32" height="32" alt="" src="http://www.gravatar.com/avatar/'+r.owner.email_hash+'?s=32&d=identicon&r=PG"><\/a><\/div><div class="oembedall-user-details"><a href="http://stackoverflow.com/users/'+r.owner.user_id+"/"+r.owner.display_name+'">'+r.owner.display_name+'<\/a><br><span title="reputation score" class="oembedall-reputation-score">'+r.owner.reputation+"<\/span><\/div><\/div><\/div><\/div><\/div>")}}),new n.fn.oembed.OEmbedProvider("wordpress","rich",["wordpress\\.com/.+","blogs\\.cnn\\.com/.+","techcrunch\\.com/.+","wp\\.me/.+"],"http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"),new n.fn.oembed.OEmbedProvider("screenr","rich",["screenr.com"],"http://www.screenr.com/embed/$1",{templateRegex:/.*\/([^\/]+).*/,embedtag:{tag:"iframe",width:"650",height:396}}),new n.fn.oembed.OEmbedProvider("gigpans","rich",["gigapan\\.org/[-.\\w@]+/\\d+"],"http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html",{templateRegex:/.*\/(\d+)\/?.*/,embedtag:{tag:"iframe",width:"100%",height:400}}),new n.fn.oembed.OEmbedProvider("scribd","rich",["scribd\\.com/.+"],r()+"www.scribd.com/embeds/$1/content?start_page=1&view_mode=list",{templateRegex:/.*doc\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:600}}),new n.fn.oembed.OEmbedProvider("kickstarter","rich",["kickstarter\\.com/projects/.+"],"$1/widget/card.html",{templateRegex:/([^\?]+).*/,embedtag:{tag:"iframe",width:"220",height:380}}),new n.fn.oembed.OEmbedProvider("amazon","rich",["amzn.com/B+","amazon.com.*/(B\\S+)($|\\/.*)"],r()+"rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr",{apikey:!0,templateRegex:/.*\/(B[0-9A-Z]+)($|\/.*)/,embedtag:{tag:"iframe",width:"120px",height:"240px"}}),new n.fn.oembed.OEmbedProvider("slideshare","rich",["slideshare.net"],r()+"www.slideshare.net/api/oembed/2",{format:"jsonp"}),new n.fn.oembed.OEmbedProvider("roomsharejp","rich",["roomshare\\.jp/(en/)?post/.*"],"http://roomshare.jp/oembed.json"),new n.fn.oembed.OEmbedProvider("lanyard","rich",["lanyrd.com/\\d+/.+"],null,{yql:{xpath:'(//div[@class="primary"])[1]',from:"htmlstring",datareturn:function(n){return n.result?'<div class="oembedall-lanyard">'+n.result+"<\/div>":!1}}}),new n.fn.oembed.OEmbedProvider("asciiartfarts","rich",["asciiartfarts.com/\\d+.html"],null,{yql:{xpath:"//pre/font",from:"htmlstring",datareturn:function(n){return n.result?'<pre style="background-color:000;">'+n.result+"<\/div>":!1}}}),new n.fn.oembed.OEmbedProvider("opengraph","rich",[".*"],null,{yql:{xpath:"//meta|//title|//link",from:"html",datareturn:function(i){var r,u,f;return(!i["og:title"]&&i.title&&i.description&&(i["og:title"]=i.title),!i["og:title"]&&!i.title)?!1:(r=n("<p/>"),i["og:video"]?(u=n('<embed src="'+i["og:video"]+'"/>'),u.attr("type",i["og:video:type"]||"application/x-shockwave-flash").css("max-height",t.maxHeight||"auto").css("max-width",t.maxWidth||"auto"),i["og:video:width"]&&u.attr("width",i["og:video:width"]),i["og:video:height"]&&u.attr("height",i["og:video:height"]),r.append(u)):i["og:image"]&&(f=n('<img src="'+i["og:image"]+'">'),f.css("max-height",t.maxHeight||"auto").css("max-width",t.maxWidth||"auto"),i["og:image:width"]&&f.attr("width",i["og:image:width"]),i["og:image:height"]&&f.attr("height",i["og:image:height"]),r.append(f)),i["og:title"]&&r.append("<b>"+i["og:title"]+"<\/b><br/>"),i["og:description"]?r.append(i["og:description"]+"<br/>"):i.description&&r.append(i.description+"<br/>"),r)}}})]})(jQuery);String.prototype.md5=function(){var u=function(n,t){var i=(n&65535)+(t&65535),r=(n>>16)+(t>>16)+(i>>16);return r<<16|i&65535},e=function(n,t){return n<<t|n>>>32-t},f=function(n,t,i,r,f,o){return u(e(u(u(t,n),u(r,o)),f),i)},n=function(n,t,i,r,u,e,o){return f(t&i|~t&r,n,t,u,e,o)},t=function(n,t,i,r,u,e,o){return f(t&r|i&~r,n,t,u,e,o)},i=function(n,t,i,r,u,e,o){return f(t^i^r,n,t,u,e,o)},r=function(n,t,i,r,u,e,o){return f(i^(t|~r),n,t,u,e,o)},o=function(f){for(var l,a,v,y,p=f.length,e=1732584193,o=-271733879,s=-1732584194,h=271733878,c=0;c<p;c+=16)l=e,a=o,v=s,y=h,e=n(e,o,s,h,f[c+0],7,-680876936),h=n(h,e,o,s,f[c+1],12,-389564586),s=n(s,h,e,o,f[c+2],17,606105819),o=n(o,s,h,e,f[c+3],22,-1044525330),e=n(e,o,s,h,f[c+4],7,-176418897),h=n(h,e,o,s,f[c+5],12,1200080426),s=n(s,h,e,o,f[c+6],17,-1473231341),o=n(o,s,h,e,f[c+7],22,-45705983),e=n(e,o,s,h,f[c+8],7,1770035416),h=n(h,e,o,s,f[c+9],12,-1958414417),s=n(s,h,e,o,f[c+10],17,-42063),o=n(o,s,h,e,f[c+11],22,-1990404162),e=n(e,o,s,h,f[c+12],7,1804603682),h=n(h,e,o,s,f[c+13],12,-40341101),s=n(s,h,e,o,f[c+14],17,-1502002290),o=n(o,s,h,e,f[c+15],22,1236535329),e=t(e,o,s,h,f[c+1],5,-165796510),h=t(h,e,o,s,f[c+6],9,-1069501632),s=t(s,h,e,o,f[c+11],14,643717713),o=t(o,s,h,e,f[c+0],20,-373897302),e=t(e,o,s,h,f[c+5],5,-701558691),h=t(h,e,o,s,f[c+10],9,38016083),s=t(s,h,e,o,f[c+15],14,-660478335),o=t(o,s,h,e,f[c+4],20,-405537848),e=t(e,o,s,h,f[c+9],5,568446438),h=t(h,e,o,s,f[c+14],9,-1019803690),s=t(s,h,e,o,f[c+3],14,-187363961),o=t(o,s,h,e,f[c+8],20,1163531501),e=t(e,o,s,h,f[c+13],5,-1444681467),h=t(h,e,o,s,f[c+2],9,-51403784),s=t(s,h,e,o,f[c+7],14,1735328473),o=t(o,s,h,e,f[c+12],20,-1926607734),e=i(e,o,s,h,f[c+5],4,-378558),h=i(h,e,o,s,f[c+8],11,-2022574463),s=i(s,h,e,o,f[c+11],16,1839030562),o=i(o,s,h,e,f[c+14],23,-35309556),e=i(e,o,s,h,f[c+1],4,-1530992060),h=i(h,e,o,s,f[c+4],11,1272893353),s=i(s,h,e,o,f[c+7],16,-155497632),o=i(o,s,h,e,f[c+10],23,-1094730640),e=i(e,o,s,h,f[c+13],4,681279174),h=i(h,e,o,s,f[c+0],11,-358537222),s=i(s,h,e,o,f[c+3],16,-722521979),o=i(o,s,h,e,f[c+6],23,76029189),e=i(e,o,s,h,f[c+9],4,-640364487),h=i(h,e,o,s,f[c+12],11,-421815835),s=i(s,h,e,o,f[c+15],16,530742520),o=i(o,s,h,e,f[c+2],23,-995338651),e=r(e,o,s,h,f[c+0],6,-198630844),h=r(h,e,o,s,f[c+7],10,1126891415),s=r(s,h,e,o,f[c+14],15,-1416354905),o=r(o,s,h,e,f[c+5],21,-57434055),e=r(e,o,s,h,f[c+12],6,1700485571),h=r(h,e,o,s,f[c+3],10,-1894986606),s=r(s,h,e,o,f[c+10],15,-1051523),o=r(o,s,h,e,f[c+1],21,-2054922799),e=r(e,o,s,h,f[c+8],6,1873313359),h=r(h,e,o,s,f[c+15],10,-30611744),s=r(s,h,e,o,f[c+6],15,-1560198380),o=r(o,s,h,e,f[c+13],21,1309151649),e=r(e,o,s,h,f[c+4],6,-145523070),h=r(h,e,o,s,f[c+11],10,-1120210379),s=r(s,h,e,o,f[c+2],15,718787259),o=r(o,s,h,e,f[c+9],21,-343485551),e=u(e,l),o=u(o,a),s=u(s,v),h=u(h,y);return[e,o,s,h]},s=function(n){for(var i="0123456789abcdef",r="",u=n.length*4,t=0;t<u;t++)r+=i.charAt(n[t>>2]>>t%4*8+4&15)+i.charAt(n[t>>2]>>t%4*8&15);return r},h=function(n){for(var u=(n.length+8>>6)+1,i=[],e=u*16,t,f=n.length,r=0;r<e;r++)i.push(0);for(t=0;t<f;t++)i[t>>2]|=(n.charCodeAt(t)&255)<<t%4*8;return i[t>>2]|=128<<t%4*8,i[u*16-2]=f*8,i};return s(o(h(this)))};\r
--- /dev/null
+/**\r
+* oEmbed Plugin plugin\r
+* Licensed under the MIT license\r
+* jQuery Embed Plugin: http://code.google.com/p/jquery-oembed/ (MIT License)\r
+* Plugin for: http://ckeditor.com/license (GPL/LGPL/MPL: http://ckeditor.com/license)\r
+*/\r
+\r
+(function() {\r
+ CKEDITOR.plugins.add('oembed', {\r
+ icons: 'oembed',\r
+ hidpi: true,\r
+ requires: 'widget,dialog',\r
+ lang: 'de,en,fr,nl,pl,pt-br,ru,tr', // %REMOVE_LINE_CORE%\r
+ version: 1.17,\r
+ init: function(editor) {\r
+ // Load jquery?\r
+ loadjQueryLibaries();\r
+\r
+ CKEDITOR.tools.extend(CKEDITOR.editor.prototype, {\r
+ oEmbed: function(url, maxWidth, maxHeight, responsiveResize) {\r
+\r
+ if (url.length < 1 || url.indexOf('http') < 0) {\r
+ alert(editor.lang.oembed.invalidUrl);\r
+ return false;\r
+ }\r
+\r
+ function embed() {\r
+ if (maxWidth == null || maxWidth == 'undefined') {\r
+ maxWidth = null;\r
+ }\r
+\r
+ if (maxHeight == null || maxHeight == 'undefined') {\r
+ maxHeight = null;\r
+ }\r
+\r
+ if (responsiveResize == null || responsiveResize == 'undefined') {\r
+ responsiveResize = false;\r
+ }\r
+\r
+ embedCode(url, editor, false, maxWidth, maxHeight, responsiveResize);\r
+ }\r
+\r
+ if (typeof(jQuery.fn.oembed) === 'undefined') {\r
+ CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath('oembed') + 'libs/jquery.oembed.min.js'), function() {\r
+ embed();\r
+ });\r
+ } else {\r
+ embed();\r
+ }\r
+\r
+ return true;\r
+ }\r
+ });\r
+\r
+ editor.widgets.add('oembed', {\r
+ draggable: false,\r
+ mask: true,\r
+ dialog: 'oembed',\r
+ allowedContent: {\r
+ div: {\r
+ styles: 'text-align,float',\r
+ attributes: '*',\r
+ classes: editor.config.oembed_WrapperClass != null ? editor.config.oembed_WrapperClass : "embeddedContent"\r
+ },\r
+ 'div(embeddedContent,oembed-provider-*) iframe': {\r
+ attributes: '*'\r
+ },\r
+ 'div(embeddedContent,oembed-provider-*) blockquote': {\r
+ attributes: '*'\r
+ },\r
+ 'div(embeddedContent,oembed-provider-*) script': {\r
+ attributes: '*'\r
+ }\r
+ },\r
+ template:\r
+ '<div class="' + (editor.config.oembed_WrapperClass != null ? editor.config.oembed_WrapperClass : "embeddedContent") + '">' +\r
+ '</div>',\r
+ upcast: function(element) {\r
+ return element.name == 'div' && element.hasClass(editor.config.oembed_WrapperClass != null ? editor.config.oembed_WrapperClass : "embeddedContent");\r
+ },\r
+ init: function() {\r
+ var data = {\r
+ oembed: this.element.data('oembed') || '',\r
+ resizeType: this.element.data('resizeType') || 'noresize',\r
+ maxWidth: this.element.data('maxWidth') || 560,\r
+ maxHeight: this.element.data('maxHeight') || 315,\r
+ align: this.element.data('align') || 'none',\r
+ oembed_provider: this.element.data('oembed_provider') || ''\r
+ };\r
+\r
+ this.setData(data);\r
+ this.element.addClass('oembed-provider-' + data.oembed_provider);\r
+\r
+ this.on('dialog', function(evt) {\r
+ evt.data.widget = this;\r
+ }, this);\r
+ }\r
+ });\r
+\r
+ editor.ui.addButton('oembed', {\r
+ label: editor.lang.oembed.button,\r
+ command: 'oembed',\r
+ toolbar: 'insert,10',\r
+ icon: this.path + "icons/" + (CKEDITOR.env.hidpi ? "hidpi/" : "") + "oembed.png"\r
+ });\r
+\r
+ var resizeTypeChanged = function() {\r
+ var dialog = this.getDialog(),\r
+ resizetype = this.getValue(),\r
+ maxSizeBox = dialog.getContentElement('general', 'maxSizeBox').getElement(),\r
+ sizeBox = dialog.getContentElement('general', 'sizeBox').getElement();\r
+\r
+ if (resizetype == 'noresize') {\r
+ maxSizeBox.hide();\r
+\r
+ sizeBox.hide();\r
+ } else if (resizetype == "custom") {\r
+ maxSizeBox.hide();\r
+\r
+ sizeBox.show();\r
+ } else {\r
+ maxSizeBox.show();\r
+\r
+ sizeBox.hide();\r
+ }\r
+\r
+ };\r
+\r
+ String.prototype.beginsWith = function(string) {\r
+ return (this.indexOf(string) === 0);\r
+ };\r
+\r
+ function loadjQueryLibaries() {\r
+ if (typeof(jQuery) === 'undefined') {\r
+ CKEDITOR.scriptLoader.load('//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', function() {\r
+ jQuery.noConflict();\r
+ if (typeof(jQuery.fn.oembed) === 'undefined') {\r
+ CKEDITOR.scriptLoader.load(\r
+ CKEDITOR.getUrl(CKEDITOR.plugins.getPath('oembed') + 'libs/jquery.oembed.min.js')\r
+ );\r
+ }\r
+ });\r
+\r
+ } else if (typeof(jQuery.fn.oembed) === 'undefined') {\r
+ CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath('oembed') + 'libs/jquery.oembed.min.js'));\r
+ }\r
+ }\r
+\r
+ function embedCode(url, instance, maxWidth, maxHeight, responsiveResize, resizeType, align, widget) {\r
+ jQuery('body').oembed(url, {\r
+ onEmbed: function(e) {\r
+ var elementAdded = false,\r
+ provider = jQuery.fn.oembed.getOEmbedProvider(url);\r
+\r
+ widget.element.data('resizeType', resizeType);\r
+ if (resizeType == "responsive" || resizeType == "custom") {\r
+ widget.element.data('maxWidth', maxWidth);\r
+ widget.element.data('maxHeight', maxHeight);\r
+ }\r
+\r
+ widget.element.data('align', align);\r
+\r
+ // TODO handle align\r
+ if (align == 'center') {\r
+ if (!widget.inline)\r
+ widget.element.setStyle('text-align', 'center');\r
+\r
+ widget.element.removeStyle('float');\r
+ } else {\r
+ if (!widget.inline)\r
+ widget.element.removeStyle('text-align');\r
+\r
+ if (align == 'none')\r
+ widget.element.removeStyle('float');\r
+ else\r
+ widget.element.setStyle('float', align);\r
+ }\r
+\r
+ if (typeof e.code === 'string') {\r
+ if (widget.element.$.firstChild) {\r
+ widget.element.$.removeChild(widget.element.$.firstChild);\r
+ }\r
+\r
+ widget.element.appendHtml(e.code);\r
+ widget.element.data('oembed', url);\r
+ widget.element.data('oembed_provider', provider.name);\r
+ widget.element.addClass('oembed-provider-' + provider.name);\r
+\r
+ elementAdded = true;\r
+ } else if (typeof e.code[0].outerHTML === 'string') {\r
+\r
+ if (widget.element.$.firstChild) {\r
+ widget.element.$.removeChild(widget.element.$.firstChild);\r
+ }\r
+\r
+ widget.element.appendHtml(e.code[0].outerHTML);\r
+ widget.element.data('oembed', url);\r
+ widget.element.data('oembed_provider', provider.name);\r
+ widget.element.addClass('oembed-provider-' + provider.name);\r
+\r
+ elementAdded = true;\r
+ } else {\r
+ alert(editor.lang.oembed.noEmbedCode);\r
+ }\r
+ },\r
+ onError: function(externalUrl) {\r
+ if (externalUrl.indexOf("vimeo.com") > 0) {\r
+ alert(editor.lang.oembed.noVimeo);\r
+ } else {\r
+ alert(editor.lang.oembed.Error);\r
+ }\r
+\r
+ },\r
+ maxHeight: maxHeight,\r
+ maxWidth: maxWidth,\r
+ useResponsiveResize: responsiveResize,\r
+ embedMethod: 'editor'\r
+ });\r
+ }\r
+\r
+ CKEDITOR.dialog.add('oembed', function(editor) {\r
+ return {\r
+ title: editor.lang.oembed.title,\r
+ minWidth: CKEDITOR.env.ie && CKEDITOR.env.quirks ? 568 : 550,\r
+ minHeight: 155,\r
+ onShow: function() {\r
+ var data = {\r
+ oembed: this.widget.element.data('oembed') || '',\r
+ resizeType: this.widget.element.data('resizeType') || 'noresize',\r
+ maxWidth: this.widget.element.data('maxWidth'),\r
+ maxHeight: this.widget.element.data('maxHeight'),\r
+ align: this.widget.element.data('align') || 'none'\r
+ };\r
+\r
+ this.widget.setData(data);\r
+\r
+ this.getContentElement('general', 'resizeType').setValue(data.resizeType);\r
+\r
+ this.getContentElement('general', 'align').setValue(data.align);\r
+\r
+ var resizetype = this.getContentElement('general', 'resizeType').getValue(),\r
+ maxSizeBox = this.getContentElement('general', 'maxSizeBox').getElement(),\r
+ sizeBox = this.getContentElement('general', 'sizeBox').getElement();\r
+\r
+ if (resizetype == 'noresize') {\r
+ maxSizeBox.hide();\r
+ sizeBox.hide();\r
+ } else if (resizetype == "custom") {\r
+ maxSizeBox.hide();\r
+\r
+ sizeBox.show();\r
+ } else {\r
+ maxSizeBox.show();\r
+\r
+ sizeBox.hide();\r
+ }\r
+ },\r
+\r
+ onOk: function() {\r
+ },\r
+ contents: [\r
+ {\r
+ label: editor.lang.common.generalTab,\r
+ id: 'general',\r
+ elements: [\r
+ {\r
+ type: 'html',\r
+ id: 'oembedHeader',\r
+ html: '<div style="white-space:normal;width:500px;padding-bottom:10px">' + editor.lang.oembed.pasteUrl + '</div>'\r
+ }, {\r
+ type: 'text',\r
+ id: 'embedCode',\r
+ focus: function() {\r
+ this.getElement().focus();\r
+ },\r
+ label: editor.lang.oembed.url,\r
+ title: editor.lang.oembed.pasteUrl,\r
+ setup: function(widget) {\r
+ if (widget.data.oembed) {\r
+ this.setValue(widget.data.oembed);\r
+ }\r
+ },\r
+ commit: function(widget) {\r
+ var dialog = CKEDITOR.dialog.getCurrent(),\r
+ inputCode = dialog.getValueOf('general', 'embedCode').replace(/\s/g, ""),\r
+ resizeType = dialog.getContentElement('general', 'resizeType').\r
+ getValue(),\r
+ align = dialog.getContentElement('general', 'align').\r
+ getValue(),\r
+ maxWidth = null,\r
+ maxHeight = null,\r
+ responsiveResize = false,\r
+ editorInstance = dialog.getParentEditor();\r
+\r
+ if (inputCode.length < 1 || inputCode.indexOf('http') < 0) {\r
+ alert(editor.lang.oembed.invalidUrl);\r
+ return false;\r
+ }\r
+\r
+ if (resizeType == "noresize") {\r
+ responsiveResize = false;\r
+ maxWidth = null;\r
+ maxHeight = null;\r
+ } else if (resizeType == "responsive") {\r
+ maxWidth = dialog.getContentElement('general', 'maxWidth').\r
+ getInputElement().\r
+ getValue();\r
+ maxHeight = dialog.getContentElement('general', 'maxHeight').\r
+ getInputElement().\r
+ getValue();\r
+\r
+ responsiveResize = true;\r
+ } else if (resizeType == "custom") {\r
+ maxWidth = dialog.getContentElement('general', 'width').\r
+ getInputElement().\r
+ getValue();\r
+ maxHeight = dialog.getContentElement('general', 'height').\r
+ getInputElement().\r
+ getValue();\r
+\r
+ responsiveResize = false;\r
+ }\r
+\r
+ embedCode(inputCode, editorInstance, maxWidth, maxHeight, responsiveResize, resizeType, align, widget);\r
+\r
+ widget.setData('oembed', inputCode);\r
+ widget.setData('resizeType', resizeType);\r
+ widget.setData('align', align);\r
+ widget.setData('maxWidth', maxWidth);\r
+ widget.setData('maxHeight', maxHeight);\r
+ }\r
+ }, {\r
+ type: 'hbox',\r
+ widths: ['50%', '50%'],\r
+ children: [\r
+ {\r
+ id: 'resizeType',\r
+ type: 'select',\r
+ label: editor.lang.oembed.resizeType,\r
+ 'default': 'noresize',\r
+ setup: function(widget) {\r
+ if (widget.data.resizeType) {\r
+ this.setValue(widget.data.resizeType);\r
+ }\r
+ },\r
+ items: [\r
+ [editor.lang.oembed.noresize, 'noresize'],\r
+ [editor.lang.oembed.responsive, 'responsive'],\r
+ [editor.lang.oembed.custom, 'custom']\r
+ ],\r
+ onChange: resizeTypeChanged\r
+ }, {\r
+ type: 'hbox',\r
+ id: 'maxSizeBox',\r
+ widths: ['120px', '120px'],\r
+ style: 'float:left;position:absolute;left:58%;width:200px',\r
+ children: [\r
+ {\r
+ type: 'text',\r
+ width: '100px',\r
+ id: 'maxWidth',\r
+ 'default': editor.config.oembed_maxWidth != null ? editor.config.oembed_maxWidth : '560',\r
+ label: editor.lang.oembed.maxWidth,\r
+ title: editor.lang.oembed.maxWidthTitle,\r
+ setup: function(widget) {\r
+ if (widget.data.maxWidth) {\r
+ this.setValue(widget.data.maxWidth);\r
+ }\r
+ }\r
+ }, {\r
+ type: 'text',\r
+ id: 'maxHeight',\r
+ width: '120px',\r
+ 'default': editor.config.oembed_maxHeight != null ? editor.config.oembed_maxHeight : '315',\r
+ label: editor.lang.oembed.maxHeight,\r
+ title: editor.lang.oembed.maxHeightTitle,\r
+ setup: function(widget) {\r
+ if (widget.data.maxHeight) {\r
+ this.setValue(widget.data.maxHeight);\r
+ }\r
+ }\r
+ }\r
+ ]\r
+ }, {\r
+ type: 'hbox',\r
+ id: 'sizeBox',\r
+ widths: ['120px', '120px'],\r
+ style: 'float:left;position:absolute;left:58%;width:200px',\r
+ children: [\r
+ {\r
+ type: 'text',\r
+ id: 'width',\r
+ width: '100px',\r
+ 'default': editor.config.oembed_maxWidth != null ? editor.config.oembed_maxWidth : '560',\r
+ label: editor.lang.oembed.width,\r
+ title: editor.lang.oembed.widthTitle,\r
+ setup: function(widget) {\r
+ if (widget.data.maxWidth) {\r
+ this.setValue(widget.data.maxWidth);\r
+ }\r
+ }\r
+ }, {\r
+ type: 'text',\r
+ id: 'height',\r
+ width: '120px',\r
+ 'default': editor.config.oembed_maxHeight != null ? editor.config.oembed_maxHeight : '315',\r
+ label: editor.lang.oembed.height,\r
+ title: editor.lang.oembed.heightTitle,\r
+ setup: function(widget) {\r
+ if (widget.data.maxHeight) {\r
+ this.setValue(widget.data.maxHeight);\r
+ }\r
+ }\r
+ }\r
+ ]\r
+ }\r
+ ]\r
+ }, {\r
+ type: 'hbox',\r
+ id: 'alignment',\r
+ children: [\r
+ {\r
+ id: 'align',\r
+ type: 'radio',\r
+ items: [\r
+ [editor.lang.oembed.none, 'none'],\r
+ [editor.lang.common.alignLeft, 'left'],\r
+ [editor.lang.common.alignCenter, 'center'],\r
+ [editor.lang.common.alignRight, 'right']\r
+ ],\r
+ label: editor.lang.common.align,\r
+ setup: function(widget) {\r
+ this.setValue(widget.data.align);\r
+ }\r
+ }\r
+ ]\r
+ }\r
+ ]\r
+ }\r
+ ]\r
+ };\r
+ });\r
+ }\r
+ });\r
+ }\r
+)();\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
parentDiv = iframe.getParent(),\r
doc = iframe.getFrameDocument();\r
\r
- // Make it scrollable on iOS. (#8308)\r
+ // Make it scrollable on iOS. (http://dev.ckeditor.com/ticket/8308)\r
CKEDITOR.env.iOS && parentDiv.setStyles( {\r
'overflow': 'scroll',\r
'-webkit-overflow-scrolling': 'touch'\r
// Register the CKEDITOR global.\r
win.$.CKEDITOR = CKEDITOR;\r
\r
- // Arrow keys for scrolling is only preventable with 'keypress' event in Opera (#4534).\r
+ // Arrow keys for scrolling is only preventable with 'keypress' event in Opera (http://dev.ckeditor.com/ticket/4534).\r
doc.on( 'keydown', function( evt ) {\r
var keystroke = evt.data.getKeystroke(),\r
dir = this.document.getById( this.id ).getAttribute( 'dir' );\r
current = this._.currentBlock;\r
\r
// ARIA role works better in IE on the body element, while on the iframe\r
- // for FF. (#8864)\r
+ // for FF. (http://dev.ckeditor.com/ticket/8864)\r
var holder = !this.forceIFrame || CKEDITOR.env.ie ? this._.holder : this.document.getById( this.id + '_frame' );\r
\r
if ( current )\r
var links = this.element.getElementsByTag( 'a' );\r
var item = links.getItem( this._.focusIndex = index );\r
\r
- // Safari need focus on the iframe window first(#3389), but we need\r
+ // Safari need focus on the iframe window first(http://dev.ckeditor.com/ticket/3389), but we need\r
// lock the blur to avoid hiding the panel.\r
if ( CKEDITOR.env.webkit )\r
item.getDocument().getWindow().focus();\r
item.focus();\r
\r
this.onMark && this.onMark( item );\r
+ },\r
+\r
+ /**\r
+ * Marks the first visible item or the one whose `aria-selected` attribute is set to `true`.\r
+ * The latter has priority over the former.\r
+ *\r
+ * @private\r
+ * @param beforeMark function to be executed just before marking.\r
+ * Used in cases when any preparatory cleanup (like unmarking all items) would simultaneously\r
+ * destroy the information that is needed to determine the focused item.\r
+ */\r
+ markFirstDisplayed: function( beforeMark ) {\r
+ var notDisplayed = function( element ) {\r
+ return element.type == CKEDITOR.NODE_ELEMENT && element.getStyle( 'display' ) == 'none';\r
+ },\r
+ links = this._.getItems(),\r
+ item, focused;\r
+\r
+ for ( var i = links.count() - 1; i >= 0; i-- ) {\r
+ item = links.getItem( i );\r
+\r
+ if ( !item.getAscendant( notDisplayed ) ) {\r
+ focused = item;\r
+ this._.focusIndex = i;\r
+ }\r
+\r
+ if ( item.getAttribute( 'aria-selected' ) == 'true' ) {\r
+ focused = item;\r
+ this._.focusIndex = i;\r
+ break;\r
+ }\r
+ }\r
+\r
+ if ( !focused ) {\r
+ return;\r
+ }\r
+\r
+ if ( beforeMark ) {\r
+ beforeMark();\r
+ }\r
+\r
+ if ( CKEDITOR.env.webkit )\r
+ focused.getDocument().getWindow().focus();\r
+ focused.focus();\r
+\r
+ this.onMark && this.onMark( focused );\r
+ },\r
+\r
+ /**\r
+ * Returns a `CKEDITOR.dom.nodeList` of block items.\r
+ *\r
+ * @returns {*|CKEDITOR.dom.nodeList}\r
+ */\r
+ getItems: function() {\r
+ return this.element.getElementsByTag( 'a' );\r
}\r
},\r
\r
}\r
}\r
\r
- // If no link was found, cycle and restart from the top. (#11125)\r
+ // If no link was found, cycle and restart from the top. (http://dev.ckeditor.com/ticket/11125)\r
if ( !link && !noCycle ) {\r
this._.focusIndex = -1;\r
return this.onKeyDown( keystroke, 1 );\r
}\r
\r
// Make sure link is null when the loop ends and nothing was\r
- // found (#11125).\r
+ // found (http://dev.ckeditor.com/ticket/11125).\r
link = null;\r
}\r
\r
- // If no link was found, cycle and restart from the bottom. (#11125)\r
+ // If no link was found, cycle and restart from the bottom. (http://dev.ckeditor.com/ticket/11125)\r
if ( !link && !noCycle ) {\r
this._.focusIndex = links.count();\r
return this.onKeyDown( keystroke, 1 );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
return false;\r
\r
try {\r
- // Chrome is problematic with moveTo/resizeTo, but it's not really needed here (#8855).\r
+ // Chrome is problematic with moveTo/resizeTo, but it's not really needed here (http://dev.ckeditor.com/ticket/8855).\r
var ua = navigator.userAgent.toLowerCase();\r
if ( ua.indexOf( ' chrome/' ) == -1 ) {\r
popupWindow.moveTo( left, top );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'removeformat', 'az', {\r
+ toolbar: 'Formatı sil'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'bn', {\r
- toolbar: 'ফরমà§\87à¦\9f সরাà¦\93'\r
+ toolbar: 'ধরন-পà§\8dরà¦\95à§\83তি à¦\85পসারণ à¦\95রি'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'removeformat', 'es-mx', {\r
+ toolbar: 'Remover formato'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'fr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'removeformat', 'oc', {\r
+ toolbar: 'Suprimir la mesa en forma'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'pt', {\r
- toolbar: 'Eliminar Formato'\r
+ toolbar: 'Limpar formatação'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'sl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'removeformat', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
CKEDITOR.plugins.add( 'removeformat', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'removeformat', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
}\r
\r
// The selection path may not changed, but we should force a selection\r
- // change event to refresh command states, due to the above attribution change. (#9238)\r
+ // change event to refresh command states, due to the above attribution change. (http://dev.ckeditor.com/ticket/9238)\r
editor.forceNextSelectionCheck();\r
editor.getSelection().selectRanges( ranges );\r
}\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
if ( resizeVertical )\r
height = Math.max( config.resize_minHeight, Math.min( internalHeight, config.resize_maxHeight ) );\r
\r
- // DO NOT impose fixed size with single direction resize. (#6308)\r
+ // DO NOT impose fixed size with single direction resize. (http://dev.ckeditor.com/ticket/6308)\r
editor.resize( resizeHorizontal ? width : null, height );\r
}\r
\r
var spaceId = editor.ui.spaceId( 'resizer' );\r
\r
// Resize in the same direction of chrome,\r
- // which is identical to dir of editor element. (#6614)\r
+ // which is identical to dir of editor element. (http://dev.ckeditor.com/ticket/6614)\r
var resizeDir = editor.element ? editor.element.getDirection( 1 ) : 'ltr';\r
\r
!config.resize_dir && ( config.resize_dir = 'vertical' );\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
template +=\r
' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event,this);"' +\r
' onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" ' +\r
- ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // #188\r
+ ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // http://dev.ckeditor.com/ticket/188\r
'="CKEDITOR.tools.callFunction({clickFn},this);return false;">' +\r
'<span id="{id}_text" class="cke_combo_text cke_combo_inlinelabel">{label}</span>' +\r
'<span class="cke_combo_open">' +\r
};\r
\r
function updateState() {\r
- // Don't change state while richcombo is active (#11793).\r
+ // Don't change state while richcombo is active (http://dev.ckeditor.com/ticket/11793).\r
if ( this.getState() == CKEDITOR.TRISTATE_ON )\r
return;\r
\r
\r
var keystroke = ev.getKeystroke();\r
\r
- // ARROW-DOWN\r
- // This call is duplicated in plugins/toolbar/plugin.js in itemKeystroke().\r
- // Move focus to the first element after drop down was opened by the arrow down key.\r
- if ( keystroke == 40 ) {\r
- editor.once( 'panelShow', function( evt ) {\r
- evt.data._.panel._.currentBlock.onKeyDown( 40 );\r
- } );\r
- }\r
-\r
switch ( keystroke ) {\r
case 13: // ENTER\r
case 32: // SPACE\r
\r
if ( me.onOpen )\r
me.onOpen();\r
-\r
- // The "panelShow" event is fired assinchronously, after the\r
- // onShow method call.\r
- editor.once( 'panelShow', function() {\r
- list.focus( !list.multiSelect && me.getValue() );\r
- } );\r
};\r
\r
panel.onHide = function( preventOnClose ) {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'sourcearea', 'az', {\r
+ toolbar: 'HTML mənbəyini göstər'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'bn', {\r
- toolbar: 'সà§\8bরà§\8dস'\r
+ toolbar: 'à¦\89à§\8eস'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'sourcearea', 'es-mx', {\r
+ toolbar: 'Fuente'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'fr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'sourcearea', 'oc', {\r
+ toolbar: 'Font'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'pt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'sl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'sv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'sourcearea', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
( function() {\r
CKEDITOR.plugins.add( 'sourcearea', {\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
icons: 'source,source-rtl', // %REMOVE_LINE_CORE%\r
hidpi: true, // %REMOVE_LINE_CORE%\r
CKEDITOR.tools.cssVendorPrefix( 'tab-size', editor.config.sourceAreaTabSize || 4 ) ) );\r
\r
// Make sure that source code is always displayed LTR,\r
- // regardless of editor language (#10105).\r
+ // regardless of editor language (http://dev.ckeditor.com/ticket/10105).\r
textarea.setAttribute( 'dir', 'ltr' );\r
\r
textarea.addClass( 'cke_source' ).addClass( 'cke_reset' ).addClass( 'cke_enable_context_menu' );\r
// Having to make <textarea> fixed sized to conquer the following bugs:\r
// 1. The textarea height/width='100%' doesn't constraint to the 'td' in IE6/7.\r
// 2. Unexpected vertical-scrolling behavior happens whenever focus is moving out of editor\r
- // if text content within it has overflowed. (#4762)\r
+ // if text content within it has overflowed. (http://dev.ckeditor.com/ticket/4762)\r
if ( CKEDITOR.env.ie ) {\r
editable.attachListener( editor, 'resize', onResize, editable );\r
editable.attachListener( CKEDITOR.document.getWindow(), 'resize', onResize, editable );\r
\r
function onResize() {\r
// We have to do something with focus on IE9, because if sourcearea had focus\r
- // before being resized, the caret ends somewhere in the editor UI (#11839).\r
+ // before being resized, the caret ends somewhere in the editor UI (http://dev.ckeditor.com/ticket/11839).\r
var wasActive = needsFocusHack && this.equals( CKEDITOR.document.getActive() );\r
\r
// Holder rectange size is stretched by textarea,\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'af', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ar', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'toolbar', 'az', {\r
+ toolbarCollapse: 'Paneli gizlət',\r
+ toolbarExpand: 'Paneli göstər',\r
+ toolbarGroups: {\r
+ document: 'Mətn',\r
+ clipboard: 'Mübadilə buferi/İmtina et',\r
+ editing: 'Redaktə edilməsi',\r
+ forms: 'Formalar',\r
+ basicstyles: 'Əsas üslublar',\r
+ paragraph: 'Abzas',\r
+ links: 'Link',\r
+ insert: 'Əlavə et',\r
+ styles: 'Üslublar',\r
+ colors: 'Rənqlər',\r
+ tools: 'Alətləri'\r
+ },\r
+ toolbars: 'Redaktorun panelləri'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'bg', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'bn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'bs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'cs', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'cy', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'da', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'de-ch', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'de', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'el', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'en-au', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'en-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'en-gb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'en', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'eo', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'toolbar', 'es-mx', {\r
+ toolbarCollapse: 'Colapsar barra de herramientas',\r
+ toolbarExpand: 'Expandir barra de herramientas',\r
+ toolbarGroups: {\r
+ document: 'Documento',\r
+ clipboard: 'Portapapeles/deshacer',\r
+ editing: 'Editando',\r
+ forms: 'Formularios',\r
+ basicstyles: 'Estilo básico',\r
+ paragraph: 'Párrafo',\r
+ links: 'Enlaces',\r
+ insert: 'Insertar',\r
+ styles: 'Estilos',\r
+ colors: 'Colores',\r
+ tools: 'Herramientas'\r
+ },\r
+ toolbars: 'Editor de barra de herramientas'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'es', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'et', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'eu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'fa', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'fi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'fo', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'fr-ca', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'fr', {\r
toolbarGroups: {\r
document: 'Document',\r
clipboard: 'Presse-papier/Défaire',\r
- editing: 'Editer',\r
+ editing: 'Édition',\r
forms: 'Formulaires',\r
basicstyles: 'Styles de base',\r
paragraph: 'Paragraphe',\r
colors: 'Couleurs',\r
tools: 'Outils'\r
},\r
- toolbars: 'Barre d\'outils de l\'éditeur'\r
+ toolbars: 'Barres d\'outils de l\'éditeur'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'gl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'gu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'he', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'hi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'hr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'hu', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'id', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'is', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'it', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ja', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ka', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'km', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ko', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ku', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'lt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'lv', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'mk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'mn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ms', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'nb', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'nl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'no', {\r
--- /dev/null
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'toolbar', 'oc', {\r
+ toolbarCollapse: 'Enrotlar la barra d\'aisinas',\r
+ toolbarExpand: 'Desenrotlar la barra d\'aisinas',\r
+ toolbarGroups: {\r
+ document: 'Document',\r
+ clipboard: 'Quichapapièr/Desfar',\r
+ editing: 'Edicion',\r
+ forms: 'Formularis',\r
+ basicstyles: 'Estils de basa',\r
+ paragraph: 'Paragraf',\r
+ links: 'Ligams',\r
+ insert: 'Inserir',\r
+ styles: 'Estils',\r
+ colors: 'Colors',\r
+ tools: 'Aisinas'\r
+ },\r
+ toolbars: 'Barras d\'aisinas de l\'editor'\r
+} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'pl', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'pt-br', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'pt', {\r
clipboard: 'Área de transferência/Anular',\r
editing: 'Edição',\r
forms: 'Formulários',\r
- basicstyles: 'Estilos Básicos',\r
+ basicstyles: 'Estilos básicos',\r
paragraph: 'Parágrafo',\r
links: 'Hiperligações',\r
insert: 'Inserir',\r
colors: 'Cores',\r
tools: 'Ferramentas'\r
},\r
- toolbars: 'Editor de Barras de Ferramentas'\r
+ toolbars: 'Editor de barras de ferramentas'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ro', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ru', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'si', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'sk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'sl', {\r
- toolbarCollapse: 'Skrči Orodno Vrstico',\r
- toolbarExpand: 'Razširi Orodno Vrstico',\r
+ toolbarCollapse: 'Skrči orodno vrstico',\r
+ toolbarExpand: 'Razširi orodno vrstico',\r
toolbarGroups: {\r
- document: 'Document',\r
- clipboard: 'Clipboard/Undo',\r
- editing: 'Editing',\r
- forms: 'Forms',\r
- basicstyles: 'Basic Styles',\r
- paragraph: 'Paragraph',\r
- links: 'Links',\r
- insert: 'Insert',\r
- styles: 'Styles',\r
- colors: 'Colors',\r
- tools: 'Tools'\r
+ document: 'Dokument',\r
+ clipboard: 'Odložišče/Razveljavi',\r
+ editing: 'Urejanje',\r
+ forms: 'Obrazci',\r
+ basicstyles: 'Osnovni slogi',\r
+ paragraph: 'Odstavek',\r
+ links: 'Povezave',\r
+ insert: 'Vstavi',\r
+ styles: 'Slogi',\r
+ colors: 'Barve',\r
+ tools: 'Orodja'\r
},\r
- toolbars: 'Urejevalnik orodne vrstice'\r
+ toolbars: 'Orodne vrstice urejevalnika'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'sq', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'sr-latn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'sr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'sv', {\r
colors: 'Färger',\r
tools: 'Verktyg'\r
},\r
- toolbars: 'Redigera verktygsfält'\r
+ toolbars: 'Editorns verktygsfält'\r
} );\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'th', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'tr', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'tt', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'ug', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'uk', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'vi', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'zh-cn', {\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
CKEDITOR.plugins.setLang( 'toolbar', 'zh', {\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
if ( editor.toolbox ) {\r
editor.toolbox.focusCommandExecuted = true;\r
\r
- // Make the first button focus accessible for IE. (#3417)\r
+ // Make the first button focus accessible for IE. (http://dev.ckeditor.com/ticket/3417)\r
// Adobe AIR instead need while of delay.\r
if ( CKEDITOR.env.ie || CKEDITOR.env.air ) {\r
setTimeout( function() {\r
CKEDITOR.plugins.add( 'toolbar', {\r
requires: 'button',\r
// jscs:disable maximumLineLength\r
- lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
// jscs:enable maximumLineLength\r
\r
init: function( editor ) {\r
return false;\r
case 40: // DOWN-ARROW\r
if ( item.button && item.button.hasArrow ) {\r
- // Note: code is duplicated in plugins\richcombo\plugin.js in keyDownFn().\r
- editor.once( 'panelShow', function( evt ) {\r
- evt.data._.panel._.currentBlock.onKeyDown( 40 );\r
- } );\r
item.execute();\r
} else {\r
// Send left arrow key.\r
output.push( '<span class="cke_toolbox_main"' + ( expanded ? '>' : ' style="display:none">' ) );\r
\r
var toolbars = editor.toolbox.toolbars,\r
- toolbar = getToolbarConfig( editor );\r
+ toolbar = getToolbarConfig( editor ),\r
+ toolbarLength = toolbar.length;\r
\r
- for ( var r = 0; r < toolbar.length; r++ ) {\r
+ for ( var r = 0; r < toolbarLength; r++ ) {\r
var toolbarId,\r
toolbarObj = 0,\r
toolbarName,\r
row = toolbar[ r ],\r
+ lastToolbarInRow = row !== '/' && ( toolbar[ r + 1 ] === '/' || r == toolbarLength - 1 ),\r
items;\r
\r
// It's better to check if the row object is really\r
// available because it's a common mistake to leave\r
// an extra comma in the toolbar definition\r
// settings, which leads on the editor not loading\r
- // at all in IE. (#3983)\r
+ // at all in IE. (http://dev.ckeditor.com/ticket/3983)\r
if ( !row )\r
continue;\r
\r
toolbarName = row.name && ( editor.lang.toolbar.toolbarGroups[ row.name ] || row.name );\r
\r
// Output the toolbar opener.\r
- output.push( '<span id="', toolbarId, '" class="cke_toolbar"', ( toolbarName ? ' aria-labelledby="' + toolbarId + '_label"' : '' ), ' role="toolbar">' );\r
+ output.push( '<span id="', toolbarId, '" class="cke_toolbar' + ( lastToolbarInRow ? ' cke_toolbar_last"' : '"' ),\r
+ ( toolbarName ? ' aria-labelledby="' + toolbarId + '_label"' : '' ), ' role="toolbar">' );\r
\r
// If a toolbar name is available, send the voice label.\r
toolbarName && output.push( '<span id="', toolbarId, '_label" class="cke_voice_label">', toolbarName, '</span>' );\r
itemObj.toolbar = toolbarObj;\r
itemObj.onkey = itemKeystroke;\r
\r
- // Fix for #3052:\r
+ // Fix for http://dev.ckeditor.com/ticket/3052:\r
// Prevent JAWS from focusing the toolbar after document load.\r
itemObj.onfocus = function() {\r
if ( !editor.toolbox.focusCommandExecuted )\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
--- /dev/null
+.mediumBorder {\r
+ border-width: 2px;\r
+}\r
+.thickBorder {\r
+ border-width: 5px;\r
+}\r
+img.thickBorder, img.mediumBorder {\r
+ border-style: solid;\r
+ border-color: #CCC;\r
+}\r
+.important.soMuch {\r
+ margin: 25px;\r
+ padding: 25px;\r
+ background: red;\r
+ border: none;\r
+}\r
+\r
+span.redMarker {\r
+ background-color: red;\r
+}\r
+.invisible {\r
+ opacity: 0.1;\r
+}\r
--- /dev/null
+.simplebox {\r
+ padding: 8px;\r
+ margin: 10px;\r
+ background: #eee;\r
+ border-radius: 8px;\r
+ border: 1px solid #ddd;\r
+ box-shadow: 0 1px 1px #fff inset, 0 -1px 0px #ccc inset;\r
+}\r
+.simplebox-title, .simplebox-content {\r
+ box-shadow: 0 1px 1px #ddd inset;\r
+ border: 1px solid #cccccc;\r
+ border-radius: 5px;\r
+ background: #fff;\r
+}\r
+.simplebox-title {\r
+ margin: 0 0 8px;\r
+ padding: 5px 8px;\r
+}\r
+.simplebox-content {\r
+ padding: 0 8px;\r
+}\r
+.simplebox-content::after {\r
+ content: '';\r
+ display: block;\r
+ clear: both;\r
+}\r
+.simplebox.align-right {\r
+ float: right;\r
+}\r
+.simplebox.align-left {\r
+ float: left;\r
+}\r
+.simplebox.align-center {\r
+ margin-left: auto;\r
+ margin-right: auto;\r
+}\r
--- /dev/null
+// Note: This automatic widget to dialog window binding (the fact that every field is set up from the widget\r
+// and is committed to the widget) is only possible when the dialog is opened by the Widgets System\r
+// (i.e. the widgetDef.dialog property is set).\r
+// When you are opening the dialog window by yourself, you need to take care of this by yourself too.\r
+\r
+CKEDITOR.dialog.add( 'simplebox', function( editor ) {\r
+ return {\r
+ title: 'Edit Simple Box',\r
+ minWidth: 200,\r
+ minHeight: 100,\r
+ contents: [\r
+ {\r
+ id: 'info',\r
+ elements: [\r
+ {\r
+ id: 'align',\r
+ type: 'select',\r
+ label: 'Align',\r
+ items: [\r
+ [ editor.lang.common.notSet, '' ],\r
+ [ editor.lang.common.alignLeft, 'left' ],\r
+ [ editor.lang.common.alignRight, 'right' ],\r
+ [ editor.lang.common.alignCenter, 'center' ]\r
+ ],\r
+ // When setting up this field, set its value to the "align" value from widget data.\r
+ // Note: Align values used in the widget need to be the same as those defined in the "items" array above.\r
+ setup: function( widget ) {\r
+ this.setValue( widget.data.align );\r
+ },\r
+ // When committing (saving) this field, set its value to the widget data.\r
+ commit: function( widget ) {\r
+ widget.setData( 'align', this.getValue() );\r
+ }\r
+ },\r
+ {\r
+ id: 'width',\r
+ type: 'text',\r
+ label: 'Width',\r
+ width: '50px',\r
+ setup: function( widget ) {\r
+ this.setValue( widget.data.width );\r
+ },\r
+ commit: function( widget ) {\r
+ widget.setData( 'width', this.getValue() );\r
+ }\r
+ }\r
+ ]\r
+ }\r
+ ]\r
+ };\r
+} );\r
--- /dev/null
+'use strict';\r
+\r
+// Register the plugin within the editor.\r
+CKEDITOR.plugins.add( 'simplebox', {\r
+ // This plugin requires the Widgets System defined in the 'widget' plugin.\r
+ requires: 'widget,dialog',\r
+\r
+ // Register the icon used for the toolbar button. It must be the same\r
+ // as the name of the widget.\r
+ icons: 'simplebox',\r
+\r
+ // The plugin initialization logic goes inside this method.\r
+ init: function( editor ) {\r
+ // Register the editing dialog.\r
+ CKEDITOR.dialog.add( 'simplebox', this.path + 'dialogs/simplebox.js' );\r
+\r
+ // Register the simplebox widget.\r
+ editor.widgets.add( 'simplebox', {\r
+ // Allow all HTML elements, classes, and styles that this widget requires.\r
+ // Read more about the Advanced Content Filter here:\r
+ // * http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter\r
+ // * http://docs.ckeditor.com/#!/guide/plugin_sdk_integration_with_acf\r
+ allowedContent:\r
+ 'div(!simplebox,align-left,align-right,align-center){width};' +\r
+ 'div(!simplebox-content); h2(!simplebox-title)',\r
+\r
+ // Minimum HTML which is required by this widget to work.\r
+ requiredContent: 'div(simplebox)',\r
+\r
+ // Define two nested editable areas.\r
+ editables: {\r
+ title: {\r
+ // Define CSS selector used for finding the element inside widget element.\r
+ selector: '.simplebox-title',\r
+ // Define content allowed in this nested editable. Its content will be\r
+ // filtered accordingly and the toolbar will be adjusted when this editable\r
+ // is focused.\r
+ allowedContent: 'br strong em'\r
+ },\r
+ content: {\r
+ selector: '.simplebox-content'\r
+ }\r
+ },\r
+\r
+ // Define the template of a new Simple Box widget.\r
+ // The template will be used when creating new instances of the Simple Box widget.\r
+ template:\r
+ '<div class="simplebox">' +\r
+ '<h2 class="simplebox-title">Title</h2>' +\r
+ '<div class="simplebox-content"><p>Content...</p></div>' +\r
+ '</div>',\r
+\r
+ // Define the label for a widget toolbar button which will be automatically\r
+ // created by the Widgets System. This button will insert a new widget instance\r
+ // created from the template defined above, or will edit selected widget\r
+ // (see second part of this tutorial to learn about editing widgets).\r
+ //\r
+ // Note: In order to be able to translate your widget you should use the\r
+ // editor.lang.simplebox.* property. A string was used directly here to simplify this tutorial.\r
+ button: 'Create a simple box',\r
+\r
+ // Set the widget dialog window name. This enables the automatic widget-dialog binding.\r
+ // This dialog window will be opened when creating a new widget or editing an existing one.\r
+ dialog: 'simplebox',\r
+\r
+ // Check the elements that need to be converted to widgets.\r
+ //\r
+ // Note: The "element" argument is an instance of http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.element\r
+ // so it is not a real DOM element yet. This is caused by the fact that upcasting is performed\r
+ // during data processing which is done on DOM represented by JavaScript objects.\r
+ upcast: function( element ) {\r
+ // Return "true" (that element needs to converted to a Simple Box widget)\r
+ // for all <div> elements with a "simplebox" class.\r
+ return element.name == 'div' && element.hasClass( 'simplebox' );\r
+ },\r
+\r
+ // When a widget is being initialized, we need to read the data ("align" and "width")\r
+ // from DOM and set it by using the widget.setData() method.\r
+ // More code which needs to be executed when DOM is available may go here.\r
+ init: function() {\r
+ var width = this.element.getStyle( 'width' );\r
+ if ( width )\r
+ this.setData( 'width', width );\r
+\r
+ if ( this.element.hasClass( 'align-left' ) )\r
+ this.setData( 'align', 'left' );\r
+ if ( this.element.hasClass( 'align-right' ) )\r
+ this.setData( 'align', 'right' );\r
+ if ( this.element.hasClass( 'align-center' ) )\r
+ this.setData( 'align', 'center' );\r
+ },\r
+\r
+ // Listen on the widget#data event which is fired every time the widget data changes\r
+ // and updates the widget's view.\r
+ // Data may be changed by using the widget.setData() method, which we use in the\r
+ // Simple Box dialog window.\r
+ data: function() {\r
+ // Check whether "width" widget data is set and remove or set "width" CSS style.\r
+ // The style is set on widget main element (div.simplebox).\r
+ if ( !this.data.width )\r
+ this.element.removeStyle( 'width' );\r
+ else\r
+ this.element.setStyle( 'width', this.data.width );\r
+\r
+ // Brutally remove all align classes and set a new one if "align" widget data is set.\r
+ this.element.removeClass( 'align-left' );\r
+ this.element.removeClass( 'align-right' );\r
+ this.element.removeClass( 'align-center' );\r
+ if ( this.data.align )\r
+ this.element.addClass( 'align-' + this.data.align );\r
+ }\r
+ } );\r
+ }\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/* global CKCONSOLE */\r
+\r
+'use strict';\r
+\r
+( function() {\r
+\r
+ CKCONSOLE.add( 'widget', {\r
+ panels: [\r
+ {\r
+ type: 'box',\r
+ content: '<ul class="ckconsole_list ckconsole_value" data-value="instances"></ul>',\r
+\r
+ refresh: function( editor ) {\r
+ var instances = obj2Array( editor.widgets.instances );\r
+\r
+ return {\r
+ header: 'Instances (' + instances.length + ')',\r
+ instances: generateInstancesList( instances )\r
+ };\r
+ },\r
+\r
+ refreshOn: function( editor, refresh ) {\r
+ editor.widgets.on( 'instanceCreated', function( evt ) {\r
+ refresh();\r
+\r
+ evt.data.on( 'data', refresh );\r
+ } );\r
+\r
+ editor.widgets.on( 'instanceDestroyed', refresh );\r
+ }\r
+ },\r
+\r
+ {\r
+ type: 'box',\r
+ content:\r
+ '<ul class="ckconsole_list">' +\r
+ '<li>focused: <span class="ckconsole_value" data-value="focused"></span></li>' +\r
+ '<li>selected: <span class="ckconsole_value" data-value="selected"></span></li>' +\r
+ '</ul>',\r
+\r
+ refresh: function( editor ) {\r
+ var focused = editor.widgets.focused,\r
+ selected = editor.widgets.selected,\r
+ selectedIds = [];\r
+\r
+ for ( var i = 0; i < selected.length; ++i )\r
+ selectedIds.push( selected[ i ].id );\r
+\r
+ return {\r
+ header: 'Focus & selection',\r
+ focused: focused ? 'id: ' + focused.id : '-',\r
+ selected: selectedIds.length ? 'id: ' + selectedIds.join( ', id: ' ) : '-'\r
+ };\r
+ },\r
+\r
+ refreshOn: function( editor, refresh ) {\r
+ editor.on( 'selectionCheck', refresh, null, null, 999 );\r
+ }\r
+ },\r
+\r
+ {\r
+ type: 'log',\r
+\r
+ on: function( editor, log, logFn ) {\r
+ // Add all listeners with high priorities to log\r
+ // messages in the correct order when one event depends on another.\r
+ // E.g. selectionChange triggers widget selection - if this listener\r
+ // for selectionChange will be executed later than that one, then order\r
+ // will be incorrect.\r
+\r
+ editor.on( 'selectionChange', function( evt ) {\r
+ var msg = 'selection change',\r
+ sel = evt.data.selection,\r
+ el = sel.getSelectedElement(),\r
+ widget;\r
+\r
+ if ( el && ( widget = editor.widgets.getByElement( el, true ) ) )\r
+ msg += ' (id: ' + widget.id + ')';\r
+\r
+ log( msg );\r
+ }, null, null, 1 );\r
+\r
+ editor.widgets.on( 'instanceDestroyed', function( evt ) {\r
+ log( 'instance destroyed (id: ' + evt.data.id + ')' );\r
+ }, null, null, 1 );\r
+\r
+ editor.widgets.on( 'instanceCreated', function( evt ) {\r
+ log( 'instance created (id: ' + evt.data.id + ')' );\r
+ }, null, null, 1 );\r
+\r
+ editor.widgets.on( 'widgetFocused', function( evt ) {\r
+ log( 'widget focused (id: ' + evt.data.widget.id + ')' );\r
+ }, null, null, 1 );\r
+\r
+ editor.widgets.on( 'widgetBlurred', function( evt ) {\r
+ log( 'widget blurred (id: ' + evt.data.widget.id + ')' );\r
+ }, null, null, 1 );\r
+\r
+ editor.widgets.on( 'checkWidgets', logFn( 'checking widgets' ), null, null, 1 );\r
+ editor.widgets.on( 'checkSelection', logFn( 'checking selection' ), null, null, 1 );\r
+ }\r
+ }\r
+ ]\r
+ } );\r
+\r
+ function generateInstancesList( instances ) {\r
+ var html = '',\r
+ instance;\r
+\r
+ for ( var i = 0; i < instances.length; ++i ) {\r
+ instance = instances[ i ];\r
+ html += itemTpl.output( { id: instance.id, name: instance.name, data: JSON.stringify( instance.data ) } );\r
+ }\r
+ return html;\r
+ }\r
+\r
+ function obj2Array( obj ) {\r
+ var arr = [];\r
+ for ( var id in obj )\r
+ arr.push( obj[ id ] );\r
+\r
+ return arr;\r
+ }\r
+\r
+ var itemTpl = new CKEDITOR.template( '<li>id: <code>{id}</code>, name: <code>{name}</code>, data: <code>{data}</code></li>' );\r
+} )();\r
--- /dev/null
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+ <meta charset="utf-8">\r
+ <title>Nested widgets — CKEditor Sample</title>\r
+ <script src="../../../ckeditor.js"></script>\r
+ <script src="../../../dev/console/console.js"></script>\r
+ <script src="../../../dev/console/focusconsole.js"></script>\r
+ <script src="console.js"></script>\r
+ <link rel="stylesheet" href="../../../samples/old/sample.css">\r
+ <link rel="stylesheet" href="../../../contents.css">\r
+ <link rel="stylesheet" href="assets/simplebox/contents.css">\r
+</head>\r
+<body>\r
+ <h1 class="samples">Nested widgets</h1>\r
+\r
+ <h2>Classic (iframe-based) Sample</h2>\r
+ <textarea cols="80" id="editor1" name="editor1" rows="10">\r
+ <h1>Simple Box Sample</h1>\r
+\r
+ <div class="simplebox align-right" style="width: 60%">\r
+ <h2 class="simplebox-title">Title</h2>\r
+ <div class="simplebox-content">\r
+ <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+ <figure class="image" style="float: right">\r
+ <img alt="The Eagle" src="assets/sample.jpg" width="150" />\r
+ <figcaption>The Eagle in lunar orbit</figcaption>\r
+ </figure>\r
+\r
+ <ul>\r
+ <li>Foo!</li>\r
+ <li>Bar!</li>\r
+ </ul>\r
+\r
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+ </div>\r
+ </div>\r
+\r
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+\r
+ <p>Pellentesque vitae eleifend nisl, non accumsan tellus. Maecenas nec libero non tellus tincidunt mollis porttitor sed arcu. Donec ultricies nulla vitae eros lacinia, vel congue sem auctor. Vivamus convallis, urna ac tincidunt malesuada, lectus erat convallis metus, a hendrerit massa augue accumsan magna. Nulla mattis tellus elit, nec congue magna scelerisque eget. Aliquam posuere nisi augue, posuere sodales nisi iaculis eu. Donec fermentum urna id nibh sagittis fermentum sit amet sed enim. Aliquam neque elit, pretium elementum nunc a, faucibus accumsan lorem. Etiam pulvinar odio et hendrerit tincidunt. Suspendisse tempus eros lacus, in convallis velit mollis ut. Aenean congue, justo eleifend ultricies malesuada, nunc nunc molestie mauris, eget placerat libero eros vel nisi. Quisque diam arcu, mollis ac laoreet vitae, varius et sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis in vehicula sapien. Nunc feugiat porta elit nec volutpat.</p>\r
+\r
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+\r
+ <div class="simplebox align-center" style="width: 750px">\r
+ <h2 class="simplebox-title">Title</h2>\r
+ <div class="simplebox-content">\r
+ <p><img alt="The Eagle" src="assets/sample.jpg" width="150" style="float: left" /><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+ <ul>\r
+ <li>Foo!</li>\r
+ <li>Bar!</li>\r
+ </ul>\r
+ </div>\r
+ </div>\r
+\r
+ <p>Ut eget ipsum a sapien porta ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus mi lacus, pharetra eu bibendum blandit, tristique sit amet leo. Integer eu nulla nec magna vulputate blandit. Praesent mattis quis ante eget adipiscing. Nulla vel tempus risus, in placerat velit. Mauris sed nibh at elit posuere laoreet. Morbi non sapien sed nunc fringilla imperdiet.</p>\r
+ </textarea>\r
+\r
+ <h2>Inline Sample</h2>\r
+ <div id="editor2" contenteditable="true">\r
+ <h1>Simple Box Sample</h1>\r
+\r
+ <div class="simplebox align-right" style="width: 60%">\r
+ <h2 class="simplebox-title">Title</h2>\r
+ <div class="simplebox-content">\r
+ <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+ <figure class="image" style="float: right">\r
+ <img alt="The Eagle" src="assets/sample.jpg" width="150" />\r
+ <figcaption>The Eagle in lunar orbit</figcaption>\r
+ </figure>\r
+\r
+ <ul>\r
+ <li>Foo!</li>\r
+ <li>Bar!</li>\r
+ </ul>\r
+\r
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+ </div>\r
+ </div>\r
+\r
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+\r
+ <p>Pellentesque vitae eleifend nisl, non accumsan tellus. Maecenas nec libero non tellus tincidunt mollis porttitor sed arcu. Donec ultricies nulla vitae eros lacinia, vel congue sem auctor. Vivamus convallis, urna ac tincidunt malesuada, lectus erat convallis metus, a hendrerit massa augue accumsan magna. Nulla mattis tellus elit, nec congue magna scelerisque eget. Aliquam posuere nisi augue, posuere sodales nisi iaculis eu. Donec fermentum urna id nibh sagittis fermentum sit amet sed enim. Aliquam neque elit, pretium elementum nunc a, faucibus accumsan lorem. Etiam pulvinar odio et hendrerit tincidunt. Suspendisse tempus eros lacus, in convallis velit mollis ut. Aenean congue, justo eleifend ultricies malesuada, nunc nunc molestie mauris, eget placerat libero eros vel nisi. Quisque diam arcu, mollis ac laoreet vitae, varius et sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis in vehicula sapien. Nunc feugiat porta elit nec volutpat.</p>\r
+\r
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+\r
+ <div class="simplebox align-center" style="width: 750px">\r
+ <h2 class="simplebox-title">Title</h2>\r
+ <div class="simplebox-content">\r
+ <p><img alt="The Eagle" src="assets/sample.jpg" width="150" style="float: left" /><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+ <ul>\r
+ <li>Foo!</li>\r
+ <li>Bar!</li>\r
+ </ul>\r
+ </div>\r
+ </div>\r
+\r
+ <p>Ut eget ipsum a sapien porta ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus mi lacus, pharetra eu bibendum blandit, tristique sit amet leo. Integer eu nulla nec magna vulputate blandit. Praesent mattis quis ante eget adipiscing. Nulla vel tempus risus, in placerat velit. Mauris sed nibh at elit posuere laoreet. Morbi non sapien sed nunc fringilla imperdiet.</p>\r
+ </div>\r
+\r
+ <script>\r
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )\r
+ CKEDITOR.tools.enableHtml5Elements( document );\r
+\r
+ CKEDITOR.plugins.addExternal( 'simplebox', 'plugins/widget/dev/assets/simplebox/' );\r
+\r
+ CKEDITOR.replace( 'editor1', {\r
+ extraPlugins: 'simplebox,placeholder,image2',\r
+ removePlugins: 'forms,bidi',\r
+ contentsCss: [ '../../../contents.css', 'assets/simplebox/contents.css' ],\r
+ height: 500\r
+ } );\r
+\r
+ CKEDITOR.inline( 'editor2', {\r
+ extraPlugins: 'simplebox,placeholder,image2',\r
+ removePlugins: 'forms,bidi'\r
+ } );\r
+\r
+ CKCONSOLE.create( 'widget', { editor: 'editor1' } );\r
+ CKCONSOLE.create( 'focus', { editor: 'editor1' } );\r
+ CKCONSOLE.create( 'widget', { editor: 'editor2', folded: true } );\r
+ CKCONSOLE.create( 'focus', { editor: 'editor2', folded: true } );\r
+\r
+ </script>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+ <meta charset="utf-8">\r
+ <title>Applying styles to widgets — CKEditor Sample</title>\r
+ <script src="../../../ckeditor.js"></script>\r
+ <link rel="stylesheet" href="../../../samples/old/sample.css">\r
+ <link rel="stylesheet" href="../../../contents.css">\r
+ <link rel="stylesheet" href="assets/contents.css">\r
+</head>\r
+<body>\r
+ <h1 class="samples">Applying styles to widgets</h1>\r
+\r
+ <h2>Classic (iframe-based) Sample</h2>\r
+ <textarea cols="80" id="editor1" name="editor1" rows="10">\r
+ <h1>Apollo 11</h1>\r
+\r
+ <figure class="image" style="float: right">\r
+ <img alt="Saturn V" src="../../../samples/assets/sample.jpg" width="150" />\r
+ <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+ </figure>\r
+\r
+ <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+ <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>\r
+\r
+ <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>\r
+\r
+ <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>\r
+\r
+ <blockquote>\r
+ <p>One small step for [a] man, one giant leap for mankind.</p>\r
+ </blockquote>\r
+\r
+ <p><span class="math-tex">\( \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \)</span></p>\r
+\r
+ <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>\r
+\r
+ <blockquote>\r
+ <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>\r
+ </blockquote>\r
+\r
+ <figure class="image" style="float: right">\r
+ <img alt="The Eagle" src="../../../samples/assets/sample.jpg" width="150" />\r
+ <figcaption>The Eagle in lunar orbit</figcaption>\r
+ </figure>\r
+\r
+ <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>\r
+\r
+ <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p>\r
+\r
+ <ol>\r
+ <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>\r
+ <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>\r
+ <li><strong>Lunar Module</strong> for landing on the Moon.</li>\r
+ </ol>\r
+\r
+ <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>\r
+ </textarea>\r
+\r
+ <h2>Inline Sample</h2>\r
+ <div id="editor2" contenteditable="true">\r
+ <h1>Apollo 11</h1>\r
+\r
+ <figure class="image" style="float: right">\r
+ <img alt="Saturn V" src="../../../samples/assets/sample.jpg" width="150" />\r
+ <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+ </figure>\r
+\r
+ <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+ <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>\r
+\r
+ <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>\r
+\r
+ <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>\r
+\r
+ <blockquote>\r
+ <p>One small step for [a] man, one giant leap for mankind.</p>\r
+ </blockquote>\r
+\r
+ <p><span class="math-tex">\( \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \)</span></p>\r
+\r
+ <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>\r
+\r
+ <blockquote>\r
+ <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>\r
+ </blockquote>\r
+\r
+ <figure class="image" style="float: right">\r
+ <img alt="The Eagle" src="../../../samples/assets/sample.jpg" width="150" />\r
+ <figcaption>The Eagle in lunar orbit</figcaption>\r
+ </figure>\r
+\r
+ <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>\r
+\r
+ <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p>\r
+\r
+ <ol>\r
+ <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>\r
+ <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>\r
+ <li><strong>Lunar Module</strong> for landing on the Moon.</li>\r
+ </ol>\r
+\r
+ <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>\r
+ </div>\r
+\r
+ <script>\r
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )\r
+ CKEDITOR.tools.enableHtml5Elements( document );\r
+\r
+ CKEDITOR.disableAutoInline = true;\r
+\r
+ var stylesSet = [\r
+ { name: 'Medium border', type: 'widget', widget: 'image', attributes: { 'class': 'mediumBorder' } },\r
+ { name: 'Thick border', type: 'widget', widget: 'image', attributes: { 'class': 'thickBorder' } },\r
+ { name: 'So important', type: 'widget', widget: 'image', attributes: { 'class': 'important soMuch' } },\r
+\r
+ { name: 'Red marker', type: 'widget', widget: 'placeholder', attributes: { 'class': 'redMarker' } },\r
+ { name: 'Invisible Placeholder', type: 'widget', widget: 'placeholder', attributes: { 'class': 'invisible' } },\r
+\r
+ { name: 'Invisible Mathjax', type: 'widget', widget: 'mathjax', attributes: { 'class': 'invisible' } }\r
+ ];\r
+\r
+ CKEDITOR.replace( 'editor1', {\r
+ extraPlugins: 'placeholder,image2,mathjax',\r
+ contentsCss: [ '../../../contents.css', 'assets/contents.css' ],\r
+ stylesSet: stylesSet,\r
+ height: 300\r
+ } );\r
+\r
+ CKEDITOR.inline( 'editor2', {\r
+ extraPlugins: 'placeholder,image2,mathjax',\r
+ stylesSet: stylesSet,\r
+ height: 300\r
+ } );\r
+\r
+ </script>\r
+</body>\r
+</html>\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'af', {\r
+ 'move': 'Klik en trek on te beweeg',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ar', {\r
+ 'move': 'إضغط و إسحب للتحريك',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'az', {\r
+ 'move': 'Tıklayın və aparın',\r
+ 'label': '%1 vidjet'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'bg', {\r
+ 'move': 'Кликни и влачи, за да преместиш',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ca', {\r
+ 'move': 'Clicar i arrossegar per moure',\r
+ 'label': '%1 widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'cs', {\r
+ 'move': 'Klepněte a táhněte pro přesunutí',\r
+ 'label': 'Ovládací prvek %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'cy', {\r
+ 'move': 'Clcio a llusgo i symud',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'da', {\r
+ 'move': 'Klik og træk for at flytte',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'de-ch', {\r
+ 'move': 'Zum Verschieben anwählen und ziehen',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'de', {\r
+ 'move': 'Zum Verschieben anwählen und ziehen',\r
+ 'label': '%1 Steuerelement'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'el', {\r
+ 'move': 'Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'en-gb', {\r
+ 'move': 'Click and drag to move',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'en', {\r
+ 'move': 'Click and drag to move',\r
+ 'label': '%1 widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'eo', {\r
+ 'move': 'klaki kaj treni por movi',\r
+ 'label': '%1 fenestraĵo'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'es-mx', {\r
+ 'move': 'Presiona y arrastra para mover',\r
+ 'label': '%1 widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'es', {\r
+ 'move': 'Dar clic y arrastrar para mover',\r
+ 'label': 'reproductor %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'eu', {\r
+ 'move': 'Klikatu eta arrastatu lekuz aldatzeko',\r
+ 'label': '%1 widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'fa', {\r
+ 'move': 'کلیک و کشیدن برای جابجایی',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'fi', {\r
+ 'move': 'Siirrä klikkaamalla ja raahaamalla',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'fr', {\r
+ 'move': 'Cliquer et glisser pour déplacer',\r
+ 'label': 'Élément %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'gl', {\r
+ 'move': 'Prema e arrastre para mover',\r
+ 'label': 'Trebello %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'he', {\r
+ 'move': 'לחץ וגרור להזזה',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'hr', {\r
+ 'move': 'Klikni i povuci za pomicanje',\r
+ 'label': '%1 widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'hu', {\r
+ 'move': 'Kattints és húzd a mozgatáshoz',\r
+ 'label': '%1 modul'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'id', {\r
+ 'move': 'Tekan dan geser untuk memindahkan',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'it', {\r
+ 'move': 'Fare clic e trascinare per spostare',\r
+ 'label': 'Widget %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ja', {\r
+ 'move': 'ドラッグして移動',\r
+ 'label': '%1 ウィジェット'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'km', {\r
+ 'move': 'ចុចហើយទាញដើម្បីផ្លាស់ទី',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ko', {\r
+ 'move': '움직이려면 클릭 후 드래그 하세요',\r
+ 'label': '%1 위젯'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ku', {\r
+ 'move': 'کرتەبکە و ڕایبکێشە بۆ جوڵاندن',\r
+ 'label': '%1 ویجێت'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'lv', {\r
+ 'move': 'Klikšķina un velc, lai pārvietotu',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'nb', {\r
+ 'move': 'Klikk og dra for å flytte',\r
+ 'label': 'Widget %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'nl', {\r
+ 'move': 'Klik en sleep om te verplaatsen',\r
+ 'label': '%1 widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'no', {\r
+ 'move': 'Klikk og dra for å flytte',\r
+ 'label': 'Widget %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'oc', {\r
+ 'move': 'Clicar e lisar per desplaçar',\r
+ 'label': 'Element %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'pl', {\r
+ 'move': 'Kliknij i przeciągnij, by przenieść.',\r
+ 'label': 'Widget %1'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'pt-br', {\r
+ 'move': 'Click e arraste para mover',\r
+ 'label': '%1 widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'pt', {\r
+ 'move': 'Clique e arraste para mover',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ru', {\r
+ 'move': 'Нажмите и перетащите, чтобы переместить',\r
+ 'label': '%1 виджет'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'sk', {\r
+ 'move': 'Kliknite a potiahnite pre presunutie',\r
+ 'label': '%1 widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'sl', {\r
+ 'move': 'Kliknite in povlecite, da premaknete',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'sq', {\r
+ 'move': 'Kliko dhe tërhiqe për ta lëvizur',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'sv', {\r
+ 'move': 'Klicka och drag för att flytta',\r
+ 'label': '%1-widget'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'tr', {\r
+ 'move': 'Taşımak için, tıklayın ve sürükleyin',\r
+ 'label': '%1 Grafik Beleşeni'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'tt', {\r
+ 'move': 'Күчереп куер өчен басып шудырыгыз',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ug', {\r
+ 'move': 'يۆتكەشتە چېكىپ سۆرەڭ',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'uk', {\r
+ 'move': 'Клікніть і потягніть для переміщення',\r
+ 'label': '%1 віджет'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'vi', {\r
+ 'move': 'Nhấp chuột và kéo để di chuyển',\r
+ 'label': '%1 widget' // MISSING\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'zh-cn', {\r
+ 'move': '点击并拖拽以移动',\r
+ 'label': '%1 小部件'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'zh', {\r
+ 'move': '拖曳以移動',\r
+ 'label': '%1 小工具'\r
+} );\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/**\r
+ * @fileOverview [Widget](http://ckeditor.com/addon/widget) plugin.\r
+ */\r
+\r
+'use strict';\r
+\r
+( function() {\r
+ var DRAG_HANDLER_SIZE = 15;\r
+\r
+ CKEDITOR.plugins.add( 'widget', {\r
+ // jscs:disable maximumLineLength\r
+ lang: 'af,ar,az,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,es-mx,eu,fa,fi,fr,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,oc,pl,pt,pt-br,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+ // jscs:enable maximumLineLength\r
+ requires: 'lineutils,clipboard,widgetselection',\r
+ onLoad: function() {\r
+ CKEDITOR.addCss(\r
+ '.cke_widget_wrapper{' +\r
+ 'position:relative;' +\r
+ 'outline:none' +\r
+ '}' +\r
+ '.cke_widget_inline{' +\r
+ 'display:inline-block' +\r
+ '}' +\r
+ '.cke_widget_wrapper:hover>.cke_widget_element{' +\r
+ 'outline:2px solid yellow;' +\r
+ 'cursor:default' +\r
+ '}' +\r
+ '.cke_widget_wrapper:hover .cke_widget_editable{' +\r
+ 'outline:2px solid yellow' +\r
+ '}' +\r
+ '.cke_widget_wrapper.cke_widget_focused>.cke_widget_element,' +\r
+ // We need higher specificity than hover style.\r
+ '.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{' +\r
+ 'outline:2px solid #ace' +\r
+ '}' +\r
+ '.cke_widget_editable{' +\r
+ 'cursor:text' +\r
+ '}' +\r
+ '.cke_widget_drag_handler_container{' +\r
+ 'position:absolute;' +\r
+ 'width:' + DRAG_HANDLER_SIZE + 'px;' +\r
+ 'height:0;' +\r
+ // Initially drag handler should not be visible, until its position will be\r
+ // calculated (http://dev.ckeditor.com/ticket/11177).\r
+ // We need to hide unpositined handlers, so they don't extend\r
+ // widget's outline far to the left (http://dev.ckeditor.com/ticket/12024).\r
+ 'display:none;' +\r
+ 'opacity:0.75;' +\r
+ 'transition:height 0s 0.2s;' + // Delay hiding drag handler.\r
+ // Prevent drag handler from being misplaced (http://dev.ckeditor.com/ticket/11198).\r
+ 'line-height:0' +\r
+ '}' +\r
+ '.cke_widget_wrapper:hover>.cke_widget_drag_handler_container{' +\r
+ 'height:' + DRAG_HANDLER_SIZE + 'px;' +\r
+ 'transition:none' +\r
+ '}' +\r
+ '.cke_widget_drag_handler_container:hover{' +\r
+ 'opacity:1' +\r
+ '}' +\r
+ 'img.cke_widget_drag_handler{' +\r
+ 'cursor:move;' +\r
+ 'width:' + DRAG_HANDLER_SIZE + 'px;' +\r
+ 'height:' + DRAG_HANDLER_SIZE + 'px;' +\r
+ 'display:inline-block' +\r
+ '}' +\r
+ '.cke_widget_mask{' +\r
+ 'position:absolute;' +\r
+ 'top:0;' +\r
+ 'left:0;' +\r
+ 'width:100%;' +\r
+ 'height:100%;' +\r
+ 'display:block' +\r
+ '}' +\r
+ '.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{' +\r
+ 'cursor:move !important' +\r
+ '}'\r
+ );\r
+ },\r
+\r
+ beforeInit: function( editor ) {\r
+ /**\r
+ * An instance of widget repository. It contains all\r
+ * {@link CKEDITOR.plugins.widget.repository#registered registered widget definitions} and\r
+ * {@link CKEDITOR.plugins.widget.repository#instances initialized instances}.\r
+ *\r
+ * editor.widgets.add( 'someName', {\r
+ * // Widget definition...\r
+ * } );\r
+ *\r
+ * editor.widgets.registered.someName; // -> Widget definition\r
+ *\r
+ * @since 4.3\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.widget.repository} widgets\r
+ * @member CKEDITOR.editor\r
+ */\r
+ editor.widgets = new Repository( editor );\r
+ },\r
+\r
+ afterInit: function( editor ) {\r
+ addWidgetButtons( editor );\r
+ setupContextMenu( editor );\r
+ }\r
+ } );\r
+\r
+ /**\r
+ * Widget repository. It keeps track of all {@link #registered registered widget definitions} and\r
+ * {@link #instances initialized instances}. An instance of the repository is available under\r
+ * the {@link CKEDITOR.editor#widgets} property.\r
+ *\r
+ * @class CKEDITOR.plugins.widget.repository\r
+ * @mixins CKEDITOR.event\r
+ * @constructor Creates a widget repository instance. Note that the widget plugin automatically\r
+ * creates a repository instance which is available under the {@link CKEDITOR.editor#widgets} property.\r
+ * @param {CKEDITOR.editor} editor The editor instance for which the repository will be created.\r
+ */\r
+ function Repository( editor ) {\r
+ /**\r
+ * The editor instance for which this repository was created.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.editor} editor\r
+ */\r
+ this.editor = editor;\r
+\r
+ /**\r
+ * A hash of registered widget definitions (definition name => {@link CKEDITOR.plugins.widget.definition}).\r
+ *\r
+ * To register a definition use the {@link #add} method.\r
+ *\r
+ * @readonly\r
+ */\r
+ this.registered = {};\r
+\r
+ /**\r
+ * An object containing initialized widget instances (widget id => {@link CKEDITOR.plugins.widget}).\r
+ *\r
+ * @readonly\r
+ */\r
+ this.instances = {};\r
+\r
+ /**\r
+ * An array of selected widget instances.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.widget[]} selected\r
+ */\r
+ this.selected = [];\r
+\r
+ /**\r
+ * The focused widget instance. See also {@link CKEDITOR.plugins.widget#event-focus}\r
+ * and {@link CKEDITOR.plugins.widget#event-blur} events.\r
+ *\r
+ * editor.on( 'selectionChange', function() {\r
+ * if ( editor.widgets.focused ) {\r
+ * // Do something when a widget is focused...\r
+ * }\r
+ * } );\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.widget} focused\r
+ */\r
+ this.focused = null;\r
+\r
+ /**\r
+ * The widget instance that contains the nested editable which is currently focused.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.widget} widgetHoldingFocusedEditable\r
+ */\r
+ this.widgetHoldingFocusedEditable = null;\r
+\r
+ this._ = {\r
+ nextId: 0,\r
+ upcasts: [],\r
+ upcastCallbacks: [],\r
+ filters: {}\r
+ };\r
+\r
+ setupWidgetsLifecycle( this );\r
+ setupSelectionObserver( this );\r
+ setupMouseObserver( this );\r
+ setupKeyboardObserver( this );\r
+ setupDragAndDrop( this );\r
+ setupNativeCutAndCopy( this );\r
+ }\r
+\r
+ Repository.prototype = {\r
+ /**\r
+ * Minimum interval between selection checks.\r
+ *\r
+ * @private\r
+ */\r
+ MIN_SELECTION_CHECK_INTERVAL: 500,\r
+\r
+ /**\r
+ * Adds a widget definition to the repository. Fires the {@link CKEDITOR.editor#widgetDefinition} event\r
+ * which allows to modify the widget definition which is going to be registered.\r
+ *\r
+ * @param {String} name The name of the widget definition.\r
+ * @param {CKEDITOR.plugins.widget.definition} widgetDef Widget definition.\r
+ * @returns {CKEDITOR.plugins.widget.definition}\r
+ */\r
+ add: function( name, widgetDef ) {\r
+ // Create prototyped copy of original widget definition, so we won't modify it.\r
+ widgetDef = CKEDITOR.tools.prototypedCopy( widgetDef );\r
+ widgetDef.name = name;\r
+\r
+ widgetDef._ = widgetDef._ || {};\r
+\r
+ this.editor.fire( 'widgetDefinition', widgetDef );\r
+\r
+ if ( widgetDef.template )\r
+ widgetDef.template = new CKEDITOR.template( widgetDef.template );\r
+\r
+ addWidgetCommand( this.editor, widgetDef );\r
+ addWidgetProcessors( this, widgetDef );\r
+\r
+ this.registered[ name ] = widgetDef;\r
+\r
+ return widgetDef;\r
+ },\r
+\r
+ /**\r
+ * Adds a callback for element upcasting. Each callback will be executed\r
+ * for every element which is later tested by upcast methods. If a callback\r
+ * returns `false`, the element will not be upcasted.\r
+ *\r
+ * // Images with the "banner" class will not be upcasted (e.g. to the image widget).\r
+ * editor.widgets.addUpcastCallback( function( element ) {\r
+ * if ( element.name == 'img' && element.hasClass( 'banner' ) )\r
+ * return false;\r
+ * } );\r
+ *\r
+ * @param {Function} callback\r
+ * @param {CKEDITOR.htmlParser.element} callback.element\r
+ */\r
+ addUpcastCallback: function( callback ) {\r
+ this._.upcastCallbacks.push( callback );\r
+ },\r
+\r
+ /**\r
+ * Checks the selection to update widget states (selection and focus).\r
+ *\r
+ * This method is triggered by the {@link #event-checkSelection} event.\r
+ */\r
+ checkSelection: function() {\r
+ var sel = this.editor.getSelection(),\r
+ selectedElement = sel.getSelectedElement(),\r
+ updater = stateUpdater( this ),\r
+ widget;\r
+\r
+ // Widget is focused so commit and finish checking.\r
+ if ( selectedElement && ( widget = this.getByElement( selectedElement, true ) ) )\r
+ return updater.focus( widget ).select( widget ).commit();\r
+\r
+ var range = sel.getRanges()[ 0 ];\r
+\r
+ // No ranges or collapsed range mean that nothing is selected, so commit and finish checking.\r
+ if ( !range || range.collapsed )\r
+ return updater.commit();\r
+\r
+ // Range is not empty, so create walker checking for wrappers.\r
+ var walker = new CKEDITOR.dom.walker( range ),\r
+ wrapper;\r
+\r
+ walker.evaluator = Widget.isDomWidgetWrapper;\r
+\r
+ while ( ( wrapper = walker.next() ) )\r
+ updater.select( this.getByElement( wrapper ) );\r
+\r
+ updater.commit();\r
+ },\r
+\r
+ /**\r
+ * Checks if all widget instances are still present in the DOM.\r
+ * Destroys those instances that are not present.\r
+ * Reinitializes widgets on widget wrappers for which widget instances\r
+ * cannot be found. Takes nested widgets into account, too.\r
+ *\r
+ * This method triggers the {@link #event-checkWidgets} event whose listeners\r
+ * can cancel the method's execution or modify its options.\r
+ *\r
+ * @param [options] The options object.\r
+ * @param {Boolean} [options.initOnlyNew] Initializes widgets only on newly wrapped\r
+ * widget elements (those which still have the `cke_widget_new` class). When this option is\r
+ * set to `true`, widgets which were invalidated (e.g. by replacing with a cloned DOM structure)\r
+ * will not be reinitialized. This makes the check faster.\r
+ * @param {Boolean} [options.focusInited] If only one widget is initialized by\r
+ * the method, it will be focused.\r
+ */\r
+ checkWidgets: function( options ) {\r
+ this.fire( 'checkWidgets', CKEDITOR.tools.copy( options || {} ) );\r
+ },\r
+\r
+ /**\r
+ * Removes the widget from the editor and moves the selection to the closest\r
+ * editable position if the widget was focused before.\r
+ *\r
+ * @param {CKEDITOR.plugins.widget} widget The widget instance to be deleted.\r
+ */\r
+ del: function( widget ) {\r
+ if ( this.focused === widget ) {\r
+ var editor = widget.editor,\r
+ range = editor.createRange(),\r
+ found;\r
+\r
+ // If haven't found place for caret on the default side,\r
+ // try to find it on the other side.\r
+ if ( !( found = range.moveToClosestEditablePosition( widget.wrapper, true ) ) )\r
+ found = range.moveToClosestEditablePosition( widget.wrapper, false );\r
+\r
+ if ( found )\r
+ editor.getSelection().selectRanges( [ range ] );\r
+ }\r
+\r
+ widget.wrapper.remove();\r
+ this.destroy( widget, true );\r
+ },\r
+\r
+ /**\r
+ * Destroys the widget instance and all its nested widgets (widgets inside its nested editables).\r
+ *\r
+ * @param {CKEDITOR.plugins.widget} widget The widget instance to be destroyed.\r
+ * @param {Boolean} [offline] Whether the widget is offline (detached from the DOM tree) —\r
+ * in this case the DOM (attributes, classes, etc.) will not be cleaned up.\r
+ */\r
+ destroy: function( widget, offline ) {\r
+ if ( this.widgetHoldingFocusedEditable === widget )\r
+ setFocusedEditable( this, widget, null, offline );\r
+\r
+ widget.destroy( offline );\r
+ delete this.instances[ widget.id ];\r
+ this.fire( 'instanceDestroyed', widget );\r
+ },\r
+\r
+ /**\r
+ * Destroys all widget instances.\r
+ *\r
+ * @param {Boolean} [offline] Whether the widgets are offline (detached from the DOM tree) —\r
+ * in this case the DOM (attributes, classes, etc.) will not be cleaned up.\r
+ * @param {CKEDITOR.dom.element} [container] The container within widgets will be destroyed.\r
+ * This option will be ignored if the `offline` flag was set to `true`, because in such case\r
+ * it is not possible to find widgets within the passed block.\r
+ */\r
+ destroyAll: function( offline, container ) {\r
+ var widget,\r
+ id,\r
+ instances = this.instances;\r
+\r
+ if ( container && !offline ) {\r
+ var wrappers = container.find( '.cke_widget_wrapper' ),\r
+ l = wrappers.count(),\r
+ i = 0;\r
+\r
+ // Length is constant, because this is not a live node list.\r
+ // Note: since querySelectorAll returns nodes in document order,\r
+ // outer widgets are always placed before their nested widgets and therefore\r
+ // are destroyed before them.\r
+ for ( ; i < l; ++i ) {\r
+ widget = this.getByElement( wrappers.getItem( i ), true );\r
+ // Widget might not be found, because it could be a nested widget,\r
+ // which would be destroyed when destroying its parent.\r
+ if ( widget )\r
+ this.destroy( widget );\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ for ( id in instances ) {\r
+ widget = instances[ id ];\r
+ this.destroy( widget, offline );\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Finalizes a process of widget creation. This includes:\r
+ *\r
+ * * inserting widget element into editor,\r
+ * * marking widget instance as ready (see {@link CKEDITOR.plugins.widget#event-ready}),\r
+ * * focusing widget instance.\r
+ *\r
+ * This method is used by the default widget's command and is called\r
+ * after widget's dialog (if set) is closed. It may also be used in a\r
+ * customized process of widget creation and insertion.\r
+ *\r
+ * widget.once( 'edit', function() {\r
+ * // Finalize creation only of not ready widgets.\r
+ * if ( widget.isReady() )\r
+ * return;\r
+ *\r
+ * // Cancel edit event to prevent automatic widget insertion.\r
+ * evt.cancel();\r
+ *\r
+ * CustomDialog.open( widget.data, function saveCallback( savedData ) {\r
+ * // Cache the container, because widget may be destroyed while saving data,\r
+ * // if this process will require some deep transformations.\r
+ * var container = widget.wrapper.getParent();\r
+ *\r
+ * widget.setData( savedData );\r
+ *\r
+ * // Widget will be retrieved from container and inserted into editor.\r
+ * editor.widgets.finalizeCreation( container );\r
+ * } );\r
+ * } );\r
+ *\r
+ * @param {CKEDITOR.dom.element/CKEDITOR.dom.documentFragment} container The element\r
+ * or document fragment which contains widget wrapper. The container is used, so before\r
+ * finalizing creation the widget can be freely transformed (even destroyed and reinitialized).\r
+ */\r
+ finalizeCreation: function( container ) {\r
+ var wrapper = container.getFirst();\r
+ if ( wrapper && Widget.isDomWidgetWrapper( wrapper ) ) {\r
+ this.editor.insertElement( wrapper );\r
+\r
+ var widget = this.getByElement( wrapper );\r
+ // Fire postponed #ready event.\r
+ widget.ready = true;\r
+ widget.fire( 'ready' );\r
+ widget.focus();\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Finds a widget instance which contains a given element. The element will be the {@link CKEDITOR.plugins.widget#wrapper wrapper}\r
+ * of the returned widget or a descendant of this {@link CKEDITOR.plugins.widget#wrapper wrapper}.\r
+ *\r
+ * editor.widgets.getByElement( someWidget.wrapper ); // -> someWidget\r
+ * editor.widgets.getByElement( someWidget.parts.caption ); // -> someWidget\r
+ *\r
+ * // Check wrapper only:\r
+ * editor.widgets.getByElement( someWidget.wrapper, true ); // -> someWidget\r
+ * editor.widgets.getByElement( someWidget.parts.caption, true ); // -> null\r
+ *\r
+ * @param {CKEDITOR.dom.element} element The element to be checked.\r
+ * @param {Boolean} [checkWrapperOnly] If set to `true`, the method will not check wrappers' descendants.\r
+ * @returns {CKEDITOR.plugins.widget} The widget instance or `null`.\r
+ */\r
+ getByElement: ( function() {\r
+ var validWrapperElements = { div: 1, span: 1 };\r
+ function getWidgetId( element ) {\r
+ return element.is( validWrapperElements ) && element.data( 'cke-widget-id' );\r
+ }\r
+\r
+ return function( element, checkWrapperOnly ) {\r
+ if ( !element )\r
+ return null;\r
+\r
+ var id = getWidgetId( element );\r
+\r
+ // There's no need to check element parents if element is a wrapper.\r
+ if ( !checkWrapperOnly && !id ) {\r
+ var limit = this.editor.editable();\r
+\r
+ // Try to find a closest ascendant which is a widget wrapper.\r
+ do {\r
+ element = element.getParent();\r
+ } while ( element && !element.equals( limit ) && !( id = getWidgetId( element ) ) );\r
+ }\r
+\r
+ return this.instances[ id ] || null;\r
+ };\r
+ } )(),\r
+\r
+ /**\r
+ * Initializes a widget on a given element if the widget has not been initialized on it yet.\r
+ *\r
+ * @param {CKEDITOR.dom.element} element The future widget element.\r
+ * @param {String/CKEDITOR.plugins.widget.definition} [widgetDef] Name of a widget or a widget definition.\r
+ * The widget definition should be previously registered by using the\r
+ * {@link CKEDITOR.plugins.widget.repository#add} method.\r
+ * @param [startupData] Widget startup data (has precedence over default one).\r
+ * @returns {CKEDITOR.plugins.widget} The widget instance or `null` if a widget could not be initialized on\r
+ * a given element.\r
+ */\r
+ initOn: function( element, widgetDef, startupData ) {\r
+ if ( !widgetDef )\r
+ widgetDef = this.registered[ element.data( 'widget' ) ];\r
+ else if ( typeof widgetDef == 'string' )\r
+ widgetDef = this.registered[ widgetDef ];\r
+\r
+ if ( !widgetDef )\r
+ return null;\r
+\r
+ // Wrap element if still wasn't wrapped (was added during runtime by method that skips dataProcessor).\r
+ var wrapper = this.wrapElement( element, widgetDef.name );\r
+\r
+ if ( wrapper ) {\r
+ // Check if widget wrapper is new (widget hasn't been initialized on it yet).\r
+ // This class will be removed by widget constructor to avoid locking snapshot twice.\r
+ if ( wrapper.hasClass( 'cke_widget_new' ) ) {\r
+ var widget = new Widget( this, this._.nextId++, element, widgetDef, startupData );\r
+\r
+ // Widget could be destroyed when initializing it.\r
+ if ( widget.isInited() ) {\r
+ this.instances[ widget.id ] = widget;\r
+\r
+ return widget;\r
+ } else {\r
+ return null;\r
+ }\r
+ }\r
+\r
+ // Widget already has been initialized, so try to get widget by element.\r
+ // Note - it may happen that other instance will returned than the one created above,\r
+ // if for example widget was destroyed and reinitialized.\r
+ return this.getByElement( element );\r
+ }\r
+\r
+ // No wrapper means that there's no widget for this element.\r
+ return null;\r
+ },\r
+\r
+ /**\r
+ * Initializes widgets on all elements which were wrapped by {@link #wrapElement} and\r
+ * have not been initialized yet.\r
+ *\r
+ * @param {CKEDITOR.dom.element} [container=editor.editable()] The container which will be checked for not\r
+ * initialized widgets. Defaults to editor's {@link CKEDITOR.editor#editable editable} element.\r
+ * @returns {CKEDITOR.plugins.widget[]} Array of widget instances which have been initialized.\r
+ * Note: Only first-level widgets are returned — without nested widgets.\r
+ */\r
+ initOnAll: function( container ) {\r
+ var newWidgets = ( container || this.editor.editable() ).find( '.cke_widget_new' ),\r
+ newInstances = [],\r
+ instance;\r
+\r
+ for ( var i = newWidgets.count(); i--; ) {\r
+ instance = this.initOn( newWidgets.getItem( i ).getFirst( Widget.isDomWidgetElement ) );\r
+ if ( instance )\r
+ newInstances.push( instance );\r
+ }\r
+\r
+ return newInstances;\r
+ },\r
+\r
+ /**\r
+ * Allows to listen to events on specific types of widgets, even if they are not created yet.\r
+ *\r
+ * Please note that this method inherits parameters from the {@link CKEDITOR.event#method-on} method with one\r
+ * extra parameter at the beginning which is the widget name.\r
+ *\r
+ * editor.widgets.onWidget( 'image', 'action', function( evt ) {\r
+ * // Event `action` occurs on `image` widget.\r
+ * } );\r
+ *\r
+ * @since 4.5\r
+ * @param {String} widgetName\r
+ * @param {String} eventName\r
+ * @param {Function} listenerFunction\r
+ * @param {Object} [scopeObj]\r
+ * @param {Object} [listenerData]\r
+ * @param {Number} [priority=10]\r
+ */\r
+ onWidget: function( widgetName ) {\r
+ var args = Array.prototype.slice.call( arguments );\r
+\r
+ args.shift();\r
+\r
+ for ( var i in this.instances ) {\r
+ var instance = this.instances[ i ];\r
+\r
+ if ( instance.name == widgetName ) {\r
+ instance.on.apply( instance, args );\r
+ }\r
+ }\r
+\r
+ this.on( 'instanceCreated', function( evt ) {\r
+ var widget = evt.data;\r
+\r
+ if ( widget.name == widgetName ) {\r
+ widget.on.apply( widget, args );\r
+ }\r
+ } );\r
+ },\r
+\r
+ /**\r
+ * Parses element classes string and returns an object\r
+ * whose keys contain class names. Skips all `cke_*` classes.\r
+ *\r
+ * This method is used by the {@link CKEDITOR.plugins.widget#getClasses} method and\r
+ * may be used when overriding that method.\r
+ *\r
+ * @since 4.4\r
+ * @param {String} classes String (value of `class` attribute).\r
+ * @returns {Object} Object containing classes or `null` if no classes found.\r
+ */\r
+ parseElementClasses: function( classes ) {\r
+ if ( !classes )\r
+ return null;\r
+\r
+ classes = CKEDITOR.tools.trim( classes ).split( /\s+/ );\r
+\r
+ var cl,\r
+ obj = {},\r
+ hasClasses = 0;\r
+\r
+ while ( ( cl = classes.pop() ) ) {\r
+ if ( cl.indexOf( 'cke_' ) == -1 )\r
+ obj[ cl ] = hasClasses = 1;\r
+ }\r
+\r
+ return hasClasses ? obj : null;\r
+ },\r
+\r
+ /**\r
+ * Wraps an element with a widget's non-editable container.\r
+ *\r
+ * If this method is called on an {@link CKEDITOR.htmlParser.element}, then it will\r
+ * also take care of fixing the DOM after wrapping (the wrapper may not be allowed in element's parent).\r
+ *\r
+ * @param {CKEDITOR.dom.element/CKEDITOR.htmlParser.element} element The widget element to be wrapped.\r
+ * @param {String} [widgetName] The name of the widget definition. Defaults to element's `data-widget`\r
+ * attribute value.\r
+ * @returns {CKEDITOR.dom.element/CKEDITOR.htmlParser.element} The wrapper element or `null` if\r
+ * the widget definition of this name is not registered.\r
+ */\r
+ wrapElement: function( element, widgetName ) {\r
+ var wrapper = null,\r
+ widgetDef,\r
+ isInline;\r
+\r
+ if ( element instanceof CKEDITOR.dom.element ) {\r
+ widgetName = widgetName || element.data( 'widget' );\r
+ widgetDef = this.registered[ widgetName ];\r
+\r
+ if ( !widgetDef )\r
+ return null;\r
+\r
+ // Do not wrap already wrapped element.\r
+ wrapper = element.getParent();\r
+ if ( wrapper && wrapper.type == CKEDITOR.NODE_ELEMENT && wrapper.data( 'cke-widget-wrapper' ) )\r
+ return wrapper;\r
+\r
+ // If attribute isn't already set (e.g. for pasted widget), set it.\r
+ if ( !element.hasAttribute( 'data-cke-widget-keep-attr' ) )\r
+ element.data( 'cke-widget-keep-attr', element.data( 'widget' ) ? 1 : 0 );\r
+\r
+ element.data( 'widget', widgetName );\r
+\r
+ isInline = isWidgetInline( widgetDef, element.getName() );\r
+\r
+ wrapper = new CKEDITOR.dom.element( isInline ? 'span' : 'div' );\r
+ wrapper.setAttributes( getWrapperAttributes( isInline, widgetName ) );\r
+\r
+ wrapper.data( 'cke-display-name', widgetDef.pathName ? widgetDef.pathName : element.getName() );\r
+\r
+ // Replace element unless it is a detached one.\r
+ if ( element.getParent( true ) )\r
+ wrapper.replace( element );\r
+ element.appendTo( wrapper );\r
+ }\r
+ else if ( element instanceof CKEDITOR.htmlParser.element ) {\r
+ widgetName = widgetName || element.attributes[ 'data-widget' ];\r
+ widgetDef = this.registered[ widgetName ];\r
+\r
+ if ( !widgetDef )\r
+ return null;\r
+\r
+ wrapper = element.parent;\r
+ if ( wrapper && wrapper.type == CKEDITOR.NODE_ELEMENT && wrapper.attributes[ 'data-cke-widget-wrapper' ] )\r
+ return wrapper;\r
+\r
+ // If attribute isn't already set (e.g. for pasted widget), set it.\r
+ if ( !( 'data-cke-widget-keep-attr' in element.attributes ) )\r
+ element.attributes[ 'data-cke-widget-keep-attr' ] = element.attributes[ 'data-widget' ] ? 1 : 0;\r
+ if ( widgetName )\r
+ element.attributes[ 'data-widget' ] = widgetName;\r
+\r
+ isInline = isWidgetInline( widgetDef, element.name );\r
+\r
+ wrapper = new CKEDITOR.htmlParser.element( isInline ? 'span' : 'div', getWrapperAttributes( isInline, widgetName ) );\r
+ wrapper.attributes[ 'data-cke-display-name' ] = widgetDef.pathName ? widgetDef.pathName : element.name;\r
+\r
+ var parent = element.parent,\r
+ index;\r
+\r
+ // Don't detach already detached element.\r
+ if ( parent ) {\r
+ index = element.getIndex();\r
+ element.remove();\r
+ }\r
+\r
+ wrapper.add( element );\r
+\r
+ // Insert wrapper fixing DOM (splitting parents if wrapper is not allowed inside them).\r
+ parent && insertElement( parent, index, wrapper );\r
+ }\r
+\r
+ return wrapper;\r
+ },\r
+\r
+ // Expose for tests.\r
+ _tests_createEditableFilter: createEditableFilter\r
+ };\r
+\r
+ CKEDITOR.event.implementOn( Repository.prototype );\r
+\r
+ /**\r
+ * An event fired when a widget instance is created, but before it is fully initialized.\r
+ *\r
+ * @event instanceCreated\r
+ * @param {CKEDITOR.plugins.widget} data The widget instance.\r
+ */\r
+\r
+ /**\r
+ * An event fired when a widget instance was destroyed.\r
+ *\r
+ * See also {@link CKEDITOR.plugins.widget#event-destroy}.\r
+ *\r
+ * @event instanceDestroyed\r
+ * @param {CKEDITOR.plugins.widget} data The widget instance.\r
+ */\r
+\r
+ /**\r
+ * An event fired to trigger the selection check.\r
+ *\r
+ * See the {@link #method-checkSelection} method.\r
+ *\r
+ * @event checkSelection\r
+ */\r
+\r
+ /**\r
+ * An event fired by the the {@link #method-checkWidgets} method.\r
+ *\r
+ * It can be canceled in order to stop the {@link #method-checkWidgets}\r
+ * method execution or the event listener can modify the method's options.\r
+ *\r
+ * @event checkWidgets\r
+ * @param [data]\r
+ * @param {Boolean} [data.initOnlyNew] Initialize widgets only on newly wrapped\r
+ * widget elements (those which still have the `cke_widget_new` class). When this option is\r
+ * set to `true`, widgets which were invalidated (e.g. by replacing with a cloned DOM structure)\r
+ * will not be reinitialized. This makes the check faster.\r
+ * @param {Boolean} [data.focusInited] If only one widget is initialized by\r
+ * the method, it will be focused.\r
+ */\r
+\r
+\r
+ /**\r
+ * An instance of a widget. Together with {@link CKEDITOR.plugins.widget.repository} these\r
+ * two classes constitute the core of the Widget System.\r
+ *\r
+ * Note that neither the repository nor the widget instances can be created by using their constructors.\r
+ * A repository instance is automatically set up by the Widget plugin and is accessible under\r
+ * {@link CKEDITOR.editor#widgets}, while widget instances are created and destroyed by the repository.\r
+ *\r
+ * To create a widget, first you need to {@link CKEDITOR.plugins.widget.repository#add register} its\r
+ * {@link CKEDITOR.plugins.widget.definition definition}:\r
+ *\r
+ * editor.widgets.add( 'simplebox', {\r
+ * upcast: function( element ) {\r
+ * // Defines which elements will become widgets.\r
+ * if ( element.hasClass( 'simplebox' ) )\r
+ * return true;\r
+ * },\r
+ * init: function() {\r
+ * // ...\r
+ * }\r
+ * } );\r
+ *\r
+ * Once the widget definition is registered, widgets will be automatically\r
+ * created when loading data:\r
+ *\r
+ * editor.setData( '<div class="simplebox">foo</div>', function() {\r
+ * console.log( editor.widgets.instances ); // -> An object containing one instance.\r
+ * } );\r
+ *\r
+ * It is also possible to create instances during runtime by using a command\r
+ * (if a {@link CKEDITOR.plugins.widget.definition#template} property was defined):\r
+ *\r
+ * // You can execute an automatically defined command to\r
+ * // insert a new simplebox widget or edit the one currently focused.\r
+ * editor.execCommand( 'simplebox' );\r
+ *\r
+ * Note: Since CKEditor 4.5 widget's `startupData` can be passed as the command argument:\r
+ *\r
+ * editor.execCommand( 'simplebox', {\r
+ * startupData: {\r
+ * align: 'left'\r
+ * }\r
+ * } );\r
+ *\r
+ * A widget can also be created in a completely custom way:\r
+ *\r
+ * var element = editor.document.createElement( 'div' );\r
+ * editor.insertElement( element );\r
+ * var widget = editor.widgets.initOn( element, 'simplebox' );\r
+ *\r
+ * @since 4.3\r
+ * @class CKEDITOR.plugins.widget\r
+ * @mixins CKEDITOR.event\r
+ * @extends CKEDITOR.plugins.widget.definition\r
+ * @constructor Creates an instance of the widget class. Do not use it directly, but instead initialize widgets\r
+ * by using the {@link CKEDITOR.plugins.widget.repository#initOn} method or by the upcasting system.\r
+ * @param {CKEDITOR.plugins.widget.repository} widgetsRepo\r
+ * @param {Number} id Unique ID of this widget instance.\r
+ * @param {CKEDITOR.dom.element} element The widget element.\r
+ * @param {CKEDITOR.plugins.widget.definition} widgetDef Widget's registered definition.\r
+ * @param [startupData] Initial widget data. This data object will overwrite the default data and\r
+ * the data loaded from the DOM.\r
+ */\r
+ function Widget( widgetsRepo, id, element, widgetDef, startupData ) {\r
+ var editor = widgetsRepo.editor;\r
+\r
+ // Extend this widget with widgetDef-specific methods and properties.\r
+ CKEDITOR.tools.extend( this, widgetDef, {\r
+ /**\r
+ * The editor instance.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.editor}\r
+ */\r
+ editor: editor,\r
+\r
+ /**\r
+ * This widget's unique (per editor instance) ID.\r
+ *\r
+ * @readonly\r
+ * @property {Number}\r
+ */\r
+ id: id,\r
+\r
+ /**\r
+ * Whether this widget is an inline widget (based on an inline element unless\r
+ * forced otherwise by {@link CKEDITOR.plugins.widget.definition#inline}).\r
+ *\r
+ * **Note:** This option does not allow to turn a block element into an inline widget.\r
+ * However, it makes it possible to turn an inline element into a block widget or to\r
+ * force a correct type in case when automatic recognition fails.\r
+ *\r
+ * @readonly\r
+ * @property {Boolean}\r
+ */\r
+ inline: element.getParent().getName() == 'span',\r
+\r
+ /**\r
+ * The widget element — the element on which the widget was initialized.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.dom.element} element\r
+ */\r
+ element: element,\r
+\r
+ /**\r
+ * Widget's data object.\r
+ *\r
+ * The data can only be set by using the {@link #setData} method.\r
+ * Changes made to the data fire the {@link #event-data} event.\r
+ *\r
+ * @readonly\r
+ */\r
+ data: CKEDITOR.tools.extend( {}, typeof widgetDef.defaults == 'function' ? widgetDef.defaults() : widgetDef.defaults ),\r
+\r
+ /**\r
+ * Indicates if a widget is data-ready. Set to `true` when data from all sources\r
+ * ({@link CKEDITOR.plugins.widget.definition#defaults}, set in the\r
+ * {@link #init} method, loaded from the widget's element and startup data coming from the constructor)\r
+ * are finally loaded. This is immediately followed by the first {@link #event-data}.\r
+ *\r
+ * @readonly\r
+ */\r
+ dataReady: false,\r
+\r
+ /**\r
+ * Whether a widget instance was initialized. This means that:\r
+ *\r
+ * * An instance was created,\r
+ * * Its properties were set,\r
+ * * The `init` method was executed.\r
+ *\r
+ * **Note**: The first {@link #event-data} event could not be fired yet which\r
+ * means that the widget's DOM has not been set up yet. Wait for the {@link #event-ready}\r
+ * event to be notified when a widget is fully initialized and ready.\r
+ *\r
+ * **Note**: Use the {@link #isInited} method to check whether a widget is initialized and\r
+ * has not been destroyed.\r
+ *\r
+ * @readonly\r
+ */\r
+ inited: false,\r
+\r
+ /**\r
+ * Whether a widget instance is ready. This means that the widget is {@link #inited} and\r
+ * that its DOM was finally set up.\r
+ *\r
+ * **Note:** Use the {@link #isReady} method to check whether a widget is ready and\r
+ * has not been destroyed.\r
+ *\r
+ * @readonly\r
+ */\r
+ ready: false,\r
+\r
+ // Revert what widgetDef could override (automatic #edit listener).\r
+ edit: Widget.prototype.edit,\r
+\r
+ /**\r
+ * The nested editable element which is currently focused.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.widget.nestedEditable}\r
+ */\r
+ focusedEditable: null,\r
+\r
+ /**\r
+ * The widget definition from which this instance was created.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.widget.definition} definition\r
+ */\r
+ definition: widgetDef,\r
+\r
+ /**\r
+ * Link to the widget repository which created this instance.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.widget.repository} repository\r
+ */\r
+ repository: widgetsRepo,\r
+\r
+ draggable: widgetDef.draggable !== false,\r
+\r
+ // WAAARNING: Overwrite widgetDef's priv object, because otherwise violent unicorn's gonna visit you.\r
+ _: {\r
+ downcastFn: ( widgetDef.downcast && typeof widgetDef.downcast == 'string' ) ?\r
+ widgetDef.downcasts[ widgetDef.downcast ] : widgetDef.downcast\r
+ }\r
+ }, true );\r
+\r
+ /**\r
+ * An object of widget component elements.\r
+ *\r
+ * For every `partName => selector` pair in {@link CKEDITOR.plugins.widget.definition#parts},\r
+ * one `partName => element` pair is added to this object during the widget initialization.\r
+ *\r
+ * @readonly\r
+ * @property {Object} parts\r
+ */\r
+\r
+ /**\r
+ * The template which will be used to create a new widget element (when the widget's command is executed).\r
+ * It will be populated with {@link #defaults default values}.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.template} template\r
+ */\r
+\r
+ /**\r
+ * The widget wrapper — a non-editable `div` or `span` element (depending on {@link #inline})\r
+ * which is a parent of the {@link #element} and widget compontents like the drag handler and the {@link #mask}.\r
+ * It is the outermost widget element.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.dom.element} wrapper\r
+ */\r
+\r
+ widgetsRepo.fire( 'instanceCreated', this );\r
+\r
+ setupWidget( this, widgetDef );\r
+\r
+ this.init && this.init();\r
+\r
+ // Finally mark widget as inited.\r
+ this.inited = true;\r
+\r
+ setupWidgetData( this, startupData );\r
+\r
+ // If at some point (e.g. in #data listener) widget hasn't been destroyed\r
+ // and widget is already attached to document then fire #ready.\r
+ if ( this.isInited() && editor.editable().contains( this.wrapper ) ) {\r
+ this.ready = true;\r
+ this.fire( 'ready' );\r
+ }\r
+ }\r
+\r
+ Widget.prototype = {\r
+ /**\r
+ * Adds a class to the widget element. This method is used by\r
+ * the {@link #applyStyle} method and should be overridden by widgets\r
+ * which should handle classes differently (e.g. add them to other elements).\r
+ *\r
+ * Since 4.6.0 this method also adds a corresponding class prefixed with {@link #WRAPPER_CLASS_PREFIX}\r
+ * to the widget wrapper element.\r
+ *\r
+ * **Note**: This method should not be used directly. Use the {@link #setData} method to\r
+ * set the `classes` property. Read more in the {@link #setData} documentation.\r
+ *\r
+ * See also: {@link #removeClass}, {@link #hasClass}, {@link #getClasses}.\r
+ *\r
+ * @since 4.4\r
+ * @param {String} className The class name to be added.\r
+ */\r
+ addClass: function( className ) {\r
+ this.element.addClass( className );\r
+ this.wrapper.addClass( Widget.WRAPPER_CLASS_PREFIX + className );\r
+ },\r
+\r
+ /**\r
+ * Applies the specified style to the widget. It is highly recommended to use the\r
+ * {@link CKEDITOR.editor#applyStyle} or {@link CKEDITOR.style#apply} methods instead of\r
+ * using this method directly, because unlike editor's and style's methods, this one\r
+ * does not perform any checks.\r
+ *\r
+ * By default this method handles only classes defined in the style. It clones existing\r
+ * classes which are stored in the {@link #property-data widget data}'s `classes` property,\r
+ * adds new classes, and calls the {@link #setData} method if at least one new class was added.\r
+ * Then, using the {@link #event-data} event listener widget applies modifications passing\r
+ * new classes to the {@link #addClass} method.\r
+ *\r
+ * If you need to handle classes differently than in the default way, you can override the\r
+ * {@link #addClass} and related methods. You can also handle other style properties than `classes`\r
+ * by overriding this method.\r
+ *\r
+ * See also: {@link #checkStyleActive}, {@link #removeStyle}.\r
+ *\r
+ * @since 4.4\r
+ * @param {CKEDITOR.style} style The custom widget style to be applied.\r
+ */\r
+ applyStyle: function( style ) {\r
+ applyRemoveStyle( this, style, 1 );\r
+ },\r
+\r
+ /**\r
+ * Checks if the specified style is applied to this widget. It is highly recommended to use the\r
+ * {@link CKEDITOR.style#checkActive} method instead of using this method directly,\r
+ * because unlike style's method, this one does not perform any checks.\r
+ *\r
+ * By default this method handles only classes defined in the style and passes\r
+ * them to the {@link #hasClass} method. You can override these methods to handle classes\r
+ * differently or to handle more of the style properties.\r
+ *\r
+ * See also: {@link #applyStyle}, {@link #removeStyle}.\r
+ *\r
+ * @since 4.4\r
+ * @param {CKEDITOR.style} style The custom widget style to be checked.\r
+ * @returns {Boolean} Whether the style is applied to this widget.\r
+ */\r
+ checkStyleActive: function( style ) {\r
+ var classes = getStyleClasses( style ),\r
+ cl;\r
+\r
+ if ( !classes )\r
+ return false;\r
+\r
+ while ( ( cl = classes.pop() ) ) {\r
+ if ( !this.hasClass( cl ) )\r
+ return false;\r
+ }\r
+ return true;\r
+ },\r
+\r
+ /**\r
+ * Destroys this widget instance.\r
+ *\r
+ * Use {@link CKEDITOR.plugins.widget.repository#destroy} when possible instead of this method.\r
+ *\r
+ * This method fires the {#event-destroy} event.\r
+ *\r
+ * @param {Boolean} [offline] Whether a widget is offline (detached from the DOM tree) —\r
+ * in this case the DOM (attributes, classes, etc.) will not be cleaned up.\r
+ */\r
+ destroy: function( offline ) {\r
+ this.fire( 'destroy' );\r
+\r
+ if ( this.editables ) {\r
+ for ( var name in this.editables )\r
+ this.destroyEditable( name, offline );\r
+ }\r
+\r
+ if ( !offline ) {\r
+ if ( this.element.data( 'cke-widget-keep-attr' ) == '0' )\r
+ this.element.removeAttribute( 'data-widget' );\r
+ this.element.removeAttributes( [ 'data-cke-widget-data', 'data-cke-widget-keep-attr' ] );\r
+ this.element.removeClass( 'cke_widget_element' );\r
+ this.element.replace( this.wrapper );\r
+ }\r
+\r
+ this.wrapper = null;\r
+ },\r
+\r
+ /**\r
+ * Destroys a nested editable and all nested widgets.\r
+ *\r
+ * @param {String} editableName Nested editable name.\r
+ * @param {Boolean} [offline] See {@link #method-destroy} method.\r
+ */\r
+ destroyEditable: function( editableName, offline ) {\r
+ var editable = this.editables[ editableName ];\r
+\r
+ editable.removeListener( 'focus', onEditableFocus );\r
+ editable.removeListener( 'blur', onEditableBlur );\r
+ this.editor.focusManager.remove( editable );\r
+\r
+ if ( !offline ) {\r
+ this.repository.destroyAll( false, editable );\r
+ editable.removeClass( 'cke_widget_editable' );\r
+ editable.removeClass( 'cke_widget_editable_focused' );\r
+ editable.removeAttributes( [ 'contenteditable', 'data-cke-widget-editable', 'data-cke-enter-mode' ] );\r
+ }\r
+\r
+ delete this.editables[ editableName ];\r
+ },\r
+\r
+ /**\r
+ * Starts widget editing.\r
+ *\r
+ * This method fires the {@link CKEDITOR.plugins.widget#event-edit} event\r
+ * which may be canceled in order to prevent it from opening a dialog window.\r
+ *\r
+ * The dialog window name is obtained from the event's data `dialog` property or\r
+ * from {@link CKEDITOR.plugins.widget.definition#dialog}.\r
+ *\r
+ * @returns {Boolean} Returns `true` if a dialog window was opened.\r
+ */\r
+ edit: function() {\r
+ var evtData = { dialog: this.dialog },\r
+ that = this;\r
+\r
+ // Edit event was blocked or there's no dialog to be automatically opened.\r
+ if ( this.fire( 'edit', evtData ) === false || !evtData.dialog )\r
+ return false;\r
+\r
+ this.editor.openDialog( evtData.dialog, function( dialog ) {\r
+ var showListener,\r
+ okListener;\r
+\r
+ // Allow to add a custom dialog handler.\r
+ if ( that.fire( 'dialog', dialog ) === false )\r
+ return;\r
+\r
+ showListener = dialog.on( 'show', function() {\r
+ dialog.setupContent( that );\r
+ } );\r
+\r
+ okListener = dialog.on( 'ok', function() {\r
+ // Commit dialog's fields, but prevent from\r
+ // firing data event for every field. Fire only one,\r
+ // bulk event at the end.\r
+ var dataChanged,\r
+ dataListener = that.on( 'data', function( evt ) {\r
+ dataChanged = 1;\r
+ evt.cancel();\r
+ }, null, null, 0 );\r
+\r
+ // Create snapshot preceeding snapshot with changed widget...\r
+ // TODO it should not be required, but it is and I found similar\r
+ // code in dialog#ok listener in dialog/plugin.js.\r
+ that.editor.fire( 'saveSnapshot' );\r
+ dialog.commitContent( that );\r
+\r
+ dataListener.removeListener();\r
+ if ( dataChanged ) {\r
+ that.fire( 'data', that.data );\r
+ that.editor.fire( 'saveSnapshot' );\r
+ }\r
+ } );\r
+\r
+ dialog.once( 'hide', function() {\r
+ showListener.removeListener();\r
+ okListener.removeListener();\r
+ } );\r
+ } );\r
+\r
+ return true;\r
+ },\r
+\r
+ /**\r
+ * Returns widget element classes parsed to an object. This method\r
+ * is used to populate the `classes` property of widget's {@link #property-data}.\r
+ *\r
+ * This method reuses {@link CKEDITOR.plugins.widget.repository#parseElementClasses}.\r
+ * It should be overriden if a widget should handle classes differently (e.g. on other elements).\r
+ *\r
+ * See also: {@link #removeClass}, {@link #addClass}, {@link #hasClass}.\r
+ *\r
+ * @since 4.4\r
+ * @returns {Object}\r
+ */\r
+ getClasses: function() {\r
+ return this.repository.parseElementClasses( this.element.getAttribute( 'class' ) );\r
+ },\r
+\r
+ /**\r
+ * Checks if the widget element has specified class. This method is used by\r
+ * the {@link #checkStyleActive} method and should be overriden by widgets\r
+ * which should handle classes differently (e.g. on other elements).\r
+ *\r
+ * See also: {@link #removeClass}, {@link #addClass}, {@link #getClasses}.\r
+ *\r
+ * @since 4.4\r
+ * @param {String} className The class to be checked.\r
+ * @param {Boolean} Whether a widget has specified class.\r
+ */\r
+ hasClass: function( className ) {\r
+ return this.element.hasClass( className );\r
+ },\r
+\r
+ /**\r
+ * Initializes a nested editable.\r
+ *\r
+ * **Note**: Only elements from {@link CKEDITOR.dtd#$editable} may become editables.\r
+ *\r
+ * @param {String} editableName The nested editable name.\r
+ * @param {CKEDITOR.plugins.widget.nestedEditable.definition} definition The definition of the nested editable.\r
+ * @returns {Boolean} Whether an editable was successfully initialized.\r
+ */\r
+ initEditable: function( editableName, definition ) {\r
+ // Don't fetch just first element which matched selector but look for a correct one. (http://dev.ckeditor.com/ticket/13334)\r
+ var editable = this._findOneNotNested( definition.selector );\r
+\r
+ if ( editable && editable.is( CKEDITOR.dtd.$editable ) ) {\r
+ editable = new NestedEditable( this.editor, editable, {\r
+ filter: createEditableFilter.call( this.repository, this.name, editableName, definition )\r
+ } );\r
+ this.editables[ editableName ] = editable;\r
+\r
+ editable.setAttributes( {\r
+ contenteditable: 'true',\r
+ 'data-cke-widget-editable': editableName,\r
+ 'data-cke-enter-mode': editable.enterMode\r
+ } );\r
+\r
+ if ( editable.filter )\r
+ editable.data( 'cke-filter', editable.filter.id );\r
+\r
+ editable.addClass( 'cke_widget_editable' );\r
+ // This class may be left when d&ding widget which\r
+ // had focused editable. Clean this class here, not in\r
+ // cleanUpWidgetElement for performance and code size reasons.\r
+ editable.removeClass( 'cke_widget_editable_focused' );\r
+\r
+ if ( definition.pathName )\r
+ editable.data( 'cke-display-name', definition.pathName );\r
+\r
+ this.editor.focusManager.add( editable );\r
+ editable.on( 'focus', onEditableFocus, this );\r
+ CKEDITOR.env.ie && editable.on( 'blur', onEditableBlur, this );\r
+\r
+ // Finally, process editable's data. This data wasn't processed when loading\r
+ // editor's data, becuase they need to be processed separately, with its own filters and settings.\r
+ editable._.initialSetData = true;\r
+ editable.setData( editable.getHtml() );\r
+\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ /**\r
+ * Looks inside wrapper element to find a node that\r
+ * matches given selector and is not nested in other widget. (http://dev.ckeditor.com/ticket/13334)\r
+ *\r
+ * @since 4.5\r
+ * @private\r
+ * @param {String} selector Selector to match.\r
+ * @returns {CKEDITOR.dom.element} Matched element or `null` if a node has not been found.\r
+ */\r
+ _findOneNotNested: function( selector ) {\r
+ var matchedElements = this.wrapper.find( selector ),\r
+ match,\r
+ closestWrapper;\r
+\r
+ for ( var i = 0; i < matchedElements.count(); i++ ) {\r
+ match = matchedElements.getItem( i );\r
+ closestWrapper = match.getAscendant( Widget.isDomWidgetWrapper );\r
+\r
+ // The closest ascendant-wrapper of this match defines to which widget\r
+ // this match belongs. If the ascendant is this widget's wrapper\r
+ // it means that the match is not nested in other widget.\r
+ if ( this.wrapper.equals( closestWrapper ) ) {\r
+ return match;\r
+ }\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ /**\r
+ * Checks if a widget has already been initialized and has not been destroyed yet.\r
+ *\r
+ * See {@link #inited} for more details.\r
+ *\r
+ * @returns {Boolean}\r
+ */\r
+ isInited: function() {\r
+ return !!( this.wrapper && this.inited );\r
+ },\r
+\r
+ /**\r
+ * Checks if a widget is ready and has not been destroyed yet.\r
+ *\r
+ * See {@link #property-ready} for more details.\r
+ *\r
+ * @returns {Boolean}\r
+ */\r
+ isReady: function() {\r
+ return this.isInited() && this.ready;\r
+ },\r
+\r
+ /**\r
+ * Focuses a widget by selecting it.\r
+ */\r
+ focus: function() {\r
+ var sel = this.editor.getSelection();\r
+\r
+ // Fake the selection before focusing editor, to avoid unpreventable viewports scrolling\r
+ // on Webkit/Blink/IE which is done because there's no selection or selection was somewhere else than widget.\r
+ if ( sel ) {\r
+ var isDirty = this.editor.checkDirty();\r
+\r
+ sel.fake( this.wrapper );\r
+\r
+ !isDirty && this.editor.resetDirty();\r
+ }\r
+\r
+ // Always focus editor (not only when focusManger.hasFocus is false) (because of http://dev.ckeditor.com/ticket/10483).\r
+ this.editor.focus();\r
+ },\r
+\r
+ /**\r
+ * Removes a class from the widget element. This method is used by\r
+ * the {@link #removeStyle} method and should be overriden by widgets\r
+ * which should handle classes differently (e.g. on other elements).\r
+ *\r
+ * **Note**: This method should not be used directly. Use the {@link #setData} method to\r
+ * set the `classes` property. Read more in the {@link #setData} documentation.\r
+ *\r
+ * See also: {@link #hasClass}, {@link #addClass}.\r
+ *\r
+ * @since 4.4\r
+ * @param {String} className The class to be removed.\r
+ */\r
+ removeClass: function( className ) {\r
+ this.element.removeClass( className );\r
+ this.wrapper.removeClass( Widget.WRAPPER_CLASS_PREFIX + className );\r
+ },\r
+\r
+ /**\r
+ * Removes the specified style from the widget. It is highly recommended to use the\r
+ * {@link CKEDITOR.editor#removeStyle} or {@link CKEDITOR.style#remove} methods instead of\r
+ * using this method directly, because unlike editor's and style's methods, this one\r
+ * does not perform any checks.\r
+ *\r
+ * Read more about how applying/removing styles works in the {@link #applyStyle} method documentation.\r
+ *\r
+ * See also {@link #checkStyleActive}, {@link #applyStyle}, {@link #getClasses}.\r
+ *\r
+ * @since 4.4\r
+ * @param {CKEDITOR.style} style The custom widget style to be removed.\r
+ */\r
+ removeStyle: function( style ) {\r
+ applyRemoveStyle( this, style, 0 );\r
+ },\r
+\r
+ /**\r
+ * Sets widget value(s) in the {@link #property-data} object.\r
+ * If the given value(s) modifies current ones, the {@link #event-data} event is fired.\r
+ *\r
+ * this.setData( 'align', 'left' );\r
+ * this.data.align; // -> 'left'\r
+ *\r
+ * this.setData( { align: 'right', opened: false } );\r
+ * this.data.align; // -> 'right'\r
+ * this.data.opened; // -> false\r
+ *\r
+ * Set values are stored in {@link #element}'s attribute (`data-cke-widget-data`),\r
+ * in a JSON string, therefore {@link #property-data} should contain\r
+ * only serializable data.\r
+ *\r
+ * **Note:** A special data property, `classes`, exists. It contains an object with\r
+ * classes which were returned by the {@link #getClasses} method during the widget initialization.\r
+ * This property is then used by the {@link #applyStyle} and {@link #removeStyle} methods.\r
+ * When it is changed (the reference to object must be changed!), the widget updates its classes by\r
+ * using the {@link #addClass} and {@link #removeClass} methods.\r
+ *\r
+ * // Adding a new class.\r
+ * var classes = CKEDITOR.tools.clone( widget.data.classes );\r
+ * classes.newClass = 1;\r
+ * widget.setData( 'classes', classes );\r
+ *\r
+ * // Removing a class.\r
+ * var classes = CKEDITOR.tools.clone( widget.data.classes );\r
+ * delete classes.newClass;\r
+ * widget.setData( 'classes', classes );\r
+ *\r
+ * @param {String/Object} keyOrData\r
+ * @param {Object} value\r
+ * @chainable\r
+ */\r
+ setData: function( key, value ) {\r
+ var data = this.data,\r
+ modified = 0;\r
+\r
+ if ( typeof key == 'string' ) {\r
+ if ( data[ key ] !== value ) {\r
+ data[ key ] = value;\r
+ modified = 1;\r
+ }\r
+ }\r
+ else {\r
+ var newData = key;\r
+\r
+ for ( key in newData ) {\r
+ if ( data[ key ] !== newData[ key ] ) {\r
+ modified = 1;\r
+ data[ key ] = newData[ key ];\r
+ }\r
+ }\r
+ }\r
+\r
+ // Block firing data event and overwriting data element before setupWidgetData is executed.\r
+ if ( modified && this.dataReady ) {\r
+ writeDataToElement( this );\r
+ this.fire( 'data', data );\r
+ }\r
+\r
+ return this;\r
+ },\r
+\r
+ /**\r
+ * Changes the widget's focus state. This method is executed automatically after\r
+ * a widget was focused by the {@link #method-focus} method or the selection was moved\r
+ * out of the widget.\r
+ *\r
+ * This is a low-level method which is not integrated with e.g. the undo manager.\r
+ * Use the {@link #method-focus} method instead.\r
+ *\r
+ * @param {Boolean} selected Whether to select or deselect this widget.\r
+ * @chainable\r
+ */\r
+ setFocused: function( focused ) {\r
+ this.wrapper[ focused ? 'addClass' : 'removeClass' ]( 'cke_widget_focused' );\r
+ this.fire( focused ? 'focus' : 'blur' );\r
+ return this;\r
+ },\r
+\r
+ /**\r
+ * Changes the widget's select state. This method is executed automatically after\r
+ * a widget was selected by the {@link #method-focus} method or the selection\r
+ * was moved out of the widget.\r
+ *\r
+ * This is a low-level method which is not integrated with e.g. the undo manager.\r
+ * Use the {@link #method-focus} method instead or simply change the selection.\r
+ *\r
+ * @param {Boolean} selected Whether to select or deselect this widget.\r
+ * @chainable\r
+ */\r
+ setSelected: function( selected ) {\r
+ this.wrapper[ selected ? 'addClass' : 'removeClass' ]( 'cke_widget_selected' );\r
+ this.fire( selected ? 'select' : 'deselect' );\r
+ return this;\r
+ },\r
+\r
+ /**\r
+ * Repositions drag handler according to the widget's element position. Should be called from events, like mouseover.\r
+ */\r
+ updateDragHandlerPosition: function() {\r
+ var editor = this.editor,\r
+ domElement = this.element.$,\r
+ oldPos = this._.dragHandlerOffset,\r
+ newPos = {\r
+ x: domElement.offsetLeft,\r
+ y: domElement.offsetTop - DRAG_HANDLER_SIZE\r
+ };\r
+\r
+ if ( oldPos && newPos.x == oldPos.x && newPos.y == oldPos.y )\r
+ return;\r
+\r
+ // We need to make sure that dirty state is not changed (http://dev.ckeditor.com/ticket/11487).\r
+ var initialDirty = editor.checkDirty();\r
+\r
+ editor.fire( 'lockSnapshot' );\r
+ this.dragHandlerContainer.setStyles( {\r
+ top: newPos.y + 'px',\r
+ left: newPos.x + 'px',\r
+ display: 'block'\r
+ } );\r
+ editor.fire( 'unlockSnapshot' );\r
+ !initialDirty && editor.resetDirty();\r
+\r
+ this._.dragHandlerOffset = newPos;\r
+ }\r
+ };\r
+\r
+ CKEDITOR.event.implementOn( Widget.prototype );\r
+\r
+ /**\r
+ * Gets the {@link #isDomNestedEditable nested editable}\r
+ * (returned as a {@link CKEDITOR.dom.element}, not as a {@link CKEDITOR.plugins.widget.nestedEditable})\r
+ * closest to the `node` or the `node` if it is a nested editable itself.\r
+ *\r
+ * @since 4.5\r
+ * @static\r
+ * @param {CKEDITOR.dom.element} guard Stop ancestor search on this node (usually editor's editable).\r
+ * @param {CKEDITOR.dom.node} node Start the search from this node.\r
+ * @returns {CKEDITOR.dom.element/null} Element or `null` if not found.\r
+ */\r
+ Widget.getNestedEditable = function( guard, node ) {\r
+ if ( !node || node.equals( guard ) )\r
+ return null;\r
+\r
+ if ( Widget.isDomNestedEditable( node ) )\r
+ return node;\r
+\r
+ return Widget.getNestedEditable( guard, node.getParent() );\r
+ };\r
+\r
+ /**\r
+ * Checks whether the `node` is a widget's drag handle element.\r
+ *\r
+ * @since 4.5\r
+ * @static\r
+ * @param {CKEDITOR.dom.node} node\r
+ * @returns {Boolean}\r
+ */\r
+ Widget.isDomDragHandler = function( node ) {\r
+ return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-drag-handler' );\r
+ };\r
+\r
+ /**\r
+ * Checks whether the `node` is a container of the widget's drag handle element.\r
+ *\r
+ * @since 4.5\r
+ * @static\r
+ * @param {CKEDITOR.dom.node} node\r
+ * @returns {Boolean}\r
+ */\r
+ Widget.isDomDragHandlerContainer = function( node ) {\r
+ return node.type == CKEDITOR.NODE_ELEMENT && node.hasClass( 'cke_widget_drag_handler_container' );\r
+ };\r
+\r
+ /**\r
+ * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#editables nested editable}.\r
+ * Note that this function only checks whether it is the right element, not whether\r
+ * the passed `node` is an instance of {@link CKEDITOR.plugins.widget.nestedEditable}.\r
+ *\r
+ * @since 4.5\r
+ * @static\r
+ * @param {CKEDITOR.dom.node} node\r
+ * @returns {Boolean}\r
+ */\r
+ Widget.isDomNestedEditable = function( node ) {\r
+ return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-editable' );\r
+ };\r
+\r
+ /**\r
+ * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#element widget element}.\r
+ *\r
+ * @since 4.5\r
+ * @static\r
+ * @param {CKEDITOR.dom.node} node\r
+ * @returns {Boolean}\r
+ */\r
+ Widget.isDomWidgetElement = function( node ) {\r
+ return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-widget' );\r
+ };\r
+\r
+ /**\r
+ * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#wrapper widget wrapper}.\r
+ *\r
+ * @since 4.5\r
+ * @static\r
+ * @param {CKEDITOR.dom.element} node\r
+ * @returns {Boolean}\r
+ */\r
+ Widget.isDomWidgetWrapper = function( node ) {\r
+ return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-wrapper' );\r
+ };\r
+\r
+ /**\r
+ * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#element widget element}.\r
+ *\r
+ * @since 4.5\r
+ * @static\r
+ * @param {CKEDITOR.htmlParser.node} node\r
+ * @returns {Boolean}\r
+ */\r
+ Widget.isParserWidgetElement = function( node ) {\r
+ return node.type == CKEDITOR.NODE_ELEMENT && !!node.attributes[ 'data-widget' ];\r
+ };\r
+\r
+ /**\r
+ * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#wrapper widget wrapper}.\r
+ *\r
+ * @since 4.5\r
+ * @static\r
+ * @param {CKEDITOR.htmlParser.element} node\r
+ * @returns {Boolean}\r
+ */\r
+ Widget.isParserWidgetWrapper = function( node ) {\r
+ return node.type == CKEDITOR.NODE_ELEMENT && !!node.attributes[ 'data-cke-widget-wrapper' ];\r
+ };\r
+\r
+ /**\r
+ * Prefix added to wrapper classes. Each class added to the widget element by the {@link #addClass}\r
+ * method will also be added to the wrapper prefixed with it.\r
+ *\r
+ * @since 4.6.0\r
+ * @static\r
+ * @readonly\r
+ * @property {String} [='cke_widget_wrapper_']\r
+ */\r
+ Widget.WRAPPER_CLASS_PREFIX = 'cke_widget_wrapper_';\r
+\r
+ /**\r
+ * An event fired when a widget is ready (fully initialized). This event is fired after:\r
+ *\r
+ * * {@link #init} is called,\r
+ * * The first {@link #event-data} event is fired,\r
+ * * A widget is attached to the document.\r
+ *\r
+ * Therefore, in case of widget creation with a command which opens a dialog window, this event\r
+ * will be delayed after the dialog window is closed and the widget is finally inserted into the document.\r
+ *\r
+ * **Note**: If your widget does not use automatic dialog window binding (i.e. you open the dialog window manually)\r
+ * or another situation in which the widget wrapper is not attached to document at the time when it is\r
+ * initialized occurs, you need to take care of firing {@link #event-ready} yourself.\r
+ *\r
+ * See also {@link #property-ready} and {@link #property-inited} properties, and\r
+ * {@link #isReady} and {@link #isInited} methods.\r
+ *\r
+ * @event ready\r
+ */\r
+\r
+ /**\r
+ * An event fired when a widget is about to be destroyed, but before it is\r
+ * fully torn down.\r
+ *\r
+ * @event destroy\r
+ */\r
+\r
+ /**\r
+ * An event fired when a widget is focused.\r
+ *\r
+ * Widget can be focused by executing {@link #method-focus}.\r
+ *\r
+ * @event focus\r
+ */\r
+\r
+ /**\r
+ * An event fired when a widget is blurred.\r
+ *\r
+ * @event blur\r
+ */\r
+\r
+ /**\r
+ * An event fired when a widget is selected.\r
+ *\r
+ * @event select\r
+ */\r
+\r
+ /**\r
+ * An event fired when a widget is deselected.\r
+ *\r
+ * @event deselect\r
+ */\r
+\r
+ /**\r
+ * An event fired by the {@link #method-edit} method. It can be canceled\r
+ * in order to stop the default action (opening a dialog window and/or\r
+ * {@link CKEDITOR.plugins.widget.repository#finalizeCreation finalizing widget creation}).\r
+ *\r
+ * @event edit\r
+ * @param data\r
+ * @param {String} data.dialog Defaults to {@link CKEDITOR.plugins.widget.definition#dialog}\r
+ * and can be changed or set by the listener.\r
+ */\r
+\r
+ /**\r
+ * An event fired when a dialog window for widget editing is opened.\r
+ * This event can be canceled in order to handle the editing dialog in a custom manner.\r
+ *\r
+ * @event dialog\r
+ * @param {CKEDITOR.dialog} data The opened dialog window instance.\r
+ */\r
+\r
+ /**\r
+ * An event fired when a key is pressed on a focused widget.\r
+ * This event is forwarded from the {@link CKEDITOR.editor#key} event and\r
+ * has the ability to block editor keystrokes if it is canceled.\r
+ *\r
+ * @event key\r
+ * @param data\r
+ * @param {Number} data.keyCode A number representing the key code (or combination).\r
+ */\r
+\r
+ /**\r
+ * An event fired when a widget is double clicked.\r
+ *\r
+ * **Note:** If a default editing action is executed on double click (i.e. a widget has a\r
+ * {@link CKEDITOR.plugins.widget.definition#dialog dialog} defined and the {@link #event-doubleclick} event was not\r
+ * canceled), this event will be automatically canceled, so a listener added with the default priority (10)\r
+ * will not be executed. Use a listener with low priority (e.g. 5) to be sure that it will be executed.\r
+ *\r
+ * widget.on( 'doubleclick', function( evt ) {\r
+ * console.log( 'widget#doubleclick' );\r
+ * }, null, null, 5 );\r
+ *\r
+ * If your widget handles double click in a special way (so the default editing action is not executed),\r
+ * make sure you cancel this event, because otherwise it will be propagated to {@link CKEDITOR.editor#doubleclick}\r
+ * and another feature may step in (e.g. a Link dialog window may be opened if your widget was inside a link).\r
+ *\r
+ * @event doubleclick\r
+ * @param data\r
+ * @param {CKEDITOR.dom.element} data.element The double-clicked element.\r
+ */\r
+\r
+ /**\r
+ * An event fired when the context menu is opened for a widget.\r
+ *\r
+ * @event contextMenu\r
+ * @param data The object containing context menu options to be added\r
+ * for this widget. See {@link CKEDITOR.plugins.contextMenu#addListener}.\r
+ */\r
+\r
+ /**\r
+ * An event fired when the widget data changed. See the {@link #setData} method and the {@link #property-data} property.\r
+ *\r
+ * @event data\r
+ */\r
+\r
+\r
+\r
+ /**\r
+ * The wrapper class for editable elements inside widgets.\r
+ *\r
+ * Do not use directly. Use {@link CKEDITOR.plugins.widget.definition#editables} or\r
+ * {@link CKEDITOR.plugins.widget#initEditable}.\r
+ *\r
+ * @class CKEDITOR.plugins.widget.nestedEditable\r
+ * @extends CKEDITOR.dom.element\r
+ * @constructor\r
+ * @param {CKEDITOR.editor} editor\r
+ * @param {CKEDITOR.dom.element} element\r
+ * @param config\r
+ * @param {CKEDITOR.filter} [config.filter]\r
+ */\r
+ function NestedEditable( editor, element, config ) {\r
+ // Call the base constructor.\r
+ CKEDITOR.dom.element.call( this, element.$ );\r
+ this.editor = editor;\r
+ this._ = {};\r
+ var filter = this.filter = config.filter;\r
+\r
+ // If blockless editable - always use BR mode.\r
+ if ( !CKEDITOR.dtd[ this.getName() ].p )\r
+ this.enterMode = this.shiftEnterMode = CKEDITOR.ENTER_BR;\r
+ else {\r
+ this.enterMode = filter ? filter.getAllowedEnterMode( editor.enterMode ) : editor.enterMode;\r
+ this.shiftEnterMode = filter ? filter.getAllowedEnterMode( editor.shiftEnterMode, true ) : editor.shiftEnterMode;\r
+ }\r
+ }\r
+\r
+ NestedEditable.prototype = CKEDITOR.tools.extend( CKEDITOR.tools.prototypedCopy( CKEDITOR.dom.element.prototype ), {\r
+ /**\r
+ * Sets the editable data. The data will be passed through the {@link CKEDITOR.editor#dataProcessor}\r
+ * and the {@link CKEDITOR.editor#filter}. This ensures that the data was filtered and prepared to be\r
+ * edited like the {@link CKEDITOR.editor#method-setData editor data}.\r
+ *\r
+ * Before content is changed, all nested widgets are destroyed. Afterwards, after new content is loaded,\r
+ * all nested widgets are initialized.\r
+ *\r
+ * @param {String} data\r
+ */\r
+ setData: function( data ) {\r
+ // For performance reasons don't call destroyAll when initializing a nested editable,\r
+ // because there are no widgets inside.\r
+ if ( !this._.initialSetData ) {\r
+ // Destroy all nested widgets before setting data.\r
+ this.editor.widgets.destroyAll( false, this );\r
+ }\r
+ this._.initialSetData = false;\r
+\r
+ data = this.editor.dataProcessor.toHtml( data, {\r
+ context: this.getName(),\r
+ filter: this.filter,\r
+ enterMode: this.enterMode\r
+ } );\r
+ this.setHtml( data );\r
+\r
+ this.editor.widgets.initOnAll( this );\r
+ },\r
+\r
+ /**\r
+ * Gets the editable data. Like {@link #setData}, this method will process and filter the data.\r
+ *\r
+ * @returns {String}\r
+ */\r
+ getData: function() {\r
+ return this.editor.dataProcessor.toDataFormat( this.getHtml(), {\r
+ context: this.getName(),\r
+ filter: this.filter,\r
+ enterMode: this.enterMode\r
+ } );\r
+ }\r
+ } );\r
+\r
+ /**\r
+ * The editor instance.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.editor} editor\r
+ */\r
+\r
+ /**\r
+ * The filter instance if allowed content rules were defined.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.filter} filter\r
+ */\r
+\r
+ /**\r
+ * The enter mode active in this editable.\r
+ * It is determined from editable's name (whether it is a blockless editable),\r
+ * its allowed content rules (if defined) and the default editor's mode.\r
+ *\r
+ * @readonly\r
+ * @property {Number} enterMode\r
+ */\r
+\r
+ /**\r
+ * The shift enter move active in this editable.\r
+ *\r
+ * @readonly\r
+ * @property {Number} shiftEnterMode\r
+ */\r
+\r
+\r
+ //\r
+ // REPOSITORY helpers -----------------------------------------------------\r
+ //\r
+\r
+ function addWidgetButtons( editor ) {\r
+ var widgets = editor.widgets.registered,\r
+ widget,\r
+ widgetName,\r
+ widgetButton;\r
+\r
+ for ( widgetName in widgets ) {\r
+ widget = widgets[ widgetName ];\r
+\r
+ // Create button if defined.\r
+ widgetButton = widget.button;\r
+ if ( widgetButton && editor.ui.addButton ) {\r
+ editor.ui.addButton( CKEDITOR.tools.capitalize( widget.name, true ), {\r
+ label: widgetButton,\r
+ command: widget.name,\r
+ toolbar: 'insert,10'\r
+ } );\r
+ }\r
+ }\r
+ }\r
+\r
+ // Create a command creating and editing widget.\r
+ //\r
+ // @param editor\r
+ // @param {CKEDITOR.plugins.widget.definition} widgetDef\r
+ function addWidgetCommand( editor, widgetDef ) {\r
+ editor.addCommand( widgetDef.name, {\r
+ exec: function( editor, commandData ) {\r
+ var focused = editor.widgets.focused;\r
+ // If a widget of the same type is focused, start editing.\r
+ if ( focused && focused.name == widgetDef.name )\r
+ focused.edit();\r
+ // Otherwise...\r
+ // ... use insert method is was defined.\r
+ else if ( widgetDef.insert )\r
+ widgetDef.insert();\r
+ // ... or create a brand-new widget from template.\r
+ else if ( widgetDef.template ) {\r
+ var defaults = typeof widgetDef.defaults == 'function' ? widgetDef.defaults() : widgetDef.defaults,\r
+ element = CKEDITOR.dom.element.createFromHtml( widgetDef.template.output( defaults ) ),\r
+ instance,\r
+ wrapper = editor.widgets.wrapElement( element, widgetDef.name ),\r
+ temp = new CKEDITOR.dom.documentFragment( wrapper.getDocument() );\r
+\r
+ // Append wrapper to a temporary document. This will unify the environment\r
+ // in which #data listeners work when creating and editing widget.\r
+ temp.append( wrapper );\r
+ instance = editor.widgets.initOn( element, widgetDef, commandData && commandData.startupData );\r
+\r
+ // Instance could be destroyed during initialization.\r
+ // In this case finalize creation if some new widget\r
+ // was left in temporary document fragment.\r
+ if ( !instance ) {\r
+ finalizeCreation();\r
+ return;\r
+ }\r
+\r
+ // Listen on edit to finalize widget insertion.\r
+ //\r
+ // * If dialog was set, then insert widget after dialog was successfully saved or destroy this\r
+ // temporary instance.\r
+ // * If dialog wasn't set and edit wasn't canceled, insert widget.\r
+ var editListener = instance.once( 'edit', function( evt ) {\r
+ if ( evt.data.dialog ) {\r
+ instance.once( 'dialog', function( evt ) {\r
+ var dialog = evt.data,\r
+ okListener,\r
+ cancelListener;\r
+\r
+ // Finalize creation AFTER (20) new data was set.\r
+ okListener = dialog.once( 'ok', finalizeCreation, null, null, 20 );\r
+\r
+ cancelListener = dialog.once( 'cancel', function( evt ) {\r
+ if ( !( evt.data && evt.data.hide === false ) ) {\r
+ editor.widgets.destroy( instance, true );\r
+ }\r
+ } );\r
+\r
+ dialog.once( 'hide', function() {\r
+ okListener.removeListener();\r
+ cancelListener.removeListener();\r
+ } );\r
+ } );\r
+ } else {\r
+ // Dialog hasn't been set, so insert widget now.\r
+ finalizeCreation();\r
+ }\r
+ }, null, null, 999 );\r
+\r
+ instance.edit();\r
+\r
+ // Remove listener in case someone canceled it before this\r
+ // listener was executed.\r
+ editListener.removeListener();\r
+ }\r
+\r
+ function finalizeCreation() {\r
+ editor.widgets.finalizeCreation( temp );\r
+ }\r
+ },\r
+\r
+ allowedContent: widgetDef.allowedContent,\r
+ requiredContent: widgetDef.requiredContent,\r
+ contentForms: widgetDef.contentForms,\r
+ contentTransformations: widgetDef.contentTransformations\r
+ } );\r
+ }\r
+\r
+ function addWidgetProcessors( widgetsRepo, widgetDef ) {\r
+ var upcast = widgetDef.upcast,\r
+ upcasts,\r
+ priority = widgetDef.upcastPriority || 10;\r
+\r
+ if ( !upcast )\r
+ return;\r
+\r
+ // Multiple upcasts defined in string.\r
+ if ( typeof upcast == 'string' ) {\r
+ upcasts = upcast.split( ',' );\r
+ while ( upcasts.length ) {\r
+ addUpcast( widgetDef.upcasts[ upcasts.pop() ], widgetDef.name, priority );\r
+ }\r
+ }\r
+ // Single rule which is automatically activated.\r
+ else {\r
+ addUpcast( upcast, widgetDef.name, priority );\r
+ }\r
+\r
+ function addUpcast( upcast, name, priority ) {\r
+ // Find index of the first higher (in terms of value) priority upcast.\r
+ var index = CKEDITOR.tools.getIndex( widgetsRepo._.upcasts, function( element ) {\r
+ return element[ 2 ] > priority;\r
+ } );\r
+ // Add at the end if it is the highest priority so far.\r
+ if ( index < 0 ) {\r
+ index = widgetsRepo._.upcasts.length;\r
+ }\r
+\r
+ widgetsRepo._.upcasts.splice( index, 0, [ upcast, name, priority ] );\r
+ }\r
+ }\r
+\r
+ function blurWidget( widgetsRepo, widget ) {\r
+ widgetsRepo.focused = null;\r
+\r
+ if ( widget.isInited() ) {\r
+ var isDirty = widget.editor.checkDirty();\r
+\r
+ // Widget could be destroyed in the meantime - e.g. data could be set.\r
+ widgetsRepo.fire( 'widgetBlurred', { widget: widget } );\r
+ widget.setFocused( false );\r
+\r
+ !isDirty && widget.editor.resetDirty();\r
+ }\r
+ }\r
+\r
+ function checkWidgets( evt ) {\r
+ var options = evt.data;\r
+\r
+ if ( this.editor.mode != 'wysiwyg' )\r
+ return;\r
+\r
+ var editable = this.editor.editable(),\r
+ instances = this.instances,\r
+ newInstances, i, count, wrapper, notYetInitialized;\r
+\r
+ if ( !editable )\r
+ return;\r
+\r
+ // Remove widgets which have no corresponding elements in DOM.\r
+ for ( i in instances ) {\r
+ // http://dev.ckeditor.com/ticket/13410 Remove widgets that are ready. This prevents from destroying widgets that are during loading process.\r
+ if ( instances[ i ].isReady() && !editable.contains( instances[ i ].wrapper ) )\r
+ this.destroy( instances[ i ], true );\r
+ }\r
+\r
+ // Init on all (new) if initOnlyNew option was passed.\r
+ if ( options && options.initOnlyNew )\r
+ newInstances = this.initOnAll();\r
+ else {\r
+ var wrappers = editable.find( '.cke_widget_wrapper' );\r
+ newInstances = [];\r
+\r
+ // Create widgets on existing wrappers if they do not exists.\r
+ for ( i = 0, count = wrappers.count(); i < count; i++ ) {\r
+ wrapper = wrappers.getItem( i );\r
+ notYetInitialized = !this.getByElement( wrapper, true );\r
+\r
+ // Check if:\r
+ // * there's no instance for this widget\r
+ // * wrapper is not inside some temporary element like copybin (http://dev.ckeditor.com/ticket/11088)\r
+ // * it was a nested widget's wrapper which has been detached from DOM,\r
+ // when nested editable has been initialized (it overwrites its innerHTML\r
+ // and initializes nested widgets).\r
+ if ( notYetInitialized && !findParent( wrapper, isDomTemp ) && editable.contains( wrapper ) ) {\r
+ // Add cke_widget_new class because otherwise\r
+ // widget will not be created on such wrapper.\r
+ wrapper.addClass( 'cke_widget_new' );\r
+ newInstances.push( this.initOn( wrapper.getFirst( Widget.isDomWidgetElement ) ) );\r
+ }\r
+ }\r
+ }\r
+\r
+ // If only single widget was initialized and focusInited was passed, focus it.\r
+ if ( options && options.focusInited && newInstances.length == 1 )\r
+ newInstances[ 0 ].focus();\r
+ }\r
+\r
+ // Unwraps widget element and clean up element.\r
+ //\r
+ // This function is used to clean up pasted widgets.\r
+ // It should have similar result to widget#destroy plus\r
+ // some additional adjustments, specific for pasting.\r
+ //\r
+ // @param {CKEDITOR.htmlParser.element} el\r
+ function cleanUpWidgetElement( el ) {\r
+ var parent = el.parent;\r
+ if ( parent.type == CKEDITOR.NODE_ELEMENT && parent.attributes[ 'data-cke-widget-wrapper' ] )\r
+ parent.replaceWith( el );\r
+ }\r
+\r
+ // Similar to cleanUpWidgetElement, but works on DOM and finds\r
+ // widget elements by its own.\r
+ //\r
+ // Unlike cleanUpWidgetElement it will wrap element back.\r
+ //\r
+ // @param {CKEDITOR.dom.element} container\r
+ function cleanUpAllWidgetElements( widgetsRepo, container ) {\r
+ var wrappers = container.find( '.cke_widget_wrapper' ),\r
+ wrapper, element,\r
+ i = 0,\r
+ l = wrappers.count();\r
+\r
+ for ( ; i < l; ++i ) {\r
+ wrapper = wrappers.getItem( i );\r
+ element = wrapper.getFirst( Widget.isDomWidgetElement );\r
+ // If wrapper contains widget element - unwrap it and wrap again.\r
+ if ( element.type == CKEDITOR.NODE_ELEMENT && element.data( 'widget' ) ) {\r
+ element.replace( wrapper );\r
+ widgetsRepo.wrapElement( element );\r
+ } else {\r
+ // Otherwise - something is wrong... clean this up.\r
+ wrapper.remove();\r
+ }\r
+ }\r
+ }\r
+\r
+ // Creates {@link CKEDITOR.filter} instance for given widget, editable and rules.\r
+ //\r
+ // Once filter for widget-editable pair is created it is cached, so the same instance\r
+ // will be returned when method is executed again.\r
+ //\r
+ // @param {String} widgetName\r
+ // @param {String} editableName\r
+ // @param {CKEDITOR.plugins.widget.nestedEditableDefinition} editableDefinition The nested editable definition.\r
+ // @returns {CKEDITOR.filter} Filter instance or `null` if rules are not defined.\r
+ // @context CKEDITOR.plugins.widget.repository\r
+ function createEditableFilter( widgetName, editableName, editableDefinition ) {\r
+ if ( !editableDefinition.allowedContent && !editableDefinition.disallowedContent )\r
+ return null;\r
+\r
+ var editables = this._.filters[ widgetName ];\r
+\r
+ if ( !editables )\r
+ this._.filters[ widgetName ] = editables = {};\r
+\r
+ var filter = editables[ editableName ];\r
+\r
+ if ( !filter ) {\r
+ filter = editableDefinition.allowedContent ? new CKEDITOR.filter( editableDefinition.allowedContent ) : this.editor.filter.clone();\r
+\r
+ editables[ editableName ] = filter;\r
+\r
+ if ( editableDefinition.disallowedContent ) {\r
+ filter.disallow( editableDefinition.disallowedContent );\r
+ }\r
+ }\r
+\r
+ return filter;\r
+ }\r
+\r
+ // Creates an iterator function which when executed on all\r
+ // elements in DOM tree will gather elements that should be wrapped\r
+ // and initialized as widgets.\r
+ function createUpcastIterator( widgetsRepo ) {\r
+ var toBeWrapped = [],\r
+ upcasts = widgetsRepo._.upcasts,\r
+ upcastCallbacks = widgetsRepo._.upcastCallbacks;\r
+\r
+ return {\r
+ toBeWrapped: toBeWrapped,\r
+\r
+ iterator: function( element ) {\r
+ var upcast, upcasted,\r
+ data,\r
+ i,\r
+ upcastsLength,\r
+ upcastCallbacksLength;\r
+\r
+ // Wrapper found - find widget element, add it to be\r
+ // cleaned up (unwrapped) and wrapped and stop iterating in this branch.\r
+ if ( 'data-cke-widget-wrapper' in element.attributes ) {\r
+ element = element.getFirst( Widget.isParserWidgetElement );\r
+\r
+ if ( element )\r
+ toBeWrapped.push( [ element ] );\r
+\r
+ // Do not iterate over descendants.\r
+ return false;\r
+ }\r
+ // Widget element found - add it to be cleaned up (just in case)\r
+ // and wrapped and stop iterating in this branch.\r
+ else if ( 'data-widget' in element.attributes ) {\r
+ toBeWrapped.push( [ element ] );\r
+\r
+ // Do not iterate over descendants.\r
+ return false;\r
+ }\r
+ else if ( ( upcastsLength = upcasts.length ) ) {\r
+ // Ignore elements with data-cke-widget-upcasted to avoid multiple upcasts (http://dev.ckeditor.com/ticket/11533).\r
+ // Do not iterate over descendants.\r
+ if ( element.attributes[ 'data-cke-widget-upcasted' ] )\r
+ return false;\r
+\r
+ // Check element with upcast callbacks first.\r
+ // If any of them return false abort upcasting.\r
+ for ( i = 0, upcastCallbacksLength = upcastCallbacks.length; i < upcastCallbacksLength; ++i ) {\r
+ if ( upcastCallbacks[ i ]( element ) === false )\r
+ return;\r
+ // Return nothing in order to continue iterating over ascendants.\r
+ // See http://dev.ckeditor.com/ticket/11186#comment:6\r
+ }\r
+\r
+ for ( i = 0; i < upcastsLength; ++i ) {\r
+ upcast = upcasts[ i ];\r
+ data = {};\r
+\r
+ if ( ( upcasted = upcast[ 0 ]( element, data ) ) ) {\r
+ // If upcast function returned element, upcast this one.\r
+ // It can be e.g. a new element wrapping the original one.\r
+ if ( upcasted instanceof CKEDITOR.htmlParser.element )\r
+ element = upcasted;\r
+\r
+ // Set initial data attr with data from upcast method.\r
+ element.attributes[ 'data-cke-widget-data' ] = encodeURIComponent( JSON.stringify( data ) );\r
+ element.attributes[ 'data-cke-widget-upcasted' ] = 1;\r
+\r
+ toBeWrapped.push( [ element, upcast[ 1 ] ] );\r
+\r
+ // Do not iterate over descendants.\r
+ return false;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ };\r
+ }\r
+\r
+ // Finds a first parent that matches query.\r
+ //\r
+ // @param {CKEDITOR.dom.element} element\r
+ // @param {Function} query\r
+ function findParent( element, query ) {\r
+ var parent = element;\r
+\r
+ while ( ( parent = parent.getParent() ) ) {\r
+ if ( query( parent ) )\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+\r
+ function getWrapperAttributes( inlineWidget, name ) {\r
+ return {\r
+ // tabindex="-1" means that it can receive focus by code.\r
+ tabindex: -1,\r
+ contenteditable: 'false',\r
+ 'data-cke-widget-wrapper': 1,\r
+ 'data-cke-filter': 'off',\r
+ // Class cke_widget_new marks widgets which haven't been initialized yet.\r
+ 'class': 'cke_widget_wrapper cke_widget_new cke_widget_' +\r
+ ( inlineWidget ? 'inline' : 'block' ) +\r
+ ( name ? ' cke_widget_' + name : '' )\r
+ };\r
+ }\r
+\r
+ // Inserts element at given index.\r
+ // It will check DTD and split ancestor elements up to the first\r
+ // that can contain this element.\r
+ //\r
+ // @param {CKEDITOR.htmlParser.element} parent\r
+ // @param {Number} index\r
+ // @param {CKEDITOR.htmlParser.element} element\r
+ function insertElement( parent, index, element ) {\r
+ // Do not split doc fragment...\r
+ if ( parent.type == CKEDITOR.NODE_ELEMENT ) {\r
+ var parentAllows = CKEDITOR.dtd[ parent.name ];\r
+ // Parent element is known (included in DTD) and cannot contain\r
+ // this element.\r
+ if ( parentAllows && !parentAllows[ element.name ] ) {\r
+ var parent2 = parent.split( index ),\r
+ parentParent = parent.parent;\r
+\r
+ // Element will now be inserted at right parent's index.\r
+ index = parent2.getIndex();\r
+\r
+ // If left part of split is empty - remove it.\r
+ if ( !parent.children.length ) {\r
+ index -= 1;\r
+ parent.remove();\r
+ }\r
+\r
+ // If right part of split is empty - remove it.\r
+ if ( !parent2.children.length )\r
+ parent2.remove();\r
+\r
+ // Try inserting as grandpas' children.\r
+ return insertElement( parentParent, index, element );\r
+ }\r
+ }\r
+\r
+ // Finally we can add this element.\r
+ parent.add( element, index );\r
+ }\r
+\r
+ // Checks whether for the given widget definition and element widget should be created in inline or block mode.\r
+ //\r
+ // See also: {@link CKEDITOR.plugins.widget.definition#inline} and {@link CKEDITOR.plugins.widget#element}.\r
+ //\r
+ // @param {CKEDITOR.plugins.widget.definition} widgetDef The widget definition.\r
+ // @param {String} elementName The name of the widget element.\r
+ // @returns {Boolean}\r
+ function isWidgetInline( widgetDef, elementName ) {\r
+ return typeof widgetDef.inline == 'boolean' ? widgetDef.inline : !!CKEDITOR.dtd.$inline[ elementName ];\r
+ }\r
+\r
+ // @param {CKEDITOR.dom.element}\r
+ // @returns {Boolean}\r
+ function isDomTemp( element ) {\r
+ return element.hasAttribute( 'data-cke-temp' );\r
+ }\r
+\r
+ function onEditableKey( widget, keyCode ) {\r
+ var focusedEditable = widget.focusedEditable,\r
+ range;\r
+\r
+ // CTRL+A.\r
+ if ( keyCode == CKEDITOR.CTRL + 65 ) {\r
+ var bogus = focusedEditable.getBogus();\r
+\r
+ range = widget.editor.createRange();\r
+ range.selectNodeContents( focusedEditable );\r
+ // Exclude bogus if exists.\r
+ if ( bogus )\r
+ range.setEndAt( bogus, CKEDITOR.POSITION_BEFORE_START );\r
+\r
+ range.select();\r
+ // Cancel event - block default.\r
+ return false;\r
+ }\r
+ // DEL or BACKSPACE.\r
+ else if ( keyCode == 8 || keyCode == 46 ) {\r
+ var ranges = widget.editor.getSelection().getRanges();\r
+\r
+ range = ranges[ 0 ];\r
+\r
+ // Block del or backspace if at editable's boundary.\r
+ return !( ranges.length == 1 && range.collapsed &&\r
+ range.checkBoundaryOfElement( focusedEditable, CKEDITOR[ keyCode == 8 ? 'START' : 'END' ] ) );\r
+ }\r
+ }\r
+\r
+ function setFocusedEditable( widgetsRepo, widget, editableElement, offline ) {\r
+ var editor = widgetsRepo.editor;\r
+\r
+ editor.fire( 'lockSnapshot' );\r
+\r
+ if ( editableElement ) {\r
+ var editableName = editableElement.data( 'cke-widget-editable' ),\r
+ editableInstance = widget.editables[ editableName ];\r
+\r
+ widgetsRepo.widgetHoldingFocusedEditable = widget;\r
+ widget.focusedEditable = editableInstance;\r
+ editableElement.addClass( 'cke_widget_editable_focused' );\r
+\r
+ if ( editableInstance.filter )\r
+ editor.setActiveFilter( editableInstance.filter );\r
+ editor.setActiveEnterMode( editableInstance.enterMode, editableInstance.shiftEnterMode );\r
+ } else {\r
+ if ( !offline )\r
+ widget.focusedEditable.removeClass( 'cke_widget_editable_focused' );\r
+\r
+ widget.focusedEditable = null;\r
+ widgetsRepo.widgetHoldingFocusedEditable = null;\r
+ editor.setActiveFilter( null );\r
+ editor.setActiveEnterMode( null, null );\r
+ }\r
+\r
+ editor.fire( 'unlockSnapshot' );\r
+ }\r
+\r
+ function setupContextMenu( editor ) {\r
+ if ( !editor.contextMenu )\r
+ return;\r
+\r
+ editor.contextMenu.addListener( function( element ) {\r
+ var widget = editor.widgets.getByElement( element, true );\r
+\r
+ if ( widget )\r
+ return widget.fire( 'contextMenu', {} );\r
+ } );\r
+ }\r
+\r
+ // And now we've got two problems - original problem and RegExp.\r
+ // Some softeners:\r
+ // * FF tends to copy all blocks up to the copybin container.\r
+ // * IE tends to copy only the copybin, without its container.\r
+ // * We use spans on IE and blockless editors, but divs in other cases.\r
+ var pasteReplaceRegex = new RegExp(\r
+ '^' +\r
+ '(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?' +\r
+ '(?:<(?:div|span)(?: style="[^"]+")?>)?' +\r
+ '<span [^>]*data-cke-copybin-start="1"[^>]*>.?</span>([\\s\\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?</span>' +\r
+ '(?:</(?:div|span)>)?' +\r
+ '(?:</(?:div|span)>)?' +\r
+ '$',\r
+ // IE8 prefers uppercase when browsers stick to lowercase HTML (http://dev.ckeditor.com/ticket/13460).\r
+ 'i'\r
+ );\r
+\r
+ function pasteReplaceFn( match, wrapperHtml ) {\r
+ // Avoid polluting pasted data with any whitspaces,\r
+ // what's going to break check whether only one widget was pasted.\r
+ return CKEDITOR.tools.trim( wrapperHtml );\r
+ }\r
+\r
+ function setupDragAndDrop( widgetsRepo ) {\r
+ var editor = widgetsRepo.editor,\r
+ lineutils = CKEDITOR.plugins.lineutils;\r
+\r
+ // These listeners handle inline and block widgets drag and drop.\r
+ // The only thing we need to do to make block widgets custom drag and drop functionality\r
+ // is to fire those events with the right properties (like the target which must be the drag handle).\r
+ editor.on( 'dragstart', function( evt ) {\r
+ var target = evt.data.target;\r
+\r
+ if ( Widget.isDomDragHandler( target ) ) {\r
+ var widget = widgetsRepo.getByElement( target );\r
+\r
+ evt.data.dataTransfer.setData( 'cke/widget-id', widget.id );\r
+\r
+ // IE needs focus.\r
+ editor.focus();\r
+\r
+ // and widget need to be focused on drag start (http://dev.ckeditor.com/ticket/12172#comment:10).\r
+ widget.focus();\r
+ }\r
+ } );\r
+\r
+ editor.on( 'drop', function( evt ) {\r
+ var dataTransfer = evt.data.dataTransfer,\r
+ id = dataTransfer.getData( 'cke/widget-id' ),\r
+ transferType = dataTransfer.getTransferType( editor ),\r
+ dragRange = editor.createRange(),\r
+ sourceWidget;\r
+\r
+ // Disable cross-editor drag & drop for widgets - http://dev.ckeditor.com/ticket/13599.\r
+ if ( id !== '' && transferType === CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ) {\r
+ evt.cancel();\r
+ return;\r
+ }\r
+\r
+ if ( id === '' || transferType != CKEDITOR.DATA_TRANSFER_INTERNAL ) {\r
+ return;\r
+ }\r
+\r
+ sourceWidget = widgetsRepo.instances[ id ];\r
+ if ( !sourceWidget ) {\r
+ return;\r
+ }\r
+\r
+ dragRange.setStartBefore( sourceWidget.wrapper );\r
+ dragRange.setEndAfter( sourceWidget.wrapper );\r
+ evt.data.dragRange = dragRange;\r
+\r
+ // [IE8-9] Reset state of the clipboard#fixSplitNodesAfterDrop fix because by setting evt.data.dragRange\r
+ // (see above) after drop happened we do not need it. That fix is needed only if dragRange was created\r
+ // before drop (before text node was split).\r
+ delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount;\r
+ delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount;\r
+\r
+ evt.data.dataTransfer.setData( 'text/html', editor.editable().getHtmlFromRange( dragRange ).getHtml() );\r
+ editor.widgets.destroy( sourceWidget, true );\r
+ } );\r
+\r
+ editor.on( 'contentDom', function() {\r
+ var editable = editor.editable();\r
+\r
+ // Register Lineutils's utilities as properties of repo.\r
+ CKEDITOR.tools.extend( widgetsRepo, {\r
+ finder: new lineutils.finder( editor, {\r
+ lookups: {\r
+ // Element is block but not list item and not in nested editable.\r
+ 'default': function( el ) {\r
+ if ( el.is( CKEDITOR.dtd.$listItem ) )\r
+ return;\r
+\r
+ if ( !el.is( CKEDITOR.dtd.$block ) )\r
+ return;\r
+\r
+ // Allow drop line inside, but never before or after nested editable (http://dev.ckeditor.com/ticket/12006).\r
+ if ( Widget.isDomNestedEditable( el ) )\r
+ return;\r
+\r
+ // Do not allow droping inside the widget being dragged (http://dev.ckeditor.com/ticket/13397).\r
+ if ( widgetsRepo._.draggedWidget.wrapper.contains( el ) ) {\r
+ return;\r
+ }\r
+\r
+ // If element is nested editable, make sure widget can be dropped there (http://dev.ckeditor.com/ticket/12006).\r
+ var nestedEditable = Widget.getNestedEditable( editable, el );\r
+ if ( nestedEditable ) {\r
+ var draggedWidget = widgetsRepo._.draggedWidget;\r
+\r
+ // Don't let the widget to be dropped into its own nested editable.\r
+ if ( widgetsRepo.getByElement( nestedEditable ) == draggedWidget )\r
+ return;\r
+\r
+ var filter = CKEDITOR.filter.instances[ nestedEditable.data( 'cke-filter' ) ],\r
+ draggedRequiredContent = draggedWidget.requiredContent;\r
+\r
+ // There will be no relation if the filter of nested editable does not allow\r
+ // requiredContent of dragged widget.\r
+ if ( filter && draggedRequiredContent && !filter.check( draggedRequiredContent ) )\r
+ return;\r
+ }\r
+\r
+ return CKEDITOR.LINEUTILS_BEFORE | CKEDITOR.LINEUTILS_AFTER;\r
+ }\r
+ }\r
+ } ),\r
+ locator: new lineutils.locator( editor ),\r
+ liner: new lineutils.liner( editor, {\r
+ lineStyle: {\r
+ cursor: 'move !important',\r
+ 'border-top-color': '#666'\r
+ },\r
+ tipLeftStyle: {\r
+ 'border-left-color': '#666'\r
+ },\r
+ tipRightStyle: {\r
+ 'border-right-color': '#666'\r
+ }\r
+ } )\r
+ }, true );\r
+ } );\r
+ }\r
+\r
+ // Setup mouse observer which will trigger:\r
+ // * widget focus on widget click,\r
+ // * widget#doubleclick forwarded from editor#doubleclick.\r
+ function setupMouseObserver( widgetsRepo ) {\r
+ var editor = widgetsRepo.editor;\r
+\r
+ editor.on( 'contentDom', function() {\r
+ var editable = editor.editable(),\r
+ evtRoot = editable.isInline() ? editable : editor.document,\r
+ widget,\r
+ mouseDownOnDragHandler;\r
+\r
+ editable.attachListener( evtRoot, 'mousedown', function( evt ) {\r
+ var target = evt.data.getTarget();\r
+\r
+ // Clicking scrollbar in Chrome will invoke event with target object of document type (#663).\r
+ // In IE8 the target object will be empty (http://dev.ckeditor.com/ticket/10887).\r
+ // We need to check if target is a proper element.\r
+ widget = ( target instanceof CKEDITOR.dom.element ) ? widgetsRepo.getByElement( target ) : null;\r
+\r
+ mouseDownOnDragHandler = 0; // Reset.\r
+\r
+ // Widget was clicked, but not editable nested in it.\r
+ if ( widget ) {\r
+ // Ignore mousedown on drag and drop handler if the widget is inline.\r
+ // Block widgets are handled by Lineutils.\r
+ if ( widget.inline && target.type == CKEDITOR.NODE_ELEMENT && target.hasAttribute( 'data-cke-widget-drag-handler' ) ) {\r
+ mouseDownOnDragHandler = 1;\r
+\r
+ // When drag handler is pressed we have to clear current selection if it wasn't already on this widget.\r
+ // Otherwise, the selection may be in a fillingChar, which prevents dragging a widget. (http://dev.ckeditor.com/ticket/13284, see comment 8 and 9.)\r
+ if ( widgetsRepo.focused != widget )\r
+ editor.getSelection().removeAllRanges();\r
+\r
+ return;\r
+ }\r
+\r
+ if ( !Widget.getNestedEditable( widget.wrapper, target ) ) {\r
+ evt.data.preventDefault();\r
+ if ( !CKEDITOR.env.ie )\r
+ widget.focus();\r
+ } else {\r
+ // Reset widget so mouseup listener is not confused.\r
+ widget = null;\r
+ }\r
+ }\r
+ } );\r
+\r
+ // Focus widget on mouseup if mousedown was fired on drag handler.\r
+ // Note: mouseup won't be fired at all if widget was dragged and dropped, so\r
+ // this code will be executed only when drag handler was clicked.\r
+ editable.attachListener( evtRoot, 'mouseup', function() {\r
+ // Check if widget is not destroyed (if widget is destroyed the wrapper will be null).\r
+ if ( mouseDownOnDragHandler && widget && widget.wrapper ) {\r
+ mouseDownOnDragHandler = 0;\r
+ widget.focus();\r
+ }\r
+ } );\r
+\r
+ // On IE it is not enough to block mousedown. If widget wrapper (element with\r
+ // contenteditable=false attribute) is clicked directly (it is a target),\r
+ // then after mouseup/click IE will select that element.\r
+ // It is not possible to prevent that default action,\r
+ // so we force fake selection after everything happened.\r
+ if ( CKEDITOR.env.ie ) {\r
+ editable.attachListener( evtRoot, 'mouseup', function() {\r
+ setTimeout( function() {\r
+ // Check if widget is not destroyed (if widget is destroyed the wrapper will be null) and\r
+ // in editable contains widget (it could be dragged and removed).\r
+ if ( widget && widget.wrapper && editable.contains( widget.wrapper ) ) {\r
+ widget.focus();\r
+ widget = null;\r
+ }\r
+ } );\r
+ } );\r
+ }\r
+ } );\r
+\r
+ editor.on( 'doubleclick', function( evt ) {\r
+ var widget = widgetsRepo.getByElement( evt.data.element );\r
+\r
+ // Not in widget or in nested editable.\r
+ if ( !widget || Widget.getNestedEditable( widget.wrapper, evt.data.element ) )\r
+ return;\r
+\r
+ return widget.fire( 'doubleclick', { element: evt.data.element } );\r
+ }, null, null, 1 );\r
+ }\r
+\r
+ // Setup editor#key observer which will forward it\r
+ // to focused widget.\r
+ function setupKeyboardObserver( widgetsRepo ) {\r
+ var editor = widgetsRepo.editor;\r
+\r
+ editor.on( 'key', function( evt ) {\r
+ var focused = widgetsRepo.focused,\r
+ widgetHoldingFocusedEditable = widgetsRepo.widgetHoldingFocusedEditable,\r
+ ret;\r
+\r
+ if ( focused )\r
+ ret = focused.fire( 'key', { keyCode: evt.data.keyCode } );\r
+ else if ( widgetHoldingFocusedEditable )\r
+ ret = onEditableKey( widgetHoldingFocusedEditable, evt.data.keyCode );\r
+\r
+ return ret;\r
+ }, null, null, 1 );\r
+ }\r
+\r
+ // Setup copybin on native copy and cut events in order to handle copy and cut commands\r
+ // if user accepted security alert on IEs.\r
+ // Note: when copying or cutting using keystroke, copySingleWidget will be first executed\r
+ // by the keydown listener. Conflict between two calls will be resolved by copy_bin existence check.\r
+ function setupNativeCutAndCopy( widgetsRepo ) {\r
+ var editor = widgetsRepo.editor;\r
+\r
+ editor.on( 'contentDom', function() {\r
+ var editable = editor.editable();\r
+\r
+ editable.attachListener( editable, 'copy', eventListener );\r
+ editable.attachListener( editable, 'cut', eventListener );\r
+ } );\r
+\r
+ function eventListener( evt ) {\r
+ if ( widgetsRepo.focused )\r
+ copySingleWidget( widgetsRepo.focused, evt.name == 'cut' );\r
+ }\r
+ }\r
+\r
+ // Setup selection observer which will trigger:\r
+ // * widget select & focus on selection change,\r
+ // * nested editable focus (related properites and classes) on selection change,\r
+ // * deselecting and blurring all widgets on data,\r
+ // * blurring widget on editor blur.\r
+ function setupSelectionObserver( widgetsRepo ) {\r
+ var editor = widgetsRepo.editor;\r
+\r
+ editor.on( 'selectionCheck', function() {\r
+ widgetsRepo.fire( 'checkSelection' );\r
+ } );\r
+\r
+ widgetsRepo.on( 'checkSelection', widgetsRepo.checkSelection, widgetsRepo );\r
+\r
+ editor.on( 'selectionChange', function( evt ) {\r
+ var nestedEditable = Widget.getNestedEditable( editor.editable(), evt.data.selection.getStartElement() ),\r
+ newWidget = nestedEditable && widgetsRepo.getByElement( nestedEditable ),\r
+ oldWidget = widgetsRepo.widgetHoldingFocusedEditable;\r
+\r
+ if ( oldWidget ) {\r
+ if ( oldWidget !== newWidget || !oldWidget.focusedEditable.equals( nestedEditable ) ) {\r
+ setFocusedEditable( widgetsRepo, oldWidget, null );\r
+\r
+ if ( newWidget && nestedEditable )\r
+ setFocusedEditable( widgetsRepo, newWidget, nestedEditable );\r
+ }\r
+ }\r
+ // It may happen that there's no widget even if editable was found -\r
+ // e.g. if selection was automatically set in editable although widget wasn't initialized yet.\r
+ else if ( newWidget && nestedEditable ) {\r
+ setFocusedEditable( widgetsRepo, newWidget, nestedEditable );\r
+ }\r
+ } );\r
+\r
+ // Invalidate old widgets early - immediately on dataReady.\r
+ editor.on( 'dataReady', function() {\r
+ // Deselect and blur all widgets.\r
+ stateUpdater( widgetsRepo ).commit();\r
+ } );\r
+\r
+ editor.on( 'blur', function() {\r
+ var widget;\r
+\r
+ if ( ( widget = widgetsRepo.focused ) )\r
+ blurWidget( widgetsRepo, widget );\r
+\r
+ if ( ( widget = widgetsRepo.widgetHoldingFocusedEditable ) )\r
+ setFocusedEditable( widgetsRepo, widget, null );\r
+ } );\r
+ }\r
+\r
+ // Set up actions like:\r
+ // * processing in toHtml/toDataFormat,\r
+ // * pasting handling,\r
+ // * insertion handling,\r
+ // * editable reload handling (setData, mode switch, undo/redo),\r
+ // * DOM invalidation handling,\r
+ // * widgets checks.\r
+ function setupWidgetsLifecycle( widgetsRepo ) {\r
+ setupWidgetsLifecycleStart( widgetsRepo );\r
+ setupWidgetsLifecycleEnd( widgetsRepo );\r
+\r
+ widgetsRepo.on( 'checkWidgets', checkWidgets );\r
+ widgetsRepo.editor.on( 'contentDomInvalidated', widgetsRepo.checkWidgets, widgetsRepo );\r
+ }\r
+\r
+ function setupWidgetsLifecycleEnd( widgetsRepo ) {\r
+ var editor = widgetsRepo.editor,\r
+ downcastingSessions = {};\r
+\r
+ // Listen before htmlDP#htmlFilter is applied to cache all widgets, because we'll\r
+ // loose data-cke-* attributes.\r
+ editor.on( 'toDataFormat', function( evt ) {\r
+ // To avoid conflicts between htmlDP#toDF calls done at the same time\r
+ // (e.g. nestedEditable#getData called during downcasting some widget)\r
+ // mark every toDataFormat event chain with the downcasting session id.\r
+ var id = CKEDITOR.tools.getNextNumber(),\r
+ toBeDowncasted = [];\r
+ evt.data.downcastingSessionId = id;\r
+ downcastingSessions[ id ] = toBeDowncasted;\r
+\r
+ evt.data.dataValue.forEach( function( element ) {\r
+ var attrs = element.attributes,\r
+ widget, widgetElement;\r
+\r
+ // Wrapper.\r
+ // Perform first part of downcasting (cleanup) and cache widgets,\r
+ // because after applying DP's filter all data-cke-* attributes will be gone.\r
+ if ( 'data-cke-widget-id' in attrs ) {\r
+ widget = widgetsRepo.instances[ attrs[ 'data-cke-widget-id' ] ];\r
+ if ( widget ) {\r
+ widgetElement = element.getFirst( Widget.isParserWidgetElement );\r
+ toBeDowncasted.push( {\r
+ wrapper: element,\r
+ element: widgetElement,\r
+ widget: widget,\r
+ editables: {}\r
+ } );\r
+\r
+ // If widget did not have data-cke-widget attribute before upcasting remove it.\r
+ if ( widgetElement.attributes[ 'data-cke-widget-keep-attr' ] != '1' )\r
+ delete widgetElement.attributes[ 'data-widget' ];\r
+ }\r
+ }\r
+ // Nested editable.\r
+ else if ( 'data-cke-widget-editable' in attrs ) {\r
+ // Save the reference to this nested editable in the closest widget to be downcasted.\r
+ // Nested editables are downcasted in the successive toDataFormat to create an opportunity\r
+ // for dataFilter's "excludeNestedEditable" option to do its job (that option relies on\r
+ // contenteditable="true" attribute) (http://dev.ckeditor.com/ticket/11372).\r
+ toBeDowncasted[ toBeDowncasted.length - 1 ].editables[ attrs[ 'data-cke-widget-editable' ] ] = element;\r
+\r
+ // Don't check children - there won't be next wrapper or nested editable which we\r
+ // should process in this session.\r
+ return false;\r
+ }\r
+ }, CKEDITOR.NODE_ELEMENT, true );\r
+ }, null, null, 8 );\r
+\r
+ // Listen after dataProcessor.htmlFilter and ACF were applied\r
+ // so wrappers securing widgets' contents are removed after all filtering was done.\r
+ editor.on( 'toDataFormat', function( evt ) {\r
+ // Ignore some unmarked sessions.\r
+ if ( !evt.data.downcastingSessionId )\r
+ return;\r
+\r
+ var toBeDowncasted = downcastingSessions[ evt.data.downcastingSessionId ],\r
+ toBe, widget, widgetElement, retElement, editableElement, e;\r
+\r
+ while ( ( toBe = toBeDowncasted.shift() ) ) {\r
+ widget = toBe.widget;\r
+ widgetElement = toBe.element;\r
+ retElement = widget._.downcastFn && widget._.downcastFn.call( widget, widgetElement );\r
+\r
+ // Replace nested editables' content with their output data.\r
+ for ( e in toBe.editables ) {\r
+ editableElement = toBe.editables[ e ];\r
+\r
+ delete editableElement.attributes.contenteditable;\r
+ editableElement.setHtml( widget.editables[ e ].getData() );\r
+ }\r
+\r
+ // Returned element always defaults to widgetElement.\r
+ if ( !retElement )\r
+ retElement = widgetElement;\r
+\r
+ toBe.wrapper.replaceWith( retElement );\r
+ }\r
+ }, null, null, 13 );\r
+\r
+\r
+ editor.on( 'contentDomUnload', function() {\r
+ widgetsRepo.destroyAll( true );\r
+ } );\r
+ }\r
+\r
+ function setupWidgetsLifecycleStart( widgetsRepo ) {\r
+ var editor = widgetsRepo.editor,\r
+ processedWidgetOnly,\r
+ snapshotLoaded;\r
+\r
+ // Listen after ACF (so data are filtered),\r
+ // but before dataProcessor.dataFilter was applied (so we can secure widgets' internals).\r
+ editor.on( 'toHtml', function( evt ) {\r
+ var upcastIterator = createUpcastIterator( widgetsRepo ),\r
+ toBeWrapped;\r
+\r
+ evt.data.dataValue.forEach( upcastIterator.iterator, CKEDITOR.NODE_ELEMENT, true );\r
+\r
+ // Clean up and wrap all queued elements.\r
+ while ( ( toBeWrapped = upcastIterator.toBeWrapped.pop() ) ) {\r
+ cleanUpWidgetElement( toBeWrapped[ 0 ] );\r
+ widgetsRepo.wrapElement( toBeWrapped[ 0 ], toBeWrapped[ 1 ] );\r
+ }\r
+\r
+ // Used to determine whether only widget was pasted.\r
+ if ( evt.data.protectedWhitespaces ) {\r
+ // Whitespaces are protected by wrapping content with spans. Take the middle node only.\r
+ processedWidgetOnly = evt.data.dataValue.children.length == 3 &&\r
+ Widget.isParserWidgetWrapper( evt.data.dataValue.children[ 1 ] );\r
+ } else {\r
+ processedWidgetOnly = evt.data.dataValue.children.length == 1 &&\r
+ Widget.isParserWidgetWrapper( evt.data.dataValue.children[ 0 ] );\r
+ }\r
+ }, null, null, 8 );\r
+\r
+ editor.on( 'dataReady', function() {\r
+ // Clean up all widgets loaded from snapshot.\r
+ if ( snapshotLoaded )\r
+ cleanUpAllWidgetElements( widgetsRepo, editor.editable() );\r
+ snapshotLoaded = 0;\r
+\r
+ // Some widgets were destroyed on contentDomUnload,\r
+ // some on loadSnapshot, but that does not include\r
+ // e.g. setHtml on inline editor or widgets removed just\r
+ // before setting data.\r
+ widgetsRepo.destroyAll( true );\r
+ widgetsRepo.initOnAll();\r
+ } );\r
+\r
+ // Set flag so dataReady will know that additional\r
+ // cleanup is needed, because snapshot containing widgets was loaded.\r
+ editor.on( 'loadSnapshot', function( evt ) {\r
+ // Primitive but sufficient check which will prevent from executing\r
+ // heavier cleanUpAllWidgetElements if not needed.\r
+ if ( ( /data-cke-widget/ ).test( evt.data ) )\r
+ snapshotLoaded = 1;\r
+\r
+ widgetsRepo.destroyAll( true );\r
+ }, null, null, 9 );\r
+\r
+ // Handle pasted single widget.\r
+ editor.on( 'paste', function( evt ) {\r
+ var data = evt.data;\r
+\r
+ data.dataValue = data.dataValue.replace( pasteReplaceRegex, pasteReplaceFn );\r
+\r
+ // If drag'n'drop kind of paste into nested editable (data.range), selection is set AFTER\r
+ // data is pasted, which means editor has no chance to change activeFilter's context.\r
+ // As a result, pasted data is filtered with default editor's filter instead of NE's and\r
+ // funny things get inserted. Changing the filter by analysis of the paste range below (http://dev.ckeditor.com/ticket/13186).\r
+ if ( data.range ) {\r
+ // Check if pasting into nested editable.\r
+ var nestedEditable = Widget.getNestedEditable( editor.editable(), data.range.startContainer );\r
+\r
+ if ( nestedEditable ) {\r
+ // Retrieve the filter from NE's data and set it active before editor.insertHtml is done\r
+ // in clipboard plugin.\r
+ var filter = CKEDITOR.filter.instances[ nestedEditable.data( 'cke-filter' ) ];\r
+\r
+ if ( filter ) {\r
+ editor.setActiveFilter( filter );\r
+ }\r
+ }\r
+ }\r
+ } );\r
+\r
+ // Listen with high priority to check widgets after data was inserted.\r
+ editor.on( 'afterInsertHtml', function( evt ) {\r
+ if ( evt.data.intoRange ) {\r
+ widgetsRepo.checkWidgets( { initOnlyNew: true } );\r
+ } else {\r
+ editor.fire( 'lockSnapshot' );\r
+ // Init only new for performance reason.\r
+ // Focus inited if only widget was processed.\r
+ widgetsRepo.checkWidgets( { initOnlyNew: true, focusInited: processedWidgetOnly } );\r
+\r
+ editor.fire( 'unlockSnapshot' );\r
+ }\r
+ } );\r
+ }\r
+\r
+ // Helper for coordinating which widgets should be\r
+ // selected/deselected and which one should be focused/blurred.\r
+ function stateUpdater( widgetsRepo ) {\r
+ var currentlySelected = widgetsRepo.selected,\r
+ toBeSelected = [],\r
+ toBeDeselected = currentlySelected.slice( 0 ),\r
+ focused = null;\r
+\r
+ return {\r
+ select: function( widget ) {\r
+ if ( CKEDITOR.tools.indexOf( currentlySelected, widget ) < 0 )\r
+ toBeSelected.push( widget );\r
+\r
+ var index = CKEDITOR.tools.indexOf( toBeDeselected, widget );\r
+ if ( index >= 0 )\r
+ toBeDeselected.splice( index, 1 );\r
+\r
+ return this;\r
+ },\r
+\r
+ focus: function( widget ) {\r
+ focused = widget;\r
+ return this;\r
+ },\r
+\r
+ commit: function() {\r
+ var focusedChanged = widgetsRepo.focused !== focused,\r
+ widget, isDirty;\r
+\r
+ widgetsRepo.editor.fire( 'lockSnapshot' );\r
+\r
+ if ( focusedChanged && ( widget = widgetsRepo.focused ) )\r
+ blurWidget( widgetsRepo, widget );\r
+\r
+ while ( ( widget = toBeDeselected.pop() ) ) {\r
+ currentlySelected.splice( CKEDITOR.tools.indexOf( currentlySelected, widget ), 1 );\r
+ // Widget could be destroyed in the meantime - e.g. data could be set.\r
+ if ( widget.isInited() ) {\r
+ isDirty = widget.editor.checkDirty();\r
+\r
+ widget.setSelected( false );\r
+\r
+ !isDirty && widget.editor.resetDirty();\r
+ }\r
+ }\r
+\r
+ if ( focusedChanged && focused ) {\r
+ isDirty = widgetsRepo.editor.checkDirty();\r
+\r
+ widgetsRepo.focused = focused;\r
+ widgetsRepo.fire( 'widgetFocused', { widget: focused } );\r
+ focused.setFocused( true );\r
+\r
+ !isDirty && widgetsRepo.editor.resetDirty();\r
+ }\r
+\r
+ while ( ( widget = toBeSelected.pop() ) ) {\r
+ currentlySelected.push( widget );\r
+ widget.setSelected( true );\r
+ }\r
+\r
+ widgetsRepo.editor.fire( 'unlockSnapshot' );\r
+ }\r
+ };\r
+ }\r
+\r
+\r
+ //\r
+ // WIDGET helpers ---------------------------------------------------------\r
+ //\r
+\r
+ // LEFT, RIGHT, UP, DOWN, DEL, BACKSPACE - unblock default fake sel handlers.\r
+ var keystrokesNotBlockedByWidget = { 37: 1, 38: 1, 39: 1, 40: 1, 8: 1, 46: 1 };\r
+\r
+ // Applies or removes style's classes from widget.\r
+ // @param {CKEDITOR.style} style Custom widget style.\r
+ // @param {Boolean} apply Whether to apply or remove style.\r
+ function applyRemoveStyle( widget, style, apply ) {\r
+ var changed = 0,\r
+ classes = getStyleClasses( style ),\r
+ updatedClasses = widget.data.classes || {},\r
+ cl;\r
+\r
+ // Ee... Something is wrong with this style.\r
+ if ( !classes )\r
+ return;\r
+\r
+ // Clone, because we need to break reference.\r
+ updatedClasses = CKEDITOR.tools.clone( updatedClasses );\r
+\r
+ while ( ( cl = classes.pop() ) ) {\r
+ if ( apply ) {\r
+ if ( !updatedClasses[ cl ] )\r
+ changed = updatedClasses[ cl ] = 1;\r
+ } else {\r
+ if ( updatedClasses[ cl ] ) {\r
+ delete updatedClasses[ cl ];\r
+ changed = 1;\r
+ }\r
+ }\r
+ }\r
+ if ( changed )\r
+ widget.setData( 'classes', updatedClasses );\r
+ }\r
+\r
+ function cancel( evt ) {\r
+ evt.cancel();\r
+ }\r
+\r
+ function copySingleWidget( widget, isCut ) {\r
+ var editor = widget.editor,\r
+ doc = editor.document;\r
+\r
+ // We're still handling previous copy/cut.\r
+ // When keystroke is used to copy/cut this will also prevent\r
+ // conflict with copySingleWidget called again for native copy/cut event.\r
+ if ( doc.getById( 'cke_copybin' ) )\r
+ return;\r
+\r
+ // [IE] Use span for copybin and its container to avoid bug with expanding editable height by\r
+ // absolutely positioned element.\r
+ var copybinName = ( editor.blockless || CKEDITOR.env.ie ) ? 'span' : 'div',\r
+ copybin = doc.createElement( copybinName ),\r
+ copybinContainer = doc.createElement( copybinName ),\r
+ // IE8 always jumps to the end of document.\r
+ needsScrollHack = CKEDITOR.env.ie && CKEDITOR.env.version < 9;\r
+\r
+ copybinContainer.setAttributes( {\r
+ id: 'cke_copybin',\r
+ 'data-cke-temp': '1'\r
+ } );\r
+\r
+ // Position copybin element outside current viewport.\r
+ copybin.setStyles( {\r
+ position: 'absolute',\r
+ width: '1px',\r
+ height: '1px',\r
+ overflow: 'hidden'\r
+ } );\r
+\r
+ copybin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-5000px' );\r
+\r
+ var range = editor.createRange();\r
+ range.setStartBefore( widget.wrapper );\r
+ range.setEndAfter( widget.wrapper );\r
+\r
+ copybin.setHtml(\r
+ '<span data-cke-copybin-start="1">\u200b</span>' +\r
+ editor.editable().getHtmlFromRange( range ).getHtml() +\r
+ '<span data-cke-copybin-end="1">\u200b</span>' );\r
+\r
+ // Save snapshot with the current state.\r
+ editor.fire( 'saveSnapshot' );\r
+\r
+ // Ignore copybin.\r
+ editor.fire( 'lockSnapshot' );\r
+\r
+ copybinContainer.append( copybin );\r
+ editor.editable().append( copybinContainer );\r
+\r
+ var listener1 = editor.on( 'selectionChange', cancel, null, null, 0 ),\r
+ listener2 = widget.repository.on( 'checkSelection', cancel, null, null, 0 );\r
+\r
+ if ( needsScrollHack ) {\r
+ var docElement = doc.getDocumentElement().$,\r
+ scrollTop = docElement.scrollTop;\r
+ }\r
+\r
+ // Once the clone of the widget is inside of copybin, select\r
+ // the entire contents. This selection will be copied by the\r
+ // native browser's clipboard system.\r
+ range = editor.createRange();\r
+ range.selectNodeContents( copybin );\r
+ range.select();\r
+\r
+ if ( needsScrollHack )\r
+ docElement.scrollTop = scrollTop;\r
+\r
+ setTimeout( function() {\r
+ // [IE] Focus widget before removing copybin to avoid scroll jump.\r
+ if ( !isCut )\r
+ widget.focus();\r
+\r
+ copybinContainer.remove();\r
+\r
+ listener1.removeListener();\r
+ listener2.removeListener();\r
+\r
+ editor.fire( 'unlockSnapshot' );\r
+\r
+ if ( isCut ) {\r
+ widget.repository.del( widget );\r
+ editor.fire( 'saveSnapshot' );\r
+ }\r
+ }, 100 ); // Use 100ms, so Chrome (@Mac) will be able to grab the content.\r
+ }\r
+\r
+ // Extracts classes array from style instance.\r
+ function getStyleClasses( style ) {\r
+ var attrs = style.getDefinition().attributes,\r
+ classes = attrs && attrs[ 'class' ];\r
+\r
+ return classes ? classes.split( /\s+/ ) : null;\r
+ }\r
+\r
+ // [IE] Force keeping focus because IE sometimes forgets to fire focus on main editable\r
+ // when blurring nested editable.\r
+ // @context widget\r
+ function onEditableBlur() {\r
+ var active = CKEDITOR.document.getActive(),\r
+ editor = this.editor,\r
+ editable = editor.editable();\r
+\r
+ // If focus stays within editor override blur and set currentActive because it should be\r
+ // automatically changed to editable on editable#focus but it is not fired.\r
+ if ( ( editable.isInline() ? editable : editor.document.getWindow().getFrame() ).equals( active ) )\r
+ editor.focusManager.focus( editable );\r
+ }\r
+\r
+ // Force selectionChange when editable was focused.\r
+ // Similar to hack in selection.js#~620.\r
+ // @context widget\r
+ function onEditableFocus() {\r
+ // Gecko does not support 'DOMFocusIn' event on which we unlock selection\r
+ // in selection.js to prevent selection locking when entering nested editables.\r
+ if ( CKEDITOR.env.gecko )\r
+ this.editor.unlockSelection();\r
+\r
+ // We don't need to force selectionCheck on Webkit, because on Webkit\r
+ // we do that on DOMFocusIn in selection.js.\r
+ if ( !CKEDITOR.env.webkit ) {\r
+ this.editor.forceNextSelectionCheck();\r
+ this.editor.selectionChange( 1 );\r
+ }\r
+ }\r
+\r
+ // Setup listener on widget#data which will update (remove/add) classes\r
+ // by comparing newly set classes with the old ones.\r
+ function setupDataClassesListener( widget ) {\r
+ // Note: previousClasses and newClasses may be null!\r
+ // Tip: for ( cl in null ) is correct.\r
+ var previousClasses = null;\r
+\r
+ widget.on( 'data', function() {\r
+ var newClasses = this.data.classes,\r
+ cl;\r
+\r
+ // When setting new classes one need to remember\r
+ // that he must break reference.\r
+ if ( previousClasses == newClasses )\r
+ return;\r
+\r
+ for ( cl in previousClasses ) {\r
+ // Avoid removing and adding classes again.\r
+ if ( !( newClasses && newClasses[ cl ] ) )\r
+ this.removeClass( cl );\r
+ }\r
+ for ( cl in newClasses )\r
+ this.addClass( cl );\r
+\r
+ previousClasses = newClasses;\r
+ } );\r
+ }\r
+\r
+ // Add a listener to data event that will set/change widget's label (http://dev.ckeditor.com/ticket/14539).\r
+ function setupA11yListener( widget ) {\r
+ // Note, the function gets executed in a context of widget instance.\r
+ function getLabelDefault() {\r
+ return this.editor.lang.widget.label.replace( /%1/, this.pathName || this.element.getName() );\r
+ }\r
+\r
+ // Setting a listener on data is enough, there's no need to perform it on widget initialization, as\r
+ // setupWidgetData fires this event anyway.\r
+ widget.on( 'data', function() {\r
+ // In some cases widget might get destroyed in an earlier data listener. For instance, image2 plugin, does\r
+ // so when changing its internal state.\r
+ if ( !widget.wrapper ) {\r
+ return;\r
+ }\r
+\r
+ var label = this.getLabel ? this.getLabel() : getLabelDefault.call( this );\r
+\r
+ widget.wrapper.setAttribute( 'role', 'region' );\r
+ widget.wrapper.setAttribute( 'aria-label', label );\r
+ }, null, null, 9999 );\r
+ }\r
+\r
+ function setupDragHandler( widget ) {\r
+ if ( !widget.draggable )\r
+ return;\r
+\r
+ var editor = widget.editor,\r
+ // Use getLast to find wrapper's direct descendant (http://dev.ckeditor.com/ticket/12022).\r
+ container = widget.wrapper.getLast( Widget.isDomDragHandlerContainer ),\r
+ img;\r
+\r
+ // Reuse drag handler if already exists (http://dev.ckeditor.com/ticket/11281).\r
+ if ( container )\r
+ img = container.findOne( 'img' );\r
+ else {\r
+ container = new CKEDITOR.dom.element( 'span', editor.document );\r
+ container.setAttributes( {\r
+ 'class': 'cke_reset cke_widget_drag_handler_container',\r
+ // Split background and background-image for IE8 which will break on rgba().\r
+ style: 'background:rgba(220,220,220,0.5);background-image:url(' + editor.plugins.widget.path + 'images/handle.png)'\r
+ } );\r
+\r
+ img = new CKEDITOR.dom.element( 'img', editor.document );\r
+ img.setAttributes( {\r
+ 'class': 'cke_reset cke_widget_drag_handler',\r
+ 'data-cke-widget-drag-handler': '1',\r
+ src: CKEDITOR.tools.transparentImageData,\r
+ width: DRAG_HANDLER_SIZE,\r
+ title: editor.lang.widget.move,\r
+ height: DRAG_HANDLER_SIZE,\r
+ role: 'presentation'\r
+ } );\r
+ widget.inline && img.setAttribute( 'draggable', 'true' );\r
+\r
+ container.append( img );\r
+ widget.wrapper.append( container );\r
+ }\r
+\r
+ // Preventing page reload when dropped content on widget wrapper (http://dev.ckeditor.com/ticket/13015).\r
+ // Widget is not editable so by default drop on it isn't allowed what means that\r
+ // browser handles it (there's no editable#drop event). If there's no drop event we cannot block\r
+ // the drop, so page is reloaded. This listener enables drop on widget wrappers.\r
+ widget.wrapper.on( 'dragover', function( evt ) {\r
+ evt.data.preventDefault();\r
+ } );\r
+\r
+ widget.wrapper.on( 'mouseenter', widget.updateDragHandlerPosition, widget );\r
+ setTimeout( function() {\r
+ widget.on( 'data', widget.updateDragHandlerPosition, widget );\r
+ }, 50 );\r
+\r
+ if ( !widget.inline ) {\r
+ img.on( 'mousedown', onBlockWidgetDrag, widget );\r
+\r
+ // On IE8 'dragstart' is propagated to editable, so editor#dragstart is fired twice on block widgets.\r
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {\r
+ img.on( 'dragstart', function( evt ) {\r
+ evt.data.preventDefault( true );\r
+ } );\r
+ }\r
+ }\r
+\r
+ widget.dragHandlerContainer = container;\r
+ }\r
+\r
+ function onBlockWidgetDrag( evt ) {\r
+ var finder = this.repository.finder,\r
+ locator = this.repository.locator,\r
+ liner = this.repository.liner,\r
+ editor = this.editor,\r
+ editable = editor.editable(),\r
+ listeners = [],\r
+ sorted = [],\r
+ locations,\r
+ y;\r
+\r
+ // Mark dragged widget for repository#finder.\r
+ this.repository._.draggedWidget = this;\r
+\r
+ // Harvest all possible relations and display some closest.\r
+ var relations = finder.greedySearch(),\r
+\r
+ buffer = CKEDITOR.tools.eventsBuffer( 50, function() {\r
+ locations = locator.locate( relations );\r
+\r
+ // There's only a single line displayed for D&D.\r
+ sorted = locator.sort( y, 1 );\r
+\r
+ if ( sorted.length ) {\r
+ liner.prepare( relations, locations );\r
+ liner.placeLine( sorted[ 0 ] );\r
+ liner.cleanup();\r
+ }\r
+ } );\r
+\r
+ // Let's have the "dragging cursor" over entire editable.\r
+ editable.addClass( 'cke_widget_dragging' );\r
+\r
+ // Cache mouse position so it is re-used in events buffer.\r
+ listeners.push( editable.on( 'mousemove', function( evt ) {\r
+ y = evt.data.$.clientY;\r
+ buffer.input();\r
+ } ) );\r
+\r
+ // Fire drag start as it happens during the native D&D.\r
+ editor.fire( 'dragstart', { target: evt.sender } );\r
+\r
+ function onMouseUp() {\r
+ var l;\r
+\r
+ buffer.reset();\r
+\r
+ // Stop observing events.\r
+ while ( ( l = listeners.pop() ) )\r
+ l.removeListener();\r
+\r
+ onBlockWidgetDrop.call( this, sorted, evt.sender );\r
+ }\r
+\r
+ // Mouseup means "drop". This is when the widget is being detached\r
+ // from DOM and placed at range determined by the line (location).\r
+ listeners.push( editor.document.once( 'mouseup', onMouseUp, this ) );\r
+\r
+ // Prevent calling 'onBlockWidgetDrop' twice in the inline editor.\r
+ // `removeListener` does not work if it is called at the same time event is fired.\r
+ if ( !editable.isInline() ) {\r
+ // Mouseup may occur when user hovers the line, which belongs to\r
+ // the outer document. This is, of course, a valid listener too.\r
+ listeners.push( CKEDITOR.document.once( 'mouseup', onMouseUp, this ) );\r
+ }\r
+ }\r
+\r
+ function onBlockWidgetDrop( sorted, dragTarget ) {\r
+ var finder = this.repository.finder,\r
+ liner = this.repository.liner,\r
+ editor = this.editor,\r
+ editable = this.editor.editable();\r
+\r
+ if ( !CKEDITOR.tools.isEmpty( liner.visible ) ) {\r
+ // Retrieve range for the closest location.\r
+ var dropRange = finder.getRange( sorted[ 0 ] );\r
+\r
+ // Focus widget (it could lost focus after mousedown+mouseup)\r
+ // and save this state as the one where we want to be taken back when undoing.\r
+ this.focus();\r
+\r
+ // Drag range will be set in the drop listener.\r
+ editor.fire( 'drop', {\r
+ dropRange: dropRange,\r
+ target: dropRange.startContainer\r
+ } );\r
+ }\r
+\r
+ // Clean-up custom cursor for editable.\r
+ editable.removeClass( 'cke_widget_dragging' );\r
+\r
+ // Clean-up all remaining lines.\r
+ liner.hideVisible();\r
+\r
+ // Clean-up drag & drop.\r
+ editor.fire( 'dragend', { target: dragTarget } );\r
+ }\r
+\r
+ function setupEditables( widget ) {\r
+ var editableName,\r
+ editableDef,\r
+ definedEditables = widget.editables;\r
+\r
+ widget.editables = {};\r
+\r
+ if ( !widget.editables )\r
+ return;\r
+\r
+ for ( editableName in definedEditables ) {\r
+ editableDef = definedEditables[ editableName ];\r
+ widget.initEditable( editableName, typeof editableDef == 'string' ? { selector: editableDef } : editableDef );\r
+ }\r
+ }\r
+\r
+ function setupMask( widget ) {\r
+ if ( !widget.mask )\r
+ return;\r
+\r
+ // Reuse mask if already exists (http://dev.ckeditor.com/ticket/11281).\r
+ var img = widget.wrapper.findOne( '.cke_widget_mask' );\r
+\r
+ if ( !img ) {\r
+ img = new CKEDITOR.dom.element( 'img', widget.editor.document );\r
+ img.setAttributes( {\r
+ src: CKEDITOR.tools.transparentImageData,\r
+ 'class': 'cke_reset cke_widget_mask'\r
+ } );\r
+ widget.wrapper.append( img );\r
+ }\r
+\r
+ widget.mask = img;\r
+ }\r
+\r
+ // Replace parts object containing:\r
+ // partName => selector pairs\r
+ // with:\r
+ // partName => element pairs\r
+ function setupParts( widget ) {\r
+ if ( widget.parts ) {\r
+ var parts = {},\r
+ el, partName;\r
+\r
+ for ( partName in widget.parts ) {\r
+ el = widget.wrapper.findOne( widget.parts[ partName ] );\r
+ parts[ partName ] = el;\r
+ }\r
+ widget.parts = parts;\r
+ }\r
+ }\r
+\r
+ function setupWidget( widget, widgetDef ) {\r
+ setupWrapper( widget );\r
+ setupParts( widget );\r
+ setupEditables( widget );\r
+ setupMask( widget );\r
+ setupDragHandler( widget );\r
+ setupDataClassesListener( widget );\r
+ setupA11yListener( widget );\r
+\r
+ // http://dev.ckeditor.com/ticket/11145: [IE8] Non-editable content of widget is draggable.\r
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {\r
+ widget.wrapper.on( 'dragstart', function( evt ) {\r
+ var target = evt.data.getTarget();\r
+\r
+ // Allow text dragging inside nested editables or dragging inline widget's drag handler.\r
+ if ( !Widget.getNestedEditable( widget, target ) && !( widget.inline && Widget.isDomDragHandler( target ) ) )\r
+ evt.data.preventDefault();\r
+ } );\r
+ }\r
+\r
+ widget.wrapper.removeClass( 'cke_widget_new' );\r
+ widget.element.addClass( 'cke_widget_element' );\r
+\r
+ widget.on( 'key', function( evt ) {\r
+ var keyCode = evt.data.keyCode;\r
+\r
+ // ENTER.\r
+ if ( keyCode == 13 ) {\r
+ widget.edit();\r
+ // CTRL+C or CTRL+X.\r
+ } else if ( keyCode == CKEDITOR.CTRL + 67 || keyCode == CKEDITOR.CTRL + 88 ) {\r
+ copySingleWidget( widget, keyCode == CKEDITOR.CTRL + 88 );\r
+ return; // Do not preventDefault.\r
+ } else if ( keyCode in keystrokesNotBlockedByWidget || ( CKEDITOR.CTRL & keyCode ) || ( CKEDITOR.ALT & keyCode ) ) {\r
+ // Pass chosen keystrokes to other plugins or default fake sel handlers.\r
+ // Pass all CTRL/ALT keystrokes.\r
+ return;\r
+ }\r
+\r
+ return false;\r
+ }, null, null, 999 );\r
+ // Listen with high priority so it's possible\r
+ // to overwrite this callback.\r
+\r
+ widget.on( 'doubleclick', function( evt ) {\r
+ if ( widget.edit() ) {\r
+ // We have to cancel event if edit method opens a dialog, otherwise\r
+ // link plugin may open extra dialog (http://dev.ckeditor.com/ticket/12140).\r
+ evt.cancel();\r
+ }\r
+ } );\r
+\r
+ if ( widgetDef.data )\r
+ widget.on( 'data', widgetDef.data );\r
+\r
+ if ( widgetDef.edit )\r
+ widget.on( 'edit', widgetDef.edit );\r
+ }\r
+\r
+ function setupWidgetData( widget, startupData ) {\r
+ var widgetDataAttr = widget.element.data( 'cke-widget-data' );\r
+\r
+ if ( widgetDataAttr )\r
+ widget.setData( JSON.parse( decodeURIComponent( widgetDataAttr ) ) );\r
+ if ( startupData )\r
+ widget.setData( startupData );\r
+\r
+ // Populate classes if they are not preset.\r
+ if ( !widget.data.classes )\r
+ widget.setData( 'classes', widget.getClasses() );\r
+\r
+ // Unblock data and...\r
+ widget.dataReady = true;\r
+\r
+ // Write data to element because this was blocked when data wasn't ready.\r
+ writeDataToElement( widget );\r
+\r
+ // Fire data event first time, because this was blocked when data wasn't ready.\r
+ widget.fire( 'data', widget.data );\r
+ }\r
+\r
+ function setupWrapper( widget ) {\r
+ // Retrieve widget wrapper. Assign an id to it.\r
+ var wrapper = widget.wrapper = widget.element.getParent();\r
+ wrapper.setAttribute( 'data-cke-widget-id', widget.id );\r
+ }\r
+\r
+ function writeDataToElement( widget ) {\r
+ widget.element.data( 'cke-widget-data', encodeURIComponent( JSON.stringify( widget.data ) ) );\r
+ }\r
+\r
+ //\r
+ // WIDGET STYLE HANDLER ---------------------------------------------------\r
+ //\r
+\r
+ ( function() {\r
+ // Styles categorized by group. It is used to prevent applying styles for the same group being used together.\r
+ var styleGroups = {};\r
+\r
+ /**\r
+ * The class representing a widget style. It is an {@link CKEDITOR#STYLE_OBJECT object} like\r
+ * the styles handler for widgets.\r
+ *\r
+ * **Note:** This custom style handler does not support all methods of the {@link CKEDITOR.style} class.\r
+ * Not supported methods: {@link #applyToRange}, {@link #removeFromRange}, {@link #applyToObject}.\r
+ *\r
+ * @since 4.4\r
+ * @class CKEDITOR.style.customHandlers.widget\r
+ * @extends CKEDITOR.style\r
+ */\r
+ CKEDITOR.style.addCustomHandler( {\r
+ type: 'widget',\r
+\r
+ setup: function( styleDefinition ) {\r
+ /**\r
+ * The name of widget to which this style can be applied.\r
+ * It is extracted from style definition's `widget` property.\r
+ *\r
+ * @property {String} widget\r
+ */\r
+ this.widget = styleDefinition.widget;\r
+\r
+ /**\r
+ * An array of groups that this style belongs to.\r
+ * Styles assigned to the same group cannot be combined.\r
+ *\r
+ * @since 4.6.2\r
+ * @property {Array} group\r
+ */\r
+ this.group = typeof styleDefinition.group == 'string' ? [ styleDefinition.group ] : styleDefinition.group;\r
+\r
+ // Store style categorized by its group.\r
+ // It is used to prevent enabling two styles from same group.\r
+ if ( this.group ) {\r
+ saveStyleGroup( this );\r
+ }\r
+ },\r
+\r
+ apply: function( editor ) {\r
+ var widget;\r
+\r
+ // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+ // handle a case when it wasn't provided.\r
+ if ( !( editor instanceof CKEDITOR.editor ) )\r
+ return;\r
+\r
+ // Theoretically we could bypass checkApplicable, get widget from\r
+ // widgets.focused and check its name, what would be faster, but then\r
+ // this custom style would work differently than the default style\r
+ // which checks if it's applicable before applying or removing itself.\r
+ if ( this.checkApplicable( editor.elementPath(), editor ) ) {\r
+ widget = editor.widgets.focused;\r
+\r
+ // Remove other styles from the same group.\r
+ if ( this.group ) {\r
+ this.removeStylesFromSameGroup( editor );\r
+ }\r
+\r
+ widget.applyStyle( this );\r
+ }\r
+ },\r
+\r
+ remove: function( editor ) {\r
+ // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+ // handle a case when it wasn't provided.\r
+ if ( !( editor instanceof CKEDITOR.editor ) )\r
+ return;\r
+\r
+ if ( this.checkApplicable( editor.elementPath(), editor ) )\r
+ editor.widgets.focused.removeStyle( this );\r
+ },\r
+\r
+ /**\r
+ * Removes all styles that belong to the same group as this style. This method will neither add nor remove\r
+ * the current style.\r
+ * Returns `true` if any style was removed, otherwise returns `false`.\r
+ *\r
+ * @since 4.6.2\r
+ * @param {CKEDITOR.editor} editor\r
+ * @returns {Boolean}\r
+ */\r
+ removeStylesFromSameGroup: function( editor ) {\r
+ var stylesFromSameGroup,\r
+ path,\r
+ removed = false;\r
+\r
+ // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+ // handle a case when it wasn't provided.\r
+ if ( !( editor instanceof CKEDITOR.editor ) )\r
+ return false;\r
+\r
+ path = editor.elementPath();\r
+ if ( this.checkApplicable( path, editor ) ) {\r
+ // Iterate over each group.\r
+ for ( var i = 0, l = this.group.length; i < l; i++ ) {\r
+ stylesFromSameGroup = styleGroups[ this.widget ][ this.group[ i ] ];\r
+ // Iterate over each style from group.\r
+ for ( var j = 0; j < stylesFromSameGroup.length; j++ ) {\r
+ if ( stylesFromSameGroup[ j ] !== this && stylesFromSameGroup[ j ].checkActive( path, editor ) ) {\r
+ editor.widgets.focused.removeStyle( stylesFromSameGroup[ j ] );\r
+ removed = true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ return removed;\r
+ },\r
+\r
+ checkActive: function( elementPath, editor ) {\r
+ return this.checkElementMatch( elementPath.lastElement, 0, editor );\r
+ },\r
+\r
+ checkApplicable: function( elementPath, editor ) {\r
+ // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+ // handle a case when it wasn't provided.\r
+ if ( !( editor instanceof CKEDITOR.editor ) )\r
+ return false;\r
+\r
+ return this.checkElement( elementPath.lastElement );\r
+ },\r
+\r
+ checkElementMatch: checkElementMatch,\r
+\r
+ checkElementRemovable: checkElementMatch,\r
+\r
+ /**\r
+ * Checks if an element is a {@link CKEDITOR.plugins.widget#wrapper wrapper} of a\r
+ * widget whose name matches the {@link #widget widget name} specified in the style definition.\r
+ *\r
+ * @param {CKEDITOR.dom.element} element\r
+ * @returns {Boolean}\r
+ */\r
+ checkElement: function( element ) {\r
+ if ( !Widget.isDomWidgetWrapper( element ) )\r
+ return false;\r
+\r
+ var widgetElement = element.getFirst( Widget.isDomWidgetElement );\r
+ return widgetElement && widgetElement.data( 'widget' ) == this.widget;\r
+ },\r
+\r
+ buildPreview: function( label ) {\r
+ return label || this._.definition.name;\r
+ },\r
+\r
+ /**\r
+ * Returns allowed content rules which should be registered for this style.\r
+ * Uses widget's {@link CKEDITOR.plugins.widget.definition#styleableElements} to make a rule\r
+ * allowing classes on specified elements or use widget's\r
+ * {@link CKEDITOR.plugins.widget.definition#styleToAllowedContentRules} method to transform a style\r
+ * into allowed content rules.\r
+ *\r
+ * @param {CKEDITOR.editor} The editor instance.\r
+ * @returns {CKEDITOR.filter.allowedContentRules}\r
+ */\r
+ toAllowedContentRules: function( editor ) {\r
+ if ( !editor )\r
+ return null;\r
+\r
+ var widgetDef = editor.widgets.registered[ this.widget ],\r
+ classes,\r
+ rule = {};\r
+\r
+ if ( !widgetDef )\r
+ return null;\r
+\r
+ if ( widgetDef.styleableElements ) {\r
+ classes = this.getClassesArray();\r
+ if ( !classes )\r
+ return null;\r
+\r
+ rule[ widgetDef.styleableElements ] = {\r
+ classes: classes,\r
+ propertiesOnly: true\r
+ };\r
+ return rule;\r
+ }\r
+ if ( widgetDef.styleToAllowedContentRules )\r
+ return widgetDef.styleToAllowedContentRules( this );\r
+ return null;\r
+ },\r
+\r
+ /**\r
+ * Returns classes defined in the style in form of an array.\r
+ *\r
+ * @returns {String[]}\r
+ */\r
+ getClassesArray: function() {\r
+ var classes = this._.definition.attributes && this._.definition.attributes[ 'class' ];\r
+\r
+ return classes ? CKEDITOR.tools.trim( classes ).split( /\s+/ ) : null;\r
+ },\r
+\r
+ /**\r
+ * Not implemented.\r
+ *\r
+ * @method applyToRange\r
+ */\r
+ applyToRange: notImplemented,\r
+\r
+ /**\r
+ * Not implemented.\r
+ *\r
+ * @method removeFromRange\r
+ */\r
+ removeFromRange: notImplemented,\r
+\r
+ /**\r
+ * Not implemented.\r
+ *\r
+ * @method applyToObject\r
+ */\r
+ applyToObject: notImplemented\r
+ } );\r
+\r
+ function notImplemented() {}\r
+\r
+ // @context style\r
+ function checkElementMatch( element, fullMatch, editor ) {\r
+ // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+ // handle a case when it wasn't provided.\r
+ if ( !editor )\r
+ return false;\r
+\r
+ if ( !this.checkElement( element ) )\r
+ return false;\r
+\r
+ var widget = editor.widgets.getByElement( element, true );\r
+ return widget && widget.checkStyleActive( this );\r
+ }\r
+\r
+ // Save and categorize style by its group.\r
+ function saveStyleGroup( style ) {\r
+ var widgetName = style.widget,\r
+ group;\r
+\r
+ if ( !styleGroups[ widgetName ] ) {\r
+ styleGroups[ widgetName ] = {};\r
+ }\r
+\r
+ for ( var i = 0, l = style.group.length; i < l; i++ ) {\r
+ group = style.group[ i ];\r
+ if ( !styleGroups[ widgetName ][ group ] ) {\r
+ styleGroups[ widgetName ][ group ] = [];\r
+ }\r
+\r
+ styleGroups[ widgetName ][ group ].push( style );\r
+ }\r
+ }\r
+\r
+ } )();\r
+\r
+ //\r
+ // EXPOSE PUBLIC API ------------------------------------------------------\r
+ //\r
+\r
+ CKEDITOR.plugins.widget = Widget;\r
+ Widget.repository = Repository;\r
+ Widget.nestedEditable = NestedEditable;\r
+} )();\r
+\r
+/**\r
+ * An event fired when a widget definition is registered by the {@link CKEDITOR.plugins.widget.repository#add} method.\r
+ * It is possible to modify the definition being registered.\r
+ *\r
+ * @event widgetDefinition\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.plugins.widget.definition} data Widget definition.\r
+ */\r
+\r
+/**\r
+ * This is an abstract class that describes the definition of a widget.\r
+ * It is a type of {@link CKEDITOR.plugins.widget.repository#add} method's second argument.\r
+ *\r
+ * Widget instances inherit from registered widget definitions, although not in a prototypal way.\r
+ * They are simply extended with corresponding widget definitions. Note that not all properties of\r
+ * the widget definition become properties of a widget. Some, like {@link #data} or {@link #edit}, become\r
+ * widget's events listeners.\r
+ *\r
+ * @class CKEDITOR.plugins.widget.definition\r
+ * @abstract\r
+ * @mixins CKEDITOR.feature\r
+ */\r
+\r
+/**\r
+ * Widget definition name. It is automatically set when the definition is\r
+ * {@link CKEDITOR.plugins.widget.repository#add registered}.\r
+ *\r
+ * @property {String} name\r
+ */\r
+\r
+/**\r
+ * The method executed while initializing a widget, after a widget instance\r
+ * is created, but before it is ready. It is executed before the first\r
+ * {@link CKEDITOR.plugins.widget#event-data} is fired so it is common to\r
+ * use the `init` method to populate widget data with information loaded from\r
+ * the DOM, like for exmaple:\r
+ *\r
+ * init: function() {\r
+ * this.setData( 'width', this.element.getStyle( 'width' ) );\r
+ *\r
+ * if ( this.parts.caption.getStyle( 'display' ) != 'none' )\r
+ * this.setData( 'showCaption', true );\r
+ * }\r
+ *\r
+ * @property {Function} init\r
+ */\r
+\r
+/**\r
+ * The function to be used to upcast an element to this widget or a\r
+ * comma-separated list of upcast methods from the {@link #upcasts} object.\r
+ *\r
+ * The upcast function **is not** executed in the widget context (because the widget\r
+ * does not exist yet) and two arguments are passed:\r
+ *\r
+ * * `element` ({@link CKEDITOR.htmlParser.element}) – The element to be checked.\r
+ * * `data` (`Object`) – The object which can be extended with data which will then be passed to the widget.\r
+ *\r
+ * An element will be upcasted if a function returned `true` or an instance of\r
+ * a {@link CKEDITOR.htmlParser.element} if upcasting meant DOM structure changes\r
+ * (in this case the widget will be initialized on the returned element).\r
+ *\r
+ * @property {String/Function} upcast\r
+ */\r
+\r
+/**\r
+ * The object containing functions which can be used to upcast this widget.\r
+ * Only those pointed by the {@link #upcast} property will be used.\r
+ *\r
+ * In most cases it is appropriate to use {@link #upcast} directly,\r
+ * because majority of widgets need just one method.\r
+ * However, in some cases the widget author may want to expose more than one variant\r
+ * and then this property may be used.\r
+ *\r
+ * upcasts: {\r
+ * // This function may upcast only figure elements.\r
+ * figure: function() {\r
+ * // ...\r
+ * },\r
+ * // This function may upcast only image elements.\r
+ * image: function() {\r
+ * // ...\r
+ * },\r
+ * // More variants...\r
+ * }\r
+ *\r
+ * // Then, widget user may choose which upcast methods will be enabled.\r
+ * editor.on( 'widgetDefinition', function( evt ) {\r
+ * if ( evt.data.name == 'image' )\r
+ * evt.data.upcast = 'figure,image'; // Use both methods.\r
+ * } );\r
+ *\r
+ * @property {Object} upcasts\r
+ */\r
+\r
+/**\r
+ * The {@link #upcast} method(s) priority. The upcast with a lower priority number will be called before\r
+ * the one with a higher number. The default priority is `10`.\r
+ *\r
+ * @since 4.5\r
+ * @property {Number} [upcastPriority=10]\r
+ */\r
+\r
+/**\r
+ * The function to be used to downcast this widget or\r
+ * a name of the downcast option from the {@link #downcasts} object.\r
+ *\r
+ * The downcast funciton will be executed in the {@link CKEDITOR.plugins.widget} context\r
+ * and with `widgetElement` ({@link CKEDITOR.htmlParser.element}) argument which is\r
+ * the widget's main element.\r
+ *\r
+ * The function may return an instance of the {@link CKEDITOR.htmlParser.node} class if the widget\r
+ * needs to be downcasted to a different node than the widget's main element.\r
+ *\r
+ * @property {String/Function} downcast\r
+ */\r
+\r
+/**\r
+ * The object containing functions which can be used to downcast this widget.\r
+ * Only the one pointed by the {@link #downcast} property will be used.\r
+ *\r
+ * In most cases it is appropriate to use {@link #downcast} directly,\r
+ * because majority of widgets have just one variant of downcasting (or none at all).\r
+ * However, in some cases the widget author may want to expose more than one variant\r
+ * and then this property may be used.\r
+ *\r
+ * downcasts: {\r
+ * // This downcast may transform the widget into the figure element.\r
+ * figure: function() {\r
+ * // ...\r
+ * },\r
+ * // This downcast may transform the widget into the image element with data-* attributes.\r
+ * image: function() {\r
+ * // ...\r
+ * }\r
+ * }\r
+ *\r
+ * // Then, the widget user may choose one of the downcast options when setting up his editor.\r
+ * editor.on( 'widgetDefinition', function( evt ) {\r
+ * if ( evt.data.name == 'image' )\r
+ * evt.data.downcast = 'figure';\r
+ * } );\r
+ *\r
+ * @property downcasts\r
+ */\r
+\r
+/**\r
+ * If set, it will be added as the {@link CKEDITOR.plugins.widget#event-edit} event listener.\r
+ * This means that it will be executed when a widget is being edited.\r
+ * See the {@link CKEDITOR.plugins.widget#method-edit} method.\r
+ *\r
+ * @property {Function} edit\r
+ */\r
+\r
+/**\r
+ * If set, it will be added as the {@link CKEDITOR.plugins.widget#event-data} event listener.\r
+ * This means that it will be executed every time the {@link CKEDITOR.plugins.widget#property-data widget data} changes.\r
+ *\r
+ * @property {Function} data\r
+ */\r
+\r
+/**\r
+ * The method to be executed when the widget's command is executed in order to insert a new widget\r
+ * (widget of this type is not focused). If not defined, then the default action will be\r
+ * performed which means that:\r
+ *\r
+ * * An instance of the widget will be created in a detached {@link CKEDITOR.dom.documentFragment document fragment},\r
+ * * The {@link CKEDITOR.plugins.widget#method-edit} method will be called to trigger widget editing,\r
+ * * The widget element will be inserted into DOM.\r
+ *\r
+ * @property {Function} insert\r
+ */\r
+\r
+/**\r
+ * The name of a dialog window which will be opened on {@link CKEDITOR.plugins.widget#method-edit}.\r
+ * If not defined, then the {@link CKEDITOR.plugins.widget#method-edit} method will not perform any action and\r
+ * widget's command will insert a new widget without opening a dialog window first.\r
+ *\r
+ * @property {String} dialog\r
+ */\r
+\r
+/**\r
+ * The template which will be used to create a new widget element (when the widget's command is executed).\r
+ * This string is populated with {@link #defaults default values} by using the {@link CKEDITOR.template} format.\r
+ * Therefore it has to be a valid {@link CKEDITOR.template} argument.\r
+ *\r
+ * @property {String} template\r
+ */\r
+\r
+/**\r
+ * The data object which will be used to populate the data of a newly created widget.\r
+ * See {@link CKEDITOR.plugins.widget#property-data}.\r
+ *\r
+ * defaults: {\r
+ * showCaption: true,\r
+ * align: 'none'\r
+ * }\r
+ *\r
+ * @property defaults\r
+ */\r
+\r
+/**\r
+ * An object containing definitions of widget components (part name => CSS selector).\r
+ *\r
+ * parts: {\r
+ * image: 'img',\r
+ * caption: 'div.caption'\r
+ * }\r
+ *\r
+ * @property parts\r
+ */\r
+\r
+/**\r
+ * An object containing definitions of nested editables (editable name => {@link CKEDITOR.plugins.widget.nestedEditable.definition}).\r
+ * Note that editables *have to* be defined in the same order as they are in DOM / {@link CKEDITOR.plugins.widget.definition#template template}.\r
+ * Otherwise errors will occur when nesting widgets inside each other.\r
+ *\r
+ * editables: {\r
+ * header: 'h1',\r
+ * content: {\r
+ * selector: 'div.content',\r
+ * allowedContent: 'p strong em; a[!href]'\r
+ * }\r
+ * }\r
+ *\r
+ * @property editables\r
+ */\r
+\r
+/**\r
+ * The function used to obtain an accessibility label for the widget. It might be used to make\r
+ * the widget labels as precise as possible, since it has access to the widget instance.\r
+ *\r
+ * If not specified, the default implementation will use the {@link #pathName} or the main\r
+ * {@link CKEDITOR.plugins.widget#element element} tag name.\r
+ *\r
+ * @property {Function} getLabel\r
+ */\r
+\r
+/**\r
+ * The widget name displayed in the elements path.\r
+ *\r
+ * @property {String} pathName\r
+ */\r
+\r
+/**\r
+ * If set to `true`, the widget's element will be covered with a transparent mask.\r
+ * This will prevent its content from being clickable, which matters in case\r
+ * of special elements like embedded Flash or iframes that generate a separate "context".\r
+ *\r
+ * @property {Boolean} mask\r
+ */\r
+\r
+/**\r
+ * If set to `true/false`, it will force the widget to be either an inline or a block widget.\r
+ * If not set, the widget type will be determined from the widget element.\r
+ *\r
+ * Widget type influences whether a block (`div`) or an inline (`span`) element is used\r
+ * for the wrapper.\r
+ *\r
+ * @property {Boolean} inline\r
+ */\r
+\r
+/**\r
+ * The label for the widget toolbar button.\r
+ *\r
+ * editor.widgets.add( 'simplebox', {\r
+ * button: 'Create a simple box'\r
+ * } );\r
+ *\r
+ * editor.widgets.add( 'simplebox', {\r
+ * button: editor.lang.simplebox.title\r
+ * } );\r
+ *\r
+ * @property {String} button\r
+ */\r
+\r
+/**\r
+ * Whether widget should be draggable. Defaults to `true`.\r
+ * If set to `false` drag handler will not be displayed when hovering widget.\r
+ *\r
+ * @property {Boolean} draggable\r
+ */\r
+\r
+/**\r
+ * Names of element(s) (separated by spaces) for which the {@link CKEDITOR.filter} should allow classes\r
+ * defined in the widget styles. For example if your widget is upcasted from a simple `<div>`\r
+ * element, then in order to make it styleable you can set:\r
+ *\r
+ * editor.widgets.add( 'customWidget', {\r
+ * upcast: function( element ) {\r
+ * return element.name == 'div';\r
+ * },\r
+ *\r
+ * // ...\r
+ *\r
+ * styleableElements: 'div'\r
+ * } );\r
+ *\r
+ * Then, when the following style is defined:\r
+ *\r
+ * {\r
+ * name: 'Thick border', type: 'widget', widget: 'customWidget',\r
+ * attributes: { 'class': 'thickBorder' }\r
+ * }\r
+ *\r
+ * a rule allowing the `thickBorder` class for `div` elements will be registered in the {@link CKEDITOR.filter}.\r
+ *\r
+ * If you need to have more freedom when transforming widget style to allowed content rules,\r
+ * you can use the {@link #styleToAllowedContentRules} callback.\r
+ *\r
+ * @since 4.4\r
+ * @property {String} styleableElements\r
+ */\r
+\r
+/**\r
+ * Function transforming custom widget's {@link CKEDITOR.style} instance into\r
+ * {@link CKEDITOR.filter.allowedContentRules}. It may be used when a static\r
+ * {@link #styleableElements} property is not enough to inform the {@link CKEDITOR.filter}\r
+ * what HTML features should be enabled when allowing the given style.\r
+ *\r
+ * In most cases, when style's classes just have to be added to element name(s) used by\r
+ * the widget element, it is recommended to use simpler {@link #styleableElements} property.\r
+ *\r
+ * In order to get parsed classes from the style definition you can use\r
+ * {@link CKEDITOR.style.customHandlers.widget#getClassesArray}.\r
+ *\r
+ * For example, if you want to use the [object format of allowed content rules](#!/guide/dev_allowed_content_rules-section-object-format),\r
+ * to specify `match` validator, your implementation could look like this:\r
+ *\r
+ * editor.widgets.add( 'customWidget', {\r
+ * // ...\r
+ *\r
+ * styleToAllowedContentRules: funciton( style ) {\r
+ * // Retrieve classes defined in the style.\r
+ * var classes = style.getClassesArray();\r
+ *\r
+ * // Do something crazy - for example return allowed content rules in object format,\r
+ * // with custom match property and propertiesOnly flag.\r
+ * return {\r
+ * h1: {\r
+ * match: isWidgetElement,\r
+ * propertiesOnly: true,\r
+ * classes: classes\r
+ * }\r
+ * };\r
+ * }\r
+ * } );\r
+ *\r
+ * @since 4.4\r
+ * @property {Function} styleToAllowedContentRules\r
+ * @param {CKEDITOR.style.customHandlers.widget} style The style to be transformed.\r
+ * @returns {CKEDITOR.filter.allowedContentRules}\r
+ */\r
+\r
+/**\r
+ * This is an abstract class that describes the definition of a widget's nested editable.\r
+ * It is a type of values in the {@link CKEDITOR.plugins.widget.definition#editables} object.\r
+ *\r
+ * In the simplest case the definition is a string which is a CSS selector used to\r
+ * find an element that will become a nested editable inside the widget. Note that\r
+ * the widget element can be a nested editable, too.\r
+ *\r
+ * In the more advanced case a definition is an object with a required `selector` property.\r
+ *\r
+ * editables: {\r
+ * header: 'h1',\r
+ * content: {\r
+ * selector: 'div.content',\r
+ * allowedContent: 'p strong em; a[!href]'\r
+ * }\r
+ * }\r
+ *\r
+ * @class CKEDITOR.plugins.widget.nestedEditable.definition\r
+ * @abstract\r
+ */\r
+\r
+/**\r
+ * The CSS selector used to find an element which will become a nested editable.\r
+ *\r
+ * @property {String} selector\r
+ */\r
+\r
+/**\r
+ * The [Advanced Content Filter](#!/guide/dev_advanced_content_filter) rules\r
+ * which will be used to limit the content allowed in this nested editable.\r
+ * This option is similar to {@link CKEDITOR.config#allowedContent} and one can\r
+ * use it to limit the editor features available in the nested editable.\r
+ *\r
+ * If no `allowedContent` is specified, the editable will use the editor default\r
+ * {@link CKEDITOR.editor#filter}.\r
+ *\r
+ * @property {CKEDITOR.filter.allowedContentRules} allowedContent\r
+ */\r
+\r
+/**\r
+ * The [Advanced Content Filter](#!/guide/dev_advanced_content_filter) rules\r
+ * which will be used to blacklist elements within this nested editable.\r
+ * This option is similar to {@link CKEDITOR.config#disallowedContent}.\r
+ *\r
+ * Note that `disallowedContent` work on top of the definition's {@link #allowedContent}.\r
+ *\r
+ * @since 4.7.3\r
+ * @property {CKEDITOR.filter.disallowedContentRules} disallowedContent\r
+ */\r
+\r
+/**\r
+ * Nested editable name displayed in the elements path.\r
+ *\r
+ * @property {String} pathName\r
+ */\r
--- /dev/null
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/**\r
+ * @fileOverview A plugin created to handle ticket http://dev.ckeditor.com/ticket/11064. While the issue is caused by native WebKit/Blink behaviour,\r
+ * this plugin can be easily detached or modified when the issue is fixed in the browsers without changing the core.\r
+ * When Ctrl/Cmd + A is pressed to select all content it does not work due to a bug in\r
+ * Webkit/Blink if a non-editable element is at the beginning or the end of the content.\r
+ */\r
+\r
+( function() {\r
+ 'use strict';\r
+\r
+ CKEDITOR.plugins.add( 'widgetselection', {\r
+\r
+ init: function( editor ) {\r
+ if ( CKEDITOR.env.webkit ) {\r
+ var widgetselection = CKEDITOR.plugins.widgetselection;\r
+\r
+ editor.on( 'contentDom', function( evt ) {\r
+\r
+ var editor = evt.editor,\r
+ doc = editor.document,\r
+ editable = editor.editable();\r
+\r
+ editable.attachListener( doc, 'keydown', function( evt ) {\r
+ var data = evt.data.$;\r
+\r
+ // Ctrl/Cmd + A\r
+ if ( evt.data.getKey() == 65 && ( CKEDITOR.env.mac && data.metaKey || !CKEDITOR.env.mac && data.ctrlKey ) ) {\r
+\r
+ // Defer the call so the selection is already changed by the pressed keys.\r
+ CKEDITOR.tools.setTimeout( function() {\r
+\r
+ // Manage filler elements on keydown. If there is no need\r
+ // to add fillers, we need to check and clean previously used once.\r
+ if ( !widgetselection.addFillers( editable ) ) {\r
+ widgetselection.removeFillers( editable );\r
+ }\r
+ }, 0 );\r
+ }\r
+ }, null, null, -1 );\r
+\r
+ // Check and clean previously used fillers.\r
+ editor.on( 'selectionCheck', function( evt ) {\r
+ widgetselection.removeFillers( evt.editor.editable() );\r
+ } );\r
+\r
+ // Remove fillers on paste before data gets inserted into editor.\r
+ editor.on( 'paste', function( evt ) {\r
+ evt.data.dataValue = widgetselection.cleanPasteData( evt.data.dataValue );\r
+ } );\r
+\r
+ if ( 'selectall' in editor.plugins ) {\r
+ widgetselection.addSelectAllIntegration( editor );\r
+ }\r
+ } );\r
+ }\r
+ }\r
+ } );\r
+\r
+ /**\r
+ * A set of helper methods for the Widget Selection plugin.\r
+ *\r
+ * @property widgetselection\r
+ * @member CKEDITOR.plugins\r
+ * @since 4.6.1\r
+ */\r
+ CKEDITOR.plugins.widgetselection = {\r
+\r
+ /**\r
+ * The start filler element reference.\r
+ *\r
+ * @property {CKEDITOR.dom.element}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ startFiller: null,\r
+\r
+ /**\r
+ * The end filler element reference.\r
+ *\r
+ * @property {CKEDITOR.dom.element}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ endFiller: null,\r
+\r
+ /**\r
+ * An attribute which identifies the filler element.\r
+ *\r
+ * @property {String}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ fillerAttribute: 'data-cke-filler-webkit',\r
+\r
+ /**\r
+ * The default content of the filler element. Note: The filler needs to have `visible` content.\r
+ * Unprintable elements or empty content do not help as a workaround.\r
+ *\r
+ * @property {String}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ fillerContent: ' ',\r
+\r
+ /**\r
+ * Tag name which is used to create fillers.\r
+ *\r
+ * @property {String}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ fillerTagName: 'div',\r
+\r
+ /**\r
+ * Adds a filler before or after a non-editable element at the beginning or the end of the `editable`.\r
+ *\r
+ * @param {CKEDITOR.editable} editable\r
+ * @returns {Boolean}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ */\r
+ addFillers: function( editable ) {\r
+ var editor = editable.editor;\r
+\r
+ // Whole content should be selected, if not fix the selection manually.\r
+ if ( !this.isWholeContentSelected( editable ) && editable.getChildCount() > 0 ) {\r
+\r
+ var firstChild = editable.getFirst( filterTempElements ),\r
+ lastChild = editable.getLast( filterTempElements );\r
+\r
+ // Check if first element is editable. If not prepend with filler.\r
+ if ( firstChild && firstChild.type == CKEDITOR.NODE_ELEMENT && !firstChild.isEditable() ) {\r
+ this.startFiller = this.createFiller();\r
+ editable.append( this.startFiller, 1 );\r
+ }\r
+\r
+ // Check if last element is editable. If not append filler.\r
+ if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && !lastChild.isEditable() ) {\r
+ this.endFiller = this.createFiller( true );\r
+ editable.append( this.endFiller, 0 );\r
+ }\r
+\r
+ // Reselect whole content after any filler was added.\r
+ if ( this.hasFiller( editable ) ) {\r
+ var rangeAll = editor.createRange();\r
+ rangeAll.selectNodeContents( editable );\r
+ rangeAll.select();\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ },\r
+\r
+ /**\r
+ * Removes filler elements or updates their references.\r
+ *\r
+ * It will **not remove** filler elements if the whole content is selected, as it would break the\r
+ * selection.\r
+ *\r
+ * @param {CKEDITOR.editable} editable\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ */\r
+ removeFillers: function( editable ) {\r
+ // If startFiller or endFiller exists and not entire content is selected it means the selection\r
+ // just changed from selected all. We need to remove fillers and set proper selection/content.\r
+ if ( this.hasFiller( editable ) && !this.isWholeContentSelected( editable ) ) {\r
+\r
+ var startFillerContent = editable.findOne( this.fillerTagName + '[' + this.fillerAttribute + '=start]' ),\r
+ endFillerContent = editable.findOne( this.fillerTagName + '[' + this.fillerAttribute + '=end]' );\r
+\r
+ if ( this.startFiller && startFillerContent && this.startFiller.equals( startFillerContent ) ) {\r
+ this.removeFiller( this.startFiller, editable );\r
+ } else {\r
+ // The start filler is still present but it is a different element than previous one. It means the\r
+ // undo recreating entirely selected content was performed. We need to update filler reference.\r
+ this.startFiller = startFillerContent;\r
+ }\r
+\r
+ if ( this.endFiller && endFillerContent && this.endFiller.equals( endFillerContent ) ) {\r
+ this.removeFiller( this.endFiller, editable );\r
+ } else {\r
+ // Same as with start filler.\r
+ this.endFiller = endFillerContent;\r
+ }\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Removes fillers from the paste data.\r
+ *\r
+ * @param {String} data\r
+ * @returns {String}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ cleanPasteData: function( data ) {\r
+ if ( data && data.length ) {\r
+ data = data\r
+ .replace( this.createFillerRegex(), '' )\r
+ .replace( this.createFillerRegex( true ), '' );\r
+ }\r
+ return data;\r
+ },\r
+\r
+ /**\r
+ * Checks if the entire content of the given editable is selected.\r
+ *\r
+ * @param {CKEDITOR.editable} editable\r
+ * @returns {Boolean}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ isWholeContentSelected: function( editable ) {\r
+\r
+ var range = editable.editor.getSelection().getRanges()[ 0 ];\r
+ if ( range ) {\r
+\r
+ if ( range && range.collapsed ) {\r
+ return false;\r
+\r
+ } else {\r
+ var rangeClone = range.clone();\r
+ rangeClone.enlarge( CKEDITOR.ENLARGE_ELEMENT );\r
+\r
+ return !!( rangeClone && editable && rangeClone.startContainer && rangeClone.endContainer &&\r
+ rangeClone.startOffset === 0 && rangeClone.endOffset === editable.getChildCount() &&\r
+ rangeClone.startContainer.equals( editable ) && rangeClone.endContainer.equals( editable ) );\r
+ }\r
+ }\r
+ return false;\r
+ },\r
+\r
+ /**\r
+ * Checks if there is any filler element in the given editable.\r
+ *\r
+ * @param {CKEDITOR.editable} editable\r
+ * @returns {Boolean}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ hasFiller: function( editable ) {\r
+ return editable.find( this.fillerTagName + '[' + this.fillerAttribute + ']' ).count() > 0;\r
+ },\r
+\r
+ /**\r
+ * Creates a filler element.\r
+ *\r
+ * @param {Boolean} [onEnd] If filler will be placed on end or beginning of the content.\r
+ * @returns {CKEDITOR.dom.element}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ createFiller: function( onEnd ) {\r
+ var filler = new CKEDITOR.dom.element( this.fillerTagName );\r
+ filler.setHtml( this.fillerContent );\r
+ filler.setAttribute( this.fillerAttribute, onEnd ? 'end' : 'start' );\r
+ filler.setAttribute( 'data-cke-temp', 1 );\r
+ filler.setStyles( {\r
+ display: 'block',\r
+ width: 0,\r
+ height: 0,\r
+ padding: 0,\r
+ border: 0,\r
+ margin: 0,\r
+ position: 'absolute',\r
+ top: 0,\r
+ left: '-9999px',\r
+ opacity: 0,\r
+ overflow: 'hidden'\r
+ } );\r
+\r
+ return filler;\r
+ },\r
+\r
+ /**\r
+ * Removes the specific filler element from the given editable. If the filler contains any content (typed or pasted),\r
+ * it replaces the current editable content. If not, the caret is placed before the first or after the last editable\r
+ * element (depends if the filler was at the beginning or the end).\r
+ *\r
+ * @param {CKEDITOR.dom.element} filler\r
+ * @param {CKEDITOR.editable} editable\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ removeFiller: function( filler, editable ) {\r
+ if ( filler ) {\r
+ var editor = editable.editor,\r
+ currentRange = editable.editor.getSelection().getRanges()[ 0 ],\r
+ currentPath = currentRange.startPath(),\r
+ range = editor.createRange(),\r
+ insertedHtml,\r
+ fillerOnStart,\r
+ manuallyHandleCaret;\r
+\r
+ if ( currentPath.contains( filler ) ) {\r
+ insertedHtml = filler.getHtml();\r
+ manuallyHandleCaret = true;\r
+ }\r
+\r
+ fillerOnStart = filler.getAttribute( this.fillerAttribute ) == 'start';\r
+ filler.remove();\r
+ filler = null;\r
+\r
+ if ( insertedHtml && insertedHtml.length > 0 && insertedHtml != this.fillerContent ) {\r
+ editable.insertHtmlIntoRange( insertedHtml, editor.getSelection().getRanges()[ 0 ] );\r
+ range.setStartAt( editable.getChild( editable.getChildCount() - 1 ), CKEDITOR.POSITION_BEFORE_END );\r
+ editor.getSelection().selectRanges( [ range ] );\r
+\r
+ } else if ( manuallyHandleCaret ) {\r
+ if ( fillerOnStart ) {\r
+ range.setStartAt( editable.getFirst().getNext(), CKEDITOR.POSITION_AFTER_START );\r
+ } else {\r
+ range.setEndAt( editable.getLast().getPrevious(), CKEDITOR.POSITION_BEFORE_END );\r
+ }\r
+ editable.editor.getSelection().selectRanges( [ range ] );\r
+ }\r
+ }\r
+ },\r
+\r
+ /**\r
+ * Creates a regular expression which will match the filler HTML in the text.\r
+ *\r
+ * @param {Boolean} [onEnd] Whether a regular expression should be created for the filler at the beginning or\r
+ * the end of the content.\r
+ * @returns {RegExp}\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ * @private\r
+ */\r
+ createFillerRegex: function( onEnd ) {\r
+ var matcher = this.createFiller( onEnd ).getOuterHtml()\r
+ .replace( /style="[^"]*"/gi, 'style="[^"]*"' )\r
+ .replace( />[^<]*</gi, '>[^<]*<' );\r
+\r
+ return new RegExp( ( !onEnd ? '^' : '' ) + matcher + ( onEnd ? '$' : '' ) );\r
+ },\r
+\r
+ /**\r
+ * Adds an integration for the [Select All](http://ckeditor.com/addon/selectall) plugin to the given `editor`.\r
+ *\r
+ * @private\r
+ * @param {CKEDITOR.editor} editor\r
+ * @member CKEDITOR.plugins.widgetselection\r
+ */\r
+ addSelectAllIntegration: function( editor ) {\r
+ var widgetselection = this;\r
+\r
+ editor.editable().attachListener( editor, 'beforeCommandExec', function( evt ) {\r
+ var editable = editor.editable();\r
+\r
+ if ( evt.data.name == 'selectAll' && editable ) {\r
+ widgetselection.addFillers( editable );\r
+ }\r
+ }, null, null, 9999 );\r
+ }\r
+ };\r
+\r
+\r
+ function filterTempElements( el ) {\r
+ return el.getName && !el.hasAttribute( 'data-cke-temp' );\r
+ }\r
+\r
+} )();\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
*/\r
\r
( function() {\r
+ var framedWysiwyg;\r
+\r
CKEDITOR.plugins.add( 'wysiwygarea', {\r
init: function( editor ) {\r
if ( editor.config.fullPage ) {\r
// With IE, the custom domain has to be taken care at first,\r
// for other browers, the 'src' attribute should be left empty to\r
// trigger iframe's 'load' event.\r
- // Microsoft Edge throws "Permission Denied" if treated like an IE (#13441).\r
+ // Microsoft Edge throws "Permission Denied" if treated like an IE (http://dev.ckeditor.com/ticket/13441).\r
if ( CKEDITOR.env.air ) {\r
src = 'javascript:void(0)'; // jshint ignore:line\r
} else if ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) {\r
body.hideFocus = true;\r
\r
// Disable and re-enable the body to avoid IE from\r
- // taking the editing focus at startup. (#141 / #523)\r
+ // taking the editing focus at startup. (http://dev.ckeditor.com/ticket/141 / http://dev.ckeditor.com/ticket/523)\r
body.disabled = true;\r
body.removeAttribute( 'disabled' );\r
}\r
\r
var editable = this;\r
\r
- // Without it IE8 has problem with removing selection in nested editable. (#13785)\r
+ // Without it IE8 has problem with removing selection in nested editable. (http://dev.ckeditor.com/ticket/13785)\r
if ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) {\r
doc.getDocumentElement().addClass( doc.$.compatMode );\r
}\r
\r
- // Prevent IE/Edge from leaving a new paragraph/div after deleting all contents in body. (#6966, #13142)\r
+ // Prevent IE/Edge from leaving a new paragraph/div after deleting all contents in body. (http://dev.ckeditor.com/ticket/6966, http://dev.ckeditor.com/ticket/13142)\r
if ( CKEDITOR.env.ie && !CKEDITOR.env.edge && editor.enterMode != CKEDITOR.ENTER_P ) {\r
removeSuperfluousElement( 'p' );\r
} else if ( CKEDITOR.env.edge && editor.enterMode != CKEDITOR.ENTER_DIV ) {\r
removeSuperfluousElement( 'div' );\r
}\r
\r
- // Fix problem with cursor not appearing in Webkit and IE11+ when clicking below the body (#10945, #10906).\r
+ // Fix problem with cursor not appearing in Webkit and IE11+ when clicking below the body (http://dev.ckeditor.com/ticket/10945, http://dev.ckeditor.com/ticket/10906).\r
// Fix for older IEs (8-10 and QM) is placed inside selection.js.\r
if ( CKEDITOR.env.webkit || ( CKEDITOR.env.ie && CKEDITOR.env.version > 10 ) ) {\r
doc.getDocumentElement().on( 'mousedown', function( evt ) {\r
// PageUp OR PageDown\r
if ( keyCode == 33 || keyCode == 34 ) {\r
// PageUp/PageDown scrolling is broken in document\r
- // with standard doctype, manually fix it. (#4736)\r
+ // with standard doctype, manually fix it. (http://dev.ckeditor.com/ticket/4736)\r
if ( CKEDITOR.env.ie ) {\r
setTimeout( function() {\r
editor.getSelection().scrollIntoView();\r
// Page up/down cause editor selection to leak\r
// outside of editable thus we try to intercept\r
// the behavior, while it affects only happen\r
- // when editor contents are not overflowed. (#7955)\r
+ // when editor contents are not overflowed. (http://dev.ckeditor.com/ticket/7955)\r
else if ( editor.window.$.innerHeight > this.$.offsetHeight ) {\r
var range = editor.createRange();\r
range[ keyCode == 33 ? 'moveToElementEditStart' : 'moveToElementEditEnd' ]( this );\r
// focus is moved onto a non-editing host, e.g. link or button, but\r
// it becomes a problem for the object type selection, since the resizer\r
// handler attached on it will mark other part of the UI, especially\r
- // for the dialog. (#8157)\r
+ // for the dialog. (http://dev.ckeditor.com/ticket/8157)\r
// [IE<8 & Opera] Even worse For old IEs, the cursor will not vanish even if\r
- // the selection has been moved to another text input in some cases. (#4716)\r
+ // the selection has been moved to another text input in some cases. (http://dev.ckeditor.com/ticket/4716)\r
//\r
// Now the range restore is disabled, so we simply force IE to clean\r
// up the selection before blur.\r
this.attachListener( doc, 'blur', function() {\r
- // Error proof when the editor is not visible. (#6375)\r
+ // Error proof when the editor is not visible. (http://dev.ckeditor.com/ticket/6375)\r
try {\r
doc.$.selection.empty();\r
} catch ( er ) {}\r
\r
if ( CKEDITOR.env.iOS ) {\r
// [iOS] If touch is bound to any parent of the iframe blur happens on any touch\r
- // event and body becomes the focused element (#10714).\r
+ // event and body becomes the focused element (http://dev.ckeditor.com/ticket/10714).\r
this.attachListener( doc, 'touchend', function() {\r
win.focus();\r
} );\r
}\r
\r
var title = editor.document.getElementsByTag( 'title' ).getItem( 0 );\r
- // document.title is malfunctioning on Chrome, so get value from the element (#12402).\r
+ // document.title is malfunctioning on Chrome, so get value from the element (http://dev.ckeditor.com/ticket/12402).\r
title.data( 'cke-title', title.getText() );\r
\r
// [IE] JAWS will not recognize the aria label we used on the iframe\r
\r
// 2. On keyup remove all elements that were not marked\r
// as non-superfluous (which means they must have had appeared in the meantime).\r
+ // Also we should preserve all temporary elements inserted by editor – otherwise we'd likely\r
+ // leak fake selection's content into editable due to removing hidden selection container (http://dev.ckeditor.com/ticket/14831).\r
editable.attachListener( editable, 'keyup', function() {\r
var elements = doc.getElementsByTag( tagName );\r
if ( lockRetain ) {\r
- if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) ) {\r
+ if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) &&\r
+ !elements.getItem( 0 ).hasAttribute( 'data-cke-temp' ) ) {\r
elements.getItem( 0 ).remove( 1 );\r
}\r
lockRetain = false;\r
}\r
}\r
\r
- var framedWysiwyg = CKEDITOR.tools.createClass( {\r
+ framedWysiwyg = CKEDITOR.tools.createClass( {\r
$: function() {\r
this.base.apply( this, arguments );\r
\r
this._.frameLoadedHandler = CKEDITOR.tools.addFunction( function( win ) {\r
// Avoid opening design mode in a frame window thread,\r
- // which will cause host page scrolling.(#4397)\r
+ // which will cause host page scrolling.(http://dev.ckeditor.com/ticket/4397)\r
CKEDITOR.tools.setTimeout( onDomReady, 0, this, win );\r
}, this );\r
\r
this.fixInitialSelection();\r
\r
// Fire dataReady for the consistency with inline editors\r
- // and because it makes sense. (#10370)\r
+ // and because it makes sense. (http://dev.ckeditor.com/ticket/10370)\r
editor.fire( 'dataReady' );\r
}\r
else {\r
}\r
\r
// The script that launches the bootstrap logic on 'domReady', so the document\r
- // is fully editable even before the editing iframe is fully loaded (#4455).\r
+ // is fully editable even before the editing iframe is fully loaded (http://dev.ckeditor.com/ticket/4455).\r
var bootstrapCode =\r
'<script id="cke_actscrpt" type="text/javascript"' + ( CKEDITOR.env.ie ? ' defer="defer" ' : '' ) + '>' +\r
'var wasLoaded=0;' + // It must be always set to 0 as it remains as a window property.\r
}\r
\r
// IE<10 needs this hack to properly enable <base href="...">.\r
- // See: http://stackoverflow.com/a/13373180/1485219 (#11910).\r
+ // See: http://stackoverflow.com/a/13373180/1485219 (http://dev.ckeditor.com/ticket/11910).\r
if ( baseTag && CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) {\r
bootstrapCode +=\r
'<script id="cke_basetagscrpt">' +\r
\r
var doc = this.getDocument();\r
\r
- // Work around Firefox bug - error prune when called from XUL (#320),\r
+ // Work around Firefox bug - error prune when called from XUL (http://dev.ckeditor.com/ticket/320),\r
// defer it thanks to the async nature of this method.\r
try {\r
doc.write( data );\r
\r
var data = fullPage ? doc.getDocumentElement().getOuterHtml() : doc.getBody().getHtml();\r
\r
- // BR at the end of document is bogus node for Mozilla. (#5293).\r
+ // BR at the end of document is bogus node for Mozilla. (http://dev.ckeditor.com/ticket/5293).\r
// Prevent BRs from disappearing from the end of the content\r
- // while enterMode is ENTER_BR (#10146).\r
+ // while enterMode is ENTER_BR (http://dev.ckeditor.com/ticket/10146).\r
if ( CKEDITOR.env.gecko && config.enterMode != CKEDITOR.ENTER_BR )\r
data = data.replace( /<br>(?=\s*(:?$|<\/body>))/, '' );\r
\r
onResize;\r
\r
// Trying to access window's frameElement property on Edge throws an exception\r
- // when frame was already removed from DOM. (#13850, #13790)\r
+ // when frame was already removed from DOM. (http://dev.ckeditor.com/ticket/13850, http://dev.ckeditor.com/ticket/13790)\r
try {\r
iframe = editor.window.getFrame();\r
} catch ( e ) {}\r
CKEDITOR.tools.removeFunction( this._.frameLoadedHandler );\r
\r
// On IE, iframe is returned even after remove() method is called on it.\r
- // Checking if parent is present fixes this issue. (#13850)\r
+ // Checking if parent is present fixes this issue. (http://dev.ckeditor.com/ticket/13850)\r
if ( iframe && iframe.getParent() ) {\r
iframe.clearCustomData();\r
onResize = iframe.removeCustomData( 'onResize' );\r
\r
// IE BUG: When destroying editor DOM with the selection remains inside\r
// editing area would break IE7/8's selection system, we have to put the editing\r
- // iframe offline first. (#3812 and #5441)\r
+ // iframe offline first. (http://dev.ckeditor.com/ticket/3812 and http://dev.ckeditor.com/ticket/5441)\r
iframe.remove();\r
} else {\r
CKEDITOR.warn( 'editor-destroy-iframe' );\r
var css = [];\r
\r
// IE>=8 stricts mode doesn't have 'contentEditable' in effect\r
- // on element unless it has layout. (#5562)\r
+ // on element unless it has layout. (http://dev.ckeditor.com/ticket/5562)\r
if ( CKEDITOR.document.$.documentMode >= 8 ) {\r
css.push( 'html.CSS1Compat [contenteditable=false]{min-height:0 !important}' );\r
\r
\r
css.push( selectors.join( ',' ) + '{display:inline-block}' );\r
}\r
- // Set the HTML style to 100% to have the text cursor in affect (#6341)\r
+ // Set the HTML style to 100% to have the text cursor in affect (http://dev.ckeditor.com/ticket/6341)\r
else if ( CKEDITOR.env.gecko ) {\r
css.push( 'html{height:100% !important}' );\r
css.push( 'img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}' );\r
}\r
\r
- // #6341: The text cursor must be set on the editor area.\r
- // #6632: Avoid having "text" shape of cursor in IE7 scrollbars.\r
+ // http://dev.ckeditor.com/ticket/6341: The text cursor must be set on the editor area.\r
+ // http://dev.ckeditor.com/ticket/6632: Avoid having "text" shape of cursor in IE7 scrollbars.\r
css.push( 'html{cursor:text;*cursor:auto}' );\r
\r
// Use correct cursor for these elements\r
<!DOCTYPE html>\r
<!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
-->\r
<html>\r
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
</p>\r
<p id="copy">\r
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
Knabben. All rights reserved.\r
</p>\r
</div>\r
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
@media (max-width: 900px) {
}
.navigation-a {
height: 30px;
- background: #3d3d3d;
+ background: #3D3D3D;
position: absolute;
left: 0;
right: 0;
line-height: 1.13rem;
line-height: 30px;
float: left;
- color: #dddddd;
+ color: #ddd;
font-weight: bold;
text-decoration: none;
text-transform: uppercase;
}
.navigation-a ul li a:hover {
cursor: pointer;
- color: #ffffff;
+ color: #fff;
}
.icon-navigation-a-github:before,
.icon-navigation-a-github:after {
color: #8a8a8a;
}
.footer-a a {
- color: #27c0d8;
+ color: #27C0D8;
text-decoration: none;
- border-bottom: 1px dotted #27c0d8;
+ border-bottom: 1px dotted #27C0D8;
}
.footer-a a:hover {
color: #23adc2;
.content blockquote,
.content pre {
background: none;
- border-left: 4px solid #27c0d8;
+ border-left: 4px solid #27C0D8;
padding: 1.5em 2.25em;
}
.content p a,
.content h3 a,
.content h4 a,
.content h5 a {
- color: #27c0d8;
+ color: #27C0D8;
text-decoration: none;
- border-bottom: 1px dotted #27c0d8;
+ border-bottom: 1px dotted #27C0D8;
}
.content p a:hover,
.content ul a:hover,
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
font: inherit;
color: inherit;
- border: 1px solid #d9d9d9;
+ border: 1px solid #D9D9D9;
padding: .2em .5em;
}
.content input:focus,
}
.content hr {
border: 0;
- border-top: 4px solid #d9d9d9;
+ border-top: 4px solid #D9D9D9;
margin: 1.5em 0;
}
.content input[type="text"] {
line-height: 1.35rem;
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
padding: 2px 6px;
- -webkit-box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;
- -moz-box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;
- box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;
+ -webkit-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
+ -moz-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
+ box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
}
.content p img {
vertical-align: middle;
body button.navigation-b ul li a:hover,
body input.navigation-b ul li a:hover {
color: #fff;
- background: #27c0d8;
+ background: #27C0D8;
}
body a.button-a-background:active,
body button.button-a-background:active,
line-height: 25.2px;
line-height: 1.57rem;
font-weight: bold;
- background-color: #27c0d8;
+ background-color: #27C0D8;
overflow: hidden;
display: inline-block;
padding: 0.75em 0.25em;
margin-top: 30px;
}
.footer-a {
- border-top: 1px solid #d9d9d9;
+ border-top: 1px solid #D9D9D9;
}
.adjoined-top {
- background-color: #27c0d8;
+ background-color: #27C0D8;
color: #fff;
}
.adjoined-top .content h1,
}
.adjoined-top .content code {
font-size: inherit;
- color: #27c0d8;
+ color: #27C0D8;
}
.adjoined-bottom {
position: relative;
.adjoined-bottom:before {
z-index: -1;
content: '';
- background: #27c0d8;
+ background: #27C0D8;
position: absolute;
top: 0;
left: 0;
#main #editor {
background: #FFF;
padding: 2% 4%;
- border: dashed 5px #27c0d8;
-}
-div.cke a.cke_button,
-div.cke .cke_combo_button {
- border-bottom: none;
-}
-div.cke a.cke_button.cke_combo_button,
-div.cke .cke_combo_button.cke_combo_button {
- border-bottom: 1px solid #a6a6a6;
+ border: dashed 5px #27C0D8;
}
#main .adjoined-top:before {
height: 335px;
div.toolbarModifier > ul {
padding: 0;
margin: 0;
- border-top: 1px solid #cccccc;
+ border-top: 1px solid #ccc;
width: 100%;
}
div.toolbarModifier > ul[data-type="table-header"] {
}
div.toolbarModifier > ul > li[data-type="group"],
div.toolbarModifier > ul > li[data-type="separator"] {
- border-bottom: 1px solid #cccccc;
+ border-bottom: 1px solid #ccc;
}
div.toolbarModifier > ul > li[data-type="subgroup"] {
border-top: 1px solid #eee;
line-height: 1;
}
div.toolbarModifier > ul > li ul li[data-type="subgroup"] {
- border-top: 1px solid #dddddd;
+ border-top: 1px solid #ddd;
}
div.toolbarModifier > ul > li ul li[data-type="subgroup"]:first-child {
border-top: 0;
line-height: 2.03rem;
padding: 0.36em 1.5em;
background: #f5f5f5;
- border-bottom: 1px solid #dddddd;
+ border-bottom: 1px solid #ddd;
margin-top: 0;
margin-bottom: 1.2em;
}
width: 9em;
clear: both;
text-align: right;
- border-top: 1px solid #dddddd;
+ border-top: 1px solid #ddd;
padding-left: 1.5em;
padding-right: .1em;
-webkit-box-sizing: border-box;
#help-content {
display: none;
}
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBR2pDLFNJM0NDO0lBSUUsa0JBQUE7OztBQVZILFNBTUMsZUFPQztFQUNDLG1CQUFBOztBQ1ZIO0VBQ0MsWUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7O0FMcUNELFFBSGlDO0VBR2pDO0lLbENFLGtCQUFBOzs7QUFYRixhQWNDO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7O0FBakJGLGFBY0MsR0FLQztBQW5CRixhQWNDLEdBS0ssR0FBRztFQUNOLHFCQUFBOztBTHlCSCxRQUhpQztFQUdqQyxhSy9CQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUFHakMsYUsvQkMsR0FxQkUsYUFDQztJQUlDLGdCQUFBOzs7QUFJRixhQTlCRixHQXFCRSxhQVNDO0VBQ0EsaUJBQUE7O0FMQUosUUFIaUM7RUFHakMsYUsvQkMsR0FxQkUsYUFTQztJQUlDLGtCQUFBOzs7QUFNRixhQXhDRixHQXVDQyxHQUNHO0VBQ0QsaUJBQUE7O0FBdkRKLGFBY0MsR0F1Q0MsR0FLQztFTHhDRixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VLdUNHLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7O0FBRUEsYUFyREgsR0F1Q0MsR0FLQyxFQVNFO0VBQ0EsZUFBQTtFQUNBLGNBQUE7O0FBUUoseUJBQUM7QUFBUyx5QkFBQztFQUNWLHNCQUFrQixxckJBQWxCOztBQ3BGRjtFQUNDLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTs7QU5nREQsUUFIaUM7RUFHakM7SU03Q0Usa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQUdqQyxhTXRDQztJQVdFLGNBQUE7SUFDQSxXQUFBO0lBQ0EscUJBQUE7OztBTnlCSCxRQUhpQztFQUdqQyxhTXRDQyxHQWdCQztJQUVFLGtCQUFBOzs7QUFHRCxhQXJCRixHQWdCQyxHQUtHO0VBQ0QsaUJBQUE7O0FOZ0JKLFFBSGlDO0VBR2pDLGFNdENDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQUdqQyxhTXRDQyxHQWdCQyxHQWFDO0lBT0UsV0FBQTtJSHFPSCx3QkFBQTtJQUFpQyxvQ0FBQTtJQUNqQyxxQkFBQTtJQUE4Qiw2QkFBQTtJQUM5QixnQkFBQTtJQUF5Qiw0QkFBQTs7O0FJeFIzQjtFUHdCQyxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VPeEJBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7O0FBTkQsU1A0RUM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxTQU5ELEVBTUU7RUFDQSxjQUFBOztBT25GSCxTQVFDO0VBQ0MsU0FBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7O0FDWEY7RVJ3QkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUXpCQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7O0FBSkQsUUFTQztFQUNDLGdCQUFBOztBQVZGLFFBYUM7QUFiRCxRQWFLO0FBYkwsUUFhUztBQWJULFFBYWM7QUFiZCxRQWEwQixTQUFRLElBQUk7QUFidEMsUUFhd0Q7RUFDdEQsaUJBQUE7O0FBZEYsUUFpQkM7QUFqQkQsUUFpQk87RUxxUUwsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUtyUXpCLGdCQUFBOztBQW5CRixRQXNCQztBQXRCRCxRQXNCTTtBQXRCTixRQXNCWTtBQXRCWixRQXNCaUI7RUFDZixtQkFBQTs7QUF2QkYsUUEwQkM7QUExQkQsUUEwQmE7RUFDWCxnQkFBQTtFQUNBLDhCQUFBO0VBQ0EscUJBQUE7O0FBN0JGLFFBb0NDLEVSd0NBO0FRNUVELFFBb0NJLEdSd0NIO0FRNUVELFFBb0NRLEdSd0NQO0FRNUVELFFBb0NZLFdSd0NYO0FRNUVELFFBb0N3QixHUndDdkI7QVE1RUQsUUFvQzRCLEdSd0MzQjtBUTVFRCxRQW9DZ0MsR1J3Qy9CO0FRNUVELFFBb0NvQyxHUndDbkM7QVE1RUQsUUFvQ3dDLEdSd0N2QztFQUNDLGNBQUE7RUFDQSxxQkFBQTtFQUVBLGlDQUFBOztBQUVBLFFROUNELEVSd0NBLEVBTUU7QUFBRCxRUTlDRSxHUndDSCxFQU1FO0FBQUQsUVE5Q00sR1J3Q1AsRUFNRTtBQUFELFFROUNVLFdSd0NYLEVBTUU7QUFBRCxRUTlDc0IsR1J3Q3ZCLEVBTUU7QUFBRCxRUTlDMEIsR1J3QzNCLEVBTUU7QUFBRCxRUTlDOEIsR1J3Qy9CLEVBTUU7QUFBRCxRUTlDa0MsR1J3Q25DLEVBTUU7QUFBRCxRUTlDc0MsR1J3Q3ZDLEVBTUU7RUFDQSxjQUFBOztBUW5GSCxRQXdDQztBQXhDRCxRQXdDSztBQXhDTCxRQXdDUztBQXhDVCxRQXdDYTtBQXhDYixRQXdDaUI7RUFDZixXQUFBO0VBQ0EsZ0JBQUE7O0FBMUNGLFFBd0NDLEdBS0M7QUE3Q0YsUUF3Q0ssR0FLSDtBQTdDRixRQXdDUyxHQUtQO0FBN0NGLFFBd0NhLEdBS1g7QUE3Q0YsUUF3Q2lCLEdBS2Y7QUE3Q0YsUUF3Q0MsR0FLTztBQTdDUixRQXdDSyxHQUtHO0FBN0NSLFFBd0NTLEdBS0Q7QUE3Q1IsUUF3Q2EsR0FLTDtBQTdDUixRQXdDaUIsR0FLVDtFQUNMLGtCQUFBOztBQTlDSCxRQXdDQyxHQVVDLEVBQUM7QUFsREgsUUF3Q0ssR0FVSCxFQUFDO0FBbERILFFBd0NTLEdBVVAsRUFBQztBQWxESCxRQXdDYSxHQVVYLEVBQUM7QUFsREgsUUF3Q2lCLEdBVWYsRUFBQztFQUNBLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTs7QUFHRCxRQWpCRCxHQWlCRSxNQUNBLEVBQUM7QUFERixRQWpCRyxHQWlCRixNQUNBLEVBQUM7QUFERixRQWpCTyxHQWlCTixNQUNBLEVBQUM7QUFERixRQWpCVyxHQWlCVixNQUNBLEVBQUM7QUFERixRQWpCZSxHQWlCZCxNQUNBLEVBQUM7RUFDQSxVQUFBOztBQUlGLFFBdkJELEdBdUJFLE9BQ0E7QUFERCxRQXZCRyxHQXVCRixPQUNBO0FBREQsUUF2Qk8sR0F1Qk4sT0FDQTtBQURELFFBdkJXLEdBdUJWLE9BQ0E7QUFERCxRQXZCZSxHQXVCZCxPQUNBO0VMOERELDBEQUFBO0VBQ0EsdURBQUE7RUFDQSxxREFBQTtFQUNBLGtEQUFBO0VLL0RFLFVBQUE7O0FBbEVKLFFBdUVDO0FBdkVELFFBdUVRO0FBdkVSLFFBdUVnQixTQUFRLElBQUk7RUwrTTFCLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VBbUJ6Qix1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7RUtsT0EsYUFBQTtFQUNBLGNBQUE7RUFFQSx5QkFBQTtFQUNBLGtCQUFBOztBQUVBLFFBVkQsTUFVRTtBQUFELFFBVk0sT0FVTDtBQUFELFFBVmMsU0FBUSxJQUFJLGdCQVV6QjtFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTHdORCx3RUFBQTtFQUNBLHFFQUFBO0VBQ0EsZ0VBQUE7O0FLN1NGLFFBOEZDO0VBQ0MsOEJBQUE7RUFDQSxlQUFBOztBQWhHRixRQW1HQztFQUNDLGtCQUFBO0VBQ0EsNkJSbkcyQyx3QlFtRzNDO0VSN0VELGVBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTs7QVEzQkQsUUF5R0M7RUFDQyxrQkFBQTs7QUExR0YsUUE2R0M7RVJyRkEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW9GQyxtQkFBQTs7QUEvR0YsUUFrSEM7RVIxRkEsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVF5RkMsaUJBQUE7O0FBcEhGLFFBdUhDO0VSL0ZBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RVE4RkMsZ0JBQUE7RUFDQSxrQkFBQTs7QUExSEYsUUE2SEM7RVJyR0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVFvR0MsZ0JBQUE7RUFDQSxrQkFBQTs7QUFoSUYsUUFtSUM7RVIzR0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVEwR0MsZ0JBQUE7RUFDQSxrQkFBQTs7QUF0SUYsUUF5SUM7RUFDQyxTQUFBO0VBQ0EsNkJBQUE7RUFDQSxlQUFBOztBQUlBLFFBREQsTUFDRTtFQUNBLGFBQUE7RUFDQSxrQkFBQTs7QUFHRCxRQU5ELE1BTUU7RUxpREQsMEJBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBOztBS3hNRixRQTRKQztFUnBJQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VRbUlDLG9CUjdKOEIsdUNRNko5QjtFQUNBLGdCQUFBO0VMNElBLDBEQUFBO0VBQ0EsdURBQUE7RUFDQSxrREFBQTs7QUs3U0YsUUF1S0MsRUFDQztFQUNDLHNCQUFBOztBQXpLSCxRQXVLQyxFQUtDO0VBQ0MsY0FBQTs7QUE3S0gsUUFpTEM7RUFDQyxVQUFBO0VBQ0EsU0FBQTtFQUVBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7O0FBdkxGLFFBMExDO0FBMUxELFFBMExNO0VSbEtMLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VRa0tDLGdKQUFBOztBQTdMRixRQTBMQyxJQUtDO0FBL0xGLFFBMExNLEtBS0o7RUFDQyxTQUFBOztBQWhNSCxRQXFNQyxJQUFJO0VBQ0gsZUFBQTtFQUNBLGNBQUE7O0FBdk1GLFFBME1DO0VBQ0MsV0FBQTs7QUEzTUYsUUE4TUMsR0FFQztBQWhORixRQThNSyxHQUVIO0FBaE5GLFFBOE1DLEdBRUs7QUFoTk4sUUE4TUssR0FFQztFQUNILGdCQUFBOztBQWpOSCxRQThNQyxHQU1DO0FBcE5GLFFBOE1LLEdBTUg7RVI1TEQsZUFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTs7QVEzQkQsUUEwTkMsU0FBUSxJQUFJO0VBQ1gsV0FBQTs7QUEzTkYsUUE4TkMsSUFBRztFQUNGLHVCQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBOzs7QUFHQSxRQU5ELElBQUcsS0FNRDtFQUNBLFNBQVMsTUFBVDtFQUNBLGlCQUFBOztBQ2pPRCxJQURELEVBQ0U7QUFBRCxJQURFLE9BQ0Q7QUFBRCxJQURVLE1BQ1Q7RU5pUkQsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUhoUTFCLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVNuQkUsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBSUEsYUFBQTtFQUdBLHVCQUFBOztBQUVBLElBdkJGLEVBQ0UsU0FzQkM7QUFBRCxJQXZCQyxPQUNELFNBc0JDO0FBQUQsSUF2QlMsTUFDVCxTQXNCQztFQUNBLGtCQUFBOztBQUdELElBM0JGLEVBQ0UsU0EwQkM7QUFBRCxJQTNCQyxPQUNELFNBMEJDO0FBQUQsSUEzQlMsTUFDVCxTQTBCQztFQUNBLG1CQUFBOztBQW9CRCxJQWhERixFQUNFLFNBK0NDO0FBQUQsSUFoREMsT0FDRCxTQStDQztBQUFELElBaERTLE1BQ1QsU0ErQ0M7RU5rT0YsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RU1uUHZCLFdBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7O0FBRUEsSUF4Q0gsRUFDRSxTQStDQyxpQkFSQztBQUFELElBeENBLE9BQ0QsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDUSxNQUNULFNBK0NDLGlCQVJDO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLHFCQUFBOztBVEdMLFFBSGlDO0VBR2pDLElTL0NDLEVBQ0UsU0FtREM7RVRMSixJUy9DSSxPQUNELFNBbURDO0VUTEosSVMvQ1ksTUFDVCxTQW1EQztJTjhORiw0QkFBQTtJQUFpQyxvQ0FBQTtJQUNqQyx5QkFBQTtJQUE4Qiw2QkFBQTtJQUM5QixvQkFBQTtJQUF5Qiw0QkFBQTtJTW5QdkIsV0FBQTtJQUNBLFVBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0lBQ0Esa0JBQUE7SUFDQSxrQkFBQTs7RUFFQSxJQXhDSCxFQUNFLFNBbURDLDBCQVpDO0VBQUQsSUF4Q0EsT0FDRCxTQW1EQywwQkFaQztFQUFELElBeENRLE1BQ1QsU0FtREMsMEJBWkM7SUFDQSxrQkFBQTtJQUNBLFNBQUE7SUFDQSxRQUFBO0lBQ0EscUJBQUE7O0VBSkQsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOzs7QUFjRixJQTFERixFQUNFLFNBeURDO0FBQUQsSUExREMsT0FDRCxTQXlEQztBQUFELElBMURTLE1BQ1QsU0F5REM7QUFDRCxJQTNERixFQUNFLFNBMERDO0FBQUQsSUEzREMsT0FDRCxTQTBEQztBQUFELElBM0RTLE1BQ1QsU0EwREM7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7O0FBR0QsSUFoRUYsRUFDRSxTQStEQztBQUFELElBaEVDLE9BQ0QsU0ErREM7QUFBRCxJQWhFUyxNQUNULFNBK0RDO0VBQ0EscUJBQUE7RUFDQSxVQUFBO0VOcU9GLHlFQUFBO0VBQ0Esc0VBQUE7RUFDQSxpRUFBQTs7QU01TkEsSUE3RUQsRUE2RUU7QUFBRCxJQTdFRSxPQTZFRDtBQUFELElBN0VVLE1BNkVUO0VBQ0EsbUJBQUE7O0FBRUEsSUFoRkYsRUE2RUUsY0FHQztBQUFELElBaEZDLE9BNkVELGNBR0M7QUFBRCxJQWhGUyxNQTZFVCxjQUdDO0FBQ0QsSUFqRkYsRUE2RUUsY0FJQztBQUFELElBakZDLE9BNkVELGNBSUM7QUFBRCxJQWpGUyxNQTZFVCxjQUlDO0VBQ0EsY0FBQTtFQUNBLG1CQUFBOztBQUlGLElBdkZELEVBdUZFO0FBQUQsSUF2RkUsT0F1RkQ7QUFBRCxJQXZGVSxNQXVGVDtBQUFELElBdkZELEVIaURHLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtBR3NDSCxJQXZGRSxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RlUsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0VHdUNGLFdBQUE7RUFDQSxtQkFBQTs7QUFFQSxJQTNGRixFQXVGRSxvQkFJQztBQUFELElBM0ZDLE9BdUZELG9CQUlDO0FBQUQsSUEzRlMsTUF1RlQsb0JBSUM7QUFDRCxJQTVGRixFQXVGRSxvQkFLQztBQUFELElBNUZDLE9BdUZELG9CQUtDO0FBQUQsSUE1RlMsTUF1RlQsb0JBS0M7QUFERCxJQTNGRixFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFBRCxJQTNGQyxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFBRCxJQTNGUyxNSGlEUixhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFDRCxJQTVGRixFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7QUFBRCxJQTVGQyxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7QUFBRCxJQTVGUyxNSGlEUixhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7O0FDaEdKO0VWc0JDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUcyUEMsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RU9uUjFCLGdDQUFBO0VBRUEsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBO0VBQ0EsY0FBQTs7QUFFQSxVQUFDO0VBQ0EsY0FBQTs7QUFHRCxVQUFDO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsVUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxhQUFBO0VBQ0EsOEJBQUE7RUFDQSx5REFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxXQUFBOztBQ3ZERixjQUFjO0FBQ2QsZUFBZTtFQUNkLFNBQVMsRUFBVDtFQUNBLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLDRCQUFBOztBQUdELGNBQWM7RUFDYixrQkFBQTs7QUFHRCxlQUFlO0VBQ2QsaUJBQUE7O0FBSUEsY0FBQztBQUFTLGNBQUM7RUFDVixzQkFBa0IsNmNBQWxCOztBQUtELG1CQUFDO0FBQVMsbUJBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUFLRCxXQUFDO0FBQVMsV0FBQztFQUNWLHNCQUFrQiw2aUJBQWxCOztBQzVCRixJQUFLLFFBRUo7RUFDQyxzQkFBQTs7QUFIRixJQUFLLFFBTUosTUFBSztFQUNKLGdCQUFBO0VBQ0EscUJBQUE7O0FBUkYsSUFBSyxRQVdKO0VBQ0MseUJBQUE7RUFDQSwwQkFBQTs7QUFFQSxJQWZHLFFBV0osTUFJRTtFQUNBLFdBQUE7O0FBR0QsSUFuQkcsUUFXSixNQVFFO0VBQ0EsWUFBQTs7QUFwQkgsSUFBSyxRQXdCSjtFQUNDLGFBQUE7O0FBSUY7RVpaQyxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VZV0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RVQyT0MsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RVMzTzFCLGtCQUFBOztBQVRELE9BV0MsTUFBSztFQUNKLGFBQUE7O0FBWkYsT0FlQztFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7O0FBRUEsT0FQRCxNQU9FO0VBQ0EsMEJBQUE7O0FBdkJILE9BMkJDO0VBQ0MsV0FBQTtFQUNBLHNCQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RVRpTkEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7O0FTcFAzQixPQTJCQyxjQVNDO0VBQ0MsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VUd01ELDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3ZNeEIsT0FsQkYsY0FTQyxTQVNFO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxXQUFBO0VBQ0EsT0FBQTtFQUVBLHlCQUFBO0VUc0tGLHdDQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTtFQUtBLHlDQUFBO0VBQThDLG9DQUFBO0VBQzlDLHFDQUFBO0VBQTBDLDZCQUFBO0VBQzFDLGlDQUFBO0VBQXNDLDRCQUFBOztBU3ZLdkMsT0FBQyxNQUNBLGNBQWMsU0FBUTtFQUNyQixtQkFBQTs7QUFoRUgsT0FvRUMsTUFBSyxjQUFnQixRQUVwQixnQkFBZ0I7RUFDZixpQkFBQTs7QUF2RUgsT0FvRUMsTUFBSyxjQUFnQixRQVNwQixRQUFPO0VBQ04sc0JBQUE7RUFDQSxzQkFBQTs7QUEvRUgsT0FtRkMsTUFBSyxjQUFnQixRQUFTLFFBQU87RUFDcEMscUJBQUE7RUFDQSxxQkFBQTs7QUN6SEY7RVZrM0JFLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBOztBVXIzQkYsUUFHQztFQUNDLGVBQUE7O0FBSkYsUUFNQztFQUNDLGdCQUFBOztBQVBGLFFBVUM7RUFDQyxhQUFBOztBQUdELFFBQUMsVUFDQTtFQUNDLGFBQUE7O0FBRkYsUUFBQyxVQUtBO0VBQ0MsZ0JBQUE7O0FBS0g7RUFDQyxnQkFBQTs7QUFFQSxrQkFBQztFQUNBLFNBQUE7O0FBTUQsc0JBQUM7QUFBRCx1QkFBQztBQUFTLHNCQUFDO0FBQUQsdUJBQUM7RUFDVixzQkFBa0IseXNCQUFsQjs7QUFJQSxzQkFEQSxXQUNDO0FBQUQsdUJBREEsV0FDQztBQUFTLHNCQURWLFdBQ1c7QUFBRCx1QkFEVixXQUNXO0VBQ1Ysc0JBQWtCLHF0QkFBbEI7O0FBTUYsc0JBQUM7QUFDRCxzQkFBQztFQUNBLDZCQUFBOztBQUtELHVCQUFDO0FBQ0QsdUJBQUM7RUFDQSxnQ0FBQTs7QUN0REY7RUFDQyxhQUFBO0VBQ0Esa0JBQUE7RUFDQSx1QkFBQTtFQUNBLGdCQUFBO0VYNFNDLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFV3pTRCxxQkFBQTtFQUNBLG1CQUFBO0VYZ3ZCQyx3Q0FBQTtFQUNBLHFDQUFBO0VBQ0EsbUNBQUE7RUFDQSxvQ0FBQTtFQUNBLGdDQUFBOztBV2p2QkQsTUFBQztFWHVRQSw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTtFV3ZRekIsZUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7O0FDekJGLElBQUs7QUFDTCxNQUFPO0FBQ1AsYUFBYztBQUNkLE1BQU87RUFDTixnQkFBQTs7QUFJRDtFQUNDLGdCQUFBOztBQUdEO0VBQ0MsNkJBQUE7O0FDWEEsU0FBQztFQUNBLHlCQUFBO0VBQ0EsV0FBQTs7QUFGRCxTQUFDLElBSUEsU0FDQztBQUxGLFNBQUMsSUFJQSxTQUNLO0FBTE4sU0FBQyxJQUlBLFNBQ1M7QUFMVixTQUFDLElBSUEsU0FDYTtBQUxkLFNBQUMsSUFJQSxTQUNpQjtFQUNmLFdBQUE7O0FBTkgsU0FBQyxJQUlBLFNBS0M7RWhCWUYsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFZ0JiRyxnQkFBQTs7QUFYSCxTQUFDLElBSUEsU0FLQyxFQUlDO0VBQ0MscUJBQUE7RUFDQSw4QkFBQTtFQUNBLGNBQUE7O0FBRUEsU0FsQkgsSUFJQSxTQUtDLEVBSUMsRUFLRTtFQUNBLGNBQUE7O0FBbkJMLFNBQUMsSUFJQSxTQW9CQztFQUNDLFdBQUE7O0FBekJILFNBQUMsSUFJQSxTQXdCQztFQUNDLFdBQUE7O0FBN0JILFNBQUMsSUFJQSxTQTRCQztFQUNDLGtCQUFBO0VBQ0EsY0FBQTs7QUFLSCxTQUFDO0VBQ0Esa0JBQUE7O0FBRUEsU0FIQSxPQUdDO0VBQ0EsV0FBQTtFQUNBLFNBQVMsRUFBVDtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxXQUFBOztBQ3hESCxJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04saUJBQUE7O0FBR0QsSUFBSyxnQkFBZTtFQUNuQixlQUFBOztBQUdEO0VBQ0MsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7O0FBSEQsT0FNQztFQUVDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtFQUdBLG1CQUFBO0VBQ0EsNEJBQUE7O0FBRUEsT0FYRCxXQVdFO0VBQ0EseURBQUE7O0FBS0gsUUFBUztFQUNSLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLHdCQUFBOztBQUVBLFFBTFEsbUJBS1A7RUFDQSxZQUFBOztBQUtGLEtBQU07RUFDTCxnQkFBQTtFQUNBLGNBQUE7RUFDQSwwQkFBQTs7QUFJRCxHQUFHLElBQUssRUFBQztBQUNULEdBQUcsSUFBSztFQUNQLG1CQUFBOztBQUVBLEdBSkUsSUFBSyxFQUFDLFdBSVA7QUFBRCxHQUhFLElBQUssa0JBR047RUFDQSxnQ0FBQTs7QUFJRixLQUFNLGNBQWE7RUFDbEIsYUFBQTs7QUFJQSxRQURRLGNBQ1A7RUFDQSxhQUFBOztBQUZGLFFBQVMsY0FLUjtFQUNDLGFBQUE7O0FBSUYsUUFDQztFQUNDLGlCQUFBOztBQUlGO0VBQ0MsaUJBQUE7O0FBREQsU0FHQztFQUNDLFdBQUE7RUFDQSxpQkFBQTs7QUFMRixTQUdDLE1BSUM7RUFDQyxnQkFBQTs7QUFFQSxTQVBGLE1BSUMsU0FHRTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTs7QUFGRCxTQVBGLE1BSUMsU0FHRSxNQUlBO0VBQ0MsMEJBQUE7O0FBZkwsU0FHQyxNQWlCQztFQUNDLFdBQUE7RUFDQSxhQUFBOztBQUdELFNBdEJELE1Bc0JFO0VBQ0EsZ0JBQUE7O0FBS0g7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JBQUE7O0FBRUEsdUJBQUM7RUFDQSxZQUFBO0VBQ0EsVUFBQTs7QUFLRjtFQUNDLGlCQUFBOztBQURELE1BR0MsSUFBRztFQUNGLGlCQUFBOztBQUpGLE1BT0M7RUFDQyxpQkFBQTs7QUFSRixNQU9DLGNBR0M7RUFDQyxpQkFBQTs7QUFYSCxNQU9DLGNBT0M7RUFFQyxrQkFBQTs7QUFoQkgsTUFvQkM7RUFDQyxrQkFBQTtFQUNBLFNBQUE7RUFFQSxTQUFBO0VBQ0Esa0JBQUE7O0FqQmhHRixRQUhpQztFQUdqQyxNaUIyRkM7SUFVRSxVQUFBO0lBQ0EsaUJBQUE7SUFFQSxVQUFBO0lBQ0EsbUJBQUE7O0VBRUEsTUFoQkYsV0FnQkc7SUFDQSxVQUFBO0lBQ0EsV0FBQTs7O0FqQjdHSixRQUhpQztFQUdqQyxNaUIyRkM7SUF3QkUsYUFBQTs7O0FDeEpILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSxnQ0FBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSw2QkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdDQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDZCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */
\ No newline at end of file
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBNkNqQyxTSXJGQztJQUlFLGtCQUFBOzs7QUFWSCxTQU1DLGVBT0M7RUFDQyxtQkFBQTs7QUNWSDtFQUNDLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBOztBTHFDRCxRQUhpQztFQTZDakM7SUs1RUUsa0JBQUE7OztBQVhGLGFBY0M7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTs7QUFqQkYsYUFjQyxHQUtDO0FBbkJGLGFBY0MsR0FLSyxHQUFHO0VBQ04scUJBQUE7O0FMeUJILFFBSGlDO0VBNkNqQyxhS3pFQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUE2Q2pDLGFLekVDLEdBcUJFLGFBQ0M7SUFJQyxnQkFBQTs7O0FBSUYsYUE5QkYsR0FxQkUsYUFTQztFQUNBLGlCQUFBOztBTEFKLFFBSGlDO0VBNkNqQyxhS3pFQyxHQXFCRSxhQVNDO0lBSUMsa0JBQUE7OztBQU1GLGFBeENGLEdBdUNDLEdBQ0c7RUFDRCxpQkFBQTs7QUF2REosYUFjQyxHQXVDQyxHQUtDO0VMeENGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUt1Q0csaUJBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSx5QkFBQTs7QUFFQSxhQXJESCxHQXVDQyxHQUtDLEVBU0U7RUFDQSxlQUFBO0VBQ0EsV0FBQTs7QUFRSix5QkFBQztBQUFTLHlCQUFDO0VBQ1Ysc0JBQWtCLHFyQkFBbEI7O0FDcEZGO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBOztBTmdERCxRQUhpQztFQTZDakM7SU12RkUsa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQTZDakMsYU1oRkM7SUFXRSxjQUFBO0lBQ0EsV0FBQTtJQUNBLHFCQUFBOzs7QU55QkgsUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDO0lBRUUsa0JBQUE7OztBQUdELGFBckJGLEdBZ0JDLEdBS0c7RUFDRCxpQkFBQTs7QU5nQkosUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQTZDakMsYU1oRkMsR0FnQkMsR0FhQztJQU9FLFdBQUE7SUhxT0gsd0JBQUE7SUFBaUMsb0NBQUE7SUFDakMscUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsZ0JBQUE7SUFBeUIsNEJBQUE7OztBSXhSM0I7RVB3QkMsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFT3hCQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBOztBQU5ELFNQNEVDO0VBQ0MsY0FBQTtFQUNBLHFCQUFBO0VBRUEsaUNBQUE7O0FBRUEsU0FORCxFQU1FO0VBQ0EsY0FBQTs7QU9uRkgsU0FRQztFQUNDLFNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBOztBQ1hGO0VSd0JDLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVF6QkEsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBOztBQUpELFFBU0M7RUFDQyxnQkFBQTs7QUFWRixRQWFDO0FBYkQsUUFhSztBQWJMLFFBYVM7QUFiVCxRQWFjO0FBYmQsUUFhMEIsU0FBUSxJQUFJO0FBYnRDLFFBYXdEO0VBQ3RELGlCQUFBOztBQWRGLFFBaUJDO0FBakJELFFBaUJPO0VMcVFMLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VLclF6QixnQkFBQTs7QUFuQkYsUUFzQkM7QUF0QkQsUUFzQk07QUF0Qk4sUUFzQlk7QUF0QlosUUFzQmlCO0VBQ2YsbUJBQUE7O0FBdkJGLFFBMEJDO0FBMUJELFFBMEJhO0VBQ1gsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBOztBQTdCRixRQW9DQyxFUndDQTtBUTVFRCxRQW9DSSxHUndDSDtBUTVFRCxRQW9DUSxHUndDUDtBUTVFRCxRQW9DWSxXUndDWDtBUTVFRCxRQW9Dd0IsR1J3Q3ZCO0FRNUVELFFBb0M0QixHUndDM0I7QVE1RUQsUUFvQ2dDLEdSd0MvQjtBUTVFRCxRQW9Db0MsR1J3Q25DO0FRNUVELFFBb0N3QyxHUndDdkM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxRUTlDRCxFUndDQSxFQU1FO0FBQUQsUVE5Q0UsR1J3Q0gsRUFNRTtBQUFELFFROUNNLEdSd0NQLEVBTUU7QUFBRCxRUTlDVSxXUndDWCxFQU1FO0FBQUQsUVE5Q3NCLEdSd0N2QixFQU1FO0FBQUQsUVE5QzBCLEdSd0MzQixFQU1FO0FBQUQsUVE5QzhCLEdSd0MvQixFQU1FO0FBQUQsUVE5Q2tDLEdSd0NuQyxFQU1FO0FBQUQsUVE5Q3NDLEdSd0N2QyxFQU1FO0VBQ0EsY0FBQTs7QVFuRkgsUUF3Q0M7QUF4Q0QsUUF3Q0s7QUF4Q0wsUUF3Q1M7QUF4Q1QsUUF3Q2E7QUF4Q2IsUUF3Q2lCO0VBQ2YsV0FBQTtFQUNBLGdCQUFBOztBQTFDRixRQXdDQyxHQUtDO0FBN0NGLFFBd0NLLEdBS0g7QUE3Q0YsUUF3Q1MsR0FLUDtBQTdDRixRQXdDYSxHQUtYO0FBN0NGLFFBd0NpQixHQUtmO0FBN0NGLFFBd0NDLEdBS087QUE3Q1IsUUF3Q0ssR0FLRztBQTdDUixRQXdDUyxHQUtEO0FBN0NSLFFBd0NhLEdBS0w7QUE3Q1IsUUF3Q2lCLEdBS1Q7RUFDTCxrQkFBQTs7QUE5Q0gsUUF3Q0MsR0FVQyxFQUFDO0FBbERILFFBd0NLLEdBVUgsRUFBQztBQWxESCxRQXdDUyxHQVVQLEVBQUM7QUFsREgsUUF3Q2EsR0FVWCxFQUFDO0FBbERILFFBd0NpQixHQVVmLEVBQUM7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsUUFqQkQsR0FpQkUsTUFDQSxFQUFDO0FBREYsUUFqQkcsR0FpQkYsTUFDQSxFQUFDO0FBREYsUUFqQk8sR0FpQk4sTUFDQSxFQUFDO0FBREYsUUFqQlcsR0FpQlYsTUFDQSxFQUFDO0FBREYsUUFqQmUsR0FpQmQsTUFDQSxFQUFDO0VBQ0EsVUFBQTs7QUFJRixRQXZCRCxHQXVCRSxPQUNBO0FBREQsUUF2QkcsR0F1QkYsT0FDQTtBQURELFFBdkJPLEdBdUJOLE9BQ0E7QUFERCxRQXZCVyxHQXVCVixPQUNBO0FBREQsUUF2QmUsR0F1QmQsT0FDQTtFTDhERCwwREFBQTtFQUNBLHVEQUFBO0VBQ0EscURBQUE7RUFDQSxrREFBQTtFSy9ERSxVQUFBOztBQWxFSixRQXVFQztBQXZFRCxRQXVFUTtBQXZFUixRQXVFZ0IsU0FBUSxJQUFJO0VMK00xQiwwQkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx1QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixrQkFBQTtFQUF5Qiw0QkFBQTtFQW1CekIsdURBQUE7RUFDQSxvREFBQTtFQUNBLCtDQUFBO0VLbE9BLGFBQUE7RUFDQSxjQUFBO0VBRUEseUJBQUE7RUFDQSxrQkFBQTs7QUFFQSxRQVZELE1BVUU7QUFBRCxRQVZNLE9BVUw7QUFBRCxRQVZjLFNBQVEsSUFBSSxnQkFVekI7RUFDQSxxQkFBQTtFQUNBLFVBQUE7RUx3TkQsd0VBQUE7RUFDQSxxRUFBQTtFQUNBLGdFQUFBOztBSzdTRixRQThGQztFQUNDLDhCQUFBO0VBQ0EsZUFBQTs7QUFoR0YsUUFtR0M7RUFDQyxrQkFBQTtFQUNBLDZCUm5HMkMsd0JRbUczQztFUjdFRCxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7O0FRM0JELFFBeUdDO0VBQ0Msa0JBQUE7O0FBMUdGLFFBNkdDO0VSckZBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVFvRkMsbUJBQUE7O0FBL0dGLFFBa0hDO0VSMUZBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VReUZDLGlCQUFBOztBQXBIRixRQXVIQztFUi9GQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VROEZDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBMUhGLFFBNkhDO0VSckdBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRb0dDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBaElGLFFBbUlDO0VSM0dBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRMEdDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBdElGLFFBeUlDO0VBQ0MsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTs7QUFJQSxRQURELE1BQ0U7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7O0FBR0QsUUFORCxNQU1FO0VMaURELDBCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTs7QUt4TUYsUUE0SkM7RVJwSUEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW1JQyxvQlI3SjhCLHVDUTZKOUI7RUFDQSxnQkFBQTtFTDRJQSx1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7O0FLN1NGLFFBdUtDLEVBQ0M7RUFDQyxzQkFBQTs7QUF6S0gsUUF1S0MsRUFLQztFQUNDLGNBQUE7O0FBN0tILFFBaUxDO0VBQ0MsVUFBQTtFQUNBLFNBQUE7RUFFQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBOztBQXZMRixRQTBMQztBQTFMRCxRQTBMTTtFUmxLTCxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUWtLQyxnSkFBQTs7QUE3TEYsUUEwTEMsSUFLQztBQS9MRixRQTBMTSxLQUtKO0VBQ0MsU0FBQTs7QUFoTUgsUUFxTUMsSUFBSTtFQUNILGVBQUE7RUFDQSxjQUFBOztBQXZNRixRQTBNQztFQUNDLFdBQUE7O0FBM01GLFFBOE1DLEdBRUM7QUFoTkYsUUE4TUssR0FFSDtBQWhORixRQThNQyxHQUVLO0FBaE5OLFFBOE1LLEdBRUM7RUFDSCxnQkFBQTs7QUFqTkgsUUE4TUMsR0FNQztBQXBORixRQThNSyxHQU1IO0VSNUxELGVBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7O0FRM0JELFFBME5DLFNBQVEsSUFBSTtFQUNYLFdBQUE7O0FBM05GLFFBOE5DLElBQUc7RUFDRix1QkFBQTtFQUNBLGFBQUE7RUFDQSxxQkFBQTs7O0FBR0EsUUFORCxJQUFHLEtBTUQ7RUFDQSxTQUFTLE1BQVQ7RUFDQSxpQkFBQTs7QUNqT0QsSUFERCxFQUNFO0FBQUQsSUFERSxPQUNEO0FBQUQsSUFEVSxNQUNUO0VOaVJELDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VIaFExQixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VTbkJFLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUlBLGFBQUE7RUFHQSx1QkFBQTs7QUFFQSxJQXZCRixFQUNFLFNBc0JDO0FBQUQsSUF2QkMsT0FDRCxTQXNCQztBQUFELElBdkJTLE1BQ1QsU0FzQkM7RUFDQSxrQkFBQTs7QUFHRCxJQTNCRixFQUNFLFNBMEJDO0FBQUQsSUEzQkMsT0FDRCxTQTBCQztBQUFELElBM0JTLE1BQ1QsU0EwQkM7RUFDQSxtQkFBQTs7QUFvQkQsSUFoREYsRUFDRSxTQStDQztBQUFELElBaERDLE9BQ0QsU0ErQ0M7QUFBRCxJQWhEUyxNQUNULFNBK0NDO0VOa09GLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBO0VNblB2QixXQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBOztBQUVBLElBeENILEVBQ0UsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDQSxPQUNELFNBK0NDLGlCQVJDO0FBQUQsSUF4Q1EsTUFDVCxTQStDQyxpQkFSQztFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxxQkFBQTs7QVRHTCxRQUhpQztFQTZDakMsSVN6RkMsRUFDRSxTQW1EQztFVHFDSixJU3pGSSxPQUNELFNBbURDO0VUcUNKLElTekZZLE1BQ1QsU0FtREM7SU44TkYsNEJBQUE7SUFBaUMsb0NBQUE7SUFDakMseUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsb0JBQUE7SUFBeUIsNEJBQUE7SU1uUHZCLFdBQUE7SUFDQSxVQUFBO0lBQ0EsbUJBQUE7SUFDQSxnQkFBQTtJQUNBLGtCQUFBO0lBQ0Esa0JBQUE7O0VBRUEsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOztFQUpELElBeENILEVBQ0UsU0FtREMsMEJBWkM7RUFBRCxJQXhDQSxPQUNELFNBbURDLDBCQVpDO0VBQUQsSUF4Q1EsTUFDVCxTQW1EQywwQkFaQztJQUNBLGtCQUFBO0lBQ0EsU0FBQTtJQUNBLFFBQUE7SUFDQSxxQkFBQTs7O0FBY0YsSUExREYsRUFDRSxTQXlEQztBQUFELElBMURDLE9BQ0QsU0F5REM7QUFBRCxJQTFEUyxNQUNULFNBeURDO0FBQ0QsSUEzREYsRUFDRSxTQTBEQztBQUFELElBM0RDLE9BQ0QsU0EwREM7QUFBRCxJQTNEUyxNQUNULFNBMERDO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQUdELElBaEVGLEVBQ0UsU0ErREM7QUFBRCxJQWhFQyxPQUNELFNBK0RDO0FBQUQsSUFoRVMsTUFDVCxTQStEQztFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTnFPRix5RUFBQTtFQUNBLHNFQUFBO0VBQ0EsaUVBQUE7O0FNNU5BLElBN0VELEVBNkVFO0FBQUQsSUE3RUUsT0E2RUQ7QUFBRCxJQTdFVSxNQTZFVDtFQUNBLG1CQUFBOztBQUVBLElBaEZGLEVBNkVFLGNBR0M7QUFBRCxJQWhGQyxPQTZFRCxjQUdDO0FBQUQsSUFoRlMsTUE2RVQsY0FHQztBQUNELElBakZGLEVBNkVFLGNBSUM7QUFBRCxJQWpGQyxPQTZFRCxjQUlDO0FBQUQsSUFqRlMsTUE2RVQsY0FJQztFQUNBLGNBQUE7RUFDQSxtQkFBQTs7QUFJRixJQXZGRCxFQXVGRTtBQUFELElBdkZFLE9BdUZEO0FBQUQsSUF2RlUsTUF1RlQ7QUFBRCxJQXZGRCxFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RkUsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0FHc0NILElBdkZVLE1IaURSLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtFR3VDRixXQUFBO0VBQ0EsbUJBQUE7O0FBRUEsSUEzRkYsRUF1RkUsb0JBSUM7QUFBRCxJQTNGQyxPQXVGRCxvQkFJQztBQUFELElBM0ZTLE1BdUZULG9CQUlDO0FBQ0QsSUE1RkYsRUF1RkUsb0JBS0M7QUFBRCxJQTVGQyxPQXVGRCxvQkFLQztBQUFELElBNUZTLE1BdUZULG9CQUtDO0FBREQsSUEzRkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQ0QsSUE1RkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQ2hHSjtFVnNCQyxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VHMlBDLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VPblIxQixnQ0FBQTtFQUVBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLGNBQUE7O0FBRUEsVUFBQztFQUNBLGNBQUE7O0FBR0QsVUFBQztFQUNBLFNBQVMsRUFBVDtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7RUFDQSw4QkFBQTtFQUNBLHlEQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxVQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsV0FBQTs7QUN2REYsY0FBYztBQUNkLGVBQWU7RUFDZCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTs7QUFHRCxjQUFjO0VBQ2Isa0JBQUE7O0FBR0QsZUFBZTtFQUNkLGlCQUFBOztBQUlBLGNBQUM7QUFBUyxjQUFDO0VBQ1Ysc0JBQWtCLDZjQUFsQjs7QUFLRCxtQkFBQztBQUFTLG1CQUFDO0VBQ1Ysc0JBQWtCLDZpQkFBbEI7O0FBS0QsV0FBQztBQUFTLFdBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUM1QkYsSUFBSyxRQUVKO0VBQ0Msc0JBQUE7O0FBSEYsSUFBSyxRQU1KLE1BQUs7RUFDSixnQkFBQTtFQUNBLHFCQUFBOztBQVJGLElBQUssUUFXSjtFQUNDLHlCQUFBO0VBQ0EsMEJBQUE7O0FBRUEsSUFmRyxRQVdKLE1BSUU7RUFDQSxXQUFBOztBQUdELElBbkJHLFFBV0osTUFRRTtFQUNBLFlBQUE7O0FBcEJILElBQUssUUF3Qko7RUFDQyxhQUFBOztBQUlGO0VaWkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFWVdBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VUMk9DLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VTM08xQixrQkFBQTs7QUFURCxPQVdDLE1BQUs7RUFDSixhQUFBOztBQVpGLE9BZUM7RUFDQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBOztBQUVBLE9BUEQsTUFPRTtFQUNBLDBCQUFBOztBQXZCSCxPQTJCQztFQUNDLFdBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VUaU5BLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3BQM0IsT0EyQkMsY0FTQztFQUNDLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFVHdNRCw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTs7QVN2TXhCLE9BbEJGLGNBU0MsU0FTRTtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RUFFQSx5QkFBQTtFVHNLRix3Q0FBQTtFQUNBLG9DQUFBO0VBQ0EsZ0NBQUE7RUFLQSx5Q0FBQTtFQUE4QyxvQ0FBQTtFQUM5QyxxQ0FBQTtFQUEwQyw2QkFBQTtFQUMxQyxpQ0FBQTtFQUFzQyw0QkFBQTs7QVN2S3ZDLE9BQUMsTUFDQSxjQUFjLFNBQVE7RUFDckIsbUJBQUE7O0FBaEVILE9Bb0VDLE1BQUssY0FBZ0IsUUFFcEIsZ0JBQWdCO0VBQ2YsaUJBQUE7O0FBdkVILE9Bb0VDLE1BQUssY0FBZ0IsUUFTcEIsUUFBTztFQUNOLHNCQUFBO0VBQ0Esc0JBQUE7O0FBL0VILE9BbUZDLE1BQUssY0FBZ0IsUUFBUyxRQUFPO0VBQ3BDLHFCQUFBO0VBQ0EscUJBQUE7O0FDekhGO0VWazNCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QVVyM0JGLFFBR0M7RUFDQyxlQUFBOztBQUpGLFFBTUM7RUFDQyxnQkFBQTs7QUFQRixRQVVDO0VBQ0MsYUFBQTs7QUFHRCxRQUFDLFVBQ0E7RUFDQyxhQUFBOztBQUZGLFFBQUMsVUFLQTtFQUNDLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7O0FBRUEsa0JBQUM7RUFDQSxTQUFBOztBQU1ELHNCQUFDO0FBQUQsdUJBQUM7QUFBUyxzQkFBQztBQUFELHVCQUFDO0VBQ1Ysc0JBQWtCLHlzQkFBbEI7O0FBSUEsc0JBREEsV0FDQztBQUFELHVCQURBLFdBQ0M7QUFBUyxzQkFEVixXQUNXO0FBQUQsdUJBRFYsV0FDVztFQUNWLHNCQUFrQixxdEJBQWxCOztBQU1GLHNCQUFDO0FBQ0Qsc0JBQUM7RUFDQSw2QkFBQTs7QUFLRCx1QkFBQztBQUNELHVCQUFDO0VBQ0EsZ0NBQUE7O0FDdERGO0VBQ0MsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtFWDRTQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RVd6U0QscUJBQUE7RUFDQSxtQkFBQTtFWGd2QkMsd0NBQUE7RUFDQSxxQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTs7QVdqdkJELE1BQUM7RVh1UUEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RVd2UXpCLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBOztBQ3pCRixJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04sZ0JBQUE7O0FBSUQ7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLDZCQUFBOztBQ1hBLFNBQUM7RUFDQSx5QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FBQyxJQUlBLFNBQ0M7QUFMRixTQUFDLElBSUEsU0FDSztBQUxOLFNBQUMsSUFJQSxTQUNTO0FBTFYsU0FBQyxJQUlBLFNBQ2E7QUFMZCxTQUFDLElBSUEsU0FDaUI7RUFDZixXQUFBOztBQU5ILFNBQUMsSUFJQSxTQUtDO0VoQllGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RWdCYkcsZ0JBQUE7O0FBWEgsU0FBQyxJQUlBLFNBS0MsRUFJQztFQUNDLHFCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBOztBQUVBLFNBbEJILElBSUEsU0FLQyxFQUlDLEVBS0U7RUFDQSxjQUFBOztBQW5CTCxTQUFDLElBSUEsU0FvQkM7RUFDQyxXQUFBOztBQXpCSCxTQUFDLElBSUEsU0F3QkM7RUFDQyxXQUFBOztBQTdCSCxTQUFDLElBSUEsU0E0QkM7RUFDQyxrQkFBQTtFQUNBLGNBQUE7O0FBS0gsU0FBQztFQUNBLGtCQUFBOztBQUVBLFNBSEEsT0FHQztFQUNBLFdBQUE7RUFDQSxTQUFTLEVBQVQ7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTs7QUN4REgsSUFBSztBQUNMLE1BQU87QUFDUCxhQUFjO0FBQ2QsTUFBTztFQUNOLGlCQUFBOztBQUdELElBQUssZ0JBQWU7RUFDbkIsZUFBQTs7QUFHRDtFQUNDLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBOztBQUhELE9BTUM7RUFFQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFHQSxtQkFBQTtFQUNBLDRCQUFBOztBQUVBLE9BWEQsV0FXRTtFQUNBLHlEQUFBOztBQUtILFFBQVM7RUFDUixnQkFBQTtFQUNBLFNBQUE7RUFDQSx3QkFBQTs7QUFFQSxRQUxRLG1CQUtQO0VBQ0EsWUFBQTs7QUFLRixLQUFNO0VBQ0wsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsMEJBQUE7O0FBR0QsS0FBTSxjQUFhO0VBQ2xCLGFBQUE7O0FBSUEsUUFEUSxjQUNQO0VBQ0EsYUFBQTs7QUFGRixRQUFTLGNBS1I7RUFDQyxhQUFBOztBQUlGLFFBQ0M7RUFDQyxpQkFBQTs7QUFJRjtFQUNDLGlCQUFBOztBQURELFNBR0M7RUFDQyxXQUFBO0VBQ0EsaUJBQUE7O0FBTEYsU0FHQyxNQUlDO0VBQ0MsZ0JBQUE7O0FBRUEsU0FQRixNQUlDLFNBR0U7RUFDQSx1QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FQRixNQUlDLFNBR0UsTUFJQTtFQUNDLDBCQUFBOztBQWZMLFNBR0MsTUFpQkM7RUFDQyxXQUFBO0VBQ0EsYUFBQTs7QUFHRCxTQXRCRCxNQXNCRTtFQUNBLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBOztBQUVBLHVCQUFDO0VBQ0EsWUFBQTtFQUNBLFVBQUE7O0FBS0Y7RUFDQyxpQkFBQTs7QUFERCxNQUdDLElBQUc7RUFDRixpQkFBQTs7QUFKRixNQU9DO0VBQ0MsaUJBQUE7O0FBUkYsTUFPQyxjQUdDO0VBQ0MsaUJBQUE7O0FBWEgsTUFPQyxjQU9DO0VBRUMsa0JBQUE7O0FBaEJILE1Bb0JDO0VBQ0Msa0JBQUE7RUFDQSxTQUFBO0VBRUEsU0FBQTtFQUNBLGtCQUFBOztBakJ0RkYsUUFIaUM7RUE2Q2pDLE1pQnVDQztJQVVFLFVBQUE7SUFDQSxpQkFBQTtJQUVBLFVBQUE7SUFDQSxtQkFBQTs7RUFFQSxNQWhCRixXQWdCRztJQUNBLFVBQUE7SUFDQSxXQUFBOzs7QWpCbkdKLFFBSGlDO0VBNkNqQyxNaUJ1Q0M7SUF3QkUsYUFBQTs7O0FDOUlILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSw2QkFBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSwwQkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
<div class="grid-container">
<ul class="navigation-a-left grid-width-70">
<li><a href="http://ckeditor.com">Project Homepage</a></li>
- <li><a href="http://dev.ckeditor.com/">I found a bug</a></li>
+ <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li>
<li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>
</ul>
<ul class="navigation-a-right grid-width-30">
CKEditor – The text editor for the Internet – <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p class="grid-width-100" id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.
</p>
</div>
</footer>
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/* exported SF */
}(window, document));
// jscs:enable
-// jshint ignore:end
\ No newline at end of file
+// jshint ignore:end
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
/*
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*
* Styles used by the XHTML 1.1 sample page (xhtml.html).
<!DOCTYPE html>
<?php
/*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
?>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
</p>
</div>
</body>
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
var langs = {
af: 'Afrikaans',
ar: 'Arabic',
+ az: 'Azerbaijani',
bg: 'Bulgarian',
bn: 'Bengali/Bangla',
bs: 'Bosnian',
'en-gb': 'English (United Kingdom)',
eo: 'Esperanto',
es: 'Spanish',
+ 'es-mx': 'Spanish (Mexico)',
et: 'Estonian',
eu: 'Basque',
fa: 'Persian',
nb: 'Norwegian Bokmal',
nl: 'Dutch',
no: 'Norwegian',
+ oc: 'Occitan',
pl: 'Polish',
pt: 'Portuguese (Portugal)',
'pt-br': 'Portuguese (Brazil)',
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
<div class="description">
<p>
This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>.
- It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" target="_blank">
+ It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank">
Disallowed Content</a> property of the filter to eliminate all <code>title</code> attributes.
</p>
<div class="description">
<p>
This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>.
- It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" target="_blank">
+ It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank">
Disallowed Content</a> property of the filter to eliminate all <code>a</code> and <code>img</code> tags,
while allowing all other tags.
</p>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
</p>
</div>
</body>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>
- Frederico Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>
- Frederico Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>
- Frederico Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
/*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
To save the content created with CKEditor you need to read the POST data on the server
side and write it to a file or the database.
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-------------------------------------------------------------------------------------------
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
<!DOCTYPE html>
<!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<!--[if IE 8]><html class="ie8"><![endif]-->
<div class="grid-container">
<ul class="navigation-a-left grid-width-70">
<li><a href="http://ckeditor.com">Project Homepage</a></li>
- <li><a href="http://dev.ckeditor.com/">I found a bug</a></li>
+ <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li>
<li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>
</ul>
<ul class="navigation-a-right grid-width-30">
CKEditor – The text editor for the Internet – <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p class="grid-width-100" id="copy">
- Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.
+ Copyright © 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.
</p>
</footer>
-// Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+// Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
// For licensing, see LICENSE.html or http://cksource.com/ckeditor/license
@base-font-size: 16px;
-// Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+// Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
// For licensing, see LICENSE.html or http://cksource.com/ckeditor/license
@import "base.less";
// very slow. So make the area wide instead.
if (webkit) te.style.width = "1000px";
else te.setAttribute("wrap", "off");
- // If border: 0; -- iOS fails to open keyboard (issue #1287)
+ // If border: 0; -- iOS fails to open keyboard (issue http://dev.ckeditor.com/ticket/1287)
if (ios) te.style.border = "1px solid black";
disableBrowserMagic(te);
return div;
if (text == prevInput && !cm.somethingSelected()) return false;
// Work around nonsensical selection resetting in IE9/10, and
// inexplicable appearance of private area unicode characters on
- // some key combos in Mac (#2689).
+ // some key combos in Mac (http://dev.ckeditor.com/ticket/2689).
if (ie && ie_version >= 9 && this.hasSelection === text ||
mac && /[\uf700-\uf7ff]/.test(text)) {
cm.display.input.reset();
"px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: " +
(ie ? "rgba(255, 255, 255, .05)" : "transparent") +
"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
- if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712)
+ if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (http://dev.ckeditor.com/ticket/2712)
display.input.focus();
if (webkit) window.scrollTo(null, oldScrollY);
display.input.reset();
e_preventDefault(e2);
if (!modifier && +new Date - 200 < startTime)
extendSelection(cm.doc, start);
- // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
+ // Work around unexplainable focus problem in IE9 (http://dev.ckeditor.com/ticket/2127) and Chrome (http://dev.ckeditor.com/ticket/3081)
if (webkit || ie && ie_version == 9)
setTimeout(function() {document.body.focus(); display.input.focus();}, 20);
else
}
// Kludge to work around strange IE behavior where it'll sometimes
- // re-fire a series of drag-related events right after the drop (#1551)
+ // re-fire a series of drag-related events right after the drop (http://dev.ckeditor.com/ticket/1551)
var lastDrop = 0;
function onDrop(e) {
// select-all detection hack)
if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
cm.display.input.reset();
- if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730
+ if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue http://dev.ckeditor.com/ticket/1730
}
cm.display.input.receivedFocus();
}
}
}
- // See issue #2901
+ // See issue http://dev.ckeditor.com/ticket/2901
if (webkit && /\bcm-tab\b/.test(builder.content.lastChild.className))
builder.content.className = "cm-tab-wrap-hack";
if (badBidiRects != null) return badBidiRects;
var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
var r0 = range(txt, 0, 1).getBoundingClientRect();
- if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)
+ if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (http://dev.ckeditor.com/ticket/2780)
var r1 = range(txt, 1, 2).getBoundingClientRect();
return badBidiRects = (r1.right - r0.right < 3);
}
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
"plugins/link/icons/link.png",
"plugins/link/icons/unlink.png",
"plugins/link/icons/anchor.png",
- "plugins/link/icons/anchor-rtl.png"
+ "plugins/link/icons/anchor-rtl.png",
+ "plugins/copyformatting/icons/copyformatting.png"
],
"7": [
[
"skins/moono/images/lock-open.png",
"skins/moono/images/refresh.png"
]
-}
\ No newline at end of file
+}
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
\r
/* A hover state for selected tab. */\r
a.cke_dialog_tab_selected:hover,\r
-a.cke_dialog_tab_selected:focus,\r
+a.cke_dialog_tab_selected:focus\r
{\r
background: #ededed;\r
background: linear-gradient(to bottom, #ededed 0%,#ffffff 100%);\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
vertical-align: middle;\r
}\r
\r
+/* Keyboard shortcut placed next to the label. */\r
+.cke_menubutton_shortcut\r
+{\r
+ color: #979797;\r
+}\r
+\r
.cke_menubutton_disabled .cke_menubutton_label\r
{\r
/* Greyed label text indicates a disabled menu item. */\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
"Moono" Skin\r
====================\r
\r
-This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor\r
-[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by\r
+This skin has been chosen for the **default skin** of CKEditor 4.x (replaced by "Moono-lisa" skin since CKEditor 4.6.0),\r
+elected from the CKEditor [skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by\r
the CKEditor team. "Moono" is maintained by the core developers.\r
\r
For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK)\r
License\r
-------\r
\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
\r
For licensing, see LICENSE.md or [http://ckeditor.com/license](http://ckeditor.com/license)\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
* For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
// ----------------------------------------------------------\r
// (http://docs.cksource.com/CKEditor_4.x/Skin_SDK/Icons)\r
//\r
-// Note: As "moono" is the default CKEditor skin, it provides no custom icons,\r
-// thus this code is commented out.\r
-//\r
// This code is here just to make the skin work fully when using its "source"\r
// version. Without this, the skin will still work, but its icons will not be\r
// used (again, on source version only).\r
// If a required icon is not available here, the plugin defined icon will be\r
// used instead. This means that a skin is not required to provide all icons.\r
// Actually, it is not required to provide icons at all.\r
-//\r
-// (function() {\r
-// // The available icons. This list must match the file names (without\r
-// // extension) available inside the "icons" folder.\r
-// var icons = ( 'about,anchor-rtl,anchor,bgcolor,bidiltr,bidirtl,blockquote,' +\r
-// 'bold,bulletedlist-rtl,bulletedlist,button,checkbox,copy-rtl,copy,' +\r
-// 'creatediv,cut-rtl,cut,docprops-rtl,docprops,find-rtl,find,flash,form,' +\r
-// 'hiddenfield,horizontalrule,icons,iframe,image,imagebutton,indent-rtl,' +\r
-// 'indent,italic,justifyblock,justifycenter,justifyleft,justifyright,' +\r
-// 'link,maximize,newpage-rtl,newpage,numberedlist-rtl,numberedlist,' +\r
-// 'outdent-rtl,outdent,pagebreak-rtl,pagebreak,paste-rtl,paste,' +\r
-// 'pastefromword-rtl,pastefromword,pastetext-rtl,pastetext,preview-rtl,' +\r
-// 'preview,print,radio,redo-rtl,redo,removeformat,replace,save,scayt,' +\r
-// 'select-rtl,select,selectall,showblocks-rtl,showblocks,smiley,' +\r
-// 'source-rtl,source,specialchar,spellchecker,strike,subscript,' +\r
-// 'superscript,table,templates-rtl,templates,textarea-rtl,textarea,' +\r
-// 'textcolor,textfield-rtl,textfield,uicolor,underline,undo-rtl,undo,unlink' ).split( ',' );\r
-//\r
-// var iconsFolder = CKEDITOR.getUrl( CKEDITOR.skin.path() + 'icons/' + ( CKEDITOR.env.hidpi ? 'hidpi/' : '' ) );\r
-//\r
-// for ( var i = 0; i < icons.length; i++ ) {\r
-// CKEDITOR.skin.addIcon( icons[ i ], iconsFolder + icons[ i ] + '.png' );\r
-// }\r
-// })();\r
+\r
+( function() {\r
+ // The available icons. This list must match the file names (without\r
+ // extension) available inside the "icons" folder.\r
+ var icons = ( 'about,anchor-rtl,anchor,bgcolor,bidiltr,bidirtl,blockquote,' +\r
+ 'bold,bulletedlist-rtl,bulletedlist,button,checkbox,copy-rtl,copy,copyformatting,' +\r
+ 'creatediv,cut-rtl,cut,docprops-rtl,docprops,find-rtl,find,flash,form,' +\r
+ 'hiddenfield,horizontalrule,icons,iframe,image,imagebutton,indent-rtl,' +\r
+ 'indent,italic,justifyblock,justifycenter,justifyleft,justifyright,' +\r
+ 'link,maximize,newpage-rtl,newpage,numberedlist-rtl,numberedlist,' +\r
+ 'outdent-rtl,outdent,pagebreak-rtl,pagebreak,paste-rtl,paste,' +\r
+ 'pastefromword-rtl,pastefromword,pastetext-rtl,pastetext,preview-rtl,' +\r
+ 'preview,print,radio,redo-rtl,redo,removeformat,replace,save,scayt,' +\r
+ 'select-rtl,select,selectall,showblocks-rtl,showblocks,smiley,' +\r
+ 'source-rtl,source,specialchar,spellchecker,strike,subscript,' +\r
+ 'superscript,table,templates-rtl,templates,textarea-rtl,textarea,' +\r
+ 'textcolor,textfield-rtl,textfield,uicolor,underline,undo-rtl,undo,unlink' ).split( ',' );\r
+\r
+ var iconsFolder = CKEDITOR.getUrl( CKEDITOR.skin.path() + 'icons/' + ( CKEDITOR.env.hidpi ? 'hidpi/' : '' ) );\r
+\r
+ for ( var i = 0; i < icons.length; i++ ) {\r
+ CKEDITOR.skin.addIcon( icons[ i ], iconsFolder + icons[ i ] + '.png' );\r
+ }\r
+} )();\r
\r
// %REMOVE_END%\r
/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.md or http://ckeditor.com/license\r
*/\r
\r
/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
// This file contains style definitions that can be used by CKEditor plugins.
//
-// The most common use for it is the "stylescombo" plugin, which shows a combo
-// in the editor toolbar, containing all styles. Other plugins instead, like
-// the div plugin, use a subset of the styles on their feature.
+// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down
+// list containing all styles in the editor toolbar. Other plugins, like
+// the "div" plugin, use a subset of the styles for their features.
//
-// If you don't have plugins that depend on this file, you can simply ignore it.
-// Otherwise it is strongly recommended to customize this file to match your
+// If you do not have plugins that depend on this file in your editor build, you can simply
+// ignore it. Otherwise it is strongly recommended to customize this file to match your
// website requirements and design properly.
+//
+// For more information refer to: http://docs.ckeditor.com/#!/guide/dev_styles-section-style-rules
CKEDITOR.stylesSet.add( 'default', [
- /* Block Styles */
+ /* Block styles */
- // These styles are already available in the "Format" combo ("format" plugin),
+ // These styles are already available in the "Format" drop-down list ("format" plugin),
// so they are not needed here by default. You may enable them to avoid
// placing the "Format" combo in the toolbar, maintaining the same features.
/*
}
},
- /* Inline Styles */
+ /* Inline styles */
// These are core styles available as toolbar buttons. You may opt enabling
- // some of them in the Styles combo, removing them from the toolbar.
- // (This requires the "stylescombo" plugin)
+ // some of them in the Styles drop-down list, removing them from the toolbar.
+ // (This requires the "stylescombo" plugin.)
/*
{ name: 'Strong', element: 'strong', overrides: 'b' },
{ name: 'Emphasis', element: 'em' , overrides: 'i' },
{ name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },
{ name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },
- /* Object Styles */
+ /* Object styles */
{
- name: 'Styled image (left)',
+ name: 'Styled Image (left)',
element: 'img',
attributes: { 'class': 'left' }
},
{
- name: 'Styled image (right)',
+ name: 'Styled Image (right)',
element: 'img',
attributes: { 'class': 'right' }
},
{
- name: 'Compact table',
+ name: 'Compact Table',
element: 'table',
attributes: {
cellpadding: '5',
},
{ name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
- { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } }
+ { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } },
+
+ /* Widget styles */
+
+ { name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } },
+ { name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } },
+
+ { name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },
+
+ { name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } },
+
+ { name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' }, group: 'size' },
+ { name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' }, group: 'size' },
+ { name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' }, group: 'size' },
+ { name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' }, group: 'size' },
+ { name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' }, group: 'size' },
+
+ // Adding space after the style name is an intended workaround. For now, there
+ // is no option to create two styles with the same name for different widget types. See http://dev.ckeditor.com/ticket/16664.
+ { name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' }, group: 'size' },
+ { name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' }, group: 'size' },
+ { name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' }, group: 'size' },
+ { name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' }, group: 'size' },
+ { name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' }, group: 'size' }
+
] );
// %LEAVE_UNMINIFIED% %REMOVE_LINE%