New Features:
- #2598: Added the Page Break feature support for the Paste from Word plugin.
- #1490: Improved the Paste from Word plugin to retain table cell borders.
- #2870: Improved support for preserving the indentation of list items for nested lists pasted with the Paste from Wordplugin.
- 
#2048: New CKEDITOR.config.image2_maxSizeconfiguration option for the Enhanced Image plugin that allows setting a maximum size that an image can be resized to with the resizer.
- #2639: The Color Dialog plugin now shows the current selection's color when opened.
- #2084: The Table Tools plugin now allows to change the cell height unit type to either pixels or percent.
- #3164: The Table Tools plugin now accepts floating point values as the table cell width and height.
Fixed Issues:
- #2672: Fixed: When resizing an Enhanced Image to a minimum size with the resizer, the image dialog does not show actual values.
- 
#1478: Fixed: Custom colors added to Color Button with the config.colorButton_colorsconfiguration option in the form of a label or code do not work correctly.
- #1469: Fixed: Trying to get data from a nested editable inside a freshly pasted widget throws an error.
- #2235: Fixed: An Image in a table cell has an empty URL field when edited from the context menu opened by right-click when the Table Selection plugin is in use.
- #3098: Fixed: Unit pickers for table cell width and height in the Table Tools plugin have a different width.
- 
#2923: Fixed: The CSS windowtextcolor is not correctly recognized by theCKEDITOR.tools.style.parsemethods.
- 
#3120: [IE8] Fixed: The CKEDITOR.tools.extend()method does not work with theDontEnumobject property attribute.
- 
#2813: Fixed: Editor HTML insertion methods (editor.insertHtml(),editor.insertHtmlIntoRange(),editor.insertElement()andeditor.insertElementIntoRange()) pollute the editable with empty<span>elements.
- 
#2751: Fixed: An editor with config.enterModeset toENTER_DIValters pasted content.
API Changes:
- 
#1496: The Balloon Toolbar plugin exposes the CKEDITOR.ui.balloonToolbar.reposition()andCKEDITOR.ui.balloonToolbarView.reposition()methods.
- 
#2021: Added new CKEDITOR.dom.documentFragment.find()andCKEDITOR.dom.documentFragment.findOne()methods.
- 
#2700: Added the CKEDITOR.tools.array.find()method.
- 
#3123: Added the CKEDITOR.tools.object.keys()method.
- 
#3123: Added the CKEDITOR.tools.object.entries()method.
- 
#3123: Added the CKEDITOR.tools.object.values()method.
- 
#2821: The CKEDITOR.template#sourceproperty can now be a function, so it can return the changed template values during the runtime. Thanks to Jacek Pulit!
- 
#2598: Added the CKEDITOR.plugins.pagebreak.createElement()method allowing to create a Page Break pluginCKEDITOR.dom.elementinstance.
- #2748: Enhanced error messages thrown when creating an editor on a non-existent element or when trying to instantiate the second editor on the same element. Thanks to Byran Zaugg!
- 
#2698: Added the CKEDITOR.htmlParser.element.findOne()method.
- 
#2935: Introduced the CKEDITOR.config.pasteFromWord_keepZeroMarginsconfiguration option that allows for keeping anymargin-*: 0style that would be otherwise removed when pasting content with the Paste from Wordplugin.
- 
#2962: Added the CKEDITOR.tools.promiseclass.
- 
#2924: Added the CKEDITOR.tools.style.borderobject wrapping CSS border style helpers under a single type.
- 
#2495: The Table Selection plugin can now be disabled for the given table with the data-cke-tableselection-ignoredattribute.
- 
#2692: Plugins can now expose information about the supported environment by implementing the pluginDefinition.isSupportedEnvironment()method.
Other Changes:
- 
#2741: Replaced deprecated arguments.calleecalls with named function expressions to allow the editor to work in strict mode.
- 
#2924: Marked CKEDITOR.tools.style.parse.border()as deprecated in favor of theCKEDITOR.tools.style.border.fromCssRule()method.
- 
#3132: Marked CKEDITOR.tools.objectKeys()as deprecated in favor of theCKEDITOR.tools.object.keys()method.
Fixed Issues:
- #589: Fixed: The editor causes memory leaks in create and destroy cycles.
- #1397: Fixed: Using the dialog to remove headers from a table with one header row only throws an error.
- #1479: Fixed: Justification for styled content in BR mode is disabled.
- #2816: Fixed: Enhanced Image resize handler is visible in read-only mode.
- #2874: Fixed: Enhanced Image resize handler is not created when the editor is initialized in read-only mode.
- #2775: Fixed: Clipboard paste buttons have wrong state when read-only mode is set by the mouse event listener with the Div Editing Area plugin.
- #1901: Fixed: Cannot open the context menu over a Widget with the Shift+F10 keyboard shortcut.
Other Changes:
- Updated WebSpellChecker (WSC) and SpellCheckAsYouType (SCAYT) plugins:
	- Language dictionary update: German language was extended with over 600k new words.
