[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [17048] ckeditor: update from upstream
From: |
sigurdne |
Subject: |
[Fmsystem-commits] [17048] ckeditor: update from upstream |
Date: |
Sun, 10 Sep 2017 16:43:28 -0400 (EDT) |
Revision: 17048
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=17048
Author: sigurdne
Date: 2017-09-10 16:43:27 -0400 (Sun, 10 Sep 2017)
Log Message:
-----------
ckeditor: update from upstream
Modified Paths:
--------------
trunk/phpgwapi/js/ckeditor/CHANGES.md
trunk/phpgwapi/js/ckeditor/LICENSE.md
trunk/phpgwapi/js/ckeditor/README.md
trunk/phpgwapi/js/ckeditor/adapters/jquery.js
trunk/phpgwapi/js/ckeditor/build-config.js
trunk/phpgwapi/js/ckeditor/ckeditor.js
trunk/phpgwapi/js/ckeditor/config.js
trunk/phpgwapi/js/ckeditor/contents.css
trunk/phpgwapi/js/ckeditor/lang/af.js
trunk/phpgwapi/js/ckeditor/lang/ar.js
trunk/phpgwapi/js/ckeditor/lang/bg.js
trunk/phpgwapi/js/ckeditor/lang/bn.js
trunk/phpgwapi/js/ckeditor/lang/bs.js
trunk/phpgwapi/js/ckeditor/lang/ca.js
trunk/phpgwapi/js/ckeditor/lang/cs.js
trunk/phpgwapi/js/ckeditor/lang/cy.js
trunk/phpgwapi/js/ckeditor/lang/da.js
trunk/phpgwapi/js/ckeditor/lang/de.js
trunk/phpgwapi/js/ckeditor/lang/el.js
trunk/phpgwapi/js/ckeditor/lang/en-au.js
trunk/phpgwapi/js/ckeditor/lang/en-ca.js
trunk/phpgwapi/js/ckeditor/lang/en-gb.js
trunk/phpgwapi/js/ckeditor/lang/en.js
trunk/phpgwapi/js/ckeditor/lang/eo.js
trunk/phpgwapi/js/ckeditor/lang/es.js
trunk/phpgwapi/js/ckeditor/lang/et.js
trunk/phpgwapi/js/ckeditor/lang/eu.js
trunk/phpgwapi/js/ckeditor/lang/fa.js
trunk/phpgwapi/js/ckeditor/lang/fi.js
trunk/phpgwapi/js/ckeditor/lang/fo.js
trunk/phpgwapi/js/ckeditor/lang/fr-ca.js
trunk/phpgwapi/js/ckeditor/lang/fr.js
trunk/phpgwapi/js/ckeditor/lang/gl.js
trunk/phpgwapi/js/ckeditor/lang/gu.js
trunk/phpgwapi/js/ckeditor/lang/he.js
trunk/phpgwapi/js/ckeditor/lang/hi.js
trunk/phpgwapi/js/ckeditor/lang/hr.js
trunk/phpgwapi/js/ckeditor/lang/hu.js
trunk/phpgwapi/js/ckeditor/lang/id.js
trunk/phpgwapi/js/ckeditor/lang/is.js
trunk/phpgwapi/js/ckeditor/lang/it.js
trunk/phpgwapi/js/ckeditor/lang/ja.js
trunk/phpgwapi/js/ckeditor/lang/ka.js
trunk/phpgwapi/js/ckeditor/lang/km.js
trunk/phpgwapi/js/ckeditor/lang/ko.js
trunk/phpgwapi/js/ckeditor/lang/ku.js
trunk/phpgwapi/js/ckeditor/lang/lt.js
trunk/phpgwapi/js/ckeditor/lang/lv.js
trunk/phpgwapi/js/ckeditor/lang/mk.js
trunk/phpgwapi/js/ckeditor/lang/mn.js
trunk/phpgwapi/js/ckeditor/lang/ms.js
trunk/phpgwapi/js/ckeditor/lang/nb.js
trunk/phpgwapi/js/ckeditor/lang/nl.js
trunk/phpgwapi/js/ckeditor/lang/no.js
trunk/phpgwapi/js/ckeditor/lang/pl.js
trunk/phpgwapi/js/ckeditor/lang/pt-br.js
trunk/phpgwapi/js/ckeditor/lang/pt.js
trunk/phpgwapi/js/ckeditor/lang/ro.js
trunk/phpgwapi/js/ckeditor/lang/ru.js
trunk/phpgwapi/js/ckeditor/lang/si.js
trunk/phpgwapi/js/ckeditor/lang/sk.js
trunk/phpgwapi/js/ckeditor/lang/sl.js
trunk/phpgwapi/js/ckeditor/lang/sq.js
trunk/phpgwapi/js/ckeditor/lang/sr-latn.js
trunk/phpgwapi/js/ckeditor/lang/sr.js
trunk/phpgwapi/js/ckeditor/lang/sv.js
trunk/phpgwapi/js/ckeditor/lang/th.js
trunk/phpgwapi/js/ckeditor/lang/tr.js
trunk/phpgwapi/js/ckeditor/lang/tt.js
trunk/phpgwapi/js/ckeditor/lang/ug.js
trunk/phpgwapi/js/ckeditor/lang/uk.js
trunk/phpgwapi/js/ckeditor/lang/vi.js
trunk/phpgwapi/js/ckeditor/lang/zh-cn.js
trunk/phpgwapi/js/ckeditor/lang/zh.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/af.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/da.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/de.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/el.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/en.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/es.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/et.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/he.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/id.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/it.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/km.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/no.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/si.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/th.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js
trunk/phpgwapi/js/ckeditor/plugins/about/dialogs/about.js
trunk/phpgwapi/js/ckeditor/plugins/dialog/dialogDefinition.js
trunk/phpgwapi/js/ckeditor/plugins/icons.png
trunk/phpgwapi/js/ckeditor/plugins/icons_hidpi.png
trunk/phpgwapi/js/ckeditor/plugins/image/dialogs/image.js
trunk/phpgwapi/js/ckeditor/plugins/image/images/noimage.png
trunk/phpgwapi/js/ckeditor/plugins/link/dialogs/anchor.js
trunk/phpgwapi/js/ckeditor/plugins/link/dialogs/link.js
trunk/phpgwapi/js/ckeditor/plugins/link/images/anchor.png
trunk/phpgwapi/js/ckeditor/plugins/link/images/hidpi/anchor.png
trunk/phpgwapi/js/ckeditor/plugins/pastefromword/filter/default.js
trunk/phpgwapi/js/ckeditor/plugins/scayt/dialogs/options.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/af.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/ar.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/bg.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/ca.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/cs.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/cy.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/da.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/de.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/el.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/en.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/eo.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/es.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/et.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/fa.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/fi.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/fr.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/gl.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/he.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/hr.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/hu.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/id.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/it.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/ja.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/km.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/ku.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/lt.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/lv.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/nb.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/nl.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/no.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/pl.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/pt.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/ru.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/si.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/sk.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/sl.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/sq.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/sv.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/th.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/tr.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/tt.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/ug.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/uk.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/vi.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/zh.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/specialchar.js
trunk/phpgwapi/js/ckeditor/plugins/table/dialogs/table.js
trunk/phpgwapi/js/ckeditor/plugins/tabletools/dialogs/tableCell.js
trunk/phpgwapi/js/ckeditor/plugins/wsc/dialogs/ciframe.html
trunk/phpgwapi/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
trunk/phpgwapi/js/ckeditor/plugins/wsc/dialogs/wsc.css
trunk/phpgwapi/js/ckeditor/plugins/wsc/dialogs/wsc.js
trunk/phpgwapi/js/ckeditor/plugins/wsc/dialogs/wsc_ie.js
trunk/phpgwapi/js/ckeditor/styles.js
Added Paths:
-----------
trunk/phpgwapi/js/ckeditor/lang/az.js
trunk/phpgwapi/js/ckeditor/lang/de-ch.js
trunk/phpgwapi/js/ckeditor/lang/es-mx.js
trunk/phpgwapi/js/ckeditor/lang/oc.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/az.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js
trunk/phpgwapi/js/ckeditor/plugins/a11yhelp/dialogs/lang/oc.js
trunk/phpgwapi/js/ckeditor/plugins/scayt/CHANGELOG.md
trunk/phpgwapi/js/ckeditor/plugins/scayt/dialogs/dialog.css
trunk/phpgwapi/js/ckeditor/plugins/scayt/skins/
trunk/phpgwapi/js/ckeditor/plugins/scayt/skins/moono-lisa/
trunk/phpgwapi/js/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/az.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/en-au.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/eu.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/ko.js
trunk/phpgwapi/js/ckeditor/plugins/specialchar/dialogs/lang/oc.js
trunk/phpgwapi/js/ckeditor/plugins/tableselection/
trunk/phpgwapi/js/ckeditor/plugins/tableselection/styles/
trunk/phpgwapi/js/ckeditor/plugins/tableselection/styles/tableselection.css
trunk/phpgwapi/js/ckeditor/plugins/wsc/skins/
trunk/phpgwapi/js/ckeditor/plugins/wsc/skins/moono-lisa/
trunk/phpgwapi/js/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/dialog.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/dialog_ie.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/dialog_ie8.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/dialog_iequirks.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/editor.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/editor_gecko.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/editor_ie.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/editor_ie8.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/editor_iequirks.css
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/icons.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/icons_hidpi.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/arrow.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/close.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/hidpi/
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/hidpi/close.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/hidpi/lock.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/hidpi/refresh.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/lock-open.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/lock.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/refresh.png
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/images/spinner.gif
trunk/phpgwapi/js/ckeditor/skins/moono-lisa/readme.md
Removed Paths:
-------------
trunk/phpgwapi/js/ckeditor/plugins/clipboard/
trunk/phpgwapi/js/ckeditor/skins/moono/
Modified: trunk/phpgwapi/js/ckeditor/CHANGES.md
===================================================================
--- trunk/phpgwapi/js/ckeditor/CHANGES.md 2017-09-10 13:53:33 UTC (rev
17047)
+++ trunk/phpgwapi/js/ckeditor/CHANGES.md 2017-09-10 20:43:27 UTC (rev
17048)
@@ -1,6 +1,618 @@
CKEditor 4 Changelog
====================
+## 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.
+* [#520](https://github.com/ckeditor/ckeditor-dev/issues/520): Fixed: Widgets
cannot be properly pasted into a table cell.
+* [#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 with 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:
+
+* [#12440](http://dev.ckeditor.com/ticket/12440): Added the
[`config.colorButton_enableAutomatic`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-colorButton_enableAutomatic)
option to allow hiding the "Automatic" option in the [color
picker](http://ckeditor.com/addon/colorbutton).
+
+Fixed Issues:
+
+* [#10448](http://dev.ckeditor.com/ticket/10448): Fixed: Lack of scrollbar in
the [right-to-left text direction](http://ckeditor.com/addon/bidi).
+* [#12707](http://dev.ckeditor.com/ticket/12707): Fixed: The order of table
elements does not comply with the HTML specification.
+* [#13756](http://dev.ckeditor.com/ticket/13756): [Edge] Fixed: Context menus
are cut-off.
+
+## CKEditor 4.5.7
+
+New Features:
+
+* [#14327](http://dev.ckeditor.com/ticket/14327): Added Swiss German
localization. Thanks to [Miro Grenda](https://twitter.com/mirogrenda)!
+
+Fixed Issues:
+
+* [#13816](http://dev.ckeditor.com/ticket/13816): Introduced a new strategy
for Filling Character handling to avoid changes in DOM. This fixes the
following issues:
+ * [#12727](http://dev.ckeditor.com/ticket/12727): [Blink]
`IndexSizeError` when using the [Div Editing
Area](http://ckeditor.com/addon/divarea) and [Content
Templates](http://ckeditor.com/addon/templates) plugins.
+ * [#13377](http://dev.ckeditor.com/ticket/13377):
[Widget](http://ckeditor.com/addon/widget) plugin issue when typing in Korean.
+ * [#13389](http://dev.ckeditor.com/ticket/13389): [Blink]
[`editor.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData)
fails when the cursor is next to an `<hr>` tag.
+ * [#13513](http://dev.ckeditor.com/ticket/13513): [Blink, WebKit] [Div
Editing Area](http://ckeditor.com/addon/divarea) and
[`editor.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData)
throw an error when an image is the only data in the editor.
+* [#13884](http://dev.ckeditor.com/ticket/13884): [Firefox] Fixed: Copying and
pasting a table results in just the first cell being pasted.
+* [#14234](http://dev.ckeditor.com/ticket/14234): Fixed: URL input field is
not marked as required in the [Media Embed](http://ckeditor.com/addon/embed)
dialog.
+
+## CKEditor 4.5.6
+
+New Features:
+
+* Introduced the
[`CKEDITOR.tools.getCookie()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-getCookie)
and
[`CKEDITOR.tools.setCookie()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-setCookie)
methods for accessing cookies.
+* Introduced the
[`CKEDITOR.tools.getCsrfToken()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-getCsrfToken)
method. The CSRF token is now automatically sent by the [File
Browser](http://ckeditor.com/addon/filebrowser) and [File
Tools](http://ckeditor.com/addon/filetools) plugins during file uploads. The
server-side upload handlers may check it and use it to additionally secure the
communication.
+
+Other Changes:
+
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type):
+ - New features:
+ - CKEditor [Language](http://ckeditor.com/addon/language)
plugin support.
+ - CKEditor [Placeholder](http://ckeditor.com/addon/placeholder)
plugin support.
+ - [Drag&Drop](http://sdk.ckeditor.com/samples/fileupload.html)
support.
+ - **Experimental**
[GRAYT](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-grayt_autoStartup)
(Grammar As You Type) functionality.
+ - Fixed issues:
+ *
[#98](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/98):
SCAYT affects dialog double-click. Fixed in SCAYT core.
+ *
[#102](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/102):
SCAYT core performance enhancements.
+ *
[#104](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/104):
SCAYT's spans leak into the clipboard and after pasting.
+ *
[#105](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/105): A
JavaScript error fired in case of multiple instances of CKEditor on one page.
+ *
[#107](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/107):
SCAYT should not check non-editable parts of content.
+ *
[#108](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/108):
Latest SCAYT copies the ID of the editor element to the iframe.
+ * SCAYT stops working when CKEditor [Undo
plugin](http://ckeditor.com/addon/undo) not enabled.
+ * Issue with pasting SCAYT markup in CKEditor.
+ * SCAYT stops working after pressing the *Cancel* button in the
WSC dialog.
+
+## CKEditor 4.5.5
+
+Fixed Issues:
+
+* [#13887](https://dev.ckeditor.com/ticket/13887): Fixed:
[Link](http://ckeditor.com/addon/link) plugin alters the `target` attribute
value. Thanks to [SamZiemer](https://github.com/SamZiemer)!
+* [#12189](http://dev.ckeditor.com/ticket/12189): Fixed: The
[Link](http://ckeditor.com/addon/link) plugin dialog does not display the
subject of email links if the subject parameter is not lowercase.
+* [#9192](http://dev.ckeditor.com/ticket/9192): Fixed: An `undefined` string
is appended to an email address added with the
[Link](http://ckeditor.com/addon/link) plugin if subject and email body are
empty and
[`config.emailProtection`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-emailProtection)
is set to `encode`.
+* [#13790](https://dev.ckeditor.com/ticket/13790): Fixed: It is not possible
to destroy the editor `<iframe>` after the editor was detached from DOM. Thanks
to [Stefan Rijnhart](https://github.com/StefanRijnhart)!
+* [#13803](https://dev.ckeditor.com/ticket/13803): Fixed: The editor cannot be
destroyed before being fully initialized. Thanks to [Cyril
Fluck](https://github.com/cyril-sf)!
+* [#13867](http://dev.ckeditor.com/ticket/13867): Fixed: CKEditor does not
work when the `classList` polyfill is used.
+* [#13885](http://dev.ckeditor.com/ticket/13885): Fixed: [Enhanced
Image](http://ckeditor.com/addon/image2) requires the
[Link](http://ckeditor.com/addon/link) plugin to link an image.
+* [#13883](http://dev.ckeditor.com/ticket/13883): Fixed: Copying a table using
the context menu strips off styles.
+* [#13872](http://dev.ckeditor.com/ticket/13872): Fixed: Cutting is possible
in the
[read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly)
mode.
+* [#12848](http://dev.ckeditor.com/ticket/12848): [Blink] Fixed: Opening the
[Find and Replace](http://ckeditor.com/addon/find) dialog window in the
[read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly)
mode throws an exception.
+* [#13879](http://dev.ckeditor.com/ticket/13879): Fixed: It is not possible to
prevent the
[`editor.drop`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-drop)
event.
+* [#13361](http://dev.ckeditor.com/ticket/13361): Fixed: Skin images fail when
the site path includes parentheses because the `background-image` path needs
single quotes around the URL value.
+* [#13771](http://dev.ckeditor.com/ticket/13771): Fixed: The `contents.css`
style is not used if the [IFrame Editing
Area](http://ckeditor.com/addon/wysiwygarea) plugin is missing.
+* [#13782](http://dev.ckeditor.com/ticket/13782): Fixed: Unclear log messages.
+* [#13919](http://dev.ckeditor.com/ticket/13919): [Edge] Fixed: Browser window
crashes when accessing the `isContentEditable` property of an `<input>` DOM
element.
+
+Other Changes:
+
+* [#13859](http://dev.ckeditor.com/ticket/13859): Test cases created with
`bender.tools.createTestsForEditors` will also receive editor bot as a second
parameter.
+
+## CKEditor 4.5.4
+
+New Features:
+
+* [#13632](http://dev.ckeditor.com/ticket/13632): Introduce error logging
mechanism.
+* [#13730](http://dev.ckeditor.com/ticket/13730): Switch to the new error
logging mechanism.
+
+Fixed Issues:
+
+* [#9856](http://dev.ckeditor.com/ticket/9856): Fixed: Cannot use the native
context menu together with the [Div Editing
Area](http://ckeditor.com/addon/divarea) plugin. Thanks to [Mark
Wade](https://github.com/mark-wade)!
+* [#12733](http://dev.ckeditor.com/ticket/12733): [IE9+] Fixed: Radio button
`onChange` does not work. Thanks to [Iliya
Kostadinov](https://github.com/iliyakostadinov)!
+* [#13142](http://dev.ckeditor.com/ticket/13142): [Edge] Fixed: *Ctrl+A* and
then *Backspace* result in an empty `<div>` element.
+* [#13599](http://dev.ckeditor.com/ticket/13599): Fixed: Cross-editor drag and
drop of an inline widget results in error/artifacts.
+* [#13640](http://dev.ckeditor.com/ticket/13640): [IE] Fixed: Dropping a
widget outside the `<body>` element is not handled correctly.
+* [#13533](http://dev.ckeditor.com/ticket/13533): Fixed: No progress during
upload.
+* [#13680](http://dev.ckeditor.com/ticket/13680): Fixed: The parser should
allow the `<h1-6>` element to be a child of the `<summary>` element.
+* [#11724](http://dev.ckeditor.com/ticket/11724): [Touch devices] Fixed:
Drop-downs often hide right after opening them.
+* [#13690](http://dev.ckeditor.com/ticket/13690): Fixed: Copying content from
IE to Chrome adds an extra paragraph.
+* [#13284](http://dev.ckeditor.com/ticket/13284): Fixed: Cannot drag and drop
a widget if the text caret is placed just after the widget instance.
+* [#13516](http://dev.ckeditor.com/ticket/13516): Fixed: CKEditor removes
empty HTML5 anchors without the `name` attribute.
+* [#13765](http://dev.ckeditor.com/ticket/13765): [Safari 9] Fixed: Problems
with rendering samples.
+
+Other Changes:
+
+* [#11725](http://dev.ckeditor.com/ticket/11725): Marked
[`CKEDITOR.env.mobile`](http://docs.ckeditor.com/#!/api/CKEDITOR.env-property-mobile)
as deprecated. The reason is that it is no longer clear what "mobile" means.
+* [#13737](http://dev.ckeditor.com/ticket/13737): Upgraded
[Bender.js](https://github.com/benderjs/benderjs) to 0.4.1.
+
+## CKEditor 4.5.3
+
+New Features:
+
+* [#13501](http://dev.ckeditor.com/ticket/13501): Added the
[`config.fileTools_defaultFileName`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fileTools_defaultFileName)
option to allow setting a default file name for paste uploads.
+* [#13603](http://dev.ckeditor.com/ticket/13603): Added support for uploading
dropped BMP images.
+
+Fixed Issues:
+
+* [#13590](http://dev.ckeditor.com/ticket/13590): Fixed: Various issues
related to the [Paste from Word](http://ckeditor.com/addon/pastefromword)
feature. Fixes also:
+ * [#11215](http://dev.ckeditor.com/ticket/11215),
+ * [#8780](http://dev.ckeditor.com/ticket/8780),
+ * [#12762](http://dev.ckeditor.com/ticket/12762).
+* [#13386](http://dev.ckeditor.com/ticket/13386): [Edge] Fixed: Issues with
selecting and editing images.
+* [#13568](http://dev.ckeditor.com/ticket/13568): Fixed: The
[`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml)
method returns invalid results for entire content selection.
+* [#13453](http://dev.ckeditor.com/ticket/13453): Fixed: Drag&drop of entire
editor content throws an error.
+* [#13465](http://dev.ckeditor.com/ticket/13465): Fixed: Error is thrown and
the widget is lost on drag&drop if it is the only content of the editor.
+* [#13414](http://dev.ckeditor.com/ticket/13414): Fixed: Content auto
paragraphing in a nested editable despite editor configuration.
+* [#13429](http://dev.ckeditor.com/ticket/13429): Fixed: Incorrect selection
after content insertion by the [Auto
Embed](http://ckeditor.com/addon/autoembed) plugin.
+* [#13388](http://dev.ckeditor.com/ticket/13388): Fixed: [Table
Resize](http://ckeditor.com/addon/tableresize) integration with
[Undo](http://ckeditor.com/addon/undo) is broken.
+
+Other Changes:
+
+* [#13637](https://dev.ckeditor.com/ticket/13637): Several icons were
refactored.
+* Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.3.0 and
introduced the ability to run tests via HTTPs
([#13265](https://dev.ckeditor.com/ticket/13265)).
+
+## CKEditor 4.5.2
+
+Fixed Issues:
+
+* [#13609](http://dev.ckeditor.com/ticket/13609): [Edge] Fixed: The browser
crashes when switching to the source mode. Thanks to [Andrew Williams and Mark
Smeed](http://webxsolution.com/)!
+* [PR#201](https://github.com/ckeditor/ckeditor-dev/pull/201): Fixed: Buttons
in the toolbar configurator cause form submission. Thanks to
[colemanw](https://github.com/colemanw)!
+* [#13422](http://dev.ckeditor.com/ticket/13422): Fixed: A monospaced font
should be used in the `<textarea>` element storing editor configuration in the
toolbar configurator.
+* [#13494](http://dev.ckeditor.com/ticket/13494): Fixed: Error thrown in the
toolbar configurator if plugin requirements are not met.
+* [#13409](http://dev.ckeditor.com/ticket/13409): Fixed: List elements
incorrectly merged when pressing *Backspace* or *Delete*.
+* [#13434](http://dev.ckeditor.com/ticket/13434): Fixed: Dialog state
indicator broken in Right–To–Left environments.
+* [#13460](http://dev.ckeditor.com/ticket/13460): [IE8] Fixed: Copying inline
widgets is broken when [Advanced Content
Filter](http://docs.ckeditor.com/#!/guide/dev_acf) is disabled.
+* [#13495](http://dev.ckeditor.com/ticket/13495): [Firefox, IE] Fixed: Text is
not word-wrapped in the Paste dialog window.
+* [#13528](http://dev.ckeditor.com/ticket/13528): address@hidden Fixed:
Content copied from Microsoft Word and other external applications is pasted as
a plain text. Removed the
`CKEDITOR.plugins.clipboard.isHtmlInExternalDataTransfer` property as the check
must be dynamic.
+* [#13583](http://dev.ckeditor.com/ticket/13583): Fixed:
[`DataTransfer.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.clipboard.dataTransfer-method-getData)
should work consistently in all browsers and should not strip valuable
content. Fixed pasting tables from Microsoft Excel on Chrome.
+* [#13468](http://dev.ckeditor.com/ticket/13468): [IE] Fixed: Binding
drag&drop `dataTransfer` does not work if `text` data was set in the meantime.
+* [#13451](http://dev.ckeditor.com/ticket/13451): [IE8-9] Fixed: One drag&drop
operation may affect following ones.
+* [#13184](http://dev.ckeditor.com/ticket/13184): Fixed: Web page reloaded
after a drop on editor UI.
+* [#13129](http://dev.ckeditor.com/ticket/13129) Fixed: Block widget blurred
after a drop followed by an undo.
+* [#13397](http://dev.ckeditor.com/ticket/13397): Fixed: Drag&drop of a widget
inside its nested widget crashes the editor.
+* [#13385](http://dev.ckeditor.com/ticket/13385): Fixed:
[`editor.getSnapshot()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSnapshot)
may return a non-string value.
+* [#13419](http://dev.ckeditor.com/ticket/13419): Fixed: The [Auto
Link](http://ckeditor.com/addon/autolink) plugin does not encode double quotes
in URLs.
+* [#13420](http://dev.ckeditor.com/ticket/13420): Fixed: The [Auto
Embed](http://ckeditor.com/addon/autoembed) plugin ignores encoded characters
in URL parameters.
+* [#13410](http://dev.ckeditor.com/ticket/13410): Fixed: Error thrown in the
[Auto Embed](http://ckeditor.com/addon/autoembed) plugin when undoing right
after pasting a link.
+* [#13566](http://dev.ckeditor.com/ticket/13566): Fixed: Suppressed
notifications in the [Media Embed Base](http://ckeditor.com/addon/embedbase)
plugin.
+* [#11616](http://dev.ckeditor.com/ticket/11616): [Chrome] Fixed: Resizing the
editor while it is not displayed breaks the editable. Fixes also
[#9160](http://dev.ckeditor.com/ticket/9160) and
[#9715](http://dev.ckeditor.com/ticket/9715).
+* [#11376](http://dev.ckeditor.com/ticket/11376): [IE11] Fixed: Loss of text
when pasting bulleted lists from Microsoft Word.
+* [#13143](http://dev.ckeditor.com/ticket/13143): [Edge] Fixed: Focus lost
when opening the panel.
+* [#13387](http://dev.ckeditor.com/ticket/13387): [Edge] Fixed: "Permission
denied" error thrown when loading the editor with developer tools open.
+* [#13574](http://dev.ckeditor.com/ticket/13574): [Edge] Fixed: "Permission
denied" error thrown when opening editor dialog windows.
+* [#13441](http://dev.ckeditor.com/ticket/13441): [Edge] Fixed: The
[Clipboard](http://ckeditor.com/addon/clipboard) plugin breaks the state of
[Undo](http://ckeditor.com/addon/undo) commands after a paste.
+* [#13554](http://dev.ckeditor.com/ticket/13554): [Edge] Fixed: Paste dialog's
iframe does not receive focus on show.
+* [#13440](http://dev.ckeditor.com/ticket/13440): [Edge] Fixed: Unable to
paste a widget.
+
+Other Changes:
+
+* [#13421](http://dev.ckeditor.com/ticket/13421): UX improvements to
notifications in the [Auto Embed](http://ckeditor.com/addon/autoembed) plugin.
+
+## CKEditor 4.5.1
+
+Fixed Issues:
+
+* [#13486](http://dev.ckeditor.com/ticket/13486): Fixed: The [Upload
Image](http://ckeditor.com/addon/uploadimage) plugin should log an error, not
throw an error when upload URL is not set.
+
+## CKEditor 4.5
+
+New Features:
+
+* [#13304](http://dev.ckeditor.com/ticket/13304): Added support for passing
DOM elements to
[`config.sharedSpaces`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-sharedSpaces).
Thanks to [Undergrounder](https://github.com/Undergrounder)!
+* [#13215](http://dev.ckeditor.com/ticket/13215): Added ability to cancel
fetching a resource by the Embed plugins.
+* [#13213](http://dev.ckeditor.com/ticket/13213): Added the
[`dialog#setState()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dialog-method-setState)
method and used it in the [Embed](http://ckeditor.com/addon/embed) dialog to
indicate that a resource is being loaded.
+* [#13337](http://dev.ckeditor.com/ticket/13337): Added the
[`repository.onWidget()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-onWidget)
method — a convenient way to listen to
[widget](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget) events
through the
[repository](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository).
+* [#13214](http://dev.ckeditor.com/ticket/13214): Added support for pasting
links that convert into embeddable resources on the fly.
+
+Fixed Issues:
+
+* [#13334](http://dev.ckeditor.com/ticket/13334): Fixed: Error after nesting
widgets and playing with undo/redo.
+* [#13118](http://dev.ckeditor.com/ticket/13118): Fixed: The
[`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml)
method throws an error when called in the source mode.
+* [#13158](http://dev.ckeditor.com/ticket/13158): Fixed: Error after canceling
a dialog when creating a widget.
+* [#13197](http://dev.ckeditor.com/ticket/13197): Fixed: Linked inline
[Enhanced Image](http://ckeditor.com/addon/image2) alignment class is not
transferred to the widget wrapper.
+* [#13199](http://dev.ckeditor.com/ticket/13199): Fixed: [Semantic
Embed](http://ckeditor.com/addon/embedsemantic) does not support widget classes.
+* [#13003](http://dev.ckeditor.com/ticket/13003): Fixed: Anchors are uploaded
when moving them by drag and drop.
+* [#13032](http://dev.ckeditor.com/ticket/13032): Fixed: When upload is done,
notification update should be marked as important.
+* [#13300](http://dev.ckeditor.com/ticket/13300): Fixed: The `internalCommit`
argument in the [Image](http://ckeditor.com/addon/image) dialog seems to be
never used.
+* [#13036](http://dev.ckeditor.com/ticket/13036): Fixed: Notifications are
moved 10px to the right.
+* [#13280](http://dev.ckeditor.com/ticket/13280): [IE8] Fixed: Undo after
inline widget drag&drop throws an error.
+* [#13186](http://dev.ckeditor.com/ticket/13186): Fixed: Content dropped into
a nested editable is not filtered by [Advanced Content
Filter](http://docs.ckeditor.com/#!/guide/dev_acf).
+* [#13140](http://dev.ckeditor.com/ticket/13140): Fixed: Error thrown when
dropping a block widget right after itself.
+* [#13176](http://dev.ckeditor.com/ticket/13176): [IE8] Fixed: Errors on
drag&drop of embed widgets.
+* [#13015](http://dev.ckeditor.com/ticket/13015): Fixed: Dropping an image
file on [Enhanced Image](http://ckeditor.com/addon/image2) causes a page reload.
+* [#13080](http://dev.ckeditor.com/ticket/13080): Fixed: Ugly notification
shown when the response contains HTML content.
+* [#13011](http://dev.ckeditor.com/ticket/13011): [IE8] Fixed: Anchors are
duplicated on drag&drop in specific locations.
+* [#13105](http://dev.ckeditor.com/ticket/13105): Fixed: Various issues
related to
[`CKEDITOR.tools.htmlEncode()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-htmlEncode)
and
[`CKEDITOR.tools.htmlDecode()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-htmlDecode)
methods.
+* [#11976](http://dev.ckeditor.com/ticket/11976): [Chrome] Fixed: Copy&paste
and drag&drop lists from Microsoft Word.
+* [#13128](http://dev.ckeditor.com/ticket/13128): Fixed: Various issues with
cloning element IDs:
+ * Fixed the default behavior of
[`range.cloneContents()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents)
and
[`range.extractContents()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-extractContents)
methods which now clone IDs similarly to their native counterparts.
+ * Added `cloneId` arguments to the above methods,
[`range.splitBlock()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-splitBlock)
and
[`element.breakParent()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-breakParent).
Mind the default values and special behavior in the `extractContents()` method!
+ * Fixed issues where IDs were lost on copy&paste and drag&drop.
+* Toolbar configurators:
+ * [#13185](http://dev.ckeditor.com/ticket/13185): Fixed: Wrong position of
the suggestion box if there is not enough space below the caret.
+ * [#13138](http://dev.ckeditor.com/ticket/13138): Fixed: The "Toggle empty
elements" button label is unclear.
+ * [#13136](http://dev.ckeditor.com/ticket/13136): Fixed: Autocompleter is
far too intrusive.
+ * [#13133](http://dev.ckeditor.com/ticket/13133): Fixed: Tab leaves the
editor.
+ * [#13173](http://dev.ckeditor.com/ticket/13173): Fixed:
[`config.removeButtons`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-removeButtons)
is ignored by the advanced toolbar configurator.
+
+Other Changes:
+
+* [#13119](http://dev.ckeditor.com/ticket/13119): Improved compatibility of
editor skins ([Moono](http://ckeditor.com/addon/moono) and
[Kama](http://ckeditor.com/addon/kama)) with external web page style sheets.
+* Toolbar configurators:
+ * [#13147](http://dev.ckeditor.com/ticket/13147): Added buttons to the
sticky toolbar.
+ * [#13207](http://dev.ckeditor.com/ticket/13207): Used modal window to
display toolbar configurator help.
+* [#13316](http://dev.ckeditor.com/ticket/13316): Made
[`CKEDITOR.env.isCompatible`](http://docs.ckeditor.com/#!/api/CKEDITOR.env-property-isCompatible)
a blacklist rather than a whitelist. More about the change in the [Browser
Compatibility](http://docs.ckeditor.com/#!/guide/dev_browsers) guide.
+* [#13398](http://dev.ckeditor.com/ticket/13398): Renamed
`CKEDITOR.fileTools.UploadsRepository` to
[`CKEDITOR.fileTools.UploadRepository`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadRepository)
and changed all related properties.
+* [#13279](http://dev.ckeditor.com/ticket/13279): Reviewed CSS vendor prefixes.
+* [#13454](http://dev.ckeditor.com/ticket/13454): Removed unused
`lang.image.alertUrl` token from the [Image](http://ckeditor.com/addon/image)
plugin.
+
+## CKEditor 4.5 Beta
+
+New Features:
+
+* Clipboard (copy&paste, drag&drop) and file uploading features and
improvements ([#11437](http://dev.ckeditor.com/ticket/11437)).
+
+ * Major features:
+ * Support for dropping and pasting files into the editor was introduced.
Through a set of new facades for native APIs it is now possible to easily
intercept and process inserted files.
+ * [File upload tools](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools)
were introduced in order to simplify controlling the loading, uploading and
handling server response, properly handle [new upload
configuration](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-uploadUrl)
options, etc.
+ * [Upload Image](http://ckeditor.com/addon/uploadimage) widget was
introduced to upload dropped images. A base class for the [upload
widget](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition)
was exposed, too, to make it simple to create new types of upload widgets
which can handle any type of dropped file, show the upload progress and update
the content when the process is done. It also handles editing and undo/redo
operations when a file is being uploaded and integrates with the [notification
aggregator](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notificationAggregator)
to show progress and success or error.
+ * All drag and drop operations were integrated with the editor. All
dropped content is passed through the
[`editor#paste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste)
event and a set of new editor events was introduced —
[`dragstart`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-dragstart),
[`drop`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-drop),
[`dragend`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-dragend).
+ * The [Data
Transfer](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.clipboard.dataTransfer)
facade was introduced to unify access to data in various types and files.
[Data
Transfer](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.clipboard.dataTransfer)
is now always available in the
[`editor#paste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste)
event.
+ * Switched from the pastebin to using the native clipboard access whenever
possible. This solved many issues related to pastebin such as unnecessary
scrolling or data loss. Additionally, on copy and cut from the editor the
clipboard data is set. Therefore, on paste the editor has access to clean data,
undisturbed by the browsers.
+ * Drag and drop of inline and block widgets was integrated with the
standard clipboard APIs. By listening to drag events you will thus be notified
about widgets, too. This opens a possibility to filter pasted and dropped
widgets.
+ * The
[`editor#paste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste)
event can have the `range` parameter so it is possible to change the paste
position in the listener or paste in the not selectable position. Also the
[`editor.insertHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertHtml)
method now accepts `range` as an additional parameter.
+ * [#11621](http://dev.ckeditor.com/ticket/11621): A configurable [paste
filter](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFilter) was
introduced. The filter is by default turned to `'semantic-content'` on Webkit
and Blink for all pasted content coming from external sources because of the
low quality of HTML that these engines put into the clipboard. Internal and
cross-editor paste is safe due to the change explained in the previous point.
+
+ * Other changes and related fixes:
+ * [#12095](http://dev.ckeditor.com/ticket/12095): On drag and copy of
widgets [the same
method](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml)
is used to get selected HTML as in the normal case. Thanks to that styles
applied to inline widgets are not lost.
+ * [#11219](http://dev.ckeditor.com/ticket/11219): Fixed: Dragging a
[captioned image](http://ckeditor.com/addon/image2) does not fire the
[`editor#paste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste)
event.
+ * [#9554](http://dev.ckeditor.com/ticket/9554): [Webkit Mac] Fixed: Editor
scrolls on paste.
+ * [#9898](http://dev.ckeditor.com/ticket/9898): [Webkit&Divarea] Fixed:
Pasting causes undesirable scrolling.
+ * [#11993](http://dev.ckeditor.com/ticket/11993): [Chrome] Fixed: Pasting
content scrolls the document.
+ * [#12613](http://dev.ckeditor.com/ticket/12613): Show the user that they
can not drop on editor UI (toolbar, bottom bar).
+ * [#12851](http://dev.ckeditor.com/ticket/12851): [Blink/Webkit] Fixed:
Formatting disappears when pasting content into cells.
+ * [#12914](http://dev.ckeditor.com/ticket/12914): Fixed: Copy/Paste of
table broken in `div`-based editor.
+
+ * Browser support.<br>Browser support for related features varies
significantly (see http://caniuse.com/clipboard).
+ * File APIs needed to operate and file upload is not supported in Internet
Explorer 9 and below.
+ * Only Chrome and Safari on Mac OS support setting custom data items in
the clipboard, so currently it is possible to recognize the origin of the
copied content in these browsers only. All drag and drop operations can be
identified thanks to the new Data Transfer facade.
+ * No Internet Explorer browser supports the standard clipboard API which
results in small glitches like where only plain text can be dropped from
outside the editor. Thanks to the new Data Transfer facade, internal and
cross-editor drag and drop supports the full range of data.
+ * Direct access to clipboard could only be implemented in Chrome, Safari
on Mac OS, Opera and Firefox. In other browsers the pastebin must still be used.
+
+* [#12875](http://dev.ckeditor.com/ticket/12875): Samples and toolbar
configuration tools.
+ * The old set of samples shipped with every CKEditor package was replaced
with a shiny new single-page sample. This change concluded a long term plan
which started from introducing the [CKEditor SDK](http://sdk.ckeditor.com/) and
[CKEditor Functionality
Overview](http://docs.ckeditor.com/#!/guide/dev_features) section in the
documentation which essentially redefined the old samples.
+ * Toolbar configurators with live previews were introduced. They will be
shipped with every CKEditor package and are meant to help in configuring
toolbar layouts.
+
+* [#10925](http://dev.ckeditor.com/ticket/10925): The [Media
Embed](http://ckeditor.com/addon/embed) and [Semantic Media
Embed](http://ckeditor.com/addon/embedsemantic) plugins were introduced. Read
more about the new features in the [Embedding
Content](http://docs.ckeditor.com/#!/guide/dev_media_embed) article.
+* [#10931](http://dev.ckeditor.com/ticket/10931): Added support for nesting
widgets. It is now possible to insert one widget into another widget's nested
editable. Note that unless nested editable's [allowed
content](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.nestedEditable.definition-property-allowedContent)
is defined precisely, starting from CKEditor 4.5 some widget buttons may
become enabled. This feature is not supported in IE8. Included issues:
+ * [#12018](http://dev.ckeditor.com/ticket/12018): Fixed and reviewed: Nested
widgets garbage collection.
+ * [#12024](http://dev.ckeditor.com/ticket/12024): [Firefox] Fixed: Outline
is extended to the left by unpositioned drag handlers.
+ * [#12006](http://dev.ckeditor.com/ticket/12006): Fixed: Drag and drop of
nested block widgets.
+ * [#12008](http://dev.ckeditor.com/ticket/12008): Fixed various cases of
inserting a single non-editable element using the
[`editor.insertHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertHtml)
method. Fixes pasting a widget with a nested editable inside another widget's
nested editable.
+
+* 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.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.
+* [#12126](http://dev.ckeditor.com/ticket/12126): Introduced
[`config.image_prefillDimensions`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image_prefillDimensions)
and
[`config.image2_prefillDimensions`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_prefillDimensions)
to make pre-filling `width` and `height` configurable for the [Enhanced
Image](http://ckeditor.com/addon/image2).
+* [#12746](http://dev.ckeditor.com/ticket/12746): Added a new configuration
option to hide the [Enhanced Image](http://ckeditor.com/addon/image2) resizer.
+* [#12150](http://dev.ckeditor.com/ticket/12150): Exposed the
[`getNestedEditable()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-static-method-getNestedEditable)
and `is*` [widget
helper](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget) functions (see
the static methods).
+* [#12448](http://dev.ckeditor.com/ticket/12448): Introduced the
[`editable.insertHtmlIntoRange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertHtmlIntoRange)
method.
+* [#12143](http://dev.ckeditor.com/ticket/12143): Added the
[`config.floatSpacePreferRight`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-floatSpacePreferRight)
configuration option that switches the alignment of the floating toolbar.
Thanks to [InvisibleBacon](http://github.com/InvisibleBacon)!
+* [#10986](http://dev.ckeditor.com/ticket/10986): Added support for changing
dialog input and textarea text directions by using the *Shift+Alt+Home/End*
keystrokes. The direction is stored in the value of the input by prepending the
[`\u202A`](http://unicode.org/cldr/utility/character.jsp?a=202A) or
[`\u202B`](http://unicode.org/cldr/utility/character.jsp?a=202B) marker to it.
Read more in the
[documentation](http://docs.ckeditor.com/#!/api/CKEDITOR.dialog.definition.textInput-property-bidi).
Thanks to [edithkk](https://github.com/edithkk)!
+* [#12770](http://dev.ckeditor.com/ticket/12770): Added support for passing
[widget](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget)'s startup
data as a widget command's argument. Thanks to [Rebrov
Boris](https://github.com/zipp3r) and [Tieme van
Veen](https://github.com/tiemevanveen)!
+* [#11583](http://dev.ckeditor.com/ticket/11583): Added support for the HTML5
`required` attribute in various form elements. Thanks to [Steven
Busse](https://github.com/sbusse)!
+
+Changes:
+
+* [#12858](http://dev.ckeditor.com/ticket/12858): Basic
[Spartan](http://blogs.windows.com/bloggingwindows/2015/03/30/introducing-project-spartan-the-new-browser-built-for-windows-10/)
browser compatibility. Full compatibility will be introduced later, because at
the moment Spartan is still too unstable to be used for tests and we see many
changes from version to version.
+* [#12948](http://dev.ckeditor.com/ticket/12948): The
[`config.mathJaxLibrary`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-mathJaxLib)
option does not default to the MathJax CDN any more. It needs to be configured
to enable the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin
now.
+* [#13069](http://dev.ckeditor.com/ticket/13069): Fixed inconsistencies
between
[`editable.insertHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElement)
and
[`editable.insertElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElement)
when the `range` parameter is used. Now, the `editor.insertElement()` method
works on a higher level, which means that it saves undo snapshots and sets the
selection after insertion. Use the
[`editable.insertElementIntoRange()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElementIntoRange)
method directly for the pre 4.5 behavior of `editable.insertElement()`.
+* [#12870](http://dev.ckeditor.com/ticket/12870): Use
[`editor.showNotification()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-showNotification)
instead of `alert()` directly whenever possible. When the [Notification
plugin](http://ckeditor.com/addon/notification) is loaded, the notification
system is used automatically. Otherwise, the native `alert()` is displayed.
+* [#8024](http://dev.ckeditor.com/ticket/8024): Swapped behavior of the Split
Cell Vertically and Horizontally features of the [Table
Tools](http://ckeditor.com/addon/tabletools) plugin to be more intuitive.
Thanks to [kevinisagit](https://github.com/kevinisagit)!
+* [#10903](http://dev.ckeditor.com/ticket/10903): Performance improvements for
the
[`dom.element.addClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-addClass),
[`dom.element.removeClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeClass)
and
[`dom.element.hasClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-hasClass)
methods. Note: The previous implementation allowed passing multiple classes to
`addClass()` although it was only a side effect of that implementation. The new
implementation does not allow this.
+* [#11856](http://dev.ckeditor.com/ticket/11856): The jQuery adapter throws a
meaningful error if CKEditor or jQuery are not loaded.
+
+Fixed issues:
+
+* [#11586](http://dev.ckeditor.com/ticket/11586): Fixed:
[`range.cloneContents()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents)
should not change the DOM in order not to affect selection.
+* [#12148](http://dev.ckeditor.com/ticket/12148): Fixed:
[`dom.element.getChild()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-getChild)
should not modify a passed array.
+* [#12503](http://dev.ckeditor.com/ticket/12503): [Blink/Webkit] Fixed:
Incorrect result of Select All and *Backspace* or *Delete*.
+* [#13001](http://dev.ckeditor.com/ticket/13001): [Firefox] Fixed: The `<br
/>` filler is placed in the wrong position by the
[`range.fixBlock()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-fixBlock)
method due to quirky Firefox behavior.
+* [#13101](http://dev.ckeditor.com/ticket/13101): [IE8] Fixed: Colons are
prepended to HTML5 element names when cloning them.
+
+## CKEditor 4.4.8
+
+**Security Updates:**
+
+* Fixed XSS vulnerability in the HTML parser reported by [Dheeraj
Joshi](https://twitter.com/dheerajhere) and [Prem
Kumar](https://twitter.com/iAmPr3m).
+
+ Issue summary: It was possible to execute XSS inside CKEditor after
persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a
specially crafted HTML code, prepared by the attacker, into the opened CKEditor
source area, and (iii) switch back to WYSIWYG mode.
+
+**An upgrade is highly recommended!**
+
+Fixed Issues:
+
+* [#12899](http://dev.ckeditor.com/ticket/12899): Fixed: Corrected wrong tag
ending for horizontal box definition in the [Dialog User
Interface](http://ckeditor.com/addon/dialogui) plugin. Thanks to
[mizafish](https://github.com/mizafish)!
+* [#13254](http://dev.ckeditor.com/ticket/13254): Fixed: Cannot outdent block
after indent when using the [Div Editing
Area](http://ckeditor.com/addon/divarea) plugin. Thanks to [Jonathan
Cottrill](https://github.com/jcttrll)!
+* [#13268](http://dev.ckeditor.com/ticket/13268): Fixed: Documentation for
[`CKEDITOR.dom.text`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.text) is
incorrect. Thanks to [Ben Kiefer](https://github.com/benkiefer)!
+* [#12739](http://dev.ckeditor.com/ticket/12739): Fixed: Link loses inline
styles when edited without the [Advanced Tab for
Dialogs](http://ckeditor.com/addon/dialogadvtab) plugin. Thanks to [Віталій
Крутько](https://github.com/asmforce)!
+* [#13292](http://dev.ckeditor.com/ticket/13292): Fixed: Protection pattern
does not work in attribute in self-closing elements with no space before `/>`.
Thanks to [Віталій Крутько](https://github.com/asmforce)!
+* [PR#192](https://github.com/ckeditor/ckeditor-dev/pull/192): Fixed: Variable
name typo in the [Dialog User Interface](http://ckeditor.com/addon/dialogui)
plugin which caused
[`CKEDITOR.ui.dialog.radio`](http://docs.ckeditor.com/#!/api/CKEDITOR.ui.dialog.radio)
validation to not work. Thanks to [Florian
Ludwig](https://github.com/FlorianLudwig)!
+* [#13232](http://dev.ckeditor.com/ticket/13232): [Safari] Fixed: The
[`element.appendText()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-appendText)
method does not work properly for empty elements.
+* [#13233](http://dev.ckeditor.com/ticket/13233): Fixed:
[HTMLDataProcessor](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlDataProcessor)
can process `foo:href` attributes.
+* [#12796](http://dev.ckeditor.com/ticket/12796): Fixed: The [Indent
List](http://ckeditor.com/addon/indentlist) plugin unwraps parent `<li>`
elements. Thanks to [Andrew Stucki](https://github.com/andrewstucki)!
+* [#12885](http://dev.ckeditor.com/ticket/12885): Added missing
[`editor.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData)
parameter documentation.
+* [#11982](http://dev.ckeditor.com/ticket/11982): Fixed: Bullet added in a
wrong position after the *Enter* key is pressed in a nested list.
+* [#13027](http://dev.ckeditor.com/ticket/13027): Fixed: Keyboard navigation
in dialog windows with multiple tabs not following IBM CI 162 instructions or
[ARIA Authoring
Practices](http://www.w3.org/TR/2013/WD-wai-aria-practices-20130307/#tabpanel).
+* [#12256](http://dev.ckeditor.com/ticket/12256): Fixed: Basic styles classes
are lost when pasting from Microsoft Word if [basic
styles](http://ckeditor.com/addon/basicstyles) were configured to use classes.
+* [#12729](http://dev.ckeditor.com/ticket/12729): Fixed: Incorrect structure
created when merging a block into a list item on *Backspace* and *Delete*.
+* [#13031](http://dev.ckeditor.com/ticket/13031): [Firefox] Fixed: No more
line breaks in source view since Firefox 36.
+* [#13131](http://dev.ckeditor.com/ticket/13131): Fixed: The [Code
Snippet](http://ckeditor.com/addon/codesnippet) plugin cannot be used without
the [IFrame Editing Area](http://ckeditor.com/addon/wysiwygarea) plugin.
+* [#9086](http://dev.ckeditor.com/ticket/9086): Fixed: Invalid ARIA property
used on paste area `<iframe>`.
+* [#13164](http://dev.ckeditor.com/ticket/13164): Fixed: Error when inserting
a hidden field.
+* [#13155](http://dev.ckeditor.com/ticket/13155): Fixed: Incorrect [Line
Utilities](http://ckeditor.com/addon/lineutils) positioning when `<body>` has a
margin.
+* [#13351](http://dev.ckeditor.com/ticket/13351): Fixed: Link lost when
editing a linked image with the Link tab disabled. This also fixed a bug when
inserting an image into a fully selected link would throw an error
([#12847](https://dev.ckeditor.com/ticket/12847)).
+* [#13344](http://dev.ckeditor.com/ticket/13344): [WebKit/Blink] Fixed: It is
possible to remove or change editor content in [read-only
mode](http://docs.ckeditor.com/#!/guide/dev_readonly).
+
+Other Changes:
+
+* [#12844](http://dev.ckeditor.com/ticket/12844) and
[#13103](http://dev.ckeditor.com/ticket/13103): Upgraded the [testing
environment](http://docs.ckeditor.com/#!/guide/dev_tests) to
[Bender.js](https://github.com/benderjs/benderjs) `0.2.3`.
+* [#12930](http://dev.ckeditor.com/ticket/12930): Because of licensing issues,
`truncated-mathjax/` is now removed from the `tests/` directory. Now
`bender.config.mathJaxLibPath` must be configured manually in order to run
[Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin tests.
+* [#13266](http://dev.ckeditor.com/ticket/13266): Added more shades of gray in
the [Color Dialog](http://ckeditor.com/addon/colordialog) window. Thanks to
[mizafish](https://github.com/mizafish)!
+
+
## CKEditor 4.4.7
Fixed Issues:
@@ -11,7 +623,7 @@
* [#12812](http://dev.ckeditor.com/ticket/12812): Fixed: An uncaught security
exception is thrown when [Line Utilities](http://ckeditor.com/addon/lineutils)
are used in an inline editor loaded in a cross-domain `iframe`. Thanks to
[Vitaliy Zurian](https://github.com/thecatontheflat)!
* [#12735](http://dev.ckeditor.com/ticket/12735): Fixed:
[`config.fillEmptyBlocks`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fillEmptyBlocks)
should only apply when outputting data.
* [#10032](http://dev.ckeditor.com/ticket/10032): Fixed: [Paste from
Word](http://ckeditor.com/addon/pastefromword) filter is executed for every
paste after using the button.
-* [#12597](http://dev.ckeditor.com/ticket/12597): [Blink/Webkit] Fixed:
Multi-byte Japanese characters entry not working properly after *Shift+Enter*.
+* [#12597](http://dev.ckeditor.com/ticket/12597): [Blink/WebKit] Fixed:
Multi-byte Japanese characters entry not working properly after *Shift+Enter*.
* [#12387](http://dev.ckeditor.com/ticket/12387): Fixed: An error is thrown if
a skin does not have the
[`chameleon`](http://docs.ckeditor.com/#!/api/CKEDITOR.skin-method-chameleon)
property defined and
[`config.uiColor`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-uiColor)
is defined.
* [#12747](http://dev.ckeditor.com/ticket/12747): [IE8-10] Fixed: Opening a
drop-down for a specific selection when the editor is maximized results in
incorrect drop-down panel position.
* [#12850](http://dev.ckeditor.com/ticket/12850): [IEQM] Fixed: An error is
thrown after focusing the editor.
@@ -44,7 +656,7 @@
* [#12300](http://dev.ckeditor.com/ticket/12300): Fixed: The
[`editor.change`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change)
event fired on first navigation key press after typing.
* [#12141](http://dev.ckeditor.com/ticket/12141): Fixed: List items are lost
when indenting a list item with content wrapped with a block element.
* [#12515](http://dev.ckeditor.com/ticket/12515): Fixed: Cursor is in the
wrong position when undoing after adding an image and typing some text.
-* [#12484](http://dev.ckeditor.com/ticket/12484): [Blink/Webkit] Fixed: DOM is
changed outside the editor area in a certain case.
+* [#12484](http://dev.ckeditor.com/ticket/12484): [Blink/WebKit] Fixed: DOM is
changed outside the editor area in a certain case.
* [#12688](http://dev.ckeditor.com/ticket/12688): Improved the tests of the
[styles system](http://docs.ckeditor.com/#!/api/CKEDITOR.style) and fixed two
minor issues.
* [#12403](http://dev.ckeditor.com/ticket/12403): Fixed: Changing the
[font](http://ckeditor.com/addon/font) style should not lead to nesting it in
the previous style element.
* [#12609](http://dev.ckeditor.com/ticket/12609): Fixed: Incorrect
`config.magicline_putEverywhere` name used for a [Magic
Line](http://ckeditor.com/addon/magicline) all-encompassing
[`config.magicline_everywhere`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-magicline_everywhere)
configuration option.
@@ -176,8 +788,8 @@
Fixed Issues:
-* [#11861](http://dev.ckeditor.com/ticket/11861): [Webkit/Blink] Fixed: Span
elements created while joining adjacent elements. **Note:** This patch only
covers cases when *Backspace* or *Delete* is pressed on a collapsed (empty)
selection. The remaining case, with a non-empty selection, will be fixed in the
next release.
-* [#10714](http://dev.ckeditor.com/ticket/10714): [iOS] Fixed: Selection and
drop-downs are broken if a touch event listener is used due to a [Webkit
bug](https://bugs.webkit.org/show_bug.cgi?id=128924). Thanks to [Arty
Gus](https://github.com/artygus)!
+* [#11861](http://dev.ckeditor.com/ticket/11861): [WebKit/Blink] Fixed: Span
elements created while joining adjacent elements. **Note:** This patch only
covers cases when *Backspace* or *Delete* is pressed on a collapsed (empty)
selection. The remaining case, with a non-empty selection, will be fixed in the
next release.
+* [#10714](http://dev.ckeditor.com/ticket/10714): [iOS] Fixed: Selection and
drop-downs are broken if a touch event listener is used due to a [WebKit
bug](https://bugs.webkit.org/show_bug.cgi?id=128924). Thanks to [Arty
Gus](https://github.com/artygus)!
* [#11911](http://dev.ckeditor.com/ticket/11911): Fixed setting the `dir`
attribute for a preloaded language in
[CKEDITOR.lang](http://docs.ckeditor.com/#!/api/CKEDITOR.lang). Thanks to
[Akash Mohapatra](https://github.com/akashmohapatra)!
* [#11926](http://dev.ckeditor.com/ticket/11926): Fixed: [Code
Snippet](http://ckeditor.com/addon/codesnippet) does not decode HTML entities
when loading code from the `<code>` element.
* [#11223](http://dev.ckeditor.com/ticket/11223): Fixed: Issue when [Protected
Source](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-protectedSource)
was not working in the `<title>` element.
@@ -190,7 +802,7 @@
* [#11813](http://dev.ckeditor.com/ticket/11813): Fixed: Link lost while
pasting a captioned image and restoring an undo snapshot ([Enhanced
Image](http://ckeditor.com/addon/image2)).
* [#11814](http://dev.ckeditor.com/ticket/11814): Fixed: _Link_ and _Unlink_
entries persistently displayed in the [Enhanced
Image](http://ckeditor.com/addon/image2) context menu.
* [#11839](http://dev.ckeditor.com/ticket/11839): [IE9] Fixed: The caret jumps
out of the editable area when resizing the editor in the source mode.
-* [#11822](http://dev.ckeditor.com/ticket/11822): [Webkit] Fixed: Editing
anchors by double-click is broken in some cases.
+* [#11822](http://dev.ckeditor.com/ticket/11822): [WebKit] Fixed: Editing
anchors by double-click is broken in some cases.
* [#11823](http://dev.ckeditor.com/ticket/11823): [IE8] Fixed: [Table
Resize](http://ckeditor.com/addon/tableresize) throws an error over scrollbar.
* [#11788](http://dev.ckeditor.com/ticket/11788): Fixed: It is not possible to
change the language back to _Not set_ in the [Code
Snippet](http://ckeditor.com/addon/codesnippet) dialog window.
* [#11788](http://dev.ckeditor.com/ticket/11788): Fixed:
[Filter](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter) rules are
not applied inside elements with the `contenteditable` attribute set to `true`.
@@ -283,7 +895,7 @@
Fixed Issues:
-* [#11500](http://dev.ckeditor.com/ticket/11500): [Webkit/Blink] Fixed:
Selection lost when setting data in another inline editor. Additionally,
[`selection.removeAllRanges()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-removeAllRanges)
is now scoped to selection's
[root](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-property-root).
+* [#11500](http://dev.ckeditor.com/ticket/11500): [WebKit/Blink] Fixed:
Selection lost when setting data in another inline editor. Additionally,
[`selection.removeAllRanges()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-removeAllRanges)
is now scoped to selection's
[root](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-property-root).
* [#11104](http://dev.ckeditor.com/ticket/11104): [IE] Fixed: Various issues
with scrolling and selection when focusing widgets.
* [#11487](http://dev.ckeditor.com/ticket/11487): Moving mouse over the
[Enhanced Image](http://ckeditor.com/addon/image2) widget will no longer change
the value returned by the
[`editor.checkDirty()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-checkDirty)
method.
* [#8673](http://dev.ckeditor.com/ticket/8673): [WebKit] Fixed: Cannot select
and remove the [Page Break](http://ckeditor.com/addon/pagebreak).
Modified: trunk/phpgwapi/js/ckeditor/LICENSE.md
===================================================================
--- trunk/phpgwapi/js/ckeditor/LICENSE.md 2017-09-10 13:53:33 UTC (rev
17047)
+++ trunk/phpgwapi/js/ckeditor/LICENSE.md 2017-09-10 20:43:27 UTC (rev
17048)
@@ -2,7 +2,7 @@
==========================
CKEditor - The text editor for Internet - http://ckeditor.com
-Copyright (c) 2003-2015, 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:
@@ -35,6 +35,26 @@
property. In some specific instances, CKEditor will incorporate work
done by developers outside of CKSource with their express permission.
+The following libraries are included in CKEditor under the MIT license (see
Appendix D):
+
+* 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 <address@hidden> and others.
+
+Parts of code taken from the following libraries are included in CKEditor
under the MIT license (see Appendix D):
+
+* jQuery (inspired the domReady function, ckeditor_base.js) - Copyright (c)
2011 John Resig, http://jquery.com/
+
+The following libraries are included in CKEditor under the SIL Open Font
License, Version 1.1 (see Appendix E):
+
+* Font Awesome (included in the toolbar configurator) - Copyright (C) 2012 by
Dave Gandy.
+
+The following libraries are included in CKEditor under the BSD-3 License (see
Appendix F):
+
+* highlight.js (included in the `codesnippet` plugin) - Copyright (c) 2006,
Ivan Sagalaev.
+* YUI Library (included in the `uicolor` plugin) - Copyright (c) 2009, Yahoo!
Inc.
+
+
Trademarks
----------
@@ -47,6 +67,7 @@
Appendix A: The GPL License
---------------------------
+```
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
@@ -327,11 +348,12 @@
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
+```
-
Appendix B: The LGPL License
----------------------------
+```
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
@@ -790,11 +812,12 @@
DAMAGES.
END OF TERMS AND CONDITIONS
+```
-
Appendix C: The MPL License
---------------------------
+```
MOZILLA PUBLIC LICENSE
Version 1.1
@@ -1262,3 +1285,136 @@
the notices in the Source Code files of the Original Code. You should
use the text of this Exhibit A rather than the text found in the
Original Code Source Code for Your Modifications.]
+```
+
+Appendix D: The MIT License
+---------------------------
+
+```
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+```
+
+Appendix E: The SIL Open Font License Version 1.1
+---------------------------------------------
+
+```
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+```
+
+Appendix F: The BSD-3 License
+-----------------------------
+
+```
+Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+```
+
Modified: trunk/phpgwapi/js/ckeditor/README.md
===================================================================
--- trunk/phpgwapi/js/ckeditor/README.md 2017-09-10 13:53:33 UTC (rev
17047)
+++ trunk/phpgwapi/js/ckeditor/README.md 2017-09-10 20:43:27 UTC (rev
17048)
@@ -1,7 +1,7 @@
CKEditor 4
==========
-Copyright (c) 2003-2014, 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
Modified: trunk/phpgwapi/js/ckeditor/adapters/jquery.js
===================================================================
--- trunk/phpgwapi/js/ckeditor/adapters/jquery.js 2017-09-10 13:53:33 UTC
(rev 17047)
+++ trunk/phpgwapi/js/ckeditor/adapters/jquery.js 2017-09-10 20:43:27 UTC
(rev 17048)
@@ -1,10 +1,10 @@
/*
- Copyright (c) 2003-2015, 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){CKEDITOR.config.jqueryOverrideVal="undefined"==typeof
CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;"undefined"!=typeof
a&&(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},ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The
environment is incompatible.");if(!a.isFunction(g))var k=d,d=g,g=k;var
i=[],d=d||{};this.each(function(){var b=
-a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,j=new
a.Deferred;i.push(j.promise());if(c&&!f)g&&g.apply(c,[this]),j.resolve();else
if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),j.resolve()):setTimeout(arguments.callee,100)},0)},null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof
d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",
-!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var
e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",[e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();
-return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var
c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);j.resolve()}else
setTimeout(arguments.callee,
-100)},0)},null,null,9999)}});var f=new
a.Deferred;this.promise=f.promise();a.when.apply(this,i).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return
this}}),CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return
function(d){if(arguments.length){var k=this,i=[],f=this.each(function(){var
b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new
a.Deferred;c.setData(d,function(){f.resolve()});i.push(f.promise());
-return!0}return g.call(b,d)});if(i.length){var b=new
a.Deferred;a.when.apply(this,i).done(function(){b.resolveWith(k)});return
b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return
f.is("textarea")&&c?c.getData():g.call(f)}})))})(window.jQuery);
\ No newline at end of file
+(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},
+ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The
environment is incompatible.");if(!a.isFunction(g)){var m=d;d=g;g=m}var
k=[];d=d||{};this.each(function(){var
b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new
a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else
if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.resolve()):setTimeout(arguments.callee,100)},0)},
+null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof
d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var
e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",
+[e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var
c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",
+c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);l.resolve()}else
setTimeout(arguments.callee,100)},0)},null,null,9999)}});var f=new
a.Deferred;this.promise=f.promise();a.when.apply(this,k).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return
this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return
function(d){if(arguments.length){var m=
+this,k=[],f=this.each(function(){var
b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new
a.Deferred;c.setData(d,function(){f.resolve()});k.push(f.promise());return!0}return
g.call(b,d)});if(k.length){var b=new
a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});return
b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return
f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery);
\ No newline at end of file
Modified: trunk/phpgwapi/js/ckeditor/build-config.js
===================================================================
--- trunk/phpgwapi/js/ckeditor/build-config.js 2017-09-10 13:53:33 UTC (rev
17047)
+++ trunk/phpgwapi/js/ckeditor/build-config.js 2017-09-10 20:43:27 UTC (rev
17048)
@@ -1,5 +1,5 @@
/**
- * @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
*/
@@ -13,10 +13,10 @@
* (1) http://ckeditor.com/builder
* Visit online builder to build CKEditor from scratch.
*
- * (2) http://ckeditor.com/builder/e41bccb8290b6d530f8478ddafe95c48
+ * (2) http://ckeditor.com/builder/3f95a5ecef134abe92feb6c0fadc2533
* Visit online builder to build CKEditor, starting with the same setup as
before.
*
- * (3) http://ckeditor.com/builder/download/e41bccb8290b6d530f8478ddafe95c48
+ * (3) http://ckeditor.com/builder/download/3f95a5ecef134abe92feb6c0fadc2533
* Straight download link to the latest version of CKEditor (Optimized)
with the same setup as before.
*
* NOTE:
@@ -25,27 +25,29 @@
*/
var CKBUILDER_CONFIG = {
- skin: 'moono',
+ skin: 'moono-lisa',
preset: 'standard',
ignore: [
- '.bender',
- 'bender.js',
- 'bender-err.log',
- 'bender-out.log',
- 'dev',
'.DS_Store',
+ '.bender',
'.editorconfig',
'.gitattributes',
'.gitignore',
- 'gruntfile.js',
'.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',
- 'README.md',
'tests'
],
plugins : {
@@ -80,6 +82,7 @@
'stylescombo' : 1,
'tab' : 1,
'table' : 1,
+ 'tableselection' : 1,
'tabletools' : 1,
'toolbar' : 1,
'undo' : 1,
@@ -89,6 +92,7 @@
languages : {
'af' : 1,
'ar' : 1,
+ 'az' : 1,
'bg' : 1,
'bn' : 1,
'bs' : 1,
@@ -97,6 +101,7 @@
'cy' : 1,
'da' : 1,
'de' : 1,
+ 'de-ch' : 1,
'el' : 1,
'en' : 1,
'en-au' : 1,
@@ -104,6 +109,7 @@
'en-gb' : 1,
'eo' : 1,
'es' : 1,
+ 'es-mx' : 1,
'et' : 1,
'eu' : 1,
'fa' : 1,
@@ -133,6 +139,7 @@
'nb' : 1,
'nl' : 1,
'no' : 1,
+ 'oc' : 1,
'pl' : 1,
'pt' : 1,
'pt-br' : 1,
Modified: trunk/phpgwapi/js/ckeditor/ckeditor.js
===================================================================
--- trunk/phpgwapi/js/ckeditor/ckeditor.js 2017-09-10 13:53:33 UTC (rev
17047)
+++ trunk/phpgwapi/js/ckeditor/ckeditor.js 2017-09-10 20:43:27 UTC (rev
17048)
@@ -1,946 +1,1086 @@
/*
-Copyright (c) 2003-2015, 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,f={timestamp:"F0RD",version:"4.4.7",revision:"3a35b3d",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var
e=window.CKEDITOR_BASEPATH||"";if(!e)for(var
d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var
b=d[c].src.match(a);if(b){e=b[1];break}}-1==e.indexOf(":/")&&"//"!=e.slice(0,2)&&(e=0===e.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+
-e:location.href.match(/^[^\?]*\/(?:)/)[0]+e);if(!e)throw'The CKEditor
installation path could not be automatically detected. Please set the global
variable "CKEDITOR_BASEPATH" before creating editor instances.';return
e}(),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("?")?"&":"?")+"t="+this.timestamp);return
a},domReady:function(){function
a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",
-a,!1),d()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),d())}catch(c){}}function
d(){for(var a;a=c.shift();)a()}var c=[];return function(d){function
b(){try{document.documentElement.doScroll("left")}catch(m){setTimeout(b,1);return}a()}c.push(d);"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);d=!1;try{d=!window.frameElement}catch(f){}document.documentElement.doScroll&&d&&b()}}}()},b=window.CKEDITOR_GETURL;if(b){var
c=f.getUrl;f.getUrl=function(a){return b.call(f,a)||c.call(f,a)}}return f}());
-CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(a){var
f=CKEDITOR.event.prototype,b;for(b in
f)a[b]==null&&(a[b]=f[b])},CKEDITOR.event.prototype=function(){function
a(a){var e=f(this);return e[a]||(e[a]=new b(a))}var
f=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
e=0,d=this.listeners;e<d.length;e++)if(d[e].fn==a)return e;return-1}};
-return{define:function(b,e){var
d=a.call(this,b);CKEDITOR.tools.extend(d,e,true)},on:function(b,e,d,f,k){function
j(a,m,y,s){a={name:b,sender:this,editor:a,data:m,listenerData:f,stop:y,cancel:s,removeListener:g};return
e.call(d,a)===false?false:a.data}function g(){y.removeListener(b,e)}var
m=a.call(this,b);if(m.getListenerIndex(e)<0){m=m.listeners;d||(d=this);isNaN(k)&&(k=10);var
y=this;j.fn=e;j.priority=k;for(var
s=m.length-1;s>=0;s--)if(m[s].priority<=k){m.splice(s+1,0,j);return{removeListener:g}}m.unshift(j)}return{removeListener:g}},
-once:function(){var
a=Array.prototype.slice.call(arguments),e=a[1];a[1]=function(a){a.removeListener();return
e.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,e=function(){a=1},d=0,b=function(){d=1};return
function(k,j,g){var m=f(this)[k],k=a,y=d;a=d=0;if(m){var
s=m.listeners;if(s.length)for(var
s=s.slice(0),w,q=0;q<s.length;q++){if(m.errorProof)try{w=
-s[q].call(this,g,j,e,b)}catch(t){}else
w=s[q].call(this,g,j,e,b);w===false?d=1:typeof
w!="undefined"&&(j=w);if(a||d)break}}j=d?false:typeof
j=="undefined"?true:j;a=k;d=y;return
j}}(),fireOnce:function(a,e,d){e=this.fire(a,e,d);delete f(this)[a];return
e},removeListener:function(a,e){var d=f(this)[a];if(d){var
b=d.getListenerIndex(e);b>=0&&d.listeners.splice(b,1)}},removeAllListeners:function(){var
a=f(this),e;for(e in a)delete
a[e]},hasListeners:function(a){return(a=f(this)[a])&&a.listeners.length>
-0}}}());CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,f){a
in{instanceReady:1,loaded:1}&&(this[a]=true);return
CKEDITOR.event.prototype.fire.call(this,a,f,this)},CKEDITOR.editor.prototype.fireOnce=function(a,f){a
in{instanceReady:1,loaded:1}&&(this[a]=true);return
CKEDITOR.event.prototype.fireOnce.call(this,a,f,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));
-CKEDITOR.env||(CKEDITOR.env=function(){var
a=navigator.userAgent.toLowerCase(),f={ie:a.indexOf("trident/")>-1,webkit:a.indexOf("
applewebkit/")>-1,air:a.indexOf("
adobeair/")>-1,mac:a.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat"&&(!document.documentMode||document.documentMode<10),mobile:a.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return
false;var a=document.domain,d=window.location.hostname;return
a!=d&&a!="["+d+"]"},secure:location.protocol==
-"https:"};f.gecko=navigator.product=="Gecko"&&!f.webkit&&!f.ie;if(f.webkit)a.indexOf("chrome")>-1?f.chrome=true:f.safari=true;var
b=0;if(f.ie){b=f.quirks||!document.documentMode?parseFloat(a.match(/msie
(\d+)/)[1]):document.documentMode;f.ie9Compat=b==9;f.ie8Compat=b==8;f.ie7Compat=b==7;f.ie6Compat=b<7||f.quirks}if(f.gecko){var
c=a.match(/rv:([\d\.]+)/);if(c){c=c[1].split(".");b=c[0]*1E4+(c[1]||0)*100+(c[2]||0)*1}}f.air&&(b=parseFloat(a.match(/
adobeair\/(\d+)/)[1]));f.webkit&&(b=parseFloat(a.match(/
applewebkit\/(\d+)/)[1]));
-f.version=b;f.isCompatible=f.iOS&&b>=534||!f.mobile&&(f.ie&&b>6||f.gecko&&b>=2E4||f.air&&b>=1||f.webkit&&b>=522||false);f.hidpi=window.devicePixelRatio>=2;f.needsBrFiller=f.gecko||f.webkit||f.ie&&b>10;f.needsNbspFiller=f.ie&&b<11;f.cssClass="cke_browser_"+(f.ie?"ie":f.gecko?"gecko":f.webkit?"webkit":"unknown");if(f.quirks)f.cssClass=f.cssClass+"
cke_browser_quirks";if(f.ie)f.cssClass=f.cssClass+("
cke_browser_ie"+(f.quirks?"6
cke_browser_iequirks":f.version));if(f.air)f.cssClass=f.cssClass+"
cke_browser_air";
-if(f.iOS)f.cssClass=f.cssClass+"
cke_browser_ios";if(f.hidpi)f.cssClass=f.cssClass+" cke_hidpi";return f}());
-"unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if(CKEDITOR.status!="basic_ready")CKEDITOR.loadFullCore._load=1;else{delete
CKEDITOR.loadFullCore;var
a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var
a=
-CKEDITOR.loadFullCore,f=CKEDITOR.loadFullCoreTimeout;if(a){CKEDITOR.status="basic_ready";a&&a._load?a():f&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},f*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={};
-(function(){var
a=[],f=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",b=/&/g,c=/>/g,e=/</g,d=/"/g,h=/&/g,k=/>/g,j=/</g,g=/"/g;CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(a,e){if(!a&&!e)return
true;if(!a||!e||a.length!=e.length)return false;for(var
d=0;d<a.length;d++)if(a[d]!=e[d])return false;return
true},clone:function(a){var e;if(a&&a instanceof Array){e=[];for(var
d=0;d<a.length;d++)e[d]=CKEDITOR.tools.clone(a[d]);
-return e}if(a===null||typeof a!="object"||a instanceof String||a instanceof
Number||a instanceof Boolean||a instanceof Date||a instanceof
RegExp||a.nodeType||a.window===a)return a;e=new a.constructor;for(d in
a)e[d]=CKEDITOR.tools.clone(a[d]);return e},capitalize:function(a,e){return
a.charAt(0).toUpperCase()+(e?a.slice(1):a.slice(1).toLowerCase())},extend:function(a){var
e=arguments.length,d,b;if(typeof(d=arguments[e-1])=="boolean")e--;else
if(typeof(d=arguments[e-2])=="boolean"){b=arguments[e-1];
-e=e-2}for(var c=1;c<e;c++){var f=arguments[c],i;for(i in
f)if(d===true||a[i]==null)if(!b||i in b)a[i]=f[i]}return
a},prototypedCopy:function(a){var e=function(){};e.prototype=a;return new
e},copy:function(a){var e={},d;for(d in a)e[d]=a[d];return
e},isArray:function(a){return Object.prototype.toString.call(a)=="[object
Array]"},isEmpty:function(a){for(var e in a)if(a.hasOwnProperty(e))return
false;return true},cssVendorPrefix:function(a,e,d){if(d)return
f+a+":"+e+";"+a+":"+e;d={};d[a]=e;d[f+a]=e;
-return d},cssStyleToDomStyle:function(){var
a=document.createElement("div").style,e=typeof
a.cssFloat!="undefined"?"cssFloat":typeof
a.styleFloat!="undefined"?"styleFloat":"float";return function(a){return
a=="float"?e:a.replace(/-./g,function(a){return
a.substr(1).toUpperCase()})}}(),buildStyleHtml:function(a){for(var
a=[].concat(a),e,d=[],b=0;b<a.length;b++)if(e=a[b])/@import|[{}]/.test(e)?d.push("<style>"+e+"</style>"):d.push('<link
type="text/css" rel=stylesheet href="'+e+'">');return d.join("")},
-htmlEncode:function(a){return(""+a).replace(b,"&").replace(c,">").replace(e,"<")},htmlDecode:function(a){return
a.replace(h,"&").replace(k,">").replace(j,"<")},htmlEncodeAttr:function(a){return
a.replace(d,""").replace(e,"<").replace(c,">")},htmlDecodeAttr:function(a){return
a.replace(g,'"').replace(j,"<").replace(k,">")},getNextNumber:function(){var
a=0;return
function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},override:function(a,e){var
d=e(a);d.prototype=
-a.prototype;return
d},setTimeout:function(a,e,d,b,c){c||(c=window);d||(d=c);return
c.setTimeout(function(){b?a.apply(d,[].concat(b)):a.apply(d)},e||0)},trim:function(){var
a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(e){return
e.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return
function(e){return e.replace(a,"")}}(),rtrim:function(){var a=/[
\t\n\r]+$/g;return function(e){return
e.replace(a,"")}}(),indexOf:function(a,e){if(typeof e=="function")for(var
d=0,b=a.length;d<b;d++){if(e(a[d]))return d}else{if(a.indexOf)return
a.indexOf(e);
-d=0;for(b=a.length;d<b;d++)if(a[d]===e)return
d}return-1},search:function(a,e){var d=CKEDITOR.tools.indexOf(a,e);return
d>=0?a[d]:null},bind:function(a,e){return function(){return
a.apply(e,arguments)}},createClass:function(a){var
e=a.$,d=a.base,b=a.privates||a._,c=a.proto,a=a.statics;!e&&(e=function(){d&&this.base.apply(this,arguments)});if(b)var
f=e,e=function(){var a=this._||(this._={}),e;for(e in b){var
d=b[e];a[e]=typeof
d=="function"?CKEDITOR.tools.bind(d,this):d}f.apply(this,arguments)};if(d){e.prototype=
-this.prototypedCopy(d.prototype);e.prototype.constructor=e;e.base=d;e.baseProto=d.prototype;e.prototype.base=function(){this.base=d.prototype.base;d.apply(this,arguments);this.base=arguments.callee}}c&&this.extend(e.prototype,c,true);a&&this.extend(e,a,true);return
e},addFunction:function(e,d){return a.push(function(){return
e.apply(d||this,arguments)})-1},removeFunction:function(e){a[e]=null},callFunction:function(e){var
d=a[e];return
d&&d.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var
a=
-/^-?\d+\.?\d*px$/,e;return function(d){e=CKEDITOR.tools.trim(d+"")+"px";return
a.test(e)?e:d||""}}(),convertToPx:function(){var a;return
function(e){if(!a){a=CKEDITOR.dom.element.createFromHtml('<div
style="position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(a)}if(!/%$/.test(e)){a.setStyle("width",e);return
a.$.clientWidth}return e}}(),repeat:function(a,e){return
Array(e+1).join(a)},tryThese:function(){for(var a,
-e=0,d=arguments.length;e<d;e++){var
b=arguments[e];try{a=b();break}catch(c){}}return a},genKey:function(){return
Array.prototype.slice.call(arguments).join("-")},defer:function(a){return
function(){var
e=arguments,d=this;window.setTimeout(function(){a.apply(d,e)},0)}},normalizeCssText:function(a,e){var
d=[],b,c=CKEDITOR.tools.parseCssText(a,true,e);for(b in
c)d.push(b+":"+c[b]);d.sort();return
d.length?d.join(";")+";":""},convertRgbToHex:function(a){return
a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,
-function(a,e,d,b){a=[e,d,b];for(e=0;e<3;e++)a[e]=("0"+parseInt(a[e],10).toString(16)).slice(-2);return"#"+a.join("")})},parseCssText:function(a,e,d){var
b={};if(d){d=new
CKEDITOR.dom.element("span");d.setAttribute("style",a);a=CKEDITOR.tools.convertRgbToHex(d.getAttribute("style")||"")}if(!a||a==";")return
b;a.replace(/"/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,d,m){if(e){d=d.toLowerCase();d=="font-family"&&(m=m.toLowerCase().replace(/["']/g,"").replace(/\s*,\s*/g,","));
-m=CKEDITOR.tools.trim(m)}b[d]=m});return b},writeCssText:function(a,e){var
d,b=[];for(d in a)b.push(d+":"+a[d]);e&&b.sort();return b.join(";
")},objectCompare:function(a,e,d){var b;if(!a&&!e)return true;if(!a||!e)return
false;for(b in a)if(a[b]!=e[b])return false;if(!d)for(b in
e)if(a[b]!=e[b])return false;return true},objectKeys:function(a){var
e=[],d;for(d in a)e.push(d);return e},convertArrayToObject:function(a,e){var
d={};arguments.length==1&&(e=true);for(var b=0,c=a.length;b<c;++b)d[a[b]]=e;
-return d},fixDomain:function(){for(var
a;;)try{a=window.parent.document.domain;break}catch(e){a=a?a.replace(/.+?(?:\.|$)/,""):document.domain;if(!a)break;document.domain=a}return!!a},eventsBuffer:function(a,e){function
d(){c=(new Date).getTime();b=false;e()}var
b,c=0;return{input:function(){if(!b){var e=(new
Date).getTime()-c;e<a?b=setTimeout(d,a-e):d()}},reset:function(){b&&clearTimeout(b);b=c=0}}},enableHtml5Elements:function(a,e){for(var
d=["abbr","article","aside","audio","bdi","canvas","data",
-"datalist","details","figcaption","figure","footer","header","hgroup","mark","meter","nav","output","progress","section","summary","time","video"],b=d.length,c;b--;){c=a.createElement(d[b]);e&&a.appendChild(c)}},checkIfAnyArrayItemMatches:function(a,e){for(var
d=0,b=a.length;d<b;++d)if(a[d].match(e))return true;return
false},checkIfAnyObjectPropertyMatches:function(a,e){for(var d in
a)if(d.match(e))return true;return
false},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw=="}})();
-CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,f=function(a,e){for(var
d=CKEDITOR.tools.clone(a),b=1;b<arguments.length;b++){var
e=arguments[b],c;for(c in e)delete d[c]}return
d},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},d={command:1,link:1,meta:1,noscript:1,script:1,style:1},h={},k={"#":1},j={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,j);f={a:f(b,{a:1,button:1}),abbr:b,address:c,
-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:f(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},d),header:c,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:h,html:a({head:1,
-body:1},c,d),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:f(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:f(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: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:f(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(f,{$block:a({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},e,j),$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},f.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
f}();CKEDITOR.dom.event=function(a){this.$=a};
-CKEDITOR.dom.event.prototype={getKey:function(){return
this.$.keyCode||this.$.which},getKeystroke:function(){var
a=this.getKey();if(this.$.ctrlKey||this.$.metaKey)a=a+CKEDITOR.CTRL;this.$.shiftKey&&(a=a+CKEDITOR.SHIFT);this.$.altKey&&(a=a+CKEDITOR.ALT);return
a},preventDefault:function(a){var
f=this.$;f.preventDefault?f.preventDefault():f.returnValue=false;a&&this.stopPropagation()},stopPropagation:function(){var
a=this.$;a.stopPropagation?a.stopPropagation():a.cancelBubble=true},getTarget:function(){var
a=
+(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var
a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"H7HD",version:"4.7.2",revision:"c9b79c9",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
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(u){}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,h,k){function
n(a,f,D,k){a={name:b,sender:this,editor:a,data:f,listenerData:h,stop:D,cancel:k,removeListener:u};return!1===d.call(g,a)?!1:a.data}function
u(){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:u};f.unshift(n)}return{removeListener:u}},
+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,u){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,F=0;F<w.length;F++){if(f.errorProof)try{A=
+w[F].call(this,u,n,b,h)}catch(x){}else
A=w[F].call(this,u,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]));
+b.webkit&&(c=parseFloat(a.match(/
applewebkit\/(\d+)/)[1]));b.version=c;b.isCompatible=!(b.ie&&7>c)&&!(b.gecko&&4E4>c)&&!(b.webkit&&534>c);b.hidpi=2<=window.devicePixelRatio;b.needsBrFiller=b.gecko||b.webkit||b.ie&&10<c;b.needsNbspFiller=b.ie&&11>c;b.cssClass="cke_browser_"+(b.ie?"ie":b.gecko?"gecko":b.webkit?"webkit":"unknown");b.quirks&&(b.cssClass+="
cke_browser_quirks");b.ie&&(b.cssClass+=" cke_browser_ie"+(b.quirks?"6
cke_browser_iequirks":b.version));b.air&&(b.cssClass+=" cke_browser_air");
+b.iOS&&(b.cssClass+=" cke_browser_ios");b.hidpi&&(b.cssClass+="
cke_hidpi");return b}());
+"unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if("basic_ready"!=CKEDITOR.status)CKEDITOR.loadFullCore._load=1;else{delete
CKEDITOR.loadFullCore;var
a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var
a=
+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,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],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(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,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,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},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):""},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"},_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},_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.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: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}();
+CKEDITOR.dom.event=function(a){this.$=a};
+CKEDITOR.dom.event.prototype={getKey:function(){return
this.$.keyCode||this.$.which},getKeystroke:function(){var
a=this.getKey();if(this.$.ctrlKey||this.$.metaKey)a+=CKEDITOR.CTRL;this.$.shiftKey&&(a+=CKEDITOR.SHIFT);this.$.altKey&&(a+=CKEDITOR.ALT);return
a},preventDefault:function(a){var
d=this.$;d.preventDefault?d.preventDefault():d.returnValue=!1;a&&this.stopPropagation()},stopPropagation:function(){var
a=this.$;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},getTarget:function(){var
a=
this.$.target||this.$.srcElement;return a?new
CKEDITOR.dom.node(a):null},getPhase:function(){return
this.$.eventPhase||2},getPageOffset:function(){var
a=this.getTarget().getDocument().$;return{x:this.$.pageX||this.$.clientX+(a.documentElement.scrollLeft||a.body.scrollLeft),y:this.$.pageY||this.$.clientY+(a.documentElement.scrollTop||a.body.scrollTop)}}};CKEDITOR.CTRL=1114112;CKEDITOR.SHIFT=2228224;CKEDITOR.ALT=4456448;CKEDITOR.EVENT_PHASE_CAPTURING=1;CKEDITOR.EVENT_PHASE_AT_TARGET=2;
-CKEDITOR.EVENT_PHASE_BUBBLING=3;CKEDITOR.dom.domObject=function(a){if(a)this.$=a};
-CKEDITOR.dom.domObject.prototype=function(){var a=function(a,b){return
function(c){typeof CKEDITOR!="undefined"&&a.fire(b,new
CKEDITOR.dom.event(c))}};return{getPrivate:function(){var
a;if(!(a=this.getCustomData("_")))this.setCustomData("_",a={});return
a},on:function(f){var
b=this.getCustomData("_cke_nativeListeners");if(!b){b={};this.setCustomData("_cke_nativeListeners",b)}if(!b[f]){b=b[f]=a(this,f);this.$.addEventListener?this.$.addEventListener(f,b,!!CKEDITOR.event.useCapture):this.$.attachEvent&&
-this.$.attachEvent("on"+f,b)}return
CKEDITOR.event.prototype.on.apply(this,arguments)},removeListener:function(a){CKEDITOR.event.prototype.removeListener.apply(this,arguments);if(!this.hasListeners(a)){var
b=this.getCustomData("_cke_nativeListeners"),c=b&&b[a];if(c){this.$.removeEventListener?this.$.removeEventListener(a,c,false):this.$.detachEvent&&this.$.detachEvent("on"+a,c);delete
b[a]}}},removeAllListeners:function(){var
a=this.getCustomData("_cke_nativeListeners"),b;for(b in a){var
c=a[b];this.$.detachEvent?
-this.$.detachEvent("on"+b,c):this.$.removeEventListener&&this.$.removeEventListener(b,c,false);delete
a[b]}CKEDITOR.event.prototype.removeAllListeners.call(this)}}}();
@@ Diff output truncated at 153600 characters. @@
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [17048] ckeditor: update from upstream,
sigurdne <=