- Language dictionary update: Swedish language was extended with over 300k new words.
- Grammar support added for Australian and New Zealand English, Polish, Slovak, Slovenian and Austrian languages.
- Changed wavy red and green lines that underline spelling and grammar errors to straight ones.
- 
#55: Fixed: WSC does not use CKEDITOR.getUrl()when referencing style sheets.
- 
#166: Fixed: SCAYT does not use CKEDITOR.getUrl()when referencing style sheets.
- #56: [Chrome] Fixed: SCAYT/WSC throws errors when running inside a Chrome extension.
- Fixed: After removing a dictionary, the words are not underlined and considered as incorrect.
- Fixed: The Slovenian (sl_SL) language does not work.
- Fixed: Quotes with code U+2019(Right single quotation mark) are considered separators.
- Fixed: Wrong error message formatting when the service ID is invalid.
- Fixed: Absent languages in the Languages tab when using SCAYT with the Shared Spaces plugin.
 
Fixed Issues:
- #2721, #487: Fixed: The order of sublist items is reversed when a higher level list item is removed.
- #2527: Fixed: Emoji autocomplete order does not prioritize emojis with the name starting from the used string.
- #2572: Fixed: Icons in the Emoji dropdown navigation groups are not centered.
- #1191: Fixed: Items in the elements path are draggable.
- #2292: Fixed: Dropping a list with a link on the editor's margin causes a console error and removes the dragged text from editor.
- #2756: Fixed: The Auto Link plugin causes an error when typing in the source editing mode.
- 
#1986: Fixed: The Cell Properties dialog from the Table Tools plugin shows styles that are not allowed through config.allowedContent.
- #2565: [IE, Edge] Fixed: Buttons in the editor toolbar are activated by clicking them with the right mouse button.
- #2792: Fixed: A bug in the Copy Formatting plugin that caused the following issues:
Fixed Issues:
- #2403: Fixed: Styling inline editor initialized inside a table with the Table Selection plugin is causing style leaks.
- #2514: Fixed: Pasting table data into inline editor initialized inside a table with the Table Selection plugin inserts pasted content into the wrapping table.
- #2451: Fixed: The Remove Format plugin changes selection.
- #2546: Fixed: The separator in the toolbar moves when buttons are focused.
- 
#2506: Fixed: Enhanced Image throws a type error when an empty <figure>tag with animageclass is upcasted.
- 
#2650: Fixed: Table dialog validator fails when the getValue()function is defined in the global scope.
- #2690: Fixed: Decimal characters are removed from the inside of numbered lists when pasting content using the Paste from Word plugin.
- #2205: Fixed: It is not possible to add new list items under an item containing a block element.
- #2411, #2438 Fixed: Apply numbered list option throws a console error for a specific markup.
- #2430 Fixed: Color Button and List Block items are draggable.
Other Changes:
- Updated the WebSpellChecker (WSC) plugin:
	- #52 Fixed: Clicking "Finish Checking" without a prior action would hang the Spell Checking dialog.
 
- 
#2603: Corrected the GPL license entry in the package.jsonfile.
Fixed Issues: