<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[45343] branches/5.2/src: Update TinyMCE to 4.9.4.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/45343">45343</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/45343","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>azaozz</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2019-05-17 04:48:21 +0000 (Fri, 17 May 2019)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Update TinyMCE to 4.9.4. Changelog: https://github.com/tinymce/tinymce/blob/4.x/changelog.txt.

Props parkcityj, azaozz.
Merges <a href="https://core.trac.wordpress.org/changeset/45316">[45316]</a> to the 5.2 branch.
Fixes <a href="https://core.trac.wordpress.org/ticket/47229">#47229</a> <a href="https://core.trac.wordpress.org/ticket/47205">#47205</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginsfullscreenpluginjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginsfullscreenpluginminjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.min.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginsimagepluginjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginsimagepluginminjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginslinkpluginjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginslinkpluginminjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.min.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginslistspluginjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginslistspluginminjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginspastepluginjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginspastepluginminjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginstabfocuspluginjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcepluginstabfocuspluginminjs">branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymceskinslightgrayskinmincss">branches/5.2/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcethemesinlitethemejs">branches/5.2/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcethemesinlitethememinjs">branches/5.2/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.min.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcethemesmodernthemejs">branches/5.2/src/js/_enqueues/vendor/tinymce/themes/modern/theme.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcethemesmodernthememinjs">branches/5.2/src/js/_enqueues/vendor/tinymce/themes/modern/theme.min.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcetinymcejs">branches/5.2/src/js/_enqueues/vendor/tinymce/tinymce.js</a></li>
<li><a href="#branches52srcjs_enqueuesvendortinymcetinymceminjs">branches/5.2/src/js/_enqueues/vendor/tinymce/tinymce.min.js</a></li>
<li><a href="#branches52srcwpincludesversionphp">branches/5.2/src/wp-includes/version.php</a></li>
</ul>

<h3>Property Changed</h3>
<ul>
<li><a href="#branches52">branches/5.2/</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<span class="cx" style="display: block; padding: 0 10px">Index: branches/5.2
</span><span class="cx" style="display: block; padding: 0 10px">===================================================================
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">--- branches/5.2 2019-05-17 04:24:44 UTC (rev 45342)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+++ branches/5.2  2019-05-17 04:48:21 UTC (rev 45343)
</ins><a id="branches52"></a>
<div class="propset"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Property changes: branches/5.2</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: svn:mergeinfo</h4></div>
<span class="cx" style="display: block; padding: 0 10px"> /branches/3.4:21757
</span><span class="cx" style="display: block; padding: 0 10px"> /branches/4.9:43557,43622
</span><span class="cx" style="display: block; padding: 0 10px"> /branches/5.0:43681-43682,43684-43688,43719-43720,43723,43726-43727,43729-43731,43734-43744,43747,43751-43754,43758,43760-43765,43767-43770,43772,43774-43781,43783,43785,43790-43806,43808-43821,43825,43828,43830-43834,43836-43843,43846-43863,43867-43889,43891-43894,43897-43905,43908-43909,43911-43929,43931-43942,43946-43947,43949-43956,43959-43964,43967-43969,43988,43994,44014,44017,44047,44183,44185,44187-44206,44208-44213,44231-44232,44235,44248,44284,44287-44288
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/trunk:45285,45287,45289,45292,45296,45300-45301,45308-45311,45319,45322,45324,45326,45328,45331,45334,45336,45338,45340
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/trunk:45285,45287,45289,45292,45296,45300-45301,45308-45311,45316,45319,45322,45324,45326,45328,45331,45334,45336,45338,45340
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="branches52srcjs_enqueuesvendortinymcepluginsfullscreenpluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js 2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js   2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var fullscreen = (function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var fullscreen = (function (domGlobals) {
</ins><span class="cx" style="display: block; padding: 0 10px">     'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var Cell = function (initial) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -42,8 +42,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var getWindowSize = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var w;
</span><span class="cx" style="display: block; padding: 0 10px">       var h;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var win = window;
-      var doc = document;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var win = domGlobals.window;
+      var doc = domGlobals.document;
</ins><span class="cx" style="display: block; padding: 0 10px">       var body = doc.body;
</span><span class="cx" style="display: block; padding: 0 10px">       if (body.offsetWidth) {
</span><span class="cx" style="display: block; padding: 0 10px">         w = body.offsetWidth;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -66,11 +66,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var setScrollPos = function (pos) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      window.scrollTo(pos.x, pos.y);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      domGlobals.window.scrollTo(pos.x, pos.y);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var toggleFullscreen = function (editor, fullscreenState) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var body = document.body;
-      var documentElement = document.documentElement;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var body = domGlobals.document.body;
+      var documentElement = domGlobals.document.documentElement;
</ins><span class="cx" style="display: block; padding: 0 10px">       var editorContainerStyle;
</span><span class="cx" style="display: block; padding: 0 10px">       var editorContainer, iframe, iframeStyle;
</span><span class="cx" style="display: block; padding: 0 10px">       var fullscreenInfo = fullscreenState.get();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -78,7 +78,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         DOM.setStyle(iframe, 'height', getWindowSize().h - (editorContainer.clientHeight - iframe.clientHeight));
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var removeResize = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        DOM.unbind(window, 'resize', resize);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        DOM.unbind(domGlobals.window, 'resize', resize);
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       editorContainer = editor.getContainer();
</span><span class="cx" style="display: block; padding: 0 10px">       editorContainerStyle = editorContainer.style;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -99,7 +99,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         DOM.addClass(body, 'mce-fullscreen');
</span><span class="cx" style="display: block; padding: 0 10px">         DOM.addClass(documentElement, 'mce-fullscreen');
</span><span class="cx" style="display: block; padding: 0 10px">         DOM.addClass(editorContainer, 'mce-fullscreen');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        DOM.bind(window, 'resize', resize);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        DOM.bind(domGlobals.window, 'resize', resize);
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.on('remove', removeResize);
</span><span class="cx" style="display: block; padding: 0 10px">         resize();
</span><span class="cx" style="display: block; padding: 0 10px">         fullscreenState.set(newFullScreenInfo);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -117,7 +117,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         DOM.removeClass(documentElement, 'mce-fullscreen');
</span><span class="cx" style="display: block; padding: 0 10px">         DOM.removeClass(editorContainer, 'mce-fullscreen');
</span><span class="cx" style="display: block; padding: 0 10px">         setScrollPos(fullscreenInfo.scrollPos);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        DOM.unbind(window, 'resize', fullscreenInfo.resizeHandler);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        DOM.unbind(domGlobals.window, 'resize', fullscreenInfo.resizeHandler);
</ins><span class="cx" style="display: block; padding: 0 10px">         editor.off('remove', fullscreenInfo.removeHandler);
</span><span class="cx" style="display: block; padding: 0 10px">         fullscreenState.set(null);
</span><span class="cx" style="display: block; padding: 0 10px">         Events.fireFullscreenStateChanged(editor, false);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -173,5 +173,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     return Plugin;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}(window));
</ins><span class="cx" style="display: block; padding: 0 10px"> })();
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginsfullscreenpluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.min.js     2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.min.js       2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var i=function(e){var n=e,t=function(){return n};return{get:t,set:function(e){n=e},clone:function(){return i(t())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e){return{isFullscreen:function(){return null!==e.get()}}},n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),m=function(e,n){e.fire("FullscreenStateChanged",{state:n})},g=n.DOM,r=function(e,n){var t,r,l,i,o,c,s=document.body,u=document.documentElement,d=n.get(),a=function(){var e,n,t,i;g.setStyle(l,"height",(t=window,i=document.body,i.offsetWidth&&(e=i.offsetWidth,n=i.offsetHeight),t.innerWidth&&t.innerHeight&&(e=t.innerWidth,n=t.innerHeight),{w:e,h:n}).h-(r.clientHeight-l.clientHeight))},h=function(){g.unbind(window,"resize",a)};if(t=(r=e.getContainer()).style,i=(l=e.getContentAreaContainer().first
 Child).style,d)i.width=d.iframeWidth,i.height=d.iframeHeight,d.containerWidth&&(t.width=d.containerWidth),d.containerHeight&&(t.height=d.containerHeight),g.removeClass(s,"mce-fullscreen"),g.removeClass(u,"mce-fullscreen"),g.removeClass(r,"mce-fullscreen"),o=d.scrollPos,window.scrollTo(o.x,o.y),g.unbind(window,"resize",d.resizeHandler),e.off("remove",d.removeHandler),n.set(null),m(e,!1);else{var f={scrollPos:(c=g.getViewPort(),{x:c.x,y:c.y}),containerWidth:t.width,containerHeight:t.height,iframeWidth:i.width,iframeHeight:i.height,resizeHandler:a,removeHandler:h};i.width=i.height="100%",t.width=t.height="",g.addClass(s,"mce-fullscreen"),g.addClass(u,"mce-fullscreen"),g.addClass(r,"mce-fullscreen"),g.bind(window,"resize",a),e.on("remove",h),a(),n.set(f),m(e,!0)}},l=function(e,n){e.addCommand("mceFullScreen",function(){r(e,n)})},o=function(t){
 return function(e){var n=e.control;t.on("FullscreenStateChanged",function(e){n.active(e.state)})}},c=function(e){e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,cmd:"mceFullScreen",onPostRender:o(e),context:"view"}),e.addButton("fullscreen",{active:!1,tooltip:"Fullscreen",cmd:"mceFullScreen",onPostRender:o(e)})};e.add("fullscreen",function(e){var n=i(null);return e.settings.inline||(l(e,n),c(e),e.addShortcut("Ctrl+Shift+F","","mceFullScreen")),t(n)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(m){"use strict";var i=function(e){var n=e,t=function(){return n};return{get:t,set:function(e){n=e},clone:function(){return i(t())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e){return{isFullscreen:function(){return null!==e.get()}}},n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),g=function(e,n){e.fire("FullscreenStateChanged",{state:n})},w=n.DOM,r=function(e,n){var t,r,l,i,o,c,s=m.document.body,u=m.document.documentElement,d=n.get(),a=function(){var e,n,t,i;w.setStyle(l,"height",(t=m.window,i=m.document.body,i.offsetWidth&&(e=i.offsetWidth,n=i.offsetHeight),t.innerWidth&&t.innerHeight&&(e=t.innerWidth,n=t.innerHeight),{w:e,h:n}).h-(r.clientHeight-l.clientHeight))},h=function(){w.unbind(m.window,"resize",a)};if(t=(r=e.getContainer()).style,i=(l=e.getContentAreaContai
 ner().firstChild).style,d)i.width=d.iframeWidth,i.height=d.iframeHeight,d.containerWidth&&(t.width=d.containerWidth),d.containerHeight&&(t.height=d.containerHeight),w.removeClass(s,"mce-fullscreen"),w.removeClass(u,"mce-fullscreen"),w.removeClass(r,"mce-fullscreen"),o=d.scrollPos,m.window.scrollTo(o.x,o.y),w.unbind(m.window,"resize",d.resizeHandler),e.off("remove",d.removeHandler),n.set(null),g(e,!1);else{var f={scrollPos:(c=w.getViewPort(),{x:c.x,y:c.y}),containerWidth:t.width,containerHeight:t.height,iframeWidth:i.width,iframeHeight:i.height,resizeHandler:a,removeHandler:h};i.width=i.height="100%",t.width=t.height="",w.addClass(s,"mce-fullscreen"),w.addClass(u,"mce-fullscreen"),w.addClass(r,"mce-fullscreen"),w.bind(m.window,"resize",a),e.on("remove",h),a(),n.set(f),g(e,!0)}},l=function(e,n){e.addCommand("mceFullScreen",function(){r(e,n)}
 )},o=function(t){return function(e){var n=e.control;t.on("FullscreenStateChanged",function(e){n.active(e.state)})}},c=function(e){e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,cmd:"mceFullScreen",onPostRender:o(e),context:"view"}),e.addButton("fullscreen",{active:!1,tooltip:"Fullscreen",cmd:"mceFullScreen",onPostRender:o(e)})};e.add("fullscreen",function(e){var n=i(null);return e.settings.inline||(l(e,n),c(e),e.addShortcut("Ctrl+Shift+F","","mceFullScreen")),t(n)})}(window);
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginsimagepluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js      2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js        2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var image = (function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var image = (function (domGlobals) {
</ins><span class="cx" style="display: block; padding: 0 10px">     'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -63,7 +63,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       getUploadCredentials: getUploadCredentials
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var Global = typeof window !== 'undefined' ? window : Function('return this;')();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var path = function (parts, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">       var o = scope !== undefined && scope !== null ? scope : Global;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -102,7 +102,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return Math.max(parseInt(val1, 10), parseInt(val2, 10));
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getImageSize = function (url, callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var img = document.createElement('img');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var img = domGlobals.document.createElement('img');
</ins><span class="cx" style="display: block; padding: 0 10px">       function done(width, height) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (img.parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">           img.parentNode.removeChild(img);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -125,7 +125,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       style.position = 'fixed';
</span><span class="cx" style="display: block; padding: 0 10px">       style.bottom = style.left = '0px';
</span><span class="cx" style="display: block; padding: 0 10px">       style.width = style.height = 'auto';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      document.body.appendChild(img);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      domGlobals.document.body.appendChild(img);
</ins><span class="cx" style="display: block; padding: 0 10px">       img.src = url;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var buildListItems = function (inputList, itemCallback, startItems) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -294,21 +294,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return '';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getAttrib = function (image, name$$1) {
-      if (image.hasAttribute(name$$1)) {
-        return image.getAttribute(name$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getAttrib = function (image, name) {
+      if (image.hasAttribute(name)) {
+        return image.getAttribute(name);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="cx" style="display: block; padding: 0 10px">         return '';
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getStyle = function (image, name$$1) {
-      return image.style[name$$1] ? image.style[name$$1] : '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getStyle = function (image, name) {
+      return image.style[name] ? image.style[name] : '';
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var hasCaption = function (image) {
</span><span class="cx" style="display: block; padding: 0 10px">       return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setAttrib = function (image, name$$1, value) {
-      image.setAttribute(name$$1, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var setAttrib = function (image, name, value) {
+      image.setAttribute(name, value);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var wrapInFigure = function (image) {
</span><span class="cx" style="display: block; padding: 0 10px">       var figureElm = DOM.create('figure', { class: 'image' });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -339,21 +339,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">         image.removeAttribute('style');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setSize = function (name$$1, normalizeCss) {
-      return function (image, name$$1, value) {
-        if (image.style[name$$1]) {
-          image.style[name$$1] = Utils.addPixelSuffix(value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var setSize = function (name, normalizeCss) {
+      return function (image, name, value) {
+        if (image.style[name]) {
+          image.style[name] = Utils.addPixelSuffix(value);
</ins><span class="cx" style="display: block; padding: 0 10px">           normalizeStyle(image, normalizeCss);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          setAttrib(image, name$$1, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          setAttrib(image, name, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var getSize = function (image, name$$1) {
-      if (image.style[name$$1]) {
-        return Utils.removePixelSuffix(image.style[name$$1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var getSize = function (image, name) {
+      if (image.style[name]) {
+        return Utils.removePixelSuffix(image.style[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return getAttrib(image, name$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return getAttrib(image, name);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var setHspace = function (image, value) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -396,7 +396,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getStyleValue = function (normalizeCss, data) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var image = document.createElement('img');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var image = domGlobals.document.createElement('img');
</ins><span class="cx" style="display: block; padding: 0 10px">       setAttrib(image, 'style', data.style);
</span><span class="cx" style="display: block; padding: 0 10px">       if (getHspace(image) || data.hspace !== '') {
</span><span class="cx" style="display: block; padding: 0 10px">         setHspace(image, data.hspace);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -413,7 +413,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return normalizeCss(image.getAttribute('style'));
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var create = function (normalizeCss, data) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var image = document.createElement('img');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var image = domGlobals.document.createElement('img');
</ins><span class="cx" style="display: block; padding: 0 10px">       write(normalizeCss, merge(data, { caption: false }), image);
</span><span class="cx" style="display: block; padding: 0 10px">       setAttrib(image, 'alt', data.alt);
</span><span class="cx" style="display: block; padding: 0 10px">       if (data.caption) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -442,13 +442,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         borderStyle: getStyle(image, 'borderStyle')
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var updateProp = function (image, oldData, newData, name$$1, set) {
-      if (newData[name$$1] !== oldData[name$$1]) {
-        set(image, name$$1, newData[name$$1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var updateProp = function (image, oldData, newData, name, set) {
+      if (newData[name] !== oldData[name]) {
+        set(image, name, newData[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var normalized = function (set, normalizeCss) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return function (image, name$$1, value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return function (image, name, value) {
</ins><span class="cx" style="display: block; padding: 0 10px">         set(image, value);
</span><span class="cx" style="display: block; padding: 0 10px">         normalizeStyle(image, normalizeCss);
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -952,7 +952,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           success(pathJoin(settings.basePath, json.location));
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        formData = new FormData();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        formData = new domGlobals.FormData();
</ins><span class="cx" style="display: block; padding: 0 10px">         formData.append('file', blobInfo.blob(), blobInfo.filename());
</span><span class="cx" style="display: block; padding: 0 10px">         xhr.send(formData);
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1200,5 +1200,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     return Plugin;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}(window));
</ins><span class="cx" style="display: block; padding: 0 10px"> })();
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginsimagepluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js  2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js    2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var i,e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=function(e){return!1!==e.settings.image_dimensions},l=function(e){return!0===e.settings.image_advtab},m=function(e){return e.getParam("image_prepend_url","")},n=function(e){return e.getParam("image_class_list")},r=function(e){return!1!==e.settings.image_description},a=function(e){return!0===e.settings.image_title},o=function(e){return!0===e.settings.image_caption},u=function(e){return e.getParam("image_list",!1)},c=function(e){return e.getParam("images_upload_url",!1)},s=function(e){return e.getParam("images_upload_handler",!1)},g=function(e){return e.getParam("images_upload_url")},f=function(e){return e.getParam("images_upload_handler")},p=function(e){return e.getParam("images_upload_base_path&quot
 ;)},h=function(e){return e.getParam("images_upload_credentials")},v="undefined"!=typeof window?window:Function("return this;")(),b=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:v,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n}(e.split("."),t)},y={getOrDie:function(e,t){var n=b(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n}},x=tinymce.util.Tools.resolve("tinymce.util.Promise"),w=tinymce.util.Tools.resolve("tinymce.util.Tools"),C=tinymce.util.Tools.resolve("tinymce.util.XHR"),S=function(e,t){return Math.max(parseInt(e,10),parseInt(t,10))},N=function(e,n){var r=document.createElement("img");function t(e,t){r.parentNode&&r.parentNode.removeChild(r),n({width:e,height:t})}r.onload=function(){t(S(r.width,r.clientWidth),S(r.height,r.clientHeight))},r.onerror=function(){t(0,0)};var a=r.style;a
 .visibility="hidden",a.position="fixed",a.bottom=a.left="0px",a.width=a.height="auto",document.body.appendChild(r),r.src=e},_=function(e,a,t){return function n(e,r){return r=r||[],w.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=n(e.menu):(t.value=e.value,a(t)),r.push(t)}),r}(e,t||[])},T=function(e){return e&&(e=e.replace(/px$/,"")),e},A=function(e){return 0<e.length&&/^[0-9]+$/.test(e)&&(e+="px"),e},R=function(e){if(e.margin){var t=e.margin.split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"
 ]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e},t=function(e,t){var n=u(e);"string"==typeof n?C.send({url:n,success:function(e){t(JSON.parse(e))}}):"function"==typeof n?n(t):t(n)},I=function(e,t,n){function r(){n.onload=n.onerror=null,e.selection&&(e.selection.select(n),e.nodeChanged())}n.onload=function(){t.width||t.height||!d(e)||e.dom.setAttribs(n,{width:n.clientWidth,height
 :n.clientHeight}),r()},n.onerror=r},O=function(r){return new x(function(e,t){var n=new(y.getOrDie("FileReader"));n.onload=function(){e(n.result)},n.onerror=function(){t(n.error.message)},n.readAsDataURL(r)})},L=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),P=Object.prototype.hasOwnProperty,U=(i=function(e,t){return t},function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var a=e[r];for(var o in a)P.call(a,o)&&(n[o]=i(n[o],a[o]))}return n}),E=L.DOM,k=function(e){return e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?T(e.style.marginLeft):""},M=function(e){return e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?T(e.style.marginTop):""},D=function(e){return e.style.borderWidth?T(e.style.borderWidth
 ):""},z=function(e,t){return e.hasAttribute(t)?e.getAttribute(t):""},B=function(e,t){return e.style[t]?e.style[t]:""},H=function(e){return null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName},j=function(e,t,n){e.setAttribute(t,n)},F=function(e){var t,n,r,a;H(e)?(a=(r=e).parentNode,E.insertAfter(r,a),E.remove(a)):(t=e,n=E.create("figure",{"class":"image"}),E.insertAfter(n,t),n.appendChild(t),n.appendChild(E.create("figcaption",{contentEditable:!0},"Caption")),n.contentEditable="false")},W=function(e,t){var n=e.getAttribute("style"),r=t(null!==n?n:"");0<r.length?(e.setAttribute("style",r),e.setAttribute("data-mce-style",r)):e.removeAttribute("style")},J=function(e,r){return function(e,t,n){e.style[t]?(e.style[t]=A(n),W(e,r)):j(e,t,n)}},V=function(e,t){return e.style[t]?T(e.style[t]):z(e,t)},G=function(e,t){var n=A(t);e.style
 .marginLeft=n,e.style.marginRight=n},$=function(e,t){var n=A(t);e.style.marginTop=n,e.style.marginBottom=n},X=function(e,t){var n=A(t);e.style.borderWidth=n},q=function(e,t){e.style.borderStyle=t},K=function(e){return"FIGURE"===e.nodeName},Q=function(e,t){var n=document.createElement("img");return j(n,"style",t.style),(k(n)||""!==t.hspace)&&G(n,t.hspace),(M(n)||""!==t.vspace)&&$(n,t.vspace),(D(n)||""!==t.border)&&X(n,t.border),(B(n,"borderStyle")||""!==t.borderStyle)&&q(n,t.borderStyle),e(n.getAttribute("style"))},Y=function(e,t){return{src:z(t,"src"),alt:z(t,"alt"),title:z(t,"title"),width:V(t,"width"),height:V(t,"height"),"class":z(t,"class"),style:e(z(t,"style")),caption:H(t),hspace:k(t),vspace:M(t),border:D(t),borderStyle:B(t,"borderStyle")}},Z=function(e,t,n,r,a){n[r]!=
 =t[r]&&a(e,r,n[r])},ee=function(r,a){return function(e,t,n){r(e,n),W(e,a)}},te=function(e,t,n){var r=Y(e,n);Z(n,r,t,"caption",function(e,t,n){return F(e)}),Z(n,r,t,"src",j),Z(n,r,t,"alt",j),Z(n,r,t,"title",j),Z(n,r,t,"width",J(0,e)),Z(n,r,t,"height",J(0,e)),Z(n,r,t,"class",j),Z(n,r,t,"style",ee(function(e,t){return j(e,"style",t)},e)),Z(n,r,t,"hspace",ee(G,e)),Z(n,r,t,"vspace",ee($,e)),Z(n,r,t,"border",ee(X,e)),Z(n,r,t,"borderStyle",ee(q,e))},ne=function(e,t){var n=e.dom.styles.parse(t),r=R(n),a=e.dom.styles.parse(e.dom.styles.serialize(r));return e.dom.styles.serialize(a)},re=function(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"figure.image");return n?e.dom.select("img",n)[0]:t&&("IMG"!==t.nodeName||t.getAttribute("data-mce-object")||t.getAttribute("data-mce-placeholder"))?null:t},
 ae=function(t,e){var n=t.dom,r=n.getParent(e.parentNode,function(e){return t.schema.getTextBlockElements()[e.nodeName]},t.getBody());return r?n.split(r,e):e},oe=function(t){var e=re(t);return e?Y(function(e){return ne(t,e)},e):{src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""}},ie=function(t,e){var n=function(e,t){var n=document.createElement("img");if(te(e,U(t,{caption:!1}),n),j(n,"alt",t.alt),t.caption){var r=E.create("figure",{"class":"image"});return r.appendChild(n),r.appendChild(E.create("figcaption",{contentEditable:!0},"Caption")),r.contentEditable="false",r}return n}(function(e){return ne(t,e)},e);t.dom.setAttrib(n,"data-mce-id","__mcenew"),t.focus(),t.selection.setContent(n.outerHTML);var 
 r=t.dom.select('*[data-mce-id="__mcenew"]')[0];if(t.dom.setAttrib(r,"data-mce-id",null),K(r)){var a=ae(t,r);t.selection.select(a)}else t.selection.select(r)},le=function(e,t){var n=re(e);n?t.src?function(t,e){var n,r=re(t);if(te(function(e){return ne(t,e)},e,r),n=r,t.dom.setAttrib(n,"src",n.getAttribute("src")),K(r.parentNode)){var a=r.parentNode;ae(t,a),t.selection.select(r.parentNode)}else t.selection.select(r),I(t,e,r)}(e,t):function(e,t){if(t){var n=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(n),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}}(e,n):t.src&&ie(e,t)},ue=function(n,r){r.find("#style").each(function(e){var t=Q(function(e){return ne(n,e)},U({src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"
 ",vspace:"",border:"",borderStyle:""},r.toJSON()));e.value(t)})},ce=function(t){return{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:(o=t,function(e){var t=o.dom,n=e.control.rootControl;if(l(o)){var r=n.toJSON(),a=t.parseStyle(r.style);n.find("#vspace").value(""),n.find("#hspace").value(""),((a=R(a))["margin-top"]&&a["margin-bottom"]||a["margin-right"]&&a["margin-left"])&&(a["margin-top"]===a["margin-bottom"]?n.find("#vspace").value(T(a["margin-top"])):n.find("#vspace").value(""),a["margin-right"]===a["margin-left"]?n.find("#hspace").value(T(a["margin-right"])):n.find("#hspace").value("")),a["border-width"
 ]?n.find("#border").value(T(a["border-width"])):n.find("#border").value(""),a["border-style"]?n.find("#borderStyle").value(a["border-style"]):n.find("#borderStyle").value(""),n.find("#style").value(t.serializeStyle(t.parseStyle(t.serializeStyle(a))))}})},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,defaults:{type:"textbox",maxWidth:50,onchange:function(e){ue(t,e.control.rootControl)}},items:[{label:"Vertical space",name:"vspace"},{label:"Border width",name:"border"},{label:"Horizontal space",name:"hspace"},{label:"Border style",type:"listbox",name:"borderStyle",width:90,maxWidth:90,onselect:function(e){ue(t,e.control.rootControl)},values:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:&
 quot;Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]};var o},se=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},de=function(e,t){var n=e.find("#width")[0],r=e.find("#height")[0],a=e.find("#constrain")[0];n&&r&&a&&t(n,r,a.checked())},me=function(e,t,n){var r=e.state.get("oldVal"),a=t.state.get("oldVal"),o=e.value(),i=t.value();n&&r&&a&&o&&i&&(o!==r?(i=Math.round(o/r*i),isNaN(i)||t.value(i)):(o=Math.round(i/a*o),isNaN(o)||e.value(o)))
 ,se(e,t)},ge=function(e){de(e,me)},fe=function(){var e=function(e){ge(e.control.rootControl)};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}},pe=function(e){de(e,se)},he=ge,ve=function(e){e.meta=e.control.rootControl.toJSON()},be=function(s,e){var t=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:function(e){var t,n,r,a,o,i,l,u,c;n=s,i=(t=e).meta||{},l=t.control,u=l.rootControl,(c=u.find("#image-list")[0])&&c.value(n.convertURL(l.value(),"src
 ")),w.each(i,function(e,t){u.find("#"+t).value(e)}),i.width||i.height||(r=n.convertURL(l.value(),"src"),a=m(n),o=new RegExp("^(?:[a-z]+:)?//","i"),a&&!o.test(r)&&r.substring(0,a.length)!==a&&(r=a+r),l.value(r),N(n.documentBaseURI.toAbsolute(l.value()),function(e){e.width&&e.height&&d(n)&&(u.find("#width").value(e.width),u.find("#height").value(e.height),pe(u))}))},onbeforecall:ve},e];return r(s)&&t.push({name:"alt",type:"textbox",label:"Image description"}),a(s)&&t.push({name:"title",type:"textbox",label:"Image Title"}),d(s)&&t.push(fe()),n(s)&&t.push({name:"class",type:"listbox",label:"Class",values:_(n(s),function(e){e.value&&(e.textStyle=function(){return s.formatter.getCssText({inline:"img",classes:[e.value]})})})}),o(s)&&
 t.push({name:"caption",type:"checkbox",label:"Caption"}),t},ye=function(e,t){return{title:"General",type:"form",items:be(e,t)}},xe=be,we=function(){return y.getOrDie("URL")},Ce=function(e){return we().createObjectURL(e)},Se=function(e){we().revokeObjectURL(e)},Ne=tinymce.util.Tools.resolve("tinymce.ui.Factory"),_e=function(){};function Te(i){var t=function(e,r,a,t){var o,n;(o=new(y.getOrDie("XMLHttpRequest"))).open("POST",i.url),o.withCredentials=i.credentials,o.upload.onprogress=function(e){t(e.loaded/e.total*100)},o.onerror=function(){a("Image upload failed due to a XHR Transport error. Code: "+o.status)},o.onload=function(){var e,t,n;o.status<200||300<=o.status?a("HTTP Error: "+o.status):(e=JSON.parse(o.responseText))&&"string"==typeof e.location?r((t=i.basePath,n=e.location,t?t.replace(/\/$/,"")+"/"+n.replace(/^\//,""
 ):n)):a("Invalid JSON: "+o.responseText)},(n=new FormData).append("file",e.blob(),e.filename()),o.send(n)};return i=w.extend({credentials:!1,handler:t},i),{upload:function(e){return i.url||i.handler!==t?(r=e,a=i.handler,new x(function(e,t){try{a(r,e,t,_e)}catch(n){t(n.message)}})):x.reject("Upload url missing from the settings.");var r,a}}}var Ae=function(u){return function(e){var t=Ne.get("Throbber"),n=e.control.rootControl,r=new t(n.getEl()),a=e.control.value(),o=Ce(a),i=Te({url:g(u),basePath:p(u),credentials:h(u),handler:f(u)}),l=function(){r.hide(),Se(o)};return r.show(),O(a).then(function(e){var t=u.editorUpload.blobCache.create({blob:a,blobUri:o,name:a.name?a.name.replace(/\.[^\.]+$/,""):null,base64:e.split(",")[1]});return i.upload(t).then(function(e){var t=n.find("#src");return t.value(e),n.find("tabpanel")[0].activateTab(0),t.fire("change"),l(),e})})["catch"](function(e){u.wi
 ndowManager.alert(e),l()})}},Re=".jpg,.jpeg,.png,.gif",Ie=function(e){return{title:"Upload",type:"form",layout:"flex",direction:"column",align:"stretch",padding:"20 20 20 20",items:[{type:"container",layout:"flex",direction:"column",align:"center",spacing:10,items:[{text:"Browse for an image",type:"browsebutton",accept:Re,onchange:Ae(e)},{text:"OR",type:"label"}]},{text:"Drop an image here",type:"dropzone",accept:Re,height:100,onchange:Ae(e)}]}};function Oe(r){for(var a=[],e=1;e<arguments.length;e++)a[e-1]=arguments[e];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=a.concat(e);return r.apply(null,n)}}var Le=function(t,e){var n=e.control.getRoot();he(n),t.undoManager.transact(function(){var e=U(oe(t),n.toJSON());le(t,e)}),t.editorUpload.uploadImagesAuto()};function Pe(o){funct
 ion e(e){var n,t,r=oe(o);if(e&&(t={type:"listbox",label:"Image list",name:"image-list",values:_(e,function(e){e.value=o.convertURL(e.value||e.url,"src")},[{text:"None",value:""}]),value:r.src&&o.convertURL(r.src,"src"),onselect:function(e){var t=n.find("#alt");(!t.value()||e.lastControl&&t.value()===e.lastControl.text())&&t.value(e.control.text()),n.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){t=this}}),l(o)||c(o)||s(o)){var a=[ye(o,t)];l(o)&&a.push(ce(o)),(c(o)||s(o))&&a.push(Ie(o)),n=o.windowManager.open({title:"Insert/edit image",data:r,bodyType:"tabpanel",body:a,onSubmit:Oe(Le,o)})}else n=o.windowManager.open({title:"Insert/edit image",data:r,body:xe(o,t),onSubmit:Oe(Le,o)});pe(n)}return{open:function(){t(o,e)}}}var Ue=function(e){e.addCommand("mceImage",Pe(e).o
 pen)},Ee=function(o){return function(e){for(var t,n,r=e.length,a=function(e){e.attr("contenteditable",o?"true":null)};r--;)t=e[r],(n=t.attr("class"))&&/\bimage\b/.test(n)&&(t.attr("contenteditable",o?"false":null),w.each(t.getAll("figcaption"),a))}},ke=function(e){e.on("preInit",function(){e.parser.addNodeFilter("figure",Ee(!0)),e.serializer.addNodeFilter("figure",Ee(!1))})},Me=function(e){e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:Pe(e).open,stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),e.addMenuItem("image",{icon:"image",text:"Image",onclick:Pe(e).open,context:"insert",prependToContext:!0})};e.add("image",function(e){ke(e),Me(e),Ue(e)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(l){"use strict";var i,e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=function(e){return!1!==e.settings.image_dimensions},u=function(e){return!0===e.settings.image_advtab},m=function(e){return e.getParam("image_prepend_url","")},n=function(e){return e.getParam("image_class_list")},r=function(e){return!1!==e.settings.image_description},a=function(e){return!0===e.settings.image_title},o=function(e){return!0===e.settings.image_caption},c=function(e){return e.getParam("image_list",!1)},s=function(e){return e.getParam("images_upload_url",!1)},g=function(e){return e.getParam("images_upload_handler",!1)},f=function(e){return e.getParam("images_upload_url")},p=function(e){return e.getParam("images_upload_handler")},h=function(e){return e.getParam("images_upload_base_path&quo
 t;)},v=function(e){return e.getParam("images_upload_credentials")},b="undefined"!=typeof l.window?l.window:Function("return this;")(),y=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:b,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n}(e.split("."),t)},x={getOrDie:function(e,t){var n=y(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n}},w=tinymce.util.Tools.resolve("tinymce.util.Promise"),C=tinymce.util.Tools.resolve("tinymce.util.Tools"),S=tinymce.util.Tools.resolve("tinymce.util.XHR"),N=function(e,t){return Math.max(parseInt(e,10),parseInt(t,10))},_=function(e,n){var r=l.document.createElement("img");function t(e,t){r.parentNode&&r.parentNode.removeChild(r),n({width:e,height:t})}r.onload=function(){t(N(r.width,r.clientWidth),N(r.height,r.clientHeight))},r.onerror=function(){t(0,0)};var a=r.
 style;a.visibility="hidden",a.position="fixed",a.bottom=a.left="0px",a.width=a.height="auto",l.document.body.appendChild(r),r.src=e},T=function(e,a,t){return function n(e,r){return r=r||[],C.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=n(e.menu):(t.value=e.value,a(t)),r.push(t)}),r}(e,t||[])},A=function(e){return e&&(e=e.replace(/px$/,"")),e},R=function(e){return 0<e.length&&/^[0-9]+$/.test(e)&&(e+="px"),e},I=function(e){if(e.margin){var t=e.margin.split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bot
 tom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e},t=function(e,t){var n=c(e);"string"==typeof n?S.send({url:n,success:function(e){t(JSON.parse(e))}}):"function"==typeof n?n(t):t(n)},O=function(e,t,n){function r(){n.onload=n.onerror=null,e.selection&&(e.selection.select(n),e.nodeChanged())}n.onload=function(){t.width||t.height||!d(e)||e.dom.setAttribs(n,{width:n.clientWid
 th,height:n.clientHeight}),r()},n.onerror=r},L=function(r){return new w(function(e,t){var n=new(x.getOrDie("FileReader"));n.onload=function(){e(n.result)},n.onerror=function(){t(n.error.message)},n.readAsDataURL(r)})},P=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),U=Object.prototype.hasOwnProperty,E=(i=function(e,t){return t},function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var a=e[r];for(var o in a)U.call(a,o)&&(n[o]=i(n[o],a[o]))}return n}),k=P.DOM,M=function(e){return e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?A(e.style.marginLeft):""},D=function(e){return e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?A(e.style.marginTop):""},z=function(e){return e.style.borderWidth?A(e.style.bo
 rderWidth):""},B=function(e,t){return e.hasAttribute(t)?e.getAttribute(t):""},H=function(e,t){return e.style[t]?e.style[t]:""},j=function(e){return null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName},F=function(e,t,n){e.setAttribute(t,n)},W=function(e){var t,n,r,a;j(e)?(a=(r=e).parentNode,k.insertAfter(r,a),k.remove(a)):(t=e,n=k.create("figure",{"class":"image"}),k.insertAfter(n,t),n.appendChild(t),n.appendChild(k.create("figcaption",{contentEditable:!0},"Caption")),n.contentEditable="false")},J=function(e,t){var n=e.getAttribute("style"),r=t(null!==n?n:"");0<r.length?(e.setAttribute("style",r),e.setAttribute("data-mce-style",r)):e.removeAttribute("style")},V=function(e,r){return function(e,t,n){e.style[t]?(e.style[t]=R(n),J(e,r)):F(e,t,n)}},G=function(e,t){return e.style[t]?A(e.style[t]):B(e,t)},$=function(e,t){var n=R(t
 );e.style.marginLeft=n,e.style.marginRight=n},X=function(e,t){var n=R(t);e.style.marginTop=n,e.style.marginBottom=n},q=function(e,t){var n=R(t);e.style.borderWidth=n},K=function(e,t){e.style.borderStyle=t},Q=function(e){return"FIGURE"===e.nodeName},Y=function(e,t){var n=l.document.createElement("img");return F(n,"style",t.style),(M(n)||""!==t.hspace)&&$(n,t.hspace),(D(n)||""!==t.vspace)&&X(n,t.vspace),(z(n)||""!==t.border)&&q(n,t.border),(H(n,"borderStyle")||""!==t.borderStyle)&&K(n,t.borderStyle),e(n.getAttribute("style"))},Z=function(e,t){return{src:B(t,"src"),alt:B(t,"alt"),title:B(t,"title"),width:G(t,"width"),height:G(t,"height"),"class":B(t,"class"),style:e(B(t,"style")),caption:j(t),hspace:M(t),vspace:D(t),border:z(t),borderStyle:H(t,"borderStyle")}},ee=function(e,t,n
 ,r,a){n[r]!==t[r]&&a(e,r,n[r])},te=function(r,a){return function(e,t,n){r(e,n),J(e,a)}},ne=function(e,t,n){var r=Z(e,n);ee(n,r,t,"caption",function(e,t,n){return W(e)}),ee(n,r,t,"src",F),ee(n,r,t,"alt",F),ee(n,r,t,"title",F),ee(n,r,t,"width",V(0,e)),ee(n,r,t,"height",V(0,e)),ee(n,r,t,"class",F),ee(n,r,t,"style",te(function(e,t){return F(e,"style",t)},e)),ee(n,r,t,"hspace",te($,e)),ee(n,r,t,"vspace",te(X,e)),ee(n,r,t,"border",te(q,e)),ee(n,r,t,"borderStyle",te(K,e))},re=function(e,t){var n=e.dom.styles.parse(t),r=I(n),a=e.dom.styles.parse(e.dom.styles.serialize(r));return e.dom.styles.serialize(a)},ae=function(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"figure.image");return n?e.dom.select("img",n)[0]:t&&("IMG"!==t.nodeName||t.getAttribute("data-mce-object")||t.getAttribute("data-mce-plac
 eholder"))?null:t},oe=function(t,e){var n=t.dom,r=n.getParent(e.parentNode,function(e){return t.schema.getTextBlockElements()[e.nodeName]},t.getBody());return r?n.split(r,e):e},ie=function(t){var e=ae(t);return e?Z(function(e){return re(t,e)},e):{src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""}},le=function(t,e){var n=function(e,t){var n=l.document.createElement("img");if(ne(e,E(t,{caption:!1}),n),F(n,"alt",t.alt),t.caption){var r=k.create("figure",{"class":"image"});return r.appendChild(n),r.appendChild(k.create("figcaption",{contentEditable:!0},"Caption")),r.contentEditable="false",r}return n}(function(e){return re(t,e)},e);t.dom.setAttrib(n,"data-mce-id","__mcenew"),t.focus(),t.selection.se
 tContent(n.outerHTML);var r=t.dom.select('*[data-mce-id="__mcenew"]')[0];if(t.dom.setAttrib(r,"data-mce-id",null),Q(r)){var a=oe(t,r);t.selection.select(a)}else t.selection.select(r)},ue=function(e,t){var n=ae(e);n?t.src?function(t,e){var n,r=ae(t);if(ne(function(e){return re(t,e)},e,r),n=r,t.dom.setAttrib(n,"src",n.getAttribute("src")),Q(r.parentNode)){var a=r.parentNode;oe(t,a),t.selection.select(r.parentNode)}else t.selection.select(r),O(t,e,r)}(e,t):function(e,t){if(t){var n=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(n),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}}(e,n):t.src&&le(e,t)},ce=function(n,r){r.find("#style").each(function(e){var t=Y(function(e){return re(n,e)},E({src:"",alt:"",title:"",width:"",height:"","class":"",style:"&quot
 ;,caption:!1,hspace:"",vspace:"",border:"",borderStyle:""},r.toJSON()));e.value(t)})},se=function(t){return{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:(o=t,function(e){var t=o.dom,n=e.control.rootControl;if(u(o)){var r=n.toJSON(),a=t.parseStyle(r.style);n.find("#vspace").value(""),n.find("#hspace").value(""),((a=I(a))["margin-top"]&&a["margin-bottom"]||a["margin-right"]&&a["margin-left"])&&(a["margin-top"]===a["margin-bottom"]?n.find("#vspace").value(A(a["margin-top"])):n.find("#vspace").value(""),a["margin-right"]===a["margin-left"]?n.find("#hspace").value(A(a["margin-right"])):n.find("#hspace").value("")),
 a["border-width"]?n.find("#border").value(A(a["border-width"])):n.find("#border").value(""),a["border-style"]?n.find("#borderStyle").value(a["border-style"]):n.find("#borderStyle").value(""),n.find("#style").value(t.serializeStyle(t.parseStyle(t.serializeStyle(a))))}})},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,defaults:{type:"textbox",maxWidth:50,onchange:function(e){ce(t,e.control.rootControl)}},items:[{label:"Vertical space",name:"vspace"},{label:"Border width",name:"border"},{label:"Horizontal space",name:"hspace"},{label:"Border style",type:"listbox",name:"borderStyle",width:90,maxWidth:90,onselect:function(e){ce(t,e.control.rootControl)},values:[{text:"Select...",value:""},{text:"Solid",value:
 "solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]};var o},de=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},me=function(e,t){var n=e.find("#width")[0],r=e.find("#height")[0],a=e.find("#constrain")[0];n&&r&&a&&t(n,r,a.checked())},ge=function(e,t,n){var r=e.state.get("oldVal"),a=t.state.get("oldVal"),o=e.value(),i=t.value();n&&r&&a&&o&&i&&(o!==r?(i=Math.round(o/r*i),isNaN(i)||t.value(i)):(o=Math.round(i/a
 *o),isNaN(o)||e.value(o))),de(e,t)},fe=function(e){me(e,ge)},pe=function(){var e=function(e){fe(e.control.rootControl)};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}},he=function(e){me(e,de)},ve=fe,be=function(e){e.meta=e.control.rootControl.toJSON()},ye=function(s,e){var t=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:function(e){var t,n,r,a,o,i,l,u,c;n=s,i=(t=e).meta||{},l=t.control,u=l.rootControl,(c=u.find("#image-list")[0])&&c.value(n.conv
 ertURL(l.value(),"src")),C.each(i,function(e,t){u.find("#"+t).value(e)}),i.width||i.height||(r=n.convertURL(l.value(),"src"),a=m(n),o=new RegExp("^(?:[a-z]+:)?//","i"),a&&!o.test(r)&&r.substring(0,a.length)!==a&&(r=a+r),l.value(r),_(n.documentBaseURI.toAbsolute(l.value()),function(e){e.width&&e.height&&d(n)&&(u.find("#width").value(e.width),u.find("#height").value(e.height),he(u))}))},onbeforecall:be},e];return r(s)&&t.push({name:"alt",type:"textbox",label:"Image description"}),a(s)&&t.push({name:"title",type:"textbox",label:"Image Title"}),d(s)&&t.push(pe()),n(s)&&t.push({name:"class",type:"listbox",label:"Class",values:T(n(s),function(e){e.value&&(e.textStyle=function(){return s.formatter.getCssText({inline:"img",classes:[e.val
 ue]})})})}),o(s)&&t.push({name:"caption",type:"checkbox",label:"Caption"}),t},xe=function(e,t){return{title:"General",type:"form",items:ye(e,t)}},we=ye,Ce=function(){return x.getOrDie("URL")},Se=function(e){return Ce().createObjectURL(e)},Ne=function(e){Ce().revokeObjectURL(e)},_e=tinymce.util.Tools.resolve("tinymce.ui.Factory"),Te=function(){};function Ae(i){var t=function(e,r,a,t){var o,n;(o=new(x.getOrDie("XMLHttpRequest"))).open("POST",i.url),o.withCredentials=i.credentials,o.upload.onprogress=function(e){t(e.loaded/e.total*100)},o.onerror=function(){a("Image upload failed due to a XHR Transport error. Code: "+o.status)},o.onload=function(){var e,t,n;o.status<200||300<=o.status?a("HTTP Error: "+o.status):(e=JSON.parse(o.responseText))&&"string"==typeof e.location?r((t=i.basePath,n=e.location,t?t.replace(/\/$/,"")+"/"+n.
 replace(/^\//,""):n)):a("Invalid JSON: "+o.responseText)},(n=new l.FormData).append("file",e.blob(),e.filename()),o.send(n)};return i=C.extend({credentials:!1,handler:t},i),{upload:function(e){return i.url||i.handler!==t?(r=e,a=i.handler,new w(function(e,t){try{a(r,e,t,Te)}catch(n){t(n.message)}})):w.reject("Upload url missing from the settings.");var r,a}}}var Re=function(u){return function(e){var t=_e.get("Throbber"),n=e.control.rootControl,r=new t(n.getEl()),a=e.control.value(),o=Se(a),i=Ae({url:f(u),basePath:h(u),credentials:v(u),handler:p(u)}),l=function(){r.hide(),Ne(o)};return r.show(),L(a).then(function(e){var t=u.editorUpload.blobCache.create({blob:a,blobUri:o,name:a.name?a.name.replace(/\.[^\.]+$/,""):null,base64:e.split(",")[1]});return i.upload(t).then(function(e){var t=n.find("#src");return t.value(e),n.find("tabpanel")[0].activateTab(0),t.fire("change"),l(),e})})["c
 atch"](function(e){u.windowManager.alert(e),l()})}},Ie=".jpg,.jpeg,.png,.gif",Oe=function(e){return{title:"Upload",type:"form",layout:"flex",direction:"column",align:"stretch",padding:"20 20 20 20",items:[{type:"container",layout:"flex",direction:"column",align:"center",spacing:10,items:[{text:"Browse for an image",type:"browsebutton",accept:Ie,onchange:Re(e)},{text:"OR",type:"label"}]},{text:"Drop an image here",type:"dropzone",accept:Ie,height:100,onchange:Re(e)}]}};function Le(r){for(var a=[],e=1;e<arguments.length;e++)a[e-1]=arguments[e];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=a.concat(e);return r.apply(null,n)}}var Pe=function(t,e){var n=e.control.getRoot();ve(n),t.undoManager.transact(function(){var e=E(ie(t),n.toJSON());ue(t,e)}),t.editorUpload.uploadImages
 Auto()};function Ue(o){function e(e){var n,t,r=ie(o);if(e&&(t={type:"listbox",label:"Image list",name:"image-list",values:T(e,function(e){e.value=o.convertURL(e.value||e.url,"src")},[{text:"None",value:""}]),value:r.src&&o.convertURL(r.src,"src"),onselect:function(e){var t=n.find("#alt");(!t.value()||e.lastControl&&t.value()===e.lastControl.text())&&t.value(e.control.text()),n.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){t=this}}),u(o)||s(o)||g(o)){var a=[xe(o,t)];u(o)&&a.push(se(o)),(s(o)||g(o))&&a.push(Oe(o)),n=o.windowManager.open({title:"Insert/edit image",data:r,bodyType:"tabpanel",body:a,onSubmit:Le(Pe,o)})}else n=o.windowManager.open({title:"Insert/edit image",data:r,body:we(o,t),onSubmit:Le(Pe,o)});he(n)}return{open:function(){t(o,e)}}}var Ee=function(e){e.addCommand(
 "mceImage",Ue(e).open)},ke=function(o){return function(e){for(var t,n,r=e.length,a=function(e){e.attr("contenteditable",o?"true":null)};r--;)t=e[r],(n=t.attr("class"))&&/\bimage\b/.test(n)&&(t.attr("contenteditable",o?"false":null),C.each(t.getAll("figcaption"),a))}},Me=function(e){e.on("preInit",function(){e.parser.addNodeFilter("figure",ke(!0)),e.serializer.addNodeFilter("figure",ke(!1))})},De=function(e){e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:Ue(e).open,stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),e.addMenuItem("image",{icon:"image",text:"Image",onclick:Ue(e).open,context:"insert",prependToContext:!0})};e.add("image",function(e){Me(e),De(e),Ee(e)})}(window);
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginslinkpluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js       2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js 2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var link = (function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var link = (function (domGlobals) {
</ins><span class="cx" style="display: block; padding: 0 10px">     'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -70,21 +70,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var global$3 = tinymce.util.Tools.resolve('tinymce.Env');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var appendClickRemove = function (link, evt) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      document.body.appendChild(link);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      domGlobals.document.body.appendChild(link);
</ins><span class="cx" style="display: block; padding: 0 10px">       link.dispatchEvent(evt);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      document.body.removeChild(link);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      domGlobals.document.body.removeChild(link);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var open$$1 = function (url) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var open = function (url) {
</ins><span class="cx" style="display: block; padding: 0 10px">       if (!global$3.ie || global$3.ie > 10) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var link = document.createElement('a');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var link = domGlobals.document.createElement('a');
</ins><span class="cx" style="display: block; padding: 0 10px">         link.target = '_blank';
</span><span class="cx" style="display: block; padding: 0 10px">         link.href = url;
</span><span class="cx" style="display: block; padding: 0 10px">         link.rel = 'noreferrer noopener';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var evt = document.createEvent('MouseEvents');
-        evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var evt = domGlobals.document.createEvent('MouseEvents');
+        evt.initMouseEvent('click', true, true, domGlobals.window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
</ins><span class="cx" style="display: block; padding: 0 10px">         appendClickRemove(link, evt);
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var win = window.open('', '_blank');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var win = domGlobals.window.open('', '_blank');
</ins><span class="cx" style="display: block; padding: 0 10px">         if (win) {
</span><span class="cx" style="display: block; padding: 0 10px">           win.opener = null;
</span><span class="cx" style="display: block; padding: 0 10px">           var doc = win.document;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -94,7 +94,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var OpenUrl = { open: open$$1 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var OpenUrl = { open: open };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -709,5 +709,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     return Plugin;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}(window));
</ins><span class="cx" style="display: block; padding: 0 10px"> })();
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginslinkpluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.min.js   2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.min.js     2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),e=function(t){return t.target_list},o=function(t){return t.rel_list},i=function(t){return t.link_class_list},p=function(t){return"boolean"==typeof t.link_assume_external_targets&&t.link_assume_external_targets},a=function(t){return"boolean"==typeof t.link_context_toolbar&&t.link_context_toolbar},r=function(t){return t.link_list},k=function(t){return"string"==typeof t.default_link_target},y=function(t){return t.default_link_target},b=e,_=function(t,e){t.settings.target_list=e},w=function(t){return!1!==e(t)},T=o,C=function(t){return o(t)!==undefined},M=i,O=function(t){return i(t)!==undefined},R=function(t){return!1!==t.link_title},N=function(t){return"boolean"==typeof t.allow_
 unsafe_link_target&&t.allow_unsafe_link_target},l=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),u=tinymce.util.Tools.resolve("tinymce.Env"),c=function(t){if(!u.ie||10<u.ie){var e=document.createElement("a");e.target="_blank",e.href=t,e.rel="noreferrer noopener";var n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),r=e,a=n,document.body.appendChild(r),r.dispatchEvent(a),document.body.removeChild(r)}else{var o=window.open("","_blank");if(o){o.opener=null;var i=o.document;i.open(),i.write('<meta http-equiv="refresh" content="0; url='+l.DOM.encode(t)+'">'),i.close()}}var r,a},A=tinymce.util.Tools.resolve("tinymce.util.Tools"),s=function(t,e){var n,o,i=["noopener"],r=t?t.split(/\s+/):[],a=function(t){return t.filter(function(t){return-1===A.inArray(i,t)})};return(r=e?(n=a(n=r)).lengt
 h?n.concat(i):i:a(r)).length?(o=r,A.trim(o.sort().join(" "))):null},f=function(t,e){return e=e||t.selection.getNode(),m(e)?t.dom.select("a[href]",e)[0]:t.dom.getParent(e,"a[href]")},d=function(t){return t&&"A"===t.nodeName&&t.href},m=function(t){return t&&"FIGURE"===t.nodeName&&/\bimage\b/i.test(t.className)},v=function(t,e){var n,o;(o=t.dom.select("img",e)[0])&&(n=t.dom.getParents(o,"a[href]",e)[0])&&(n.parentNode.insertBefore(o,n),t.dom.remove(n))},g=function(t,e,n){var o,i;(i=t.dom.select("img",e)[0])&&(o=t.dom.create("a",n),i.parentNode.insertBefore(o,i),o.appendChild(i))},L=function(i,r){return function(o){i.undoManager.transact(function(){var t=i.selection.getNode(),e=f(i,t),n={href:o.href,target:o.target?o.target:null,rel:o.rel?o.rel:null,"class":o["class"]?o["class"]:null,title:o.title?o.title:null};C(
 i.settings)||!1!==N(i.settings)||(n.rel=s(n.rel,"_blank"===n.target)),o.href===r.href&&(r.attach(),r={}),e?(i.focus(),o.hasOwnProperty("text")&&("innerText"in e?e.innerText=o.text:e.textContent=o.text),i.dom.setAttribs(e,n),i.selection.select(e),i.undoManager.add()):m(t)?g(i,t,n):o.hasOwnProperty("text")?i.insertContent(i.dom.createHTML("a",n,i.dom.encode(o.text))):i.execCommand("mceInsertLink",!1,n)})}},P=function(e){return function(){e.undoManager.transact(function(){var t=e.selection.getNode();m(t)?v(e,t):e.execCommand("unlink")})}},h=d,x=function(t){return 0<A.grep(t,d).length},E=function(t){return!(/</.test(t)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(t)||-1===t.indexOf("href=")))},S=f,I=function(t,e){var n=e?e.innerText||e.textContent:t.getContent({format:"text"});return n.replace(/\uFEFF/g,"")},K=s,U=tinymce.util.Tools.resolve("tinymce
 .util.Delay"),D=tinymce.util.Tools.resolve("tinymce.util.XHR"),B={},F=function(t,o,e){var i=function(t,n){return n=n||[],A.each(t,function(t){var e={text:t.text||t.title};t.menu?e.menu=i(t.menu):(e.value=t.value,o&&o(e)),n.push(e)}),n};return i(t,e||[])},q=function(e,t,n){var o=e.selection.getRng();U.setEditorTimeout(e,function(){e.windowManager.confirm(t,function(t){e.selection.setRng(o),n(t)})})},V=function(a,t){var e,l,o,u,n,i,r,c,s,f,d,m={},v=a.selection,g=a.dom,h=function(t){var e=o.find("#text");(!e.value()||t.lastControl&&e.value()===t.lastControl.text())&&e.value(t.control.text()),o.find("#href").value(t.control.value())},x=function(){l||!u||m.text||this.parent().parent().find("#text")[0].value(this.value())};u=E(v.getContent()),e=S(a),m.text=l=I(a.selection,e),m.href=e?g.getAttrib(e,"href"):"",e?m.target=g.getAttrib(e,"target"):k(a.settings)&&(m.target=y(a.settings)),(
 d=g.getAttrib(e,"rel"))&&(m.rel=d),(d=g.getAttrib(e,"class"))&&(m["class"]=d),(d=g.getAttrib(e,"title"))&&(m.title=d),u&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){m.text=this.value()}}),t&&(i={type:"listbox",label:"Link list",values:F(t,function(t){t.value=a.convertURL(t.value||t.url,"href")},[{text:"None",value:""}]),onselect:h,value:a.convertURL(m.href,"href"),onPostRender:function(){i=this}}),w(a.settings)&&(b(a.settings)===undefined&&_(a,[{text:"None",value:""},{text:"New window",value:"_blank"}]),c={name:"target",type:"listbox",label:"Target",values:F(b(a.settings))}),C(a.settings)&&(r={name:"rel",type:"listbox",label:"Rel",values:F(T(a.settings),fu
 nction(t){!1===N(a.settings)&&(t.value=K(t.value,"_blank"===m.target))})}),O(a.settings)&&(s={name:"class",type:"listbox",label:"Class",values:F(M(a.settings),function(t){t.value&&(t.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[t.value]})})})}),R(a.settings)&&(f={name:"title",type:"textbox",label:"Title",value:m.title}),o=a.windowManager.open({title:"Insert link",data:m,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:function(t){var e=t.meta||{};i&&i.value(a.convertURL(this.value(),"href")),A.each(t.meta,function(t,e){var n=o.find("#"+e);"text"===e?0===l.length&&(n.value(t),m.text=t):n.value(t)}),e.attach&&(B={href:this.value(),attach:e.attach}),e.text||x.call(this)},onkeyup:x,onpaste:x,onbeforecal
 l:function(t){t.meta=o.toJSON()}},n,f,function(n){var o=[];if(A.each(a.dom.select("a:not([href])"),function(t){var e=t.name||t.id;e&&o.push({text:e,value:"#"+e,selected:-1!==n.indexOf("#"+e)})}),o.length)return o.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:o,onselect:h}}(m.href),i,r,c,s],onSubmit:function(t){var e=p(a.settings),n=L(a,B),o=P(a),i=A.extend({},m,t.data),r=i.href;r?(u&&i.text!==l||delete i.text,0<r.indexOf("@")&&-1===r.indexOf("//")&&-1===r.indexOf("mailto:")?q(a,"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(t){t&&(i.href="mailto:"+r),n(i)}):!0===e&&!/^\w+:/i.test(r)||!1===e&&/^\s*www[\.|\d\.]/i.test(r)?q(a,"The URL you entered seems to be an external link. Do you want to add t
 he required http:// prefix?",function(t){t&&(i.href="http://"+r),n(i)}):n(i)):o()}})},z=function(t){var e,n,o;n=V,"string"==typeof(o=r((e=t).settings))?D.send({url:o,success:function(t){n(e,JSON.parse(t))}}):"function"==typeof o?o(function(t){n(e,t)}):n(e,o)},H=function(t,e){return t.dom.getParent(e,"a[href]")},J=function(t){return H(t,t.selection.getStart())},$=function(t,e){if(e){var n=(i=e).getAttribute("data-mce-href")||i.getAttribute("href");if(/^#/.test(n)){var o=t.$(n);o.length&&t.selection.scrollIntoView(o[0],!0)}else c(e.href)}var i},j=function(t){return function(){z(t)}},G=function(t){return function(){$(t,J(t))}},X=function(r){return function(t){var e,n,o,i;return!!(a(r.settings)&&(!(i=r.plugins.contextmenu)||!i.isContextMenuVisible())&&h(t)&&3===(o=(n=(e=r.selection).getRng()).startContainer).nodeType&&e.isCollapsed()&&0<n.startOffset&&n.sta
 rtOffset<o.data.length)}},Q=function(o){o.on("click",function(t){var e=H(o,t.target);e&&n.metaKeyPressed(t)&&(t.preventDefault(),$(o,e))}),o.on("keydown",function(t){var e,n=J(o);n&&13===t.keyCode&&!0===(e=t).altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey&&(t.preventDefault(),$(o,n))})},W=function(n){return function(){var e=this;n.on("nodechange",function(t){e.active(!n.readonly&&!!S(n,t.element))})}},Y=function(n){return function(){var e=this,t=function(t){x(t.parents)?e.show():e.hide()};x(n.dom.getParents(n.selection.getStart()))||e.hide(),n.on("nodechange",t),e.on("remove",function(){n.off("nodechange",t)})}},Z=function(t){t.addCommand("mceLink",j(t))},tt=function(t){t.addShortcut("Meta+K","",j(t))},et=function(t){t.addButton("link",{active:!1,icon:"link",tooltip:"Insert/edit link&quo
 t;,onclick:j(t),onpostrender:W(t)}),t.addButton("unlink",{active:!1,icon:"unlink",tooltip:"Remove link",onclick:P(t),onpostrender:W(t)}),t.addContextToolbar&&t.addButton("openlink",{icon:"newtab",tooltip:"Open link",onclick:G(t)})},nt=function(t){t.addMenuItem("openlink",{text:"Open link",icon:"newtab",onclick:G(t),onPostRender:Y(t),prependToContext:!0}),t.addMenuItem("link",{icon:"link",text:"Link",shortcut:"Meta+K",onclick:j(t),stateSelector:"a[href]",context:"insert",prependToContext:!0}),t.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onclick:P(t),stateSelector:"a[href]"})},ot=function(t){t.addContextToolbar&&t.addContextToolbar(X(t),"openlink | link unlink")};t.add("link",function(t){et(t),nt(t),ot(t),Q(t),Z(t),tt(t)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(l){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),e=function(t){return t.target_list},o=function(t){return t.rel_list},i=function(t){return t.link_class_list},p=function(t){return"boolean"==typeof t.link_assume_external_targets&&t.link_assume_external_targets},a=function(t){return"boolean"==typeof t.link_context_toolbar&&t.link_context_toolbar},r=function(t){return t.link_list},k=function(t){return"string"==typeof t.default_link_target},y=function(t){return t.default_link_target},b=e,_=function(t,e){t.settings.target_list=e},w=function(t){return!1!==e(t)},T=o,C=function(t){return o(t)!==undefined},M=i,O=function(t){return i(t)!==undefined},R=function(t){return!1!==t.link_title},N=function(t){return"boolean"==typeof t.allow
 _unsafe_link_target&&t.allow_unsafe_link_target},u=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.Env"),s=function(t){if(!c.ie||10<c.ie){var e=l.document.createElement("a");e.target="_blank",e.href=t,e.rel="noreferrer noopener";var n=l.document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,l.window,0,0,0,0,0,!1,!1,!1,!1,0,null),r=e,a=n,l.document.body.appendChild(r),r.dispatchEvent(a),l.document.body.removeChild(r)}else{var o=l.window.open("","_blank");if(o){o.opener=null;var i=o.document;i.open(),i.write('<meta http-equiv="refresh" content="0; url='+u.DOM.encode(t)+'">'),i.close()}}var r,a},A=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=function(t,e){var n,o,i=["noopener"],r=t?t.split(/\s+/):[],a=function(t){return t.filter(function(t){return-1===A.inArray(i,t)})};return(r=e?(n=
 a(n=r)).length?n.concat(i):i:a(r)).length?(o=r,A.trim(o.sort().join(" "))):null},d=function(t,e){return e=e||t.selection.getNode(),v(e)?t.dom.select("a[href]",e)[0]:t.dom.getParent(e,"a[href]")},m=function(t){return t&&"A"===t.nodeName&&t.href},v=function(t){return t&&"FIGURE"===t.nodeName&&/\bimage\b/i.test(t.className)},g=function(t,e){var n,o;(o=t.dom.select("img",e)[0])&&(n=t.dom.getParents(o,"a[href]",e)[0])&&(n.parentNode.insertBefore(o,n),t.dom.remove(n))},h=function(t,e,n){var o,i;(i=t.dom.select("img",e)[0])&&(o=t.dom.create("a",n),i.parentNode.insertBefore(o,i),o.appendChild(i))},L=function(i,r){return function(o){i.undoManager.transact(function(){var t=i.selection.getNode(),e=d(i,t),n={href:o.href,target:o.target?o.target:null,rel:o.rel?o.rel:null,"class":o["class"]?o["class"]:null,title:o.title?o.t
 itle:null};C(i.settings)||!1!==N(i.settings)||(n.rel=f(n.rel,"_blank"===n.target)),o.href===r.href&&(r.attach(),r={}),e?(i.focus(),o.hasOwnProperty("text")&&("innerText"in e?e.innerText=o.text:e.textContent=o.text),i.dom.setAttribs(e,n),i.selection.select(e),i.undoManager.add()):v(t)?h(i,t,n):o.hasOwnProperty("text")?i.insertContent(i.dom.createHTML("a",n,i.dom.encode(o.text))):i.execCommand("mceInsertLink",!1,n)})}},P=function(e){return function(){e.undoManager.transact(function(){var t=e.selection.getNode();v(t)?g(e,t):e.execCommand("unlink")})}},x=m,E=function(t){return 0<A.grep(t,m).length},S=function(t){return!(/</.test(t)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(t)||-1===t.indexOf("href=")))},I=d,K=function(t,e){var n=e?e.innerText||e.textContent:t.getContent({format:"text"});return n.replace(/\uFEFF/g,"")},U=f,D=tinymce.util.Tools.resolve(
 "tinymce.util.Delay"),B=tinymce.util.Tools.resolve("tinymce.util.XHR"),F={},q=function(t,o,e){var i=function(t,n){return n=n||[],A.each(t,function(t){var e={text:t.text||t.title};t.menu?e.menu=i(t.menu):(e.value=t.value,o&&o(e)),n.push(e)}),n};return i(t,e||[])},V=function(e,t,n){var o=e.selection.getRng();D.setEditorTimeout(e,function(){e.windowManager.confirm(t,function(t){e.selection.setRng(o),n(t)})})},z=function(a,t){var e,l,o,u,n,i,r,c,s,f,d,m={},v=a.selection,g=a.dom,h=function(t){var e=o.find("#text");(!e.value()||t.lastControl&&e.value()===t.lastControl.text())&&e.value(t.control.text()),o.find("#href").value(t.control.value())},x=function(){l||!u||m.text||this.parent().parent().find("#text")[0].value(this.value())};u=S(v.getContent()),e=I(a),m.text=l=K(a.selection,e),m.href=e?g.getAttrib(e,"href"):"",e?m.target=g.getAttrib(e,"target"):k(a.settings)&&(m.target=y(a
 .settings)),(d=g.getAttrib(e,"rel"))&&(m.rel=d),(d=g.getAttrib(e,"class"))&&(m["class"]=d),(d=g.getAttrib(e,"title"))&&(m.title=d),u&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){m.text=this.value()}}),t&&(i={type:"listbox",label:"Link list",values:q(t,function(t){t.value=a.convertURL(t.value||t.url,"href")},[{text:"None",value:""}]),onselect:h,value:a.convertURL(m.href,"href"),onPostRender:function(){i=this}}),w(a.settings)&&(b(a.settings)===undefined&&_(a,[{text:"None",value:""},{text:"New window",value:"_blank"}]),c={name:"target",type:"listbox",label:"Target",values:q(b(a.settings))}),C(a.settings)&&(r={name:"rel",type:"listbox",label:"Rel",values:q(T(a
 .settings),function(t){!1===N(a.settings)&&(t.value=U(t.value,"_blank"===m.target))})}),O(a.settings)&&(s={name:"class",type:"listbox",label:"Class",values:q(M(a.settings),function(t){t.value&&(t.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[t.value]})})})}),R(a.settings)&&(f={name:"title",type:"textbox",label:"Title",value:m.title}),o=a.windowManager.open({title:"Insert link",data:m,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:function(t){var e=t.meta||{};i&&i.value(a.convertURL(this.value(),"href")),A.each(t.meta,function(t,e){var n=o.find("#"+e);"text"===e?0===l.length&&(n.value(t),m.text=t):n.value(t)}),e.attach&&(F={href:this.value(),attach:e.attach}),e.text||x.call(this)},onkeyup:x,onpaste:
 x,onbeforecall:function(t){t.meta=o.toJSON()}},n,f,function(n){var o=[];if(A.each(a.dom.select("a:not([href])"),function(t){var e=t.name||t.id;e&&o.push({text:e,value:"#"+e,selected:-1!==n.indexOf("#"+e)})}),o.length)return o.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:o,onselect:h}}(m.href),i,r,c,s],onSubmit:function(t){var e=p(a.settings),n=L(a,F),o=P(a),i=A.extend({},m,t.data),r=i.href;r?(u&&i.text!==l||delete i.text,0<r.indexOf("@")&&-1===r.indexOf("//")&&-1===r.indexOf("mailto:")?V(a,"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(t){t&&(i.href="mailto:"+r),n(i)}):!0===e&&!/^\w+:/i.test(r)||!1===e&&/^\s*www[\.|\d\.]/i.test(r)?V(a,"The URL you entered seems to be an external link. Do you 
 want to add the required http:// prefix?",function(t){t&&(i.href="http://"+r),n(i)}):n(i)):o()}})},H=function(t){var e,n,o;n=z,"string"==typeof(o=r((e=t).settings))?B.send({url:o,success:function(t){n(e,JSON.parse(t))}}):"function"==typeof o?o(function(t){n(e,t)}):n(e,o)},J=function(t,e){return t.dom.getParent(e,"a[href]")},$=function(t){return J(t,t.selection.getStart())},j=function(t,e){if(e){var n=(i=e).getAttribute("data-mce-href")||i.getAttribute("href");if(/^#/.test(n)){var o=t.$(n);o.length&&t.selection.scrollIntoView(o[0],!0)}else s(e.href)}var i},G=function(t){return function(){H(t)}},X=function(t){return function(){j(t,$(t))}},Q=function(r){return function(t){var e,n,o,i;return!!(a(r.settings)&&(!(i=r.plugins.contextmenu)||!i.isContextMenuVisible())&&x(t)&&3===(o=(n=(e=r.selection).getRng()).startContainer).nodeType&&e.isCollapsed()&&0<n.startOffset&a
 mp;&n.startOffset<o.data.length)}},W=function(o){o.on("click",function(t){var e=J(o,t.target);e&&n.metaKeyPressed(t)&&(t.preventDefault(),j(o,e))}),o.on("keydown",function(t){var e,n=$(o);n&&13===t.keyCode&&!0===(e=t).altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey&&(t.preventDefault(),j(o,n))})},Y=function(n){return function(){var e=this;n.on("nodechange",function(t){e.active(!n.readonly&&!!I(n,t.element))})}},Z=function(n){return function(){var e=this,t=function(t){E(t.parents)?e.show():e.hide()};E(n.dom.getParents(n.selection.getStart()))||e.hide(),n.on("nodechange",t),e.on("remove",function(){n.off("nodechange",t)})}},tt=function(t){t.addCommand("mceLink",G(t))},et=function(t){t.addShortcut("Meta+K","",G(t))},nt=function(t){t.addButton("link",{active:!1,icon:"link",tooltip:"Insert
 /edit link",onclick:G(t),onpostrender:Y(t)}),t.addButton("unlink",{active:!1,icon:"unlink",tooltip:"Remove link",onclick:P(t),onpostrender:Y(t)}),t.addContextToolbar&&t.addButton("openlink",{icon:"newtab",tooltip:"Open link",onclick:X(t)})},ot=function(t){t.addMenuItem("openlink",{text:"Open link",icon:"newtab",onclick:X(t),onPostRender:Z(t),prependToContext:!0}),t.addMenuItem("link",{icon:"link",text:"Link",shortcut:"Meta+K",onclick:G(t),stateSelector:"a[href]",context:"insert",prependToContext:!0}),t.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onclick:P(t),stateSelector:"a[href]"})},it=function(t){t.addContextToolbar&&t.addContextToolbar(Q(t),"openlink | link unlink")};t.add("link",function(t){nt(t),ot(t),it(t),W(t),tt(t),et(t)})}(window);
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginslistspluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js      2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js        2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var lists = (function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var lists = (function (domGlobals) {
</ins><span class="cx" style="display: block; padding: 0 10px">     'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -209,20 +209,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return value;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    function curry(fn) {
-      var initialArgs = [];
-      for (var _i = 1; _i < arguments.length; _i++) {
-        initialArgs[_i - 1] = arguments[_i];
-      }
-      return function () {
-        var restArgs = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-          restArgs[_i] = arguments[_i];
-        }
-        var all = initialArgs.concat(restArgs);
-        return fn.apply(null, all);
-      };
-    }
</del><span class="cx" style="display: block; padding: 0 10px">     var not = function (f) {
</span><span class="cx" style="display: block; padding: 0 10px">       return function () {
</span><span class="cx" style="display: block; padding: 0 10px">         var args = [];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -244,13 +230,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var eq = function (o) {
</span><span class="cx" style="display: block; padding: 0 10px">         return o.isNone();
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var call$$1 = function (thunk) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var call = function (thunk) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return thunk();
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var id = function (n) {
</span><span class="cx" style="display: block; padding: 0 10px">         return n;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var noop$$1 = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var noop = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var nul = function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -266,7 +252,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         isSome: never$1,
</span><span class="cx" style="display: block; padding: 0 10px">         isNone: always$1,
</span><span class="cx" style="display: block; padding: 0 10px">         getOr: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        getOrThunk: call$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        getOrThunk: call,
</ins><span class="cx" style="display: block; padding: 0 10px">         getOrDie: function (msg) {
</span><span class="cx" style="display: block; padding: 0 10px">           throw new Error(msg || 'error: getOrDie called on none.');
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -273,10 +259,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         getOrNull: nul,
</span><span class="cx" style="display: block; padding: 0 10px">         getOrUndefined: undef,
</span><span class="cx" style="display: block; padding: 0 10px">         or: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        orThunk: call$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        orThunk: call,
</ins><span class="cx" style="display: block; padding: 0 10px">         map: none,
</span><span class="cx" style="display: block; padding: 0 10px">         ap: none,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each: noop$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each: noop,
</ins><span class="cx" style="display: block; padding: 0 10px">         bind: none,
</span><span class="cx" style="display: block; padding: 0 10px">         flatten: none,
</span><span class="cx" style="display: block; padding: 0 10px">         exists: never$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -477,7 +463,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return slice.call(x);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var Global = typeof window !== 'undefined' ? window : Function('return this;')();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var path = function (parts, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">       var o = scope !== undefined && scope !== null ? scope : Global;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -589,6 +575,97 @@
</span><span class="cx" style="display: block; padding: 0 10px">       getSelectedListRoots: getSelectedListRoots
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var fromHtml = function (html, scope) {
+      var doc = scope || domGlobals.document;
+      var div = doc.createElement('div');
+      div.innerHTML = html;
+      if (!div.hasChildNodes() || div.childNodes.length > 1) {
+        domGlobals.console.error('HTML does not have a single root node', html);
+        throw new Error('HTML must have a single root node');
+      }
+      return fromDom(div.childNodes[0]);
+    };
+    var fromTag = function (tag, scope) {
+      var doc = scope || domGlobals.document;
+      var node = doc.createElement(tag);
+      return fromDom(node);
+    };
+    var fromText = function (text, scope) {
+      var doc = scope || domGlobals.document;
+      var node = doc.createTextNode(text);
+      return fromDom(node);
+    };
+    var fromDom = function (node) {
+      if (node === null || node === undefined) {
+        throw new Error('Node cannot be null or undefined');
+      }
+      return { dom: constant(node) };
+    };
+    var fromPoint = function (docElm, x, y) {
+      var doc = docElm.dom();
+      return Option.from(doc.elementFromPoint(x, y)).map(fromDom);
+    };
+    var Element = {
+      fromHtml: fromHtml,
+      fromTag: fromTag,
+      fromText: fromText,
+      fromDom: fromDom,
+      fromPoint: fromPoint
+    };
+
+    var liftN = function (arr, f) {
+      var r = [];
+      for (var i = 0; i < arr.length; i++) {
+        var x = arr[i];
+        if (x.isSome()) {
+          r.push(x.getOrDie());
+        } else {
+          return Option.none();
+        }
+      }
+      return Option.some(f.apply(null, r));
+    };
+
+    var fromElements = function (elements, scope) {
+      var doc = scope || domGlobals.document;
+      var fragment = doc.createDocumentFragment();
+      each(elements, function (element) {
+        fragment.appendChild(element.dom());
+      });
+      return Element.fromDom(fragment);
+    };
+
+    var Immutable = function () {
+      var fields = [];
+      for (var _i = 0; _i < arguments.length; _i++) {
+        fields[_i] = arguments[_i];
+      }
+      return function () {
+        var values = [];
+        for (var _i = 0; _i < arguments.length; _i++) {
+          values[_i] = arguments[_i];
+        }
+        if (fields.length !== values.length) {
+          throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments');
+        }
+        var struct = {};
+        each(fields, function (name, i) {
+          struct[name] = constant(values[i]);
+        });
+        return struct;
+      };
+    };
+
+    var keys = Object.keys;
+    var each$1 = function (obj, f) {
+      var props = keys(obj);
+      for (var k = 0, len = props.length; k < len; k++) {
+        var i = props[k];
+        var x = obj[i];
+        f(x, i, obj);
+      }
+    };
+
</ins><span class="cx" style="display: block; padding: 0 10px">     var node = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       var f = Global$1.getOrDie('Node');
</span><span class="cx" style="display: block; padding: 0 10px">       return f;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -602,7 +679,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var documentPositionContainedBy = function (a, b) {
</span><span class="cx" style="display: block; padding: 0 10px">       return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var Node$1 = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var Node = {
</ins><span class="cx" style="display: block; padding: 0 10px">       documentPositionPreceding: documentPositionPreceding,
</span><span class="cx" style="display: block; padding: 0 10px">       documentPositionContainedBy: documentPositionContainedBy
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -801,7 +878,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       detectOs: detectOs
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var contains$1 = function (str, substr) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var contains = function (str, substr) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return str.indexOf(substr) !== -1;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -808,7 +885,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
</span><span class="cx" style="display: block; padding: 0 10px">     var checkContains = function (target) {
</span><span class="cx" style="display: block; padding: 0 10px">       return function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return contains$1(uastring, target);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return contains(uastring, target);
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var browsers = [
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -816,7 +893,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'Edge',
</span><span class="cx" style="display: block; padding: 0 10px">         versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
</span><span class="cx" style="display: block; padding: 0 10px">         search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var monstrosity = contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var monstrosity = contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');
</ins><span class="cx" style="display: block; padding: 0 10px">           return monstrosity;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -827,7 +904,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           normalVersionRegex
</span><span class="cx" style="display: block; padding: 0 10px">         ],
</span><span class="cx" style="display: block; padding: 0 10px">         search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -837,7 +914,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           /.*?rv:([0-9]+)\.([0-9]+).*/
</span><span class="cx" style="display: block; padding: 0 10px">         ],
</span><span class="cx" style="display: block; padding: 0 10px">         search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return contains(uastring, 'msie') || contains(uastring, 'trident');
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -860,7 +937,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           /.*?cpu os ([0-9]+)_([0-9]+).*/
</span><span class="cx" style="display: block; padding: 0 10px">         ],
</span><span class="cx" style="display: block; padding: 0 10px">         search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     ];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -873,7 +950,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       {
</span><span class="cx" style="display: block; padding: 0 10px">         name: 'iOS',
</span><span class="cx" style="display: block; padding: 0 10px">         search: function (uastring) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return contains(uastring, 'iphone') || contains(uastring, 'ipad');
</ins><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         versionRegexes: [
</span><span class="cx" style="display: block; padding: 0 10px">           /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -927,76 +1004,40 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var PlatformDetection = { detect: detect$2 };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var detect$3 = cached(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var userAgent = navigator.userAgent;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var userAgent = domGlobals.navigator.userAgent;
</ins><span class="cx" style="display: block; padding: 0 10px">       return PlatformDetection.detect(userAgent);
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     var PlatformDetection$1 = { detect: detect$3 };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var fromHtml = function (html, scope) {
-      var doc = scope || document;
-      var div = doc.createElement('div');
-      div.innerHTML = html;
-      if (!div.hasChildNodes() || div.childNodes.length > 1) {
-        console.error('HTML does not have a single root node', html);
-        throw 'HTML must have a single root node';
-      }
-      return fromDom(div.childNodes[0]);
-    };
-    var fromTag = function (tag, scope) {
-      var doc = scope || document;
-      var node = doc.createElement(tag);
-      return fromDom(node);
-    };
-    var fromText = function (text, scope) {
-      var doc = scope || document;
-      var node = doc.createTextNode(text);
-      return fromDom(node);
-    };
-    var fromDom = function (node) {
-      if (node === null || node === undefined)
-        throw new Error('Node cannot be null or undefined');
-      return { dom: constant(node) };
-    };
-    var fromPoint = function (docElm, x, y) {
-      var doc = docElm.dom();
-      return Option.from(doc.elementFromPoint(x, y)).map(fromDom);
-    };
-    var Element$$1 = {
-      fromHtml: fromHtml,
-      fromTag: fromTag,
-      fromText: fromText,
-      fromDom: fromDom,
-      fromPoint: fromPoint
-    };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;
+    var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;
+    var COMMENT = domGlobals.Node.COMMENT_NODE;
+    var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;
+    var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;
+    var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;
+    var ELEMENT = domGlobals.Node.ELEMENT_NODE;
+    var TEXT = domGlobals.Node.TEXT_NODE;
+    var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;
+    var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;
+    var ENTITY = domGlobals.Node.ENTITY_NODE;
+    var NOTATION = domGlobals.Node.NOTATION_NODE;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var ATTRIBUTE = Node.ATTRIBUTE_NODE;
-    var CDATA_SECTION = Node.CDATA_SECTION_NODE;
-    var COMMENT = Node.COMMENT_NODE;
-    var DOCUMENT = Node.DOCUMENT_NODE;
-    var DOCUMENT_TYPE = Node.DOCUMENT_TYPE_NODE;
-    var DOCUMENT_FRAGMENT = Node.DOCUMENT_FRAGMENT_NODE;
-    var ELEMENT = Node.ELEMENT_NODE;
-    var TEXT = Node.TEXT_NODE;
-    var PROCESSING_INSTRUCTION = Node.PROCESSING_INSTRUCTION_NODE;
-    var ENTITY_REFERENCE = Node.ENTITY_REFERENCE_NODE;
-    var ENTITY = Node.ENTITY_NODE;
-    var NOTATION = Node.NOTATION_NODE;
-
</del><span class="cx" style="display: block; padding: 0 10px">     var ELEMENT$1 = ELEMENT;
</span><span class="cx" style="display: block; padding: 0 10px">     var is = function (element, selector) {
</span><span class="cx" style="display: block; padding: 0 10px">       var elem = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (elem.nodeType !== ELEMENT$1)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (elem.nodeType !== ELEMENT$1) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return false;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      else if (elem.matches !== undefined)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (elem.matches !== undefined) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return elem.matches(selector);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      else if (elem.msMatchesSelector !== undefined)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (elem.msMatchesSelector !== undefined) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return elem.msMatchesSelector(selector);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      else if (elem.webkitMatchesSelector !== undefined)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (elem.webkitMatchesSelector !== undefined) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return elem.webkitMatchesSelector(selector);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      else if (elem.mozMatchesSelector !== undefined)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else if (elem.mozMatchesSelector !== undefined) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return elem.mozMatchesSelector(selector);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      else
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      } else {
</ins><span class="cx" style="display: block; padding: 0 10px">         throw new Error('Browser lacks native selectors');
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      }
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var eq = function (e1, e2) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1003,84 +1044,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return e1.dom() === e2.dom();
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var regularContains = function (e1, e2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var d1 = e1.dom(), d2 = e2.dom();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var d1 = e1.dom();
+      var d2 = e2.dom();
</ins><span class="cx" style="display: block; padding: 0 10px">       return d1 === d2 ? false : d1.contains(d2);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var ieContains = function (e1, e2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return Node$1.documentPositionContainedBy(e1.dom(), e2.dom());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return Node.documentPositionContainedBy(e1.dom(), e2.dom());
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var browser = PlatformDetection$1.detect().browser;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var contains$2 = browser.isIE() ? ieContains : regularContains;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var contains$1 = browser.isIE() ? ieContains : regularContains;
</ins><span class="cx" style="display: block; padding: 0 10px">     var is$1 = is;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var keys = Object.keys;
-    var each$1 = function (obj, f) {
-      var props = keys(obj);
-      for (var k = 0, len = props.length; k < len; k++) {
-        var i = props[k];
-        var x = obj[i];
-        f(x, i, obj);
-      }
-    };
-
-    var name = function (element) {
-      var r = element.dom().nodeName;
-      return r.toLowerCase();
-    };
-
-    var rawSet = function (dom, key, value$$1) {
-      if (isString(value$$1) || isBoolean(value$$1) || isNumber(value$$1)) {
-        dom.setAttribute(key, value$$1 + '');
-      } else {
-        console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value$$1, ':: Element ', dom);
-        throw new Error('Attribute value was not simple');
-      }
-    };
-    var setAll = function (element, attrs) {
-      var dom = element.dom();
-      each$1(attrs, function (v, k) {
-        rawSet(dom, k, v);
-      });
-    };
-    var clone = function (element) {
-      return foldl(element.dom().attributes, function (acc, attr) {
-        acc[attr.name] = attr.value;
-        return acc;
-      }, {});
-    };
-
-    var Immutable = function () {
-      var fields = [];
-      for (var _i = 0; _i < arguments.length; _i++) {
-        fields[_i] = arguments[_i];
-      }
-      return function () {
-        var values = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-          values[_i] = arguments[_i];
-        }
-        if (fields.length !== values.length) {
-          throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments');
-        }
-        var struct = {};
-        each(fields, function (name, i) {
-          struct[name] = constant(values[i]);
-        });
-        return struct;
-      };
-    };
-
</del><span class="cx" style="display: block; padding: 0 10px">     var parent = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">       var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return Option.from(dom.parentNode).map(Element$$1.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return Option.from(dom.parentNode).map(Element.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var children = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">       var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return map(dom.childNodes, Element$$1.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return map(dom.childNodes, Element.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var child = function (element, index) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var children = element.dom().childNodes;
-      return Option.from(children[index]).map(Element$$1.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var cs = element.dom().childNodes;
+      return Option.from(cs[index]).map(Element.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var firstChild = function (element) {
</span><span class="cx" style="display: block; padding: 0 10px">       return child(element, 0);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1091,13 +1076,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var spot = Immutable('element', 'offset');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var before = function (marker, element) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parent$$1 = parent(marker);
-      parent$$1.each(function (v) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var parent$1 = parent(marker);
+      parent$1.each(function (v) {
</ins><span class="cx" style="display: block; padding: 0 10px">         v.dom().insertBefore(element.dom(), marker.dom());
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var append = function (parent$$1, element) {
-      parent$$1.dom().appendChild(element.dom());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var append = function (parent, element) {
+      parent.dom().appendChild(element.dom());
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var before$1 = function (marker, elements) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1111,20 +1096,65 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var remove$1 = function (element) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var remove = function (element) {
</ins><span class="cx" style="display: block; padding: 0 10px">       var dom = element.dom();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (dom.parentNode !== null)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (dom.parentNode !== null) {
</ins><span class="cx" style="display: block; padding: 0 10px">         dom.parentNode.removeChild(dom);
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      }
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var clone$1 = function (original, deep) {
-      return Element$$1.fromDom(original.dom().cloneNode(deep));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var name = function (element) {
+      var r = element.dom().nodeName;
+      return r.toLowerCase();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+    var rawSet = function (dom, key, value) {
+      if (isString(value) || isBoolean(value) || isNumber(value)) {
+        dom.setAttribute(key, value + '');
+      } else {
+        domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);
+        throw new Error('Attribute value was not simple');
+      }
+    };
+    var setAll = function (element, attrs) {
+      var dom = element.dom();
+      each$1(attrs, function (v, k) {
+        rawSet(dom, k, v);
+      });
+    };
+    var clone = function (element) {
+      return foldl(element.dom().attributes, function (acc, attr) {
+        acc[attr.name] = attr.value;
+        return acc;
+      }, {});
+    };
+
+    var isSupported = function (dom) {
+      return dom.style !== undefined;
+    };
+
+    var internalSet = function (dom, property, value) {
+      if (!isString(value)) {
+        domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
+        throw new Error('CSS value must be a string: ' + value);
+      }
+      if (isSupported(dom)) {
+        dom.style.setProperty(property, value);
+      }
+    };
+    var set = function (element, property, value) {
+      var dom = element.dom();
+      internalSet(dom, property, value);
+    };
+
+    var clone$1 = function (original, isDeep) {
+      return Element.fromDom(original.dom().cloneNode(isDeep));
+    };
</ins><span class="cx" style="display: block; padding: 0 10px">     var deep = function (original) {
</span><span class="cx" style="display: block; padding: 0 10px">       return clone$1(original, true);
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var shallowAs = function (original, tag) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var nu = Element$$1.fromTag(tag);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var nu = Element.fromTag(tag);
</ins><span class="cx" style="display: block; padding: 0 10px">       var attributes = clone(original);
</span><span class="cx" style="display: block; padding: 0 10px">       setAll(nu, attributes);
</span><span class="cx" style="display: block; padding: 0 10px">       return nu;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1132,216 +1162,102 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var mutate = function (original, tag) {
</span><span class="cx" style="display: block; padding: 0 10px">       var nu = shallowAs(original, tag);
</span><span class="cx" style="display: block; padding: 0 10px">       before(original, nu);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var children$$1 = children(original);
-      append$1(nu, children$$1);
-      remove$1(original);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var children$1 = children(original);
+      append$1(nu, children$1);
+      remove(original);
</ins><span class="cx" style="display: block; padding: 0 10px">       return nu;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var global$8 = tinymce.util.Tools.resolve('tinymce.Env');
-
-    var DOM$1 = global$6.DOM;
-    var createNewTextBlock = function (editor, contentNode, blockName) {
-      var node, textBlock;
-      var fragment = DOM$1.createFragment();
-      var hasContentNode;
-      var blockElements = editor.schema.getBlockElements();
-      if (editor.settings.forced_root_block) {
-        blockName = blockName || editor.settings.forced_root_block;
-      }
-      if (blockName) {
-        textBlock = DOM$1.create(blockName);
-        if (textBlock.tagName === editor.settings.forced_root_block) {
-          DOM$1.setAttribs(textBlock, editor.settings.forced_root_block_attrs);
-        }
-        if (!NodeType.isBlock(contentNode.firstChild, blockElements)) {
-          fragment.appendChild(textBlock);
-        }
-      }
-      if (contentNode) {
-        while (node = contentNode.firstChild) {
-          var nodeName = node.nodeName;
-          if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {
-            hasContentNode = true;
-          }
-          if (NodeType.isBlock(node, blockElements)) {
-            fragment.appendChild(node);
-            textBlock = null;
-          } else {
-            if (blockName) {
-              if (!textBlock) {
-                textBlock = DOM$1.create(blockName);
-                fragment.appendChild(textBlock);
-              }
-              textBlock.appendChild(node);
-            } else {
-              fragment.appendChild(node);
-            }
-          }
-        }
-      }
-      if (!editor.settings.forced_root_block) {
-        fragment.appendChild(DOM$1.create('br'));
-      } else {
-        if (!hasContentNode && (!global$8.ie || global$8.ie > 10)) {
-          textBlock.appendChild(DOM$1.create('br', { 'data-mce-bogus': '1' }));
-        }
-      }
-      return fragment;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var joinSegment = function (parent, child) {
+      append(parent.item, child.list);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var TextBlock = { createNewTextBlock: createNewTextBlock };
-
-    var DOM$2 = global$6.DOM;
-    var splitList = function (editor, ul, li, newBlock) {
-      var tmpRng, fragment, bookmarks, node;
-      var removeAndKeepBookmarks = function (targetNode) {
-        global$5.each(bookmarks, function (node) {
-          targetNode.parentNode.insertBefore(node, li.parentNode);
-        });
-        DOM$2.remove(targetNode);
-      };
-      bookmarks = DOM$2.select('span[data-mce-type="bookmark"]', ul);
-      newBlock = newBlock || TextBlock.createNewTextBlock(editor, li);
-      tmpRng = DOM$2.createRng();
-      tmpRng.setStartAfter(li);
-      tmpRng.setEndAfter(ul);
-      fragment = tmpRng.extractContents();
-      for (node = fragment.firstChild; node; node = node.firstChild) {
-        if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {
-          DOM$2.remove(node);
-          break;
-        }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var joinSegments = function (segments) {
+      for (var i = 1; i < segments.length; i++) {
+        joinSegment(segments[i - 1], segments[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (!editor.dom.isEmpty(fragment)) {
-        DOM$2.insertAfter(fragment, ul);
-      }
-      DOM$2.insertAfter(newBlock, ul);
-      if (NodeType.isEmpty(editor.dom, li.parentNode)) {
-        removeAndKeepBookmarks(li.parentNode);
-      }
-      DOM$2.remove(li);
-      if (NodeType.isEmpty(editor.dom, ul)) {
-        DOM$2.remove(ul);
-      }
</del><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var SplitList = { splitList: splitList };
-
-    var liftN = function (arr, f) {
-      var r = [];
-      for (var i = 0; i < arr.length; i++) {
-        var x = arr[i];
-        if (x.isSome()) {
-          r.push(x.getOrDie());
-        } else {
-          return Option.none();
-        }
-      }
-      return Option.some(f.apply(null, r));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var appendSegments = function (head$1, tail) {
+      liftN([
+        last(head$1),
+        head(tail)
+      ], joinSegment);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
-    var fromElements = function (elements, scope) {
-      var doc = scope || document;
-      var fragment = doc.createDocumentFragment();
-      each(elements, function (element) {
-        fragment.appendChild(element.dom());
-      });
-      return Element$$1.fromDom(fragment);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var createSegment = function (scope, listType) {
+      var segment = {
+        list: Element.fromTag(listType, scope),
+        item: Element.fromTag('li', scope)
+      };
+      append(segment.list, segment.item);
+      return segment;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
-    var isSupported = function (dom) {
-      return dom.style !== undefined;
-    };
-
-    var internalSet = function (dom, property, value$$1) {
-      if (!isString(value$$1)) {
-        console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value$$1, ':: Element ', dom);
-        throw new Error('CSS value must be a string: ' + value$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var createSegments = function (scope, entry, size) {
+      var segments = [];
+      for (var i = 0; i < size; i++) {
+        segments.push(createSegment(scope, entry.listType));
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isSupported(dom))
-        dom.style.setProperty(property, value$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return segments;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var set$1 = function (element, property, value$$1) {
-      var dom = element.dom();
-      internalSet(dom, property, value$$1);
-    };
-
-    var createSection = function (scope, listType) {
-      var section = {
-        list: Element$$1.fromTag(listType, scope),
-        item: Element$$1.fromTag('li', scope)
-      };
-      append(section.list, section.item);
-      return section;
-    };
-    var joinSections = function (parent, appendor) {
-      append(parent.item, appendor.list);
-    };
-    var createJoinedSections = function (scope, length, listType) {
-      var sections = [];
-      var _loop_1 = function (i) {
-        var newSection = createSection(scope, listType);
-        last(sections).each(function (lastSection) {
-          return joinSections(lastSection, newSection);
-        });
-        sections.push(newSection);
-      };
-      for (var i = 0; i < length; i++) {
-        _loop_1(i);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var populateSegments = function (segments, entry) {
+      for (var i = 0; i < segments.length - 1; i++) {
+        set(segments[i].item, 'list-style-type', 'none');
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return sections;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      last(segments).each(function (segment) {
+        setAll(segment.list, entry.listAttributes);
+        setAll(segment.item, entry.itemAttributes);
+        append$1(segment.item, entry.content);
+      });
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var normalizeSection = function (section, entry) {
-      if (name(section.list).toUpperCase() !== entry.listType) {
-        section.list = mutate(section.list, entry.listType);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var normalizeSegment = function (segment, entry) {
+      if (name(segment.list) !== entry.listType) {
+        segment.list = mutate(segment.list, entry.listType);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      setAll(section.list, entry.listAttributes);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      setAll(segment.list, entry.listAttributes);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var createItem = function (scope, attr, content) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var item = Element$$1.fromTag('li', scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var item = Element.fromTag('li', scope);
</ins><span class="cx" style="display: block; padding: 0 10px">       setAll(item, attr);
</span><span class="cx" style="display: block; padding: 0 10px">       append$1(item, content);
</span><span class="cx" style="display: block; padding: 0 10px">       return item;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var setItem = function (section, item) {
-      append(section.list, item);
-      section.item = item;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var appendItem = function (segment, item) {
+      append(segment.list, item);
+      segment.item = item;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var writeShallow = function (scope, outline, entry) {
-      var newOutline = outline.slice(0, entry.depth);
-      last(newOutline).each(function (section) {
-        setItem(section, createItem(scope, entry.itemAttributes, entry.content));
-        normalizeSection(section, entry);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var writeShallow = function (scope, cast, entry) {
+      var newCast = cast.slice(0, entry.depth);
+      last(newCast).each(function (segment) {
+        var item = createItem(scope, entry.itemAttributes, entry.content);
+        appendItem(segment, item);
+        normalizeSegment(segment, entry);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return newOutline;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return newCast;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var populateSections = function (sections, entry) {
-      last(sections).each(function (section) {
-        setAll(section.list, entry.listAttributes);
-        setAll(section.item, entry.itemAttributes);
-        append$1(section.item, entry.content);
-      });
-      for (var i = 0; i < sections.length - 1; i++) {
-        set$1(sections[i].item, 'list-style-type', 'none');
-      }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var writeDeep = function (scope, cast, entry) {
+      var segments = createSegments(scope, entry, entry.depth - cast.length);
+      joinSegments(segments);
+      populateSegments(segments, entry);
+      appendSegments(cast, segments);
+      return cast.concat(segments);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var writeDeep = function (scope, outline, entry) {
-      var newSections = createJoinedSections(scope, entry.depth - outline.length, entry.listType);
-      populateSections(newSections, entry);
-      liftN([
-        last(outline),
-        head(newSections)
-      ], joinSections);
-      return outline.concat(newSections);
-    };
</del><span class="cx" style="display: block; padding: 0 10px">     var composeList = function (scope, entries) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var outline = foldl(entries, function (outline, entry) {
-        return entry.depth > outline.length ? writeDeep(scope, outline, entry) : writeShallow(scope, outline, entry);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var cast = foldl(entries, function (cast, entry) {
+        return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry);
</ins><span class="cx" style="display: block; padding: 0 10px">       }, []);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return head(outline).map(function (section) {
-        return section.list;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return head(cast).map(function (segment) {
+        return segment.list;
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isList$1 = function (el) {
+      return is$1(el, 'OL,UL');
+    };
+    var hasFirstChildList = function (el) {
+      return firstChild(el).map(isList$1).getOr(false);
+    };
+    var hasLastChildList = function (el) {
+      return lastChild(el).map(isList$1).getOr(false);
+    };
+
</ins><span class="cx" style="display: block; padding: 0 10px">     var isIndented = function (entry) {
</span><span class="cx" style="display: block; padding: 0 10px">       return entry.depth > 0;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1348,6 +1264,23 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var isSelected = function (entry) {
</span><span class="cx" style="display: block; padding: 0 10px">       return entry.isSelected;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var cloneItemContent = function (li) {
+      var children$1 = children(li);
+      var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1;
+      return map(content, deep);
+    };
+    var createEntry = function (li, depth, isSelected) {
+      return parent(li).map(function (list) {
+        return {
+          depth: depth,
+          isSelected: isSelected,
+          content: cloneItemContent(li),
+          itemAttributes: clone(li),
+          listAttributes: clone(list),
+          listType: name(list)
+        };
+      });
+    };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var indentEntry = function (indentation, entry) {
</span><span class="cx" style="display: block; padding: 0 10px">       switch (indentation) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1362,8 +1295,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
-    var shallow$1 = function (old, nu) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var hasOwnProperty = Object.prototype.hasOwnProperty;
+    var shallow = function (old, nu) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return nu;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var baseMerge = function (merger) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1377,7 +1310,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         for (var j = 0; j < objects.length; j++) {
</span><span class="cx" style="display: block; padding: 0 10px">           var curObject = objects[j];
</span><span class="cx" style="display: block; padding: 0 10px">           for (var key in curObject)
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if (hasOwnProperty$1.call(curObject, key)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if (hasOwnProperty.call(curObject, key)) {
</ins><span class="cx" style="display: block; padding: 0 10px">               ret[key] = merger(ret[key], curObject[key]);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1384,34 +1317,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return ret;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var merge = baseMerge(shallow$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var merge = baseMerge(shallow);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var assimilateEntry = function (adherent, source) {
-      adherent.listType = source.listType;
-      adherent.listAttributes = merge({}, source.listAttributes);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var cloneListProperties = function (target, source) {
+      target.listType = source.listType;
+      target.listAttributes = merge({}, source.listAttributes);
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var normalizeShallow = function (outline, entry) {
-      var matchingEntryDepth = entry.depth - 1;
-      outline[matchingEntryDepth].each(function (matchingEntry) {
-        return assimilateEntry(entry, matchingEntry);
-      });
-      var newOutline = outline.slice(0, matchingEntryDepth);
-      newOutline.push(Option.some(entry));
-      return newOutline;
-    };
-    var normalizeDeep = function (outline, entry) {
-      var newOutline = outline.slice(0);
-      var diff = entry.depth - outline.length;
-      for (var i = 1; i < diff; i++) {
-        newOutline.push(Option.none());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var previousSiblingEntry = function (entries, start) {
+      var depth = entries[start].depth;
+      for (var i = start - 1; i >= 0; i--) {
+        if (entries[i].depth === depth) {
+          return Option.some(entries[i]);
+        }
+        if (entries[i].depth < depth) {
+          break;
+        }
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      newOutline.push(Option.some(entry));
-      return newOutline;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return Option.none();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var normalizeEntries = function (entries) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      foldl(entries, function (outline, entry) {
-        return entry.depth > outline.length ? normalizeDeep(outline, entry) : normalizeShallow(outline, entry);
-      }, []);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(entries, function (entry, i) {
+        previousSiblingEntry(entries, i).each(function (matchingEntry) {
+          cloneListProperties(entry, matchingEntry);
+        });
+      });
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var Cell = function (initial) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1432,72 +1361,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var ListType;
-    (function (ListType) {
-      ListType['OL'] = 'OL';
-      ListType['UL'] = 'UL';
-      ListType['DL'] = 'DL';
-    }(ListType || (ListType = {})));
-    var getListType = function (list) {
-      switch (name(list)) {
-      case 'ol':
-        return Option.some(ListType.OL);
-      case 'ul':
-        return Option.some(ListType.UL);
-      case 'dl':
-        return Option.some(ListType.DL);
-      default:
-        return Option.none();
-      }
-    };
-    var isList$1 = function (el) {
-      return is$1(el, 'OL,UL,DL');
-    };
-
-    var hasFirstChildList = function (li) {
-      return firstChild(li).map(isList$1).getOr(false);
-    };
-    var hasLastChildList = function (li) {
-      return lastChild(li).map(isList$1).getOr(false);
-    };
-
-    var getItemContent = function (li) {
-      var childNodes = children(li);
-      var contentLength = childNodes.length + (hasLastChildList(li) ? -1 : 0);
-      return map(childNodes.slice(0, contentLength), deep);
-    };
-    var createEntry = function (li, depth, isSelected) {
-      var list = parent(li);
-      return {
-        depth: depth,
-        isSelected: isSelected,
-        content: getItemContent(li),
-        listType: list.bind(getListType).getOr(ListType.OL),
-        listAttributes: list.map(clone).getOr({}),
-        itemAttributes: clone(li)
-      };
-    };
</del><span class="cx" style="display: block; padding: 0 10px">     var parseItem = function (depth, itemSelection, selectionState, item) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var curriedParseList = curry(parseList, depth, itemSelection, selectionState);
-      var updateSelectionState = function (itemRange) {
-        return itemSelection.each(function (selection) {
-          if (eq(itemRange === 'Start' ? selection.start : selection.end, item)) {
-            selectionState.set(itemRange === 'Start');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return firstChild(item).filter(isList$1).fold(function () {
+        itemSelection.each(function (selection) {
+          if (eq(selection.start, item)) {
+            selectionState.set(true);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      };
-      return firstChild(item).filter(isList$1).fold(function () {
-        updateSelectionState('Start');
-        var fromCurrentItem = createEntry(item, depth, selectionState.get());
-        updateSelectionState('End');
-        var fromChildList = lastChild(item).filter(isList$1).map(curriedParseList).getOr([]);
-        return [fromCurrentItem].concat(fromChildList);
-      }, curriedParseList);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var currentItemEntry = createEntry(item, depth, selectionState.get());
+        itemSelection.each(function (selection) {
+          if (eq(selection.end, item)) {
+            selectionState.set(false);
+          }
+        });
+        var childListEntries = lastChild(item).filter(isList$1).map(function (list) {
+          return parseList(depth, itemSelection, selectionState, list);
+        }).getOr([]);
+        return currentItemEntry.toArray().concat(childListEntries);
+      }, function (list) {
+        return parseList(depth, itemSelection, selectionState, list);
+      });
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var parseList = function (depth, itemSelection, selectionState, list) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var newDepth = depth + 1;
-      return bind(children(list), function (child$$1) {
-        return isList$1(child$$1) ? parseList(newDepth, itemSelection, selectionState, child$$1) : parseItem(newDepth, itemSelection, selectionState, child$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return bind(children(list), function (element) {
+        var parser = isList$1(element) ? parseList : parseItem;
+        var newDepth = depth + 1;
+        return parser(newDepth, itemSelection, selectionState, element);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var parseLists = function (lists, itemSelection) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1505,16 +1394,67 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var initialDepth = 0;
</span><span class="cx" style="display: block; padding: 0 10px">       return map(lists, function (list) {
</span><span class="cx" style="display: block; padding: 0 10px">         return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          entries: parseList(initialDepth, itemSelection, selectionState, list),
-          sourceList: list
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          sourceList: list,
+          entries: parseList(initialDepth, itemSelection, selectionState, list)
</ins><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var global$8 = tinymce.util.Tools.resolve('tinymce.Env');
+
+    var createTextBlock = function (editor, contentNode) {
+      var dom = editor.dom;
+      var blockElements = editor.schema.getBlockElements();
+      var fragment = dom.createFragment();
+      var node, textBlock, blockName, hasContentNode;
+      if (editor.settings.forced_root_block) {
+        blockName = editor.settings.forced_root_block;
+      }
+      if (blockName) {
+        textBlock = dom.create(blockName);
+        if (textBlock.tagName === editor.settings.forced_root_block) {
+          dom.setAttribs(textBlock, editor.settings.forced_root_block_attrs);
+        }
+        if (!NodeType.isBlock(contentNode.firstChild, blockElements)) {
+          fragment.appendChild(textBlock);
+        }
+      }
+      if (contentNode) {
+        while (node = contentNode.firstChild) {
+          var nodeName = node.nodeName;
+          if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {
+            hasContentNode = true;
+          }
+          if (NodeType.isBlock(node, blockElements)) {
+            fragment.appendChild(node);
+            textBlock = null;
+          } else {
+            if (blockName) {
+              if (!textBlock) {
+                textBlock = dom.create(blockName);
+                fragment.appendChild(textBlock);
+              }
+              textBlock.appendChild(node);
+            } else {
+              fragment.appendChild(node);
+            }
+          }
+        }
+      }
+      if (!editor.settings.forced_root_block) {
+        fragment.appendChild(dom.create('br'));
+      } else {
+        if (!hasContentNode && (!global$8.ie || global$8.ie > 10)) {
+          textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' }));
+        }
+      }
+      return fragment;
+    };
+
</ins><span class="cx" style="display: block; padding: 0 10px">     var outdentedComposer = function (editor, entries) {
</span><span class="cx" style="display: block; padding: 0 10px">       return map(entries, function (entry) {
</span><span class="cx" style="display: block; padding: 0 10px">         var content = fromElements(entry.content);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return Element$$1.fromDom(TextBlock.createNewTextBlock(editor, content.dom()));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return Element.fromDom(createTextBlock(editor, content.dom()));
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var indentedComposer = function (editor, entries) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1533,7 +1473,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getItemSelection = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var selectedListItems = map(Selection.getSelectedListItems(editor), Element$$1.fromDom);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var selectedListItems = map(Selection.getSelectedListItems(editor), Element.fromDom);
</ins><span class="cx" style="display: block; padding: 0 10px">       return liftN([
</span><span class="cx" style="display: block; padding: 0 10px">         find(selectedListItems, not(hasFirstChildList)),
</span><span class="cx" style="display: block; padding: 0 10px">         find(reverse(selectedListItems), not(hasFirstChildList))
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1545,14 +1485,49 @@
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var listsIndentation = function (editor, lists, indentation) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var parsedLists = parseLists(lists, getItemSelection(editor));
-      each(parsedLists, function (entrySet) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var entrySets = parseLists(lists, getItemSelection(editor));
+      each(entrySets, function (entrySet) {
</ins><span class="cx" style="display: block; padding: 0 10px">         indentSelectedEntries(entrySet.entries, indentation);
</span><span class="cx" style="display: block; padding: 0 10px">         before$1(entrySet.sourceList, composeEntries(editor, entrySet.entries));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        remove$1(entrySet.sourceList);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        remove(entrySet.sourceList);
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var DOM$1 = global$6.DOM;
+    var splitList = function (editor, ul, li) {
+      var tmpRng, fragment, bookmarks, node, newBlock;
+      var removeAndKeepBookmarks = function (targetNode) {
+        global$5.each(bookmarks, function (node) {
+          targetNode.parentNode.insertBefore(node, li.parentNode);
+        });
+        DOM$1.remove(targetNode);
+      };
+      bookmarks = DOM$1.select('span[data-mce-type="bookmark"]', ul);
+      newBlock = createTextBlock(editor, li);
+      tmpRng = DOM$1.createRng();
+      tmpRng.setStartAfter(li);
+      tmpRng.setEndAfter(ul);
+      fragment = tmpRng.extractContents();
+      for (node = fragment.firstChild; node; node = node.firstChild) {
+        if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {
+          DOM$1.remove(node);
+          break;
+        }
+      }
+      if (!editor.dom.isEmpty(fragment)) {
+        DOM$1.insertAfter(fragment, ul);
+      }
+      DOM$1.insertAfter(newBlock, ul);
+      if (NodeType.isEmpty(editor.dom, li.parentNode)) {
+        removeAndKeepBookmarks(li.parentNode);
+      }
+      DOM$1.remove(li);
+      if (NodeType.isEmpty(editor.dom, ul)) {
+        DOM$1.remove(ul);
+      }
+    };
+    var SplitList = { splitList: splitList };
+
</ins><span class="cx" style="display: block; padding: 0 10px">     var outdentDlItem = function (editor, item) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (is$1(item, 'DD')) {
</span><span class="cx" style="display: block; padding: 0 10px">         mutate(item, 'DT');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1576,26 +1551,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">     var selectionIndentation = function (editor, indentation) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var dlItems = map(Selection.getSelectedDlItems(editor), Element$$1.fromDom);
-      var lists = map(Selection.getSelectedListRoots(editor), Element$$1.fromDom);
-      if (dlItems.length || lists.length) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var lists = map(Selection.getSelectedListRoots(editor), Element.fromDom);
+      var dlItems = map(Selection.getSelectedDlItems(editor), Element.fromDom);
+      var isHandled = false;
+      if (lists.length || dlItems.length) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var bookmark = editor.selection.getBookmark();
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        listsIndentation(editor, lists, indentation);
</ins><span class="cx" style="display: block; padding: 0 10px">         dlIndentation(editor, indentation, dlItems);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        listsIndentation(editor, lists, indentation);
</del><span class="cx" style="display: block; padding: 0 10px">         editor.selection.moveToBookmark(bookmark);
</span><span class="cx" style="display: block; padding: 0 10px">         editor.selection.setRng(Range.normalizeRange(editor.selection.getRng()));
</span><span class="cx" style="display: block; padding: 0 10px">         editor.nodeChanged();
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        isHandled = true;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return isHandled;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var indentListSelection = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      selectionIndentation(editor, 'Indent');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return selectionIndentation(editor, 'Indent');
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var outdentListSelection = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      selectionIndentation(editor, 'Outdent');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return selectionIndentation(editor, 'Outdent');
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var flattenListSelection = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      selectionIndentation(editor, 'Flatten');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return selectionIndentation(editor, 'Flatten');
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var updateListStyle = function (dom, el, detail) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1823,7 +1802,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       mergeWithAdjacentLists: mergeWithAdjacentLists
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var DOM$3 = global$6.DOM;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var DOM$2 = global$6.DOM;
</ins><span class="cx" style="display: block; padding: 0 10px">     var normalizeList = function (dom, ul) {
</span><span class="cx" style="display: block; padding: 0 10px">       var sibling;
</span><span class="cx" style="display: block; padding: 0 10px">       var parentNode = ul.parentNode;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1832,10 +1811,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (sibling && sibling.nodeName === 'LI') {
</span><span class="cx" style="display: block; padding: 0 10px">           sibling.appendChild(ul);
</span><span class="cx" style="display: block; padding: 0 10px">           if (NodeType.isEmpty(dom, parentNode)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            DOM$3.remove(parentNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            DOM$2.remove(parentNode);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          DOM$3.setStyle(parentNode, 'listStyleType', 'none');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          DOM$2.setStyle(parentNode, 'listStyleType', 'none');
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (NodeType.isListNode(parentNode)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1928,10 +1907,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (listNode) {
</span><span class="cx" style="display: block; padding: 0 10px">         toElm.appendChild(listNode);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var contains = contains$1(Element.fromDom(toElm), Element.fromDom(fromElm));
+      var nestedLists = contains ? dom.getParents(fromElm, NodeType.isListNode, toElm) : [];
</ins><span class="cx" style="display: block; padding: 0 10px">       dom.remove(fromElm);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (NodeType.isEmpty(dom, ul) && ul !== dom.getRoot()) {
-        dom.remove(ul);
-      }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      each(nestedLists, function (list) {
+        if (NodeType.isEmpty(dom, list) && list !== dom.getRoot()) {
+          dom.remove(list);
+        }
+      });
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var mergeIntoEmptyLi = function (editor, fromLi, toLi) {
</span><span class="cx" style="display: block; padding: 0 10px">       editor.dom.$(toLi).empty();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2047,7 +2030,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       backspaceDelete: backspaceDelete
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var get$3 = function (editor) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var get = function (editor) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         backspaceDelete: function (isForward) {
</span><span class="cx" style="display: block; padding: 0 10px">           Delete.backspaceDelete(editor, isForward);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2054,7 +2037,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var Api = { get: get$3 };
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var Api = { get: get };
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var queryListCommandState = function (editor, listName) {
</span><span class="cx" style="display: block; padding: 0 10px">       return function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2099,16 +2082,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) {
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (Selection.isList(editor)) {
-          e.preventDefault();
-          editor.undoManager.transact(function () {
-            if (e.shiftKey) {
-              outdentListSelection(editor);
-            } else {
-              indentListSelection(editor);
-            }
-          });
-        }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        editor.undoManager.transact(function () {
+          if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {
+            e.preventDefault();
+          }
+        });
</ins><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var setup$1 = function (editor) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2119,7 +2097,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var Keyboard = { setup: setup$1 };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var findIndex$2 = function (list, predicate) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var findIndex = function (list, predicate) {
</ins><span class="cx" style="display: block; padding: 0 10px">       for (var index = 0; index < list.length; index++) {
</span><span class="cx" style="display: block; padding: 0 10px">         var element = list[index];
</span><span class="cx" style="display: block; padding: 0 10px">         if (predicate(element)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2132,7 +2110,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         var ctrl = e.control;
</span><span class="cx" style="display: block; padding: 0 10px">         editor.on('NodeChange', function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var tableCellIndex = findIndex$2(e.parents, NodeType.isTableCellNode);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var tableCellIndex = findIndex(e.parents, NodeType.isTableCellNode);
</ins><span class="cx" style="display: block; padding: 0 10px">           var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;
</span><span class="cx" style="display: block; padding: 0 10px">           var lists = global$5.grep(parents, NodeType.isListNode);
</span><span class="cx" style="display: block; padding: 0 10px">           ctrl.active(lists.length > 0 && lists[0].nodeName === listName);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2177,5 +2155,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     return Plugin;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}(window));
</ins><span class="cx" style="display: block; padding: 0 10px"> })();
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginslistspluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js  2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js    2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var e,n,t,r,o,i,u,a,l,s,c=tinymce.util.Tools.resolve("tinymce.PluginManager"),f=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),d=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),m=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),g=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),h=function(e){return e&&"BR"===e.nodeName},y=function(e){return e&&3===e.nodeType},N=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},S=function(e){return e&&/^(OL|UL)$/.test(e.nodeName)},O=function(e){return e&&/^(DT|DD)$/.test(e.nodeName)},C=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},b=function(e){return e&&
 /^(TH|TD)$/.test(e.nodeName)},L=h,T=function(e,n){return n&&!!e.schema.getTextBlockElements()[n.nodeName]},D=function(e,n){return e&&e.nodeName in n},E=function(e,n){return!!h(n)&&!(!e.isBlock(n.nextSibling)||h(n.previousSibling))},w=function(e,n,t){var r=e.isEmpty(n);return!(t&&0<e.select("span[data-mce-type=bookmark]",n).length)&&r},k=function(e,n){return e.isChildOf(n,e.getRoot())},A=function(e,n){if(y(e))return{container:e,offset:n};var t=f.getNode(e,n);return y(t)?{container:t,offset:n>=e.childNodes.length?t.data.length:0}:t.previousSibling&&y(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&y(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}},x=function(e){var n=e.cloneRange(),t=A(e.startContainer,e.startOffset);n.setStart(t.container,t.offset);var r=A(e.endContainer,e.endOffset);return n.setEnd(r.container,r.offset),n},R=g.DOM,I=fu
 nction(o){var i={},e=function(e){var n,t,r;t=o[e?"startContainer":"endContainer"],r=o[e?"startOffset":"endOffset"],1===t.nodeType&&(n=R.create("span",{"data-mce-type":"bookmark"}),t.hasChildNodes()?(r=Math.min(r,t.childNodes.length-1),e?t.insertBefore(n,t.childNodes[r]):R.insertAfter(n,t.childNodes[r])):t.appendChild(n),t=n,r=0),i[e?"startContainer":"endContainer"]=t,i[e?"startOffset":"endOffset"]=r};return e(!0),o.collapsed||e(),i},B=function(o){function e(e){var n,t,r;n=r=o[e?"startContainer":"endContainer"],t=o[e?"startOffset":"endOffset"],n&&(1===n.nodeType&&(t=function(e){for(var n=e.parentNode.firstChild,t=0;n;){if(n===e)return t;1===n.nodeType&&"bookmark"===n.getAttribute("data-mce-type")||t++,n=n.nextSibling}return-1}(n),n=n.parentNode,R.remove(r),!n.hasChildNodes()&&R
 .isBlock(n)&&n.appendChild(R.create("br"))),o[e?"startContainer":"endContainer"]=n,o[e?"startOffset":"endOffset"]=t)}e(!0),e();var n=R.createRng();return n.setStart(o.startContainer,o.startOffset),o.endContainer&&n.setEnd(o.endContainer,o.endOffset),x(n)},_=function(e){return function(){return e}},P=function(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return!t.apply(null,e)}},M=_(!1),U=_(!0),F=M,j=U,H=function(){return $},$=(r={fold:function(e,n){return e()},is:F,isSome:F,isNone:j,getOr:t=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:t,orThunk:n,map:H,ap:H,each:function(){},bind:H,flatten:H,exists:F,forall:j,filter:H,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:
 _("none()")},Object.freeze&&Object.freeze(r),r),q=function(t){var e=function(){return t},n=function(){return o},r=function(e){return e(t)},o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:j,isNone:F,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:n,orThunk:n,map:function(e){return q(e(t))},ap:function(e){return e.fold(H,function(e){return q(e(t))})},each:function(e){e(t)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(t)?o:$},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(F,function(e){return n(t,e)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};return o},W={some:q,none:H,from:function(e){return null===e||e===undefined?$:q(e)}},z=function(n){return function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"===n&&Array.prototype.isPrototypeOf(e)?"array":"object"===n&amp
 ;&String.prototype.isPrototypeOf(e)?"string":n}(e)===n}},K=z("string"),V=z("boolean"),X=z("function"),Q=z("number"),Y=function(e,n){for(var t=e.length,r=new Array(t),o=0;o<t;o++){var i=e[o];r[o]=n(i,o,e)}return r},G=function(e,n){for(var t=0,r=e.length;t<r;t++)n(e[t],t,e)},J=function(e,n){for(var t=[],r=0,o=e.length;r<o;r++){var i=e[r];n(i,r,e)&&t.push(i)}return t},Z=function(e,n,t){return G(e,function(e){t=n(t,e)}),t},ee=function(e,n){for(var t=0,r=e.length;t<r;t++){var o=e[t];if(n(o,t,e))return W.some(o)}return W.none()},ne=Array.prototype.push,te=function(e,n){return function(e){for(var n=[],t=0,r=e.length;t<r;++t){if(!Array.prototype.isPrototypeOf(e[t]))throw new Error("Arr.flatten item "+t+" was not an array, input: "+e);ne.apply(n,e[t])}return n}(Y(e,n))},re=Array.prototype.slice,oe=function(e){return 0===e.length?W.none():W.some(e[0])},ie=function(e){return 0===e.length?W.none():W
 .some(e[e.length-1])},ue=(X(Array.from)&&Array.from,"undefined"!=typeof window?window:Function("return this;")()),ae=function(e,n){return function(e,n){for(var t=n!==undefined&&null!==n?n:ue,r=0;r<e.length&&t!==undefined&&null!==t;++r)t=t[e[r]];return t}(e.split("."),n)},se=function(e,n){var t=ae(e,n);if(t===undefined||null===t)throw e+" not available on this browser";return t},ce=function(e){var n,t=ae("ownerDocument.defaultView",e);return(n=t,se("HTMLElement",n)).prototype.isPrototypeOf(e)},fe=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),le=function(e){var n=e.selection.getStart(!0);return e.dom.getParent(n,"OL,UL,DL",me(e,n))},de=function(e){var t,n,r,o=e.selection.getSelectedBlocks();return v.grep((t=e,n=o,r=v.map(n,function(e){var n=t.dom.getParent(e,"li,dd,dt",me(t,e));return n||e}),fe.unique(r)),function(e){return C(e)})},me=function(e,n){var t=e.
 dom.getParents(n,"TD,TH");return 0<t.length?t[0]:e.getBody()},ge=function(e,n){var t=e.dom.getParents(n,"ol,ul",me(e,n));return ie(t)},pe=function(n,e){var t=Y(e,function(e){return ge(n,e).getOr(e)});return fe.unique(t)},ve={isList:function(e){var n=le(e);return ce(n)},getParentList:le,getSelectedSubLists:function(e){var n,t,r,o=le(e),i=e.selection.getSelectedBlocks();return r=i,(t=o)&&1===r.length&&r[0]===t?(n=o,v.grep(n.querySelectorAll("ol,ul,dl"),function(e){return N(e)})):v.grep(i,function(e){return N(e)&&o!==e})},getSelectedListItems:de,getClosestListRootElm:me,getSelectedDlItems:function(e){return J(de(e),O)},getSelectedListRoots:function(e){var n,t,r,o=(t=ge(n=e,n.selection.getStart()),r=J(n.selection.getSelectedBlocks(),S),t.toArray().concat(r));return pe(e,o)}},he=function(e,n){var t=function(e,n){for(var t=0;t<e.length;t++){var r=e[t];if(r.test(n))return r}return undefined}(e,n);if(!t)return{major:0,minor:0};var 
 r=function(e){return Number(n.replace(t,"$"+e))};return Ne(r(1),r(2))},ye=function(){return Ne(0,0)},Ne=function(e,n){return{major:e,minor:n}},Se={nu:Ne,detect:function(e,n){var t=String(n).toLowerCase();return 0===e.length?ye():he(e,t)},unknown:ye},Oe="Firefox",Ce=function(e,n){return function(){return n===e}},be=function(e){var n=e.current;return{current:n,version:e.version,isEdge:Ce("Edge",n),isChrome:Ce("Chrome",n),isIE:Ce("IE",n),isOpera:Ce("Opera",n),isFirefox:Ce(Oe,n),isSafari:Ce("Safari",n)}},Le={unknown:function(){return be({current:undefined,version:Se.unknown()})},nu:be,edge:_("Edge"),chrome:_("Chrome"),ie:_("IE"),opera:_("Opera"),firefox:_(Oe),safari:_("Safari")},Te="Windows",De="Android",Ee="Solaris",we="FreeBSD",ke=function(e,n){return function(){return n===e}},Ae=function(e){var n=e.current;return{current:n,ver
 sion:e.version,isWindows:ke(Te,n),isiOS:ke("iOS",n),isAndroid:ke(De,n),isOSX:ke("OSX",n),isLinux:ke("Linux",n),isSolaris:ke(Ee,n),isFreeBSD:ke(we,n)}},xe={unknown:function(){return Ae({current:undefined,version:Se.unknown()})},nu:Ae,windows:_(Te),ios:_("iOS"),android:_(De),linux:_("Linux"),osx:_("OSX"),solaris:_(Ee),freebsd:_(we)},Re=function(e,n){var t=String(n).toLowerCase();return ee(e,function(e){return e.search(t)})},Ie=function(e,t){return Re(e,t).map(function(e){var n=Se.detect(e.versionRegexes,t);return{current:e.name,version:n}})},Be=function(e,t){return Re(e,t).map(function(e){var n=Se.detect(e.versionRegexes,t);return{current:e.name,version:n}})},_e=function(e,n){return-1!==e.indexOf(n)},Pe=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Me=function(n){return function(e){return _e(e,n)}},Ue=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return _e(e,"edge/")&&_
 e(e,"chrome")&&_e(e,"safari")&&_e(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Pe],search:function(e){return _e(e,"chrome")&&!_e(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return _e(e,"msie")||_e(e,"trident")}},{name:"Opera",versionRegexes:[Pe,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Me("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Me("firefox")},{name:"Safari",versionRegexes:[Pe,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(_e(e,"safari")||_e(e,"mobile/"))&&_e(e,"applewebkit")}}],Fe=[{name:"Windows",search:Me("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS
 ",search:function(e){return _e(e,"iphone")||_e(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Me("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Me("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Me("linux"),versionRegexes:[]},{name:"Solaris",search:Me("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Me("freebsd"),versionRegexes:[]}],je={browsers:_(Ue),oses:_(Fe)},He=function(e){var n,t,r,o,i,u,a,s,c,f,l,d=je.browsers(),m=je.oses(),g=Ie(d,e).fold(Le.unknown,Le.nu),p=Be(m,e).fold(xe.unknown,xe.nu);return{browser:g,os:p,deviceType:(t=g,r=e,o=(n=p).isiOS()&&!0===/ipad/i.test(r),i=n.isiOS()&&!o,u=n.isAndroid()&&3===n.version.major,a=n.isAndroid()&&4===n.
 version.major,s=o||u||a&&!0===/mobile/i.test(r),c=n.isiOS()||n.isAndroid(),f=c&&!s,l=t.isSafari()&&n.isiOS()&&!1===/safari/i.test(r),{isiPad:_(o),isiPhone:_(i),isTablet:_(s),isPhone:_(f),isTouch:_(c),isAndroid:n.isAndroid,isiOS:n.isiOS,isWebView:_(l)})}},$e={detect:(o=function(){var e=navigator.userAgent;return He(e)},u=!1,function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return u||(u=!0,i=o.apply(null,e)),i})},qe=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:_(e)}},We={fromHtml:function(e,n){var t=(n||document).createElement("div");if(t.innerHTML=e,!t.hasChildNodes()||1<t.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return qe(t.childNodes[0])},fromTag:function(e,n){var t=(n||document).createElement(e);return qe(t)},fromText:function(e,n){var t=(n||document).cre
 ateTextNode(e);return qe(t)},fromDom:qe,fromPoint:function(e,n,t){var r=e.dom();return W.from(r.elementFromPoint(n,t)).map(qe)}},ze=(Node.ATTRIBUTE_NODE,Node.CDATA_SECTION_NODE,Node.COMMENT_NODE,Node.DOCUMENT_NODE,Node.DOCUMENT_TYPE_NODE,Node.DOCUMENT_FRAGMENT_NODE,Node.ELEMENT_NODE),Ke=(Node.TEXT_NODE,Node.PROCESSING_INSTRUCTION_NODE,Node.ENTITY_REFERENCE_NODE,Node.ENTITY_NODE,Node.NOTATION_NODE,ze),Ve=($e.detect().browser.isIE(),function(e,n){var t=e.dom();if(t.nodeType!==Ke)return!1;if(t.matches!==undefined)return t.matches(n);if(t.msMatchesSelector!==undefined)return t.msMatchesSelector(n);if(t.webkitMatchesSelector!==undefined)return t.webkitMatchesSelector(n);if(t.mozMatchesSelector!==undefined)return t.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")}),Xe=Object.keys,Qe=function(e){return e.dom().nodeName.toLowerCase()},Ye=function(e,n){var t=e.dom();!function(e,n){for(var t=Xe(e),r=0,o=t.length;r<o;r++){var i=t[r];n(e[i],i,e)}}(n,function(
 e,n){!function(e,n,t){if(!(K(t)||V(t)||Q(t)))throw console.error("Invalid call to Attr.set. Key ",n,":: Value ",t,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(n,t+"")}(t,n,e)})},Ge=function(e){return Z(e.dom().attributes,function(e,n){return e[n.name]=n.value,e},{})},Je=function(e){var n=e.dom();return W.from(n.parentNode).map(We.fromDom)},Ze=function(e){var n=e.dom();return Y(n.childNodes,We.fromDom)},en=function(e,n){var t=e.dom().childNodes;return W.from(t[n]).map(We.fromDom)},nn=function(e){return en(e,0)},tn=function(e){return en(e,e.dom().childNodes.length-1)},rn=(function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n]}("element","offset"),function(n,t){Je(n).each(function(e){e.dom().insertBefore(t.dom(),n.dom())})}),on=function(e,n){e.dom().appendChild(n.dom())},un=function(n,e){G(e,function(e){on(n,e)})},an=function(e){var n=e.dom();null!==n.parentNode&&am
 p;n.parentNode.removeChild(n)},sn=function(e){return n=e,t=!0,We.fromDom(n.dom().cloneNode(t));var n,t},cn=function(e,n){var t,r,o,i,u=(t=e,r=n,o=We.fromTag(r),i=Ge(t),Ye(o,i),o);rn(e,u);var a=Ze(e);return un(u,a),an(e),u},fn=tinymce.util.Tools.resolve("tinymce.Env"),ln=g.DOM,dn=function(e,n,t){var r,o,i,u=ln.createFragment(),a=e.schema.getBlockElements();if(e.settings.forced_root_block&&(t=t||e.settings.forced_root_block),t&&((o=ln.create(t)).tagName===e.settings.forced_root_block&&ln.setAttribs(o,e.settings.forced_root_block_attrs),D(n.firstChild,a)||u.appendChild(o)),n)for(;r=n.firstChild;){var s=r.nodeName;i||"SPAN"===s&&"bookmark"===r.getAttribute("data-mce-type")||(i=!0),D(r,a)?(u.appendChild(r),o=null):t?(o||(o=ln.create(t),u.appendChild(o)),o.appendChild(r)):u.appendChild(r)}return e.settings.forced_root_block?i||fn.ie&&!(10<fn.ie)||o.appendChild(ln.create("br",{"data-mce-bogus&
 quot;:"1"})):u.appendChild(ln.create("br")),u},mn=g.DOM,gn=function(e,n,t,r){var o,i,u,a,s;for(u=mn.select('span[data-mce-type="bookmark"]',n),r=r||dn(e,t),(o=mn.createRng()).setStartAfter(t),o.setEndAfter(n),a=(i=o.extractContents()).firstChild;a;a=a.firstChild)if("LI"===a.nodeName&&e.dom.isEmpty(a)){mn.remove(a);break}e.dom.isEmpty(i)||mn.insertAfter(i,n),mn.insertAfter(r,n),w(e.dom,t.parentNode)&&(s=t.parentNode,v.each(u,function(e){s.parentNode.insertBefore(e,t.parentNode)}),mn.remove(s)),mn.remove(t),w(e.dom,n)&&mn.remove(n)},pn=function(e,n){for(var t=[],r=0;r<e.length;r++){var o=e[r];if(!o.isSome())return W.none();t.push(o.getOrDie())}return W.some(n.apply(null,t))},vn=function(e,n,t){if(!K(t))throw console.error("Invalid call to CSS.set. Property ",n,":: Value ",t,":: Element ",e),new Error("CSS value must be a string: "+t);e.style!==undefined&&e.style.setProper
 ty(n,t)},hn=function(e,n){on(e.item,n.list)},yn=function(i,e,u){for(var a=[],n=function(e){var n,t,r,o=(n=i,t=u,r={list:We.fromTag(t,n),item:We.fromTag("li",n)},on(r.list,r.item),r);ie(a).each(function(e){return hn(e,o)}),a.push(o)},t=0;t<e;t++)n();return a},Nn=function(c,e,f){var n=e.slice(0,f.depth);return ie(n).each(function(e){var n,t,r,o,i,u,a,s;n=e,r=c,o=f.itemAttributes,i=f.content,u=We.fromTag("li",r),Ye(u,o),un(u,i),t=u,on(n.list,t),n.item=t,s=f,Qe((a=e).list).toUpperCase()!==s.listType&&(a.list=cn(a.list,s.listType)),Ye(a.list,s.listAttributes)}),n},Sn=function(e,n,t){var r=yn(e,t.depth-n.length,t.listType);return function(e,n){ie(e).each(function(e){Ye(e.list,n.listAttributes),Ye(e.item,n.itemAttributes),un(e.item,n.content)});for(var t=0;t<e.length-1;t++)r=e[t].item,o="list-style-type",i="none",u=r.dom(),vn(u,o,i);var r,o,i,u}(r,t),pn([ie(n),oe(r)],hn),n.concat(r)},On=function(e){return 0<e.depth},Cn=function(e){re
 turn e.isSelected},bn=Object.prototype.hasOwnProperty,Ln=(a=function(e,n){return n},function(){for(var e=new Array(arguments.length),n=0;n<e.length;n++)e[n]=arguments[n];if(0===e.length)throw new Error("Can't merge zero objects");for(var t={},r=0;r<e.length;r++){var o=e[r];for(var i in o)bn.call(o,i)&&(t[i]=a(t[i],o[i]))}return t}),Tn=function(e,r){var n=r.depth-1;e[n].each(function(e){return t=e,(n=r).listType=t.listType,void(n.listAttributes=Ln({},t.listAttributes));var n,t});var t=e.slice(0,n);return t.push(W.some(r)),t},Dn=function(e){Z(e,function(e,n){return n.depth>e.length?function(e,n){for(var t=e.slice(0),r=n.depth-e.length,o=1;o<r;o++)t.push(W.none());return t.push(W.some(n)),t}(e,n):Tn(e,n)},[])},En=function(e){var n=e,t=function(){return n};return{get:t,set:function(e){n=e},clone:function(){return En(t())}}};(s=l||(l={})).OL="OL",s.UL="UL",s.DL="DL";var wn=function(e){switch(Qe(e)){case"ol":return W.so
 me(l.OL);case"ul":return W.some(l.UL);case"dl":return W.some(l.DL);default:return W.none()}},kn=function(e){return Ve(e,"OL,UL,DL")},An=function(e){return nn(e).map(kn).getOr(!1)},xn=function(e){var n=Ze(e),t=n.length+(tn(e).map(kn).getOr(!1)?-1:0);return Y(n.slice(0,t),sn)},Rn=function(u,e,a,s){var c=function(r){for(var o=[],e=1;e<arguments.length;e++)o[e-1]=arguments[e];return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var t=o.concat(e);return r.apply(null,t)}}(In,u,e,a),f=function(r){return e.each(function(e){var n,t;n="Start"===r?e.start:e.end,t=s,n.dom()===t.dom()&&a.set("Start"===r)})};return nn(s).filter(kn).fold(function(){f("Start");var e,n,t,r,o=(e=s,n=u,t=a.get(),r=Je(e),{depth:n,isSelected:t,content:xn(e),listType:r.bind(wn).getOr(l.OL),listAttributes:r.map(Ge).getOr({}),itemAttributes:Ge(e)});f("End");var i=tn(s).filter(kn).map(c).getOr([]);return[o].concat(i)},
 c)},In=function(e,n,t,r){var o=e+1;return te(Ze(r),function(e){return kn(e)?In(o,n,t,e):Rn(o,n,t,e)})},Bn=function(i,e){return Y(e,function(e){var n,t,r,o=(n=e.content,r=(t||document).createDocumentFragment(),G(n,function(e){r.appendChild(e.dom())}),We.fromDom(r));return We.fromDom(dn(i,o.dom()))})},_n=function(e,n){return Dn(n),(t=e.contentDocument,r=n,o=Z(r,function(e,n){return n.depth>e.length?Sn(t,e,n):Nn(t,e,n)},[]),oe(o).map(function(e){return e.list})).toArray();var t,r,o},Pn=function(e){var n,t,r=Y(ve.getSelectedListItems(e),We.fromDom);return pn([ee(r,P(An)),ee((n=r,t=re.call(n,0),t.reverse(),t),P(An))],function(e,n){return{start:e,end:n}})},Mn=function(a,e,s){var n,t,r,o=(n=e,t=Pn(a),r=En(!1),Y(n,function(e){return{entries:In(0,t,r,e),sourceList:e}}));G(o,function(e){var n,t,r,o,i,u;n=e.entries,t=s,G(J(n,Cn),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}}(t,e)})
 ,r=e.sourceList,i=a,u=e.entries,o=te(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i<u;i++){var a=e[i],s=n(a);s!==t&&(r.push(o),o=[]),t=s,o.push(a)}return 0!==o.length&&r.push(o),r}(u,On),function(e){return oe(e).map(On).getOr(!1)?_n(i,e):Bn(i,e)}),G(o,function(e){rn(r,e)}),an(e.sourceList)})},Un=function(e){Ve(e,"DT")&&cn(e,"DD")},Fn=function(r,e,n){G(n,"Indent"===e?Un:function(e){return n=r,void(Ve(t=e,"DD")?cn(t,"DT"):Ve(t,"DT")&&Je(t).each(function(e){return gn(n,e.dom(),t.dom())}));var n,t})},jn=function(e,n){var t=Y(ve.getSelectedDlItems(e),We.fromDom),r=Y(ve.getSelectedListRoots(e),We.fromDom);if(t.length||r.length){var o=e.selection.getBookmark();Fn(e,n,t),Mn(e,r,n),e.selection.moveToBookmark(o),e.selection.setRng(x(e.selection.getRng())),e.nodeChanged()}},Hn=function(e){jn(e,"Indent")},$n=function(e){jn(e,"Outdent")},qn=funct
 ion(e){jn(e,"Flatten")},Wn=function(t,e){v.each(e,function(e,n){t.setAttribute(n,e)})},zn=function(e,n,t){var r,o,i,u,a,s,c;r=e,o=n,u=(i=t)["list-style-type"]?i["list-style-type"]:null,r.setStyle(o,"list-style-type",u),a=e,Wn(s=n,(c=t)["list-attributes"]),v.each(a.select("li",s),function(e){Wn(e,c["list-item-attributes"])})},Kn=function(e,n,t,r){var o,i;for(o=n[t?"startContainer":"endContainer"],i=n[t?"startOffset":"endOffset"],1===o.nodeType&&(o=o.childNodes[Math.min(i,o.childNodes.length-1)]||o),!t&&L(o.nextSibling)&&(o=o.nextSibling);o.parentNode!==r;){if(T(e,o))return o;if(/^(TD|TH)$/.test(o.parentNode.nodeName))return o;o=o.parentNode}return o},Vn=function(f,l,d){void 0===d&&(d={});var e,n=f.selection.getRng(!0),m="LI",t=ve.getClosestListRootElm(f,f.selection.getStart(!0)),g=f.dom;"false"!==g.getContentEditable(f.selec
 tion.getNode())&&("DL"===(l=l.toUpperCase())&&(m="DT"),e=I(n),v.each(function(t,e,r){for(var o,i=[],u=t.dom,n=Kn(t,e,!0,r),a=Kn(t,e,!1,r),s=[],c=n;c&&(s.push(c),c!==a);c=c.nextSibling);return v.each(s,function(e){if(T(t,e))return i.push(e),void(o=null);if(u.isBlock(e)||L(e))return L(e)&&u.remove(e),void(o=null);var n=e.nextSibling;p.isBookmarkNode(e)&&(T(t,n)||!n&&e.parentNode===r)?o=null:(o||(o=u.create("p"),e.parentNode.insertBefore(o,e),i.push(o)),o.appendChild(e))}),i}(f,n,t),function(e){var n,t,r,o,i,u,a,s,c;(t=e.previousSibling)&&N(t)&&t.nodeName===l&&(r=t,o=d,i=g.getStyle(r,"list-style-type"),u=o?o["list-style-type"]:"",i===(u=null===u?"":u))?(n=t,e=g.rename(e,m),t.appendChild(e)):(n=g.create(l),e.parentNode.insertBefore(n,e),n.appendChild(e),e=g.rename(e,m)),a=g,s=e,c=["margin","margin-right","margin-bottom&quo
 t;,"margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],v.each(c,function(e){var n;return a.setStyle(s,((n={})[e]="",n))}),zn(g,n,d),Qn(f.dom,n)}),f.selection.setRng(B(e)))},Xn=function(e,n,t){return s=t,(a=n)&&s&&N(a)&&a.nodeName===s.nodeName&&(i=n,u=t,(o=e).getStyle(i,"list-style-type",!0)===o.getStyle(u,"list-style-type",!0))&&(r=t,n.className===r.className);var r,o,i,u,a,s},Qn=function(e,n){var t,r;if(t=n.nextSibling,Xn(e,n,t)){for(;r=t.firstChild;)n.appendChild(r);e.remove(t)}if(t=n.previousSibling,Xn(e,n,t)){for(;r=t.lastChild;)n.insertBefore(r,n.firstChild);e.remove(t)}},Yn=function(n,e,t,r,o){if(e.nodeName!==r||Gn(o)){var i=I(n.selection.getRng(!0));v.each([e].concat(t),function(e){!function(e,n,t,r){if(n.nodeName!==t){var o=e.rename(n,t);zn(e,o,r)}else zn(e,n,r)}(n.dom,e,r,o)}),n.selection.
 setRng(B(i))}else qn(n)},Gn=function(e){return"list-style-type"in e},Jn={toggleList:function(e,n,t){var r=ve.getParentList(e),o=ve.getSelectedSubLists(e);t=t||{},r&&0<o.length?Yn(e,r,o,n,t):function(e,n,t,r){if(n!==e.getBody())if(n)if(n.nodeName!==t||Gn(r)){var o=I(e.selection.getRng(!0));zn(e.dom,n,r),Qn(e.dom,e.dom.rename(n,t)),e.selection.setRng(B(o))}else qn(e);else Vn(e,t,r)}(e,r,n,t)},mergeWithAdjacentLists:Qn},Zn=g.DOM,et=function(e,n){var t,r=n.parentNode;"LI"===r.nodeName&&r.firstChild===n&&((t=r.previousSibling)&&"LI"===t.nodeName?(t.appendChild(n),w(e,r)&&Zn.remove(r)):Zn.setStyle(r,"listStyleType","none")),N(r)&&(t=r.previousSibling)&&"LI"===t.nodeName&&t.appendChild(n)},nt=function(n,e){v.each(v.grep(n.select("ol,ul",e)),function(e){et(n,e)})},tt=function(e,n,t,r){var o,i,u=n.startContainer,a=n.startOffset;if(3===u.nodeType&&(t
 ?a<u.data.length:0<a))return u;for(o=e.schema.getNonEmptyElements(),1===u.nodeType&&(u=f.getNode(u,a)),i=new d(u,r),t&&E(e.dom,u)&&i.next();u=i[t?"next":"prev2"]();){if("LI"===u.nodeName&&!u.hasChildNodes())return u;if(o[u.nodeName])return u;if(3===u.nodeType&&0<u.data.length)return u}},rt=function(e,n){var t=n.childNodes;return 1===t.length&&!N(t[0])&&e.isBlock(t[0])},ot=function(e,n,t){var r,o,i,u;if(o=rt(e,t)?t.firstChild:t,rt(i=e,u=n)&&i.remove(u.firstChild,!0),!w(e,n,!0))for(;r=n.firstChild;)o.appendChild(r)},it=function(e,n,t){var r,o,i=n.parentNode;k(e,n)&&k(e,t)&&(N(t.lastChild)&&(o=t.lastChild),i===t.lastChild&&L(i.previousSibling)&&e.remove(i.previousSibling),(r=t.lastChild)&&L(r)&&n.hasChildNodes()&&e.remove(r),w(e,t,!0)&&e.$(t).empty(),ot(e,n,t),o&&t.appendChild(o),e.remove(n),w(e,i)&&am
 p;i!==e.getRoot()&&e.remove(i))},ut=function(e,n,t,r){var o,i,u,a=e.dom;if(a.isEmpty(r))i=t,u=r,(o=e).dom.$(u).empty(),it(o.dom,i,u),o.selection.setCursorLocation(u);else{var s=I(n);it(a,t,r),e.selection.setRng(B(s))}},at=function(e,n){var t,r,o,i=e.dom,u=e.selection,a=u.getStart(),s=ve.getClosestListRootElm(e,a),c=i.getParent(u.getStart(),"LI",s);if(c){if((t=c.parentNode)===e.getBody()&&w(i,t))return!0;if(r=x(u.getRng(!0)),(o=i.getParent(tt(e,r,n,s),"LI",s))&&o!==c)return n?ut(e,r,o,c):function(e,n,t,r){var o=I(n);it(e.dom,t,r);var i=B(o);e.selection.setRng(i)}(e,r,c,o),!0;if(!o&&!n)return qn(e),!0}return!1},st=function(e,n){return at(e,n)||function(o,i){var u=o.dom,e=o.selection.getStart(),a=ve.getClosestListRootElm(o,e),s=u.getParent(e,u.isBlock,a);if(s&&u.isEmpty(s)){var n=x(o.selection.getRng(!0)),c=u.getParent(tt(o,n,i,a),"LI",a);if(c)return o.undoManager.transact(function(){var e,n,t,r;n=s,t=a,r=(e=u).getPa
 rent(n.parentNode,e.isBlock,t),e.remove(n),r&&e.isEmpty(r)&&e.remove(r),Jn.mergeWithAdjacentLists(u,c.parentNode),o.selection.select(c,!0),o.selection.collapse(i)}),!0}return!1}(e,n)},ct=function(e,n){return e.selection.isCollapsed()?st(e,n):(r=(t=e).selection.getStart(),o=ve.getClosestListRootElm(t,r),!!(t.dom.getParent(r,"LI,DT,DD",o)||0<ve.getSelectedListItems(t).length)&&(t.undoManager.transact(function(){t.execCommand("Delete"),nt(t.dom,t.getBody())}),!0));var t,r,o},ft=function(n){n.on("keydown",function(e){e.keyCode===m.BACKSPACE?ct(n,!1)&&e.preventDefault():e.keyCode===m.DELETE&&ct(n,!0)&&e.preventDefault()})},lt=ct,dt=function(n){return{backspaceDelete:function(e){lt(n,e)}}},mt=function(n,t){return function(){var e=n.dom.getParent(n.selection.getStart(),"UL,OL,DL");return e&&e.nodeName===t}},gt=function(t){t.on("BeforeExecCommand",function(e){var n=e.command.toLowerC
 ase();"indent"===n?Hn(t):"outdent"===n&&$n(t)}),t.addCommand("InsertUnorderedList",function(e,n){Jn.toggleList(t,"UL",n)}),t.addCommand("InsertOrderedList",function(e,n){Jn.toggleList(t,"OL",n)}),t.addCommand("InsertDefinitionList",function(e,n){Jn.toggleList(t,"DL",n)}),t.addCommand("RemoveList",function(){qn(t)}),t.addQueryStateHandler("InsertUnorderedList",mt(t,"UL")),t.addQueryStateHandler("InsertOrderedList",mt(t,"OL")),t.addQueryStateHandler("InsertDefinitionList",mt(t,"DL"))},pt=function(e){return e.getParam("lists_indent_on_tab",!0)},vt=function(e){var n;pt(e)&&(n=e).on("keydown",function(e){e.keyCode!==m.TAB||m.metaKeyPressed(e)||ve.isList(n)&&(e.preventDefault(),n.undoManager.transact(function(){e.shiftKey?$n(n):Hn(n)}))}),ft(e)},ht=function(n,i){return function(e){var o=e.control;n
 .on("NodeChange",function(e){var n=function(e,n){for(var t=0;t<e.length;t++)if(n(e[t]))return t;return-1}(e.parents,b),t=-1!==n?e.parents.slice(0,n):e.parents,r=v.grep(t,N);o.active(0<r.length&&r[0].nodeName===i)})}},yt=function(e){var n,t,r;t="advlist",r=(n=e).settings.plugins?n.settings.plugins:"",-1===v.inArray(r.split(/[ ,]/),t)&&(e.addButton("numlist",{active:!1,title:"Numbered list",cmd:"InsertOrderedList",onPostRender:ht(e,"OL")}),e.addButton("bullist",{active:!1,title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:ht(e,"UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent"})};c.add("lists",function(e){return vt(e),yt(e),gt(e),dt(e)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(u){"use strict";var e,n,t,r,o,i,a,s,c=tinymce.util.Tools.resolve("tinymce.PluginManager"),f=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),d=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),l=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),m=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),g=function(e){return e&&"BR"===e.nodeName},h=function(e){return e&&3===e.nodeType},y=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},N=function(e){return e&&/^(OL|UL)$/.test(e.nodeName)},S=function(e){return e&&/^(DT|DD)$/.test(e.nodeName)},C=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},O=function(e){return e&&/^(
 TH|TD)$/.test(e.nodeName)},b=g,T=function(e,n){return n&&!!e.schema.getTextBlockElements()[n.nodeName]},D=function(e,n){return e&&e.nodeName in n},L=function(e,n){return!!g(n)&&!(!e.isBlock(n.nextSibling)||g(n.previousSibling))},E=function(e,n,t){var r=e.isEmpty(n);return!(t&&0<e.select("span[data-mce-type=bookmark]",n).length)&&r},w=function(e,n){return e.isChildOf(n,e.getRoot())},k=function(e,n){if(h(e))return{container:e,offset:n};var t=f.getNode(e,n);return h(t)?{container:t,offset:n>=e.childNodes.length?t.data.length:0}:t.previousSibling&&h(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&h(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}},A=function(e){var n=e.cloneRange(),t=k(e.startContainer,e.startOffset);n.setStart(t.container,t.offset);var r=k(e.endContainer,e.endOffset);return n.setEnd(r.container,r.offset),n},x=m.DOM,R=funct
 ion(o){var i={},e=function(e){var n,t,r;t=o[e?"startContainer":"endContainer"],r=o[e?"startOffset":"endOffset"],1===t.nodeType&&(n=x.create("span",{"data-mce-type":"bookmark"}),t.hasChildNodes()?(r=Math.min(r,t.childNodes.length-1),e?t.insertBefore(n,t.childNodes[r]):x.insertAfter(n,t.childNodes[r])):t.appendChild(n),t=n,r=0),i[e?"startContainer":"endContainer"]=t,i[e?"startOffset":"endOffset"]=r};return e(!0),o.collapsed||e(),i},I=function(o){function e(e){var n,t,r;n=r=o[e?"startContainer":"endContainer"],t=o[e?"startOffset":"endOffset"],n&&(1===n.nodeType&&(t=function(e){for(var n=e.parentNode.firstChild,t=0;n;){if(n===e)return t;1===n.nodeType&&"bookmark"===n.getAttribute("data-mce-type")||t++,n=n.nextSibling}return-1}(n),n=n.parentNode,x.remove(r),!n.hasChildNodes()&&x.is
 Block(n)&&n.appendChild(x.create("br"))),o[e?"startContainer":"endContainer"]=n,o[e?"startOffset":"endOffset"]=t)}e(!0),e();var n=x.createRng();return n.setStart(o.startContainer,o.startOffset),o.endContainer&&n.setEnd(o.endContainer,o.endOffset),A(n)},_=function(e){return function(){return e}},B=function(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return!t.apply(null,e)}},P=_(!1),M=_(!0),U=P,F=M,j=function(){return H},H=(r={fold:function(e,n){return e()},is:U,isSome:U,isNone:F,getOr:t=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:t,orThunk:n,map:j,ap:j,each:function(){},bind:j,flatten:j,exists:U,forall:F,filter:j,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:_(&
 quot;none()")},Object.freeze&&Object.freeze(r),r),$=function(t){var e=function(){return t},n=function(){return o},r=function(e){return e(t)},o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:F,isNone:U,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:n,orThunk:n,map:function(e){return $(e(t))},ap:function(e){return e.fold(j,function(e){return $(e(t))})},each:function(e){e(t)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(t)?o:H},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(U,function(e){return n(t,e)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};return o},q={some:$,none:j,from:function(e){return null===e||e===undefined?H:$(e)}},W=function(n){return function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"===n&&Array.prototype.isPrototypeOf(e)?"array":"object"===n&&a
 mp;String.prototype.isPrototypeOf(e)?"string":n}(e)===n}},z=W("string"),K=W("boolean"),V=W("function"),X=W("number"),Q=function(e,n){for(var t=e.length,r=new Array(t),o=0;o<t;o++){var i=e[o];r[o]=n(i,o,e)}return r},Y=function(e,n){for(var t=0,r=e.length;t<r;t++)n(e[t],t,e)},G=function(e,n){for(var t=[],r=0,o=e.length;r<o;r++){var i=e[r];n(i,r,e)&&t.push(i)}return t},J=function(e,n,t){return Y(e,function(e){t=n(t,e)}),t},Z=function(e,n){for(var t=0,r=e.length;t<r;t++){var o=e[t];if(n(o,t,e))return q.some(o)}return q.none()},ee=Array.prototype.push,ne=function(e,n){return function(e){for(var n=[],t=0,r=e.length;t<r;++t){if(!Array.prototype.isPrototypeOf(e[t]))throw new Error("Arr.flatten item "+t+" was not an array, input: "+e);ee.apply(n,e[t])}return n}(Q(e,n))},te=Array.prototype.slice,re=function(e){return 0===e.length?q.none():q.some(e[0])},oe=function(e){return 0===e.length?q.none():q.som
 e(e[e.length-1])},ie=(V(Array.from)&&Array.from,"undefined"!=typeof u.window?u.window:Function("return this;")()),ue=function(e,n){return function(e,n){for(var t=n!==undefined&&null!==n?n:ie,r=0;r<e.length&&t!==undefined&&null!==t;++r)t=t[e[r]];return t}(e.split("."),n)},ae=function(e,n){var t=ue(e,n);if(t===undefined||null===t)throw e+" not available on this browser";return t},se=function(e){var n,t=ue("ownerDocument.defaultView",e);return(n=t,ae("HTMLElement",n)).prototype.isPrototypeOf(e)},ce=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),fe=function(e){var n=e.selection.getStart(!0);return e.dom.getParent(n,"OL,UL,DL",le(e,n))},de=function(e){var t,n,r,o=e.selection.getSelectedBlocks();return v.grep((t=e,n=o,r=v.map(n,function(e){var n=t.dom.getParent(e,"li,dd,dt",le(t,e));return n||e}),ce.unique(r)),function(e){return C(e)})},le=function(e,n){var t=e.
 dom.getParents(n,"TD,TH");return 0<t.length?t[0]:e.getBody()},me=function(e,n){var t=e.dom.getParents(n,"ol,ul",le(e,n));return oe(t)},ge=function(n,e){var t=Q(e,function(e){return me(n,e).getOr(e)});return ce.unique(t)},pe={isList:function(e){var n=fe(e);return se(n)},getParentList:fe,getSelectedSubLists:function(e){var n,t,r,o=fe(e),i=e.selection.getSelectedBlocks();return r=i,(t=o)&&1===r.length&&r[0]===t?(n=o,v.grep(n.querySelectorAll("ol,ul,dl"),function(e){return y(e)})):v.grep(i,function(e){return y(e)&&o!==e})},getSelectedListItems:de,getClosestListRootElm:le,getSelectedDlItems:function(e){return G(de(e),S)},getSelectedListRoots:function(e){var n,t,r,o=(t=me(n=e,n.selection.getStart()),r=G(n.selection.getSelectedBlocks(),N),t.toArray().concat(r));return ge(e,o)}},ve=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:_(e)}},he={fromHtml:function(e,n){var t=(n|
 |u.document).createElement("div");if(t.innerHTML=e,!t.hasChildNodes()||1<t.childNodes.length)throw u.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return ve(t.childNodes[0])},fromTag:function(e,n){var t=(n||u.document).createElement(e);return ve(t)},fromText:function(e,n){var t=(n||u.document).createTextNode(e);return ve(t)},fromDom:ve,fromPoint:function(e,n,t){var r=e.dom();return q.from(r.elementFromPoint(n,t)).map(ve)}},ye=function(e,n){for(var t=[],r=0;r<e.length;r++){var o=e[r];if(!o.isSome())return q.none();t.push(o.getOrDie())}return q.some(n.apply(null,t))},Ne=Object.keys,Se=function(){return ae("Node")},Ce=function(e,n,t){return 0!=(e.compareDocumentPosition(n)&t)},Oe=function(e,n){return Ce(e,n,Se().DOCUMENT_POSITION_CONTAINED_BY)},be=function(e,n){var t=function(e,n){for(var t=0;t<e.length;t++){var r=e[t];if(r.test(n))return r}return undefined}(e,n);if(!t)return{
 major:0,minor:0};var r=function(e){return Number(n.replace(t,"$"+e))};return De(r(1),r(2))},Te=function(){return De(0,0)},De=function(e,n){return{major:e,minor:n}},Le={nu:De,detect:function(e,n){var t=String(n).toLowerCase();return 0===e.length?Te():be(e,t)},unknown:Te},Ee="Firefox",we=function(e,n){return function(){return n===e}},ke=function(e){var n=e.current;return{current:n,version:e.version,isEdge:we("Edge",n),isChrome:we("Chrome",n),isIE:we("IE",n),isOpera:we("Opera",n),isFirefox:we(Ee,n),isSafari:we("Safari",n)}},Ae={unknown:function(){return ke({current:undefined,version:Le.unknown()})},nu:ke,edge:_("Edge"),chrome:_("Chrome"),ie:_("IE"),opera:_("Opera"),firefox:_(Ee),safari:_("Safari")},xe="Windows",Re="Android",Ie="Solaris",_e="FreeBSD",Be=function(e,n){return function(){return n===e}},Pe=function(e){var n=e.current
 ;return{current:n,version:e.version,isWindows:Be(xe,n),isiOS:Be("iOS",n),isAndroid:Be(Re,n),isOSX:Be("OSX",n),isLinux:Be("Linux",n),isSolaris:Be(Ie,n),isFreeBSD:Be(_e,n)}},Me={unknown:function(){return Pe({current:undefined,version:Le.unknown()})},nu:Pe,windows:_(xe),ios:_("iOS"),android:_(Re),linux:_("Linux"),osx:_("OSX"),solaris:_(Ie),freebsd:_(_e)},Ue=function(e,n){var t=String(n).toLowerCase();return Z(e,function(e){return e.search(t)})},Fe=function(e,t){return Ue(e,t).map(function(e){var n=Le.detect(e.versionRegexes,t);return{current:e.name,version:n}})},je=function(e,t){return Ue(e,t).map(function(e){var n=Le.detect(e.versionRegexes,t);return{current:e.name,version:n}})},He=function(e,n){return-1!==e.indexOf(n)},$e=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,qe=function(n){return function(e){return He(e,n)}},We=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return He(e,"edg
 e/")&&He(e,"chrome")&&He(e,"safari")&&He(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,$e],search:function(e){return He(e,"chrome")&&!He(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return He(e,"msie")||He(e,"trident")}},{name:"Opera",versionRegexes:[$e,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:qe("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:qe("firefox")},{name:"Safari",versionRegexes:[$e,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(He(e,"safari")||He(e,"mobile/"))&&He(e,"applewebkit")}}],ze=[{name:"Windows",search:qe("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).
 */]},{name:"iOS",search:function(e){return He(e,"iphone")||He(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:qe("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:qe("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:qe("linux"),versionRegexes:[]},{name:"Solaris",search:qe("sunos"),versionRegexes:[]},{name:"FreeBSD",search:qe("freebsd"),versionRegexes:[]}],Ke={browsers:_(We),oses:_(ze)},Ve=function(e){var n,t,r,o,i,u,a,s,c,f,d,l=Ke.browsers(),m=Ke.oses(),g=Fe(l,e).fold(Ae.unknown,Ae.nu),p=je(m,e).fold(Me.unknown,Me.nu);return{browser:g,os:p,deviceType:(t=g,r=e,o=(n=p).isiOS()&&!0===/ipad/i.test(r),i=n.isiOS()&&!o,u=n.isAndroid()&&3===n.version.major,a=n.isAndro
 id()&&4===n.version.major,s=o||u||a&&!0===/mobile/i.test(r),c=n.isiOS()||n.isAndroid(),f=c&&!s,d=t.isSafari()&&n.isiOS()&&!1===/safari/i.test(r),{isiPad:_(o),isiPhone:_(i),isTablet:_(s),isPhone:_(f),isTouch:_(c),isAndroid:n.isAndroid,isiOS:n.isiOS,isWebView:_(d)})}},Xe={detect:(o=function(){var e=u.navigator.userAgent;return Ve(e)},a=!1,function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return a||(a=!0,i=o.apply(null,e)),i})},Qe=(u.Node.ATTRIBUTE_NODE,u.Node.CDATA_SECTION_NODE,u.Node.COMMENT_NODE,u.Node.DOCUMENT_NODE,u.Node.DOCUMENT_TYPE_NODE,u.Node.DOCUMENT_FRAGMENT_NODE,u.Node.ELEMENT_NODE),Ye=(u.Node.TEXT_NODE,u.Node.PROCESSING_INSTRUCTION_NODE,u.Node.ENTITY_REFERENCE_NODE,u.Node.ENTITY_NODE,u.Node.NOTATION_NODE,Qe),Ge=function(e,n){return e.dom()===n.dom()},Je=Xe.detect().browser.isIE()?function(e,n){return Oe(e.dom(),n.dom())}:function(e,n){var t=e.dom(),r=n.dom();return t!==r&&t.contains(r)},Ze=function(e,n){
 var t=e.dom();if(t.nodeType!==Ye)return!1;if(t.matches!==undefined)return t.matches(n);if(t.msMatchesSelector!==undefined)return t.msMatchesSelector(n);if(t.webkitMatchesSelector!==undefined)return t.webkitMatchesSelector(n);if(t.mozMatchesSelector!==undefined)return t.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")},en=function(e){var n=e.dom();return q.from(n.parentNode).map(he.fromDom)},nn=function(e){var n=e.dom();return Q(n.childNodes,he.fromDom)},tn=function(e,n){var t=e.dom().childNodes;return q.from(t[n]).map(he.fromDom)},rn=function(e){return tn(e,0)},on=function(e){return tn(e,e.dom().childNodes.length-1)},un=(function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n]}("element","offset"),function(n,t){en(n).each(function(e){e.dom().insertBefore(t.dom(),n.dom())})}),an=function(e,n){e.dom().appendChild(n.dom())},sn=function(n,e){Y(e,function(e){an(n,e)})},cn=function(e){var n=e.dom();null!==n.parentNode&amp
 ;&n.parentNode.removeChild(n)},fn=function(e){return e.dom().nodeName.toLowerCase()},dn=function(e,n){var t=e.dom();!function(e,n){for(var t=Ne(e),r=0,o=t.length;r<o;r++){var i=t[r];n(e[i],i,e)}}(n,function(e,n){!function(e,n,t){if(!(z(t)||K(t)||X(t)))throw u.console.error("Invalid call to Attr.set. Key ",n,":: Value ",t,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(n,t+"")}(t,n,e)})},ln=function(e){return J(e.dom().attributes,function(e,n){return e[n.name]=n.value,e},{})},mn=function(e,n,t){if(!z(t))throw u.console.error("Invalid call to CSS.set. Property ",n,":: Value ",t,":: Element ",e),new Error("CSS value must be a string: "+t);e.style!==undefined&&e.style.setProperty(n,t)},gn=function(e){return n=e,t=!0,he.fromDom(n.dom().cloneNode(t));var n,t},pn=function(e,n){var t,r,o,i,u=(t=e,r=n,o=he.fromTag(r),i=ln(t),dn(o,i),o);un(e,u);var a=nn(e);retur
 n sn(u,a),cn(e),u},vn=function(e,n){an(e.item,n.list)},hn=function(f,e,d){var n=e.slice(0,d.depth);return oe(n).each(function(e){var n,t,r,o,i,u,a,s,c=(n=f,t=d.itemAttributes,r=d.content,o=he.fromTag("li",n),dn(o,t),sn(o,r),o);u=c,an((i=e).list,u),i.item=u,s=d,fn((a=e).list)!==s.listType&&(a.list=pn(a.list,s.listType)),dn(a.list,s.listAttributes)}),n},yn=function(e,n,t){var r,o=function(e,n,t){for(var r,o,i,u=[],a=0;a<t;a++)u.push((r=e,o=n.listType,i={list:he.fromTag(o,r),item:he.fromTag("li",r)},an(i.list,i.item),i));return u}(e,t,t.depth-n.length);return function(e){for(var n=1;n<e.length;n++)vn(e[n-1],e[n])}(o),function(e,n){for(var t=0;t<e.length-1;t++)r=e[t].item,o="list-style-type",i="none",u=r.dom(),mn(u,o,i);var r,o,i,u;oe(e).each(function(e){dn(e.list,n.listAttributes),dn(e.item,n.itemAttributes),sn(e.item,n.content)})}(o,t),r=o,ye([oe(n),re(r)],vn),n.concat(o)},Nn=function(e){return Ze(e,"OL,UL")},Sn=functi
 on(e){return rn(e).map(Nn).getOr(!1)},Cn=function(e){return 0<e.depth},On=function(e){return e.isSelected},bn=function(e){var n=nn(e),t=on(e).map(Nn).getOr(!1)?n.slice(0,-1):n;return Q(t,gn)},Tn=Object.prototype.hasOwnProperty,Dn=(s=function(e,n){return n},function(){for(var e=new Array(arguments.length),n=0;n<e.length;n++)e[n]=arguments[n];if(0===e.length)throw new Error("Can't merge zero objects");for(var t={},r=0;r<e.length;r++){var o=e[r];for(var i in o)Tn.call(o,i)&&(t[i]=s(t[i],o[i]))}return t}),Ln=function(n){Y(n,function(r,e){(function(e,n){for(var t=e[n].depth,r=n-1;0<=r;r--){if(e[r].depth===t)return q.some(e[r]);if(e[r].depth<t)break}return q.none()})(n,e).each(function(e){var n,t;t=e,(n=r).listType=t.listType,n.listAttributes=Dn({},t.listAttributes)})})},En=function(e){var n=e,t=function(){return n};return{get:t,set:function(e){n=e},clone:function(){return En(t())}}},wn=function(i,u,a,s){return rn(s).filter(Nn).fold(function(){u.each(funct
 ion(e){Ge(e.start,s)&&a.set(!0)});var n,t,r,e=(n=s,t=i,r=a.get(),en(n).map(function(e){return{depth:t,isSelected:r,content:bn(n),itemAttributes:ln(n),listAttributes:ln(e),listType:fn(e)}}));u.each(function(e){Ge(e.end,s)&&a.set(!1)});var o=on(s).filter(Nn).map(function(e){return kn(i,u,a,e)}).getOr([]);return e.toArray().concat(o)},function(e){return kn(i,u,a,e)})},kn=function(n,t,r,e){return ne(nn(e),function(e){return(Nn(e)?kn:wn)(n+1,t,r,e)})},An=tinymce.util.Tools.resolve("tinymce.Env"),xn=function(e,n){var t,r,o,i,u=e.dom,a=e.schema.getBlockElements(),s=u.createFragment();if(e.settings.forced_root_block&&(o=e.settings.forced_root_block),o&&((r=u.create(o)).tagName===e.settings.forced_root_block&&u.setAttribs(r,e.settings.forced_root_block_attrs),D(n.firstChild,a)||s.appendChild(r)),n)for(;t=n.firstChild;){var c=t.nodeName;i||"SPAN"===c&&"bookmark"===t.getAttribute("data-mce-type")||(i=!0),D(
 t,a)?(s.appendChild(t),r=null):o?(r||(r=u.create(o),s.appendChild(r)),r.appendChild(t)):s.appendChild(t)}return e.settings.forced_root_block?i||An.ie&&!(10<An.ie)||r.appendChild(u.create("br",{"data-mce-bogus":"1"})):s.appendChild(u.create("br")),s},Rn=function(i,e){return Q(e,function(e){var n,t,r,o=(n=e.content,r=(t||u.document).createDocumentFragment(),Y(n,function(e){r.appendChild(e.dom())}),he.fromDom(r));return he.fromDom(xn(i,o.dom()))})},In=function(e,n){return Ln(n),(t=e.contentDocument,r=n,o=J(r,function(e,n){return n.depth>e.length?yn(t,e,n):hn(t,e,n)},[]),re(o).map(function(e){return e.list})).toArray();var t,r,o},_n=function(e){var n,t,r=Q(pe.getSelectedListItems(e),he.fromDom);return ye([Z(r,B(Sn)),Z((n=r,t=te.call(n,0),t.reverse(),t),B(Sn))],function(e,n){return{start:e,end:n}})},Bn=function(a,e,s){var n,t,r,o=(n=e,t=_n(a),r=En(!1),Q(n,function(e){return{sourceList:e,entries:kn(0,t,r,e)}}));Y(o,function(e){var n,t,
 r,o,i,u;n=e.entries,t=s,Y(G(n,On),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}}(t,e)}),r=e.sourceList,i=a,u=e.entries,o=ne(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i<u;i++){var a=e[i],s=n(a);s!==t&&(r.push(o),o=[]),t=s,o.push(a)}return 0!==o.length&&r.push(o),r}(u,Cn),function(e){return re(e).map(Cn).getOr(!1)?In(i,e):Rn(i,e)}),Y(o,function(e){un(r,e)}),cn(e.sourceList)})},Pn=m.DOM,Mn=function(e,n,t){var r,o,i,u,a,s;for(i=Pn.select('span[data-mce-type="bookmark"]',n),a=xn(e,t),(r=Pn.createRng()).setStartAfter(t),r.setEndAfter(n),u=(o=r.extractContents()).firstChild;u;u=u.firstChild)if("LI"===u.nodeName&&e.dom.isEmpty(u)){Pn.remove(u);break}e.dom.isEmpty(o)||Pn.insertAfter(o,n),Pn.insertAfter(a,n),E(e.dom,t.parentNode)&&(s=t.parentNode,v.each(i,function(e){s.parentNode.insertBefo
 re(e,t.parentNode)}),Pn.remove(s)),Pn.remove(t),E(e.dom,n)&&Pn.remove(n)},Un=function(e){Ze(e,"DT")&&pn(e,"DD")},Fn=function(r,e,n){Y(n,"Indent"===e?Un:function(e){return n=r,void(Ze(t=e,"DD")?pn(t,"DT"):Ze(t,"DT")&&en(t).each(function(e){return Mn(n,e.dom(),t.dom())}));var n,t})},jn=function(e,n){var t=Q(pe.getSelectedListRoots(e),he.fromDom),r=Q(pe.getSelectedDlItems(e),he.fromDom),o=!1;if(t.length||r.length){var i=e.selection.getBookmark();Bn(e,t,n),Fn(e,n,r),e.selection.moveToBookmark(i),e.selection.setRng(A(e.selection.getRng())),e.nodeChanged(),o=!0}return o},Hn=function(e){return jn(e,"Indent")},$n=function(e){return jn(e,"Outdent")},qn=function(e){return jn(e,"Flatten")},Wn=function(t,e){v.each(e,function(e,n){t.setAttribute(n,e)})},zn=function(e,n,t){var r,o,i,u,a,s,c;r=e,o=n,u=(i=t)["list-style-type"]?i["list-style-type"]:null,r.setStyle(o,&
 quot;list-style-type",u),a=e,Wn(s=n,(c=t)["list-attributes"]),v.each(a.select("li",s),function(e){Wn(e,c["list-item-attributes"])})},Kn=function(e,n,t,r){var o,i;for(o=n[t?"startContainer":"endContainer"],i=n[t?"startOffset":"endOffset"],1===o.nodeType&&(o=o.childNodes[Math.min(i,o.childNodes.length-1)]||o),!t&&b(o.nextSibling)&&(o=o.nextSibling);o.parentNode!==r;){if(T(e,o))return o;if(/^(TD|TH)$/.test(o.parentNode.nodeName))return o;o=o.parentNode}return o},Vn=function(f,d,l){void 0===l&&(l={});var e,n=f.selection.getRng(!0),m="LI",t=pe.getClosestListRootElm(f,f.selection.getStart(!0)),g=f.dom;"false"!==g.getContentEditable(f.selection.getNode())&&("DL"===(d=d.toUpperCase())&&(m="DT"),e=R(n),v.each(function(t,e,r){for(var o,i=[],u=t.dom,n=Kn(t,e,!0,r),a=Kn(t,e,!1,r),s=[],c=n;c&&(s.push(c),c!==a);c=c.nextSibling);
 return v.each(s,function(e){if(T(t,e))return i.push(e),void(o=null);if(u.isBlock(e)||b(e))return b(e)&&u.remove(e),void(o=null);var n=e.nextSibling;p.isBookmarkNode(e)&&(T(t,n)||!n&&e.parentNode===r)?o=null:(o||(o=u.create("p"),e.parentNode.insertBefore(o,e),i.push(o)),o.appendChild(e))}),i}(f,n,t),function(e){var n,t,r,o,i,u,a,s,c;(t=e.previousSibling)&&y(t)&&t.nodeName===d&&(r=t,o=l,i=g.getStyle(r,"list-style-type"),u=o?o["list-style-type"]:"",i===(u=null===u?"":u))?(n=t,e=g.rename(e,m),t.appendChild(e)):(n=g.create(d),e.parentNode.insertBefore(n,e),n.appendChild(e),e=g.rename(e,m)),a=g,s=e,c=["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],v.each(c,function(e){var n;return a.setStyle(s,((n={})[e
 ]="",n))}),zn(g,n,l),Qn(f.dom,n)}),f.selection.setRng(I(e)))},Xn=function(e,n,t){return s=t,(a=n)&&s&&y(a)&&a.nodeName===s.nodeName&&(i=n,u=t,(o=e).getStyle(i,"list-style-type",!0)===o.getStyle(u,"list-style-type",!0))&&(r=t,n.className===r.className);var r,o,i,u,a,s},Qn=function(e,n){var t,r;if(t=n.nextSibling,Xn(e,n,t)){for(;r=t.firstChild;)n.appendChild(r);e.remove(t)}if(t=n.previousSibling,Xn(e,n,t)){for(;r=t.lastChild;)n.insertBefore(r,n.firstChild);e.remove(t)}},Yn=function(n,e,t,r,o){if(e.nodeName!==r||Gn(o)){var i=R(n.selection.getRng(!0));v.each([e].concat(t),function(e){!function(e,n,t,r){if(n.nodeName!==t){var o=e.rename(n,t);zn(e,o,r)}else zn(e,n,r)}(n.dom,e,r,o)}),n.selection.setRng(I(i))}else qn(n)},Gn=function(e){return"list-style-type"in e},Jn={toggleList:function(e,n,t){var r=pe.getParentList(e),o=pe.getSelectedSubLists(e);t=t||{},r&&0<o.length?Yn(e,r,o,n,t):function(e,n,t,r){
 if(n!==e.getBody())if(n)if(n.nodeName!==t||Gn(r)){var o=R(e.selection.getRng(!0));zn(e.dom,n,r),Qn(e.dom,e.dom.rename(n,t)),e.selection.setRng(I(o))}else qn(e);else Vn(e,t,r)}(e,r,n,t)},mergeWithAdjacentLists:Qn},Zn=m.DOM,et=function(e,n){var t,r=n.parentNode;"LI"===r.nodeName&&r.firstChild===n&&((t=r.previousSibling)&&"LI"===t.nodeName?(t.appendChild(n),E(e,r)&&Zn.remove(r)):Zn.setStyle(r,"listStyleType","none")),y(r)&&(t=r.previousSibling)&&"LI"===t.nodeName&&t.appendChild(n)},nt=function(n,e){v.each(v.grep(n.select("ol,ul",e)),function(e){et(n,e)})},tt=function(e,n,t,r){var o,i,u=n.startContainer,a=n.startOffset;if(3===u.nodeType&&(t?a<u.data.length:0<a))return u;for(o=e.schema.getNonEmptyElements(),1===u.nodeType&&(u=f.getNode(u,a)),i=new d(u,r),t&&L(e.dom,u)&&i.next();u=i[t?"next":"prev2"]();){if("LI&q
 uot;===u.nodeName&&!u.hasChildNodes())return u;if(o[u.nodeName])return u;if(3===u.nodeType&&0<u.data.length)return u}},rt=function(e,n){var t=n.childNodes;return 1===t.length&&!y(t[0])&&e.isBlock(t[0])},ot=function(e,n,t){var r,o,i,u;if(o=rt(e,t)?t.firstChild:t,rt(i=e,u=n)&&i.remove(u.firstChild,!0),!E(e,n,!0))for(;r=n.firstChild;)o.appendChild(r)},it=function(n,e,t){var r,o,i=e.parentNode;if(w(n,e)&&w(n,t)){y(t.lastChild)&&(o=t.lastChild),i===t.lastChild&&b(i.previousSibling)&&n.remove(i.previousSibling),(r=t.lastChild)&&b(r)&&e.hasChildNodes()&&n.remove(r),E(n,t,!0)&&n.$(t).empty(),ot(n,e,t),o&&t.appendChild(o);var u=Je(he.fromDom(t),he.fromDom(e))?n.getParents(e,y,t):[];n.remove(e),Y(u,function(e){E(n,e)&&e!==n.getRoot()&&n.remove(e)})}},ut=function(e,n,t,r){var o,i,u,a=e.dom;if(a.isEmpty(r))i=t,u=r,(o=e).dom.$(u).empty(),it(o.dom,i,u),o.selection.set
 CursorLocation(u);else{var s=R(n);it(a,t,r),e.selection.setRng(I(s))}},at=function(e,n){var t,r,o,i=e.dom,u=e.selection,a=u.getStart(),s=pe.getClosestListRootElm(e,a),c=i.getParent(u.getStart(),"LI",s);if(c){if((t=c.parentNode)===e.getBody()&&E(i,t))return!0;if(r=A(u.getRng(!0)),(o=i.getParent(tt(e,r,n,s),"LI",s))&&o!==c)return n?ut(e,r,o,c):function(e,n,t,r){var o=R(n);it(e.dom,t,r);var i=I(o);e.selection.setRng(i)}(e,r,c,o),!0;if(!o&&!n)return qn(e),!0}return!1},st=function(e,n){return at(e,n)||function(o,i){var u=o.dom,e=o.selection.getStart(),a=pe.getClosestListRootElm(o,e),s=u.getParent(e,u.isBlock,a);if(s&&u.isEmpty(s)){var n=A(o.selection.getRng(!0)),c=u.getParent(tt(o,n,i,a),"LI",a);if(c)return o.undoManager.transact(function(){var e,n,t,r;n=s,t=a,r=(e=u).getParent(n.parentNode,e.isBlock,t),e.remove(n),r&&e.isEmpty(r)&&e.remove(r),Jn.mergeWithAdjacentLists(u,c.parentNode),o.selection.select(c,!0),o
 .selection.collapse(i)}),!0}return!1}(e,n)},ct=function(e,n){return e.selection.isCollapsed()?st(e,n):(r=(t=e).selection.getStart(),o=pe.getClosestListRootElm(t,r),!!(t.dom.getParent(r,"LI,DT,DD",o)||0<pe.getSelectedListItems(t).length)&&(t.undoManager.transact(function(){t.execCommand("Delete"),nt(t.dom,t.getBody())}),!0));var t,r,o},ft=function(n){n.on("keydown",function(e){e.keyCode===l.BACKSPACE?ct(n,!1)&&e.preventDefault():e.keyCode===l.DELETE&&ct(n,!0)&&e.preventDefault()})},dt=ct,lt=function(n){return{backspaceDelete:function(e){dt(n,e)}}},mt=function(n,t){return function(){var e=n.dom.getParent(n.selection.getStart(),"UL,OL,DL");return e&&e.nodeName===t}},gt=function(t){t.on("BeforeExecCommand",function(e){var n=e.command.toLowerCase();"indent"===n?Hn(t):"outdent"===n&&$n(t)}),t.addCommand("InsertUnorderedList",function(e,n){Jn.toggleList(t,&quot
 ;UL",n)}),t.addCommand("InsertOrderedList",function(e,n){Jn.toggleList(t,"OL",n)}),t.addCommand("InsertDefinitionList",function(e,n){Jn.toggleList(t,"DL",n)}),t.addCommand("RemoveList",function(){qn(t)}),t.addQueryStateHandler("InsertUnorderedList",mt(t,"UL")),t.addQueryStateHandler("InsertOrderedList",mt(t,"OL")),t.addQueryStateHandler("InsertDefinitionList",mt(t,"DL"))},pt=function(e){return e.getParam("lists_indent_on_tab",!0)},vt=function(e){var n;pt(e)&&(n=e).on("keydown",function(e){e.keyCode!==l.TAB||l.metaKeyPressed(e)||n.undoManager.transact(function(){(e.shiftKey?$n(n):Hn(n))&&e.preventDefault()})}),ft(e)},ht=function(n,i){return function(e){var o=e.control;n.on("NodeChange",function(e){var n=function(e,n){for(var t=0;t<e.length;t++)if(n(e[t]))return t;return-1}(e.parents,O),t=-1!==n?e.parents.slice(0,n):e.paren
 ts,r=v.grep(t,y);o.active(0<r.length&&r[0].nodeName===i)})}},yt=function(e){var n,t,r;t="advlist",r=(n=e).settings.plugins?n.settings.plugins:"",-1===v.inArray(r.split(/[ ,]/),t)&&(e.addButton("numlist",{active:!1,title:"Numbered list",cmd:"InsertOrderedList",onPostRender:ht(e,"OL")}),e.addButton("bullist",{active:!1,title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:ht(e,"UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent"})};c.add("lists",function(e){return vt(e),yt(e),gt(e),lt(e)})}(window);
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginspastepluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js      2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js        2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var paste = (function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var paste = (function (domGlobals) {
</ins><span class="cx" style="display: block; padding: 0 10px">     'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var Cell = function (initial) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,8 +24,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var hasProPlugin = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (/(^|[ ,])powerpaste([, ]|$)/.test(editor.settings.plugins) && global.get('powerpaste')) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (typeof window.console !== 'undefined' && window.console.log) {
-          window.console.log('PowerPaste is incompatible with Paste plugin! Remove \'paste\' from the \'plugins\' option.');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (typeof domGlobals.window.console !== 'undefined' && domGlobals.window.console.log) {
+          domGlobals.window.console.log('PowerPaste is incompatible with Paste plugin! Remove \'paste\' from the \'plugins\' option.');
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return true;
</span><span class="cx" style="display: block; padding: 0 10px">       } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -273,18 +273,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var ignoreElements = global$3.makeMap('script noscript style textarea video audio iframe object', ' ');
</span><span class="cx" style="display: block; padding: 0 10px">       var blockElements = schema.getBlockElements();
</span><span class="cx" style="display: block; padding: 0 10px">       function walk(node) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var name$$1 = node.name, currentNode = node;
-        if (name$$1 === 'br') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var name = node.name, currentNode = node;
+        if (name === 'br') {
</ins><span class="cx" style="display: block; padding: 0 10px">           text += '\n';
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (name$$1 === 'wbr') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (name === 'wbr') {
</ins><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (shortEndedElements[name$$1]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (shortEndedElements[name]) {
</ins><span class="cx" style="display: block; padding: 0 10px">           text += ' ';
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (ignoreElements[name$$1]) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (ignoreElements[name]) {
</ins><span class="cx" style="display: block; padding: 0 10px">           text += ' ';
</span><span class="cx" style="display: block; padding: 0 10px">           return;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -298,9 +298,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">             } while (node = node.next);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (blockElements[name$$1] && currentNode.next) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (blockElements[name] && currentNode.next) {
</ins><span class="cx" style="display: block; padding: 0 10px">           text += '\n';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (name$$1 === 'p') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (name === 'p') {
</ins><span class="cx" style="display: block; padding: 0 10px">             text += '\n';
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -335,7 +335,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     var isMsEdge = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return navigator.userAgent.indexOf(' Edge/') !== -1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return domGlobals.navigator.userAgent.indexOf(' Edge/') !== -1;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var Utils = {
</span><span class="cx" style="display: block; padding: 0 10px">       filter: filter,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -785,13 +785,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var eq = function (o) {
</span><span class="cx" style="display: block; padding: 0 10px">         return o.isNone();
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var call$$1 = function (thunk) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var call = function (thunk) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return thunk();
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var id = function (n) {
</span><span class="cx" style="display: block; padding: 0 10px">         return n;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var noop$$1 = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var noop = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var nul = function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -807,7 +807,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         isSome: never$1,
</span><span class="cx" style="display: block; padding: 0 10px">         isNone: always$1,
</span><span class="cx" style="display: block; padding: 0 10px">         getOr: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        getOrThunk: call$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        getOrThunk: call,
</ins><span class="cx" style="display: block; padding: 0 10px">         getOrDie: function (msg) {
</span><span class="cx" style="display: block; padding: 0 10px">           throw new Error(msg || 'error: getOrDie called on none.');
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -814,10 +814,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         getOrNull: nul,
</span><span class="cx" style="display: block; padding: 0 10px">         getOrUndefined: undef,
</span><span class="cx" style="display: block; padding: 0 10px">         or: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        orThunk: call$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        orThunk: call,
</ins><span class="cx" style="display: block; padding: 0 10px">         map: none,
</span><span class="cx" style="display: block; padding: 0 10px">         ap: none,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each: noop$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each: noop,
</ins><span class="cx" style="display: block; padding: 0 10px">         bind: none,
</span><span class="cx" style="display: block; padding: 0 10px">         flatten: none,
</span><span class="cx" style="display: block; padding: 0 10px">         exists: never$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -955,7 +955,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var nu = function (baseFn) {
</span><span class="cx" style="display: block; padding: 0 10px">       var data = Option.none();
</span><span class="cx" style="display: block; padding: 0 10px">       var callbacks = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var map$$1 = function (f) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var map = function (f) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return nu(function (nCallback) {
</span><span class="cx" style="display: block; padding: 0 10px">           get(function (data) {
</span><span class="cx" style="display: block; padding: 0 10px">             nCallback(f(data));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -981,7 +981,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var call = function (cb) {
</span><span class="cx" style="display: block; padding: 0 10px">         data.each(function (x) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          setTimeout(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          domGlobals.setTimeout(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">             cb(x);
</span><span class="cx" style="display: block; padding: 0 10px">           }, 0);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -989,11 +989,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       baseFn(set);
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         get: get,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        map: map$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        map: map,
</ins><span class="cx" style="display: block; padding: 0 10px">         isReady: isReady
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var pure$1 = function (a) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var pure = function (a) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return nu(function (callback) {
</span><span class="cx" style="display: block; padding: 0 10px">         callback(a);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1000,7 +1000,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var LazyValue = {
</span><span class="cx" style="display: block; padding: 0 10px">       nu: nu,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      pure: pure$1
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      pure: pure
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var bounce = function (f) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1010,7 +1010,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           args[_i] = arguments[_i];
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         var me = this;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        setTimeout(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        domGlobals.setTimeout(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">           f.apply(me, args);
</span><span class="cx" style="display: block; padding: 0 10px">         }, 0);
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1063,7 +1063,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         get: get
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var pure$2 = function (a) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var pure$1 = function (a) {
</ins><span class="cx" style="display: block; padding: 0 10px">       return nu$1(function (callback) {
</span><span class="cx" style="display: block; padding: 0 10px">         callback(a);
</span><span class="cx" style="display: block; padding: 0 10px">       });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1070,7 +1070,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var Future = {
</span><span class="cx" style="display: block; padding: 0 10px">       nu: nu$1,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      pure: pure$2
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      pure: pure$1
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var par = function (asyncValues, nu) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1170,8 +1170,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var pasteImage = function (editor, imageItem) {
</span><span class="cx" style="display: block; padding: 0 10px">       var base64 = getBase64FromUri(imageItem.uri);
</span><span class="cx" style="display: block; padding: 0 10px">       var id = uniqueId();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var name$$1 = editor.settings.images_reuse_filename && imageItem.blob.name ? extractFilename(editor, imageItem.blob.name) : id;
-      var img = new Image();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var name = editor.settings.images_reuse_filename && imageItem.blob.name ? extractFilename(editor, imageItem.blob.name) : id;
+      var img = new domGlobals.Image();
</ins><span class="cx" style="display: block; padding: 0 10px">       img.src = imageItem.uri;
</span><span class="cx" style="display: block; padding: 0 10px">       if (isValidDataUriImage(editor.settings, img)) {
</span><span class="cx" style="display: block; padding: 0 10px">         var blobCache = editor.editorUpload.blobCache;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1180,7 +1180,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           return cachedBlobInfo.base64() === base64;
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         if (!existingBlobInfo) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          blobInfo = blobCache.create(id, imageItem.blob, base64, name$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          blobInfo = blobCache.create(id, imageItem.blob, base64, name);
</ins><span class="cx" style="display: block; padding: 0 10px">           blobCache.add(blobInfo);
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           blobInfo = existingBlobInfo;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1190,8 +1190,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         pasteHtml$1(editor, '<img src="' + imageItem.uri + '">', false);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var isClipboardEvent = function (event$$1) {
-      return event$$1.type === 'paste';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var isClipboardEvent = function (event) {
+      return event.type === 'paste';
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var readBlobsAsDataUris = function (items) {
</span><span class="cx" style="display: block; padding: 0 10px">       return mapM(items, function (item) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1239,7 +1239,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var isBrokenAndroidClipboardEvent = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       var clipboardData = e.clipboardData;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return navigator.userAgent.indexOf('Android') !== -1 && clipboardData && clipboardData.items && clipboardData.items.length === 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return domGlobals.navigator.userAgent.indexOf('Android') !== -1 && clipboardData && clipboardData.items && clipboardData.items.length === 0;
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var isKeyboardPasteEvent = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">       return global$4.metaKeyPressed(e) && e.keyCode === 86 || e.shiftKey && e.keyCode === 45;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1255,7 +1255,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {
</span><span class="cx" style="display: block; padding: 0 10px">           keyboardPastePlainTextState = e.shiftKey && e.keyCode === 86;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (keyboardPastePlainTextState && global$1.webkit && navigator.userAgent.indexOf('Version/') !== -1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (keyboardPastePlainTextState && global$1.webkit && domGlobals.navigator.userAgent.indexOf('Version/') !== -1) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           e.stopImmediatePropagation();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1355,7 +1355,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var registerEventsAndFilters = function (editor, pasteBin, pasteFormat) {
</span><span class="cx" style="display: block; padding: 0 10px">       registerEventHandlers(editor, pasteBin, pasteFormat);
</span><span class="cx" style="display: block; padding: 0 10px">       var src;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      editor.parser.addNodeFilter('img', function (nodes, name$$1, args) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      editor.parser.addNodeFilter('img', function (nodes, name, args) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var isPasteInsert = function (args) {
</span><span class="cx" style="display: block; padding: 0 10px">           return args.data && args.data.paste === true;
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1388,7 +1388,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var getPasteBinParent = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return global$1.ie && editor.inline ? document.body : editor.getBody();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return global$1.ie && editor.inline ? domGlobals.document.body : editor.getBody();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var isExternalPasteBin = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">       return getPasteBinParent(editor) !== editor.getBody();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1524,7 +1524,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var noop$1 = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var noop = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var hasWorkingClipboardApi = function (clipboardData) {
</span><span class="cx" style="display: block; padding: 0 10px">       return global$1.iOS === false && clipboardData !== undefined && typeof clipboardData.setData === 'function' && Utils.isMsEdge() !== true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1607,7 +1607,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var copy = function (editor) {
</span><span class="cx" style="display: block; padding: 0 10px">       return function (evt) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (hasSelectedContent(editor)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          setClipboardData(evt, getData(editor), fallback(editor), noop$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          setClipboardData(evt, getData(editor), fallback(editor), noop);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1854,5 +1854,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     return Plugin;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}(window));
</ins><span class="cx" style="display: block; padding: 0 10px"> })();
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginspastepluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js  2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js    2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var l=function(t){var e=t,n=function(){return e};return{get:n,set:function(t){e=t},clone:function(){return l(n())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(t){return!(!/(^|[ ,])powerpaste([, ]|$)/.test(t.settings.plugins)||!e.get("powerpaste")||("undefined"!=typeof window.console&&window.console.log&&window.console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option."),0))},s=function(t,e){return{clipboard:t,quirks:e}},f=function(t,e,n,r){return t.fire("PastePreProcess",{content:e,internal:n,wordContent:r})},d=function(t,e,n,r){return t.fire("PastePostProcess",{node:e,internal:n,wordContent:r})},u=function(t,e){return t.fire("PastePlainTextToggle",{state:e})},n=function(t,e){return t.fire("paste&quo
 t;,{ieFake:e})},m={shouldPlainTextInform:function(t){return t.getParam("paste_plaintext_inform",!0)},shouldBlockDrop:function(t){return t.getParam("paste_block_drop",!1)},shouldPasteDataImages:function(t){return t.getParam("paste_data_images",!1)},shouldFilterDrop:function(t){return t.getParam("paste_filter_drop",!0)},getPreProcess:function(t){return t.getParam("paste_preprocess")},getPostProcess:function(t){return t.getParam("paste_postprocess")},getWebkitStyles:function(t){return t.getParam("paste_webkit_styles")},shouldRemoveWebKitStyles:function(t){return t.getParam("paste_remove_styles_if_webkit",!0)},shouldMergeFormats:function(t){return t.getParam("paste_merge_formats",!0)},isSmartPasteEnabled:function(t){return t.getParam("smart_paste",!0)},isPasteAsTextEnabled:function(t){return t.getParam("paste_as_text",!1)},getRetainStyleProps:function(t){return t.getParam("
 paste_retain_style_properties")},getWordValidElements:function(t){return t.getParam("paste_word_valid_elements","-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody")},shouldConvertWordFakeLists:function(t){return t.getParam("paste_convert_word_fake_lists",!0)},shouldUseDefaultFilters:function(t){return t.getParam("paste_enable_default_filters",!0)}},r=function(t,e,n){var r,o,i;"text"===e.pasteFormat.get()?(e.pasteFormat.set("html"),u(t,!1)):(e.pasteFormat.set("text"),u(t,!0),i=t,!1===n.get()&&m.shouldPlainTextInform(i)&&(o="Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.",(r=t).notificationManager.open({text:r.translate(o),type:"info"}),n.set(!0))),t.focus()},c=function(t,n,
 e){t.addCommand("mceTogglePlainTextPaste",function(){r(t,n,e)}),t.addCommand("mceInsertClipboardContent",function(t,e){e.content&&n.pasteHtml(e.content,e.internal),e.text&&n.pasteText(e.text)})},v=tinymce.util.Tools.resolve("tinymce.Env"),h=tinymce.util.Tools.resolve("tinymce.util.Delay"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=tinymce.util.Tools.resolve("tinymce.util.VK"),t="x-tinymce/html",i="\x3c!-- "+t+" --\x3e",g=function(t){return i+t},p=function(t){return t.replace(i,"")},b=function(t){return-1!==t.indexOf(i)},x=function(){return t},P=tinymce.util.Tools.resolve("tinymce.html.Entities"),w=function(t){return t.replace(/\r?\n/g,"<br>")},_=function(t,e,n){var r=t.split(/\n\n/),o=function(t,e){var n,r=[],o="<"+t;if("object"==typeof e){for(n in e)e.hasOwnProperty(n)&&r.push(n+'="'+P.encodeAllRa
 w(e[n])+'"');r.length&&(o+=" "+r.join(" "))}return o+">"}(e,n),i="</"+e+">",a=y.map(r,function(t){return t.split(/\n/).join("<br />")});return 1===a.length?a[0]:y.map(a,function(t){return o+t+i}).join("")},D=function(t){return!/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(t)},T=function(t,e,n){return e?_(t,e,n):w(t)},C=tinymce.util.Tools.resolve("tinymce.html.DomParser"),k=tinymce.util.Tools.resolve("tinymce.html.Node"),S=tinymce.util.Tools.resolve("tinymce.html.Schema"),O=tinymce.util.Tools.resolve("tinymce.html.Serializer");function R(e,t){return y.each(t,function(t){e=t.constructor===RegExp?e.replace(t,""):e.replace(t[0],t[1])}),e}var F={filter:R,innerText:function(e){var n=S(),r=C({},n),o="",i=n.getShortEndedElements(),a=y.makeMap(&qu
 ot;script noscript style textarea video audio iframe object"," "),s=n.getBlockElements();return e=R(e,[/<!\[[^\]]+\]>/g]),function t(e){var n=e.name,r=e;if("br"!==n){if("wbr"!==n)if(i[n]&&(o+=" "),a[n])o+=" ";else{if(3===e.type&&(o+=e.value),!e.shortEnded&&(e=e.firstChild))for(;t(e),e=e.next;);s[n]&&r.next&&(o+="\n","p"===n&&(o+="\n"))}}else o+="\n"}(r.parse(e)),o},trimHtml:function(t){return t=R(t,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,function(t,e,n){return e||n?"\xa0":" "}],/<br class="Apple-interchange-newline">/g,/<br>$/i])},createIdGenerator:function(t){var e=0;return function(){return t+e++}},isMsEdge:function(){return-
 1!==navigator.userAgent.indexOf(" Edge/")}};function E(e){var n,t;return t=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],e=e.replace(/^[\u00a0 ]+/,""),y.each(t,function(t){if(t.test(e))return!(n=!0)}),n}function A(t){var i,a,s=1;function n(t){var e="";if(3===t.type)return t.value;if(t=t.firstChild)for(;e+=n(t),t=t.next;);return e}function u(t,e){if(3===t.type&&e.test(t.value))return t.value=t.value.replace(e,""),!1;if(t=t.firstChild)do{if(!u(t,e))return!1}while(t=t.next);return!0}function e(e,n,r){var o=e._listLevel||s;o!==s&&(o<s?i&&(i=i.parent.parent):(a=i,i=null)),i&&i.name===n?i.append(e):(a=a||i,i=new k(n,1),1<r&&i.attr("start","&quot
 ;+r),e.wrap(i)),e.name="li",s<o&&a&&a.lastChild.append(i),s=o,function t(e){if(e._listIgnore)e.remove();else if(e=e.firstChild)for(;t(e),e=e.next;);}(e),u(e,/^\u00a0+/),u(e,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),u(e,/^\u00a0+/)}for(var r=[],o=t.firstChild;null!=o;)if(r.push(o),null!==(o=o.walk()))for(;void 0!==o&&o.parent!==t;)o=o.walk();for(var l=0;l<r.length;l++)if("p"===(t=r[l]).name&&t.firstChild){var c=n(t);if(/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(c)){e(t,"ul");continue}if(E(c)){var f=/([0-9]+)\./.exec(c),d=1;f&&(d=parseInt(f[1],10)),e(t,"ol",d);continue}if(t._listLevel){e(t,"ul",1);continue}i=null}else a=i,i=null}function I(n,r,o,i){var a,s={},t=n.dom.parseStyle(i);return y.each(t,function(t,e){switch(e){case"mso-list":(a=/\w+ \w+([0-9]+)/i.exec(i))&&(o._listLevel=parseInt(a[1],10)),/Ignore/i.test(t)&&o.firstChild&&(o._listIgnore=!0,o.
 firstChild._listIgnore=!0);break;case"horiz-align":e="text-align";break;case"vert-align":e="vertical-align";break;case"font-color":case"mso-foreground":e="color";break;case"mso-background":case"mso-highlight":e="background";break;case"font-weight":case"font-style":return void("normal"!==t&&(s[e]=t));case"mso-element":if(/^(comment|comment-list)$/i.test(t))return void o.remove()}0!==e.indexOf("mso-comment")?0!==e.indexOf("mso-")&&("all"===m.getRetainStyleProps(n)||r&&r[e])&&(s[e]=t):o.remove()}),/(bold)/i.test(s["font-weight"])&&(delete s["font-weight"],o.wrap(new k("b",1))),/(italic)/i.test(s["font-style"])&&(delete s["font-style"],o.wrap(new k("i",1))),(s=n.dom.serializeStyle(s,o.name))||null}var M,B,H,j,L,N=
 {preProcess:function(t,e){return m.shouldUseDefaultFilters(t)?function(r,t){var e,o;(e=m.getRetainStyleProps(r))&&(o=y.makeMap(e.split(/[, ]/))),t=F.filter(t,[/<br class="?Apple-interchange-newline"?>/gi,/<b[^>]+id="?docs-internal-[^>]*>/gi,/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(t,e){return 0<e.length?e.replace(/./," ").slice(Math.floor(e.length/2)).split("").join("\xa0"):""}]]);var n=m.getWordValidElements(r),i=S({valid_elements:n,valid_children:"-li[p]"});y.each(i.elements,function(t){t.attributes["class"]||(t.attributes["class"]={},t.attributesOrder.push(&q
 uot;class")),t.attributes.style||(t.attributes.style={},t.attributesOrder.push("style"))});var a=C({},i);a.addAttributeFilter("style",function(t){for(var e,n=t.length;n--;)(e=t[n]).attr("style",I(r,o,e,e.attr("style"))),"span"===e.name&&e.parent&&!e.attributes.length&&e.unwrap()}),a.addAttributeFilter("class",function(t){for(var e,n,r=t.length;r--;)n=(e=t[r]).attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&e.remove(),e.attr("class",null)}),a.addNodeFilter("del",function(t){for(var e=t.length;e--;)t[e].remove()}),a.addNodeFilter("a",function(t){for(var e,n,r,o=t.length;o--;)if(n=(e=t[o]).attr("href"),r=e.attr("name"),n&&-1!==n.indexOf("#_msocom_"))e.remove();else if(n&&0===n.indexOf("file://")&&(n=n.split("#")[1])&&(n="#"+n),n||r){if(r
 &&!/^_?(?:toc|edn|ftn)/i.test(r)){e.unwrap();continue}e.attr({href:n,name:r})}else e.unwrap()});var s=a.parse(t);return m.shouldConvertWordFakeLists(r)&&A(s),t=O({validate:r.settings.validate},i).serialize(s)}(t,e):e},isWordContent:function(t){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(t)||/class="OutlineElement/.test(t)||/id="?docs\-internal\-guid\-/.test(t)}},$=function(t,e){return{content:t,cancelled:e}},W=function(t,e,n,r){var o,i,a,s,u,l,c=f(t,e,n,r);return t.hasEventListeners("PastePostProcess")&&!c.isDefaultPrevented()?(o=t,i=c.content,a=n,s=r,u=o.dom.create("div",{style:"display:none"},i),l=d(o,u,a,s),$(l.node.innerHTML,l.isDefaultPrevented())):$(c.content,c.isDefaultPrevented())},z=function(t,e,n){var r=N.isWordContent(e),o=r?N.preProcess(t,e):e;return W(t,o,n,r)},U=function(t,e){var n,r;return t.insertContent((n=e,r=t
 .dom.create("body",{},n),y.each(r.querySelectorAll("meta"),function(t){return t.parentNode.removeChild(t)}),r.innerHTML),{merge:m.shouldMergeFormats(t),paste:!0}),!0},V=function(t){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(t)},q=function(t){return V(t)&&/.(gif|jpe?g|png)$/.test(t)},K=function(t,e,n){return!(!1!==t.selection.isCollapsed()||!V(e)||(o=e,i=n,(r=t).undoManager.extra(function(){i(r,o)},function(){r.execCommand("mceInsertLink",!1,o)}),0));var r,o,i},G=function(t,e,n){return!!q(e)&&(o=e,i=n,(r=t).undoManager.extra(function(){i(r,o)},function(){r.insertContent('<img src="'+o+'">')}),!0);var r,o,i},X=function(t,e){var n,r;!1===m.isSmartPasteEnabled(t)?U(t,e):(n=t,r=e,y.each([K,G,U],function(t){return!0!==t(n,r,U)}))},Y=function(t){return function(){return t}},Z=Y(!1),J=Y(!0),Q=Z,tt=J,et=function(){return nt},nt=(j={fold:function(t,e){return t()},is:Q,isSome:Q,isNone:tt,getOr:H=function(t){return t},getOrTh
 unk:B=function(t){return t()},getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:H,orThunk:B,map:et,ap:et,each:function(){},bind:et,flatten:et,exists:Q,forall:tt,filter:et,equals:M=function(t){return t.isNone()},equals_:M,toArray:function(){return[]},toString:Y("none()")},Object.freeze&&Object.freeze(j),j),rt=function(n){var t=function(){return n},e=function(){return o},r=function(t){return t(n)},o={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:tt,isNone:Q,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:e,orThunk:e,map:function(t){return rt(t(n))},ap:function(t){return t.fold(et,function(t){return rt(t(n))})},each:function(t){t(n)},bind:r,flatten:t,exists:r,forall:r,filter:function(t){return t(n)?o:nt},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(Q,function(t){return e(n,t)})},toArray:fun
 ction(){return[n]},toString:function(){return"some("+n+")"}};return o},ot={some:rt,none:et,from:function(t){return null===t||t===undefined?nt:rt(t)}},it=(L="function",function(t){return function(t){if(null===t)return"null";var e=typeof t;return"object"===e&&Array.prototype.isPrototypeOf(t)?"array":"object"===e&&String.prototype.isPrototypeOf(t)?"string":e}(t)===L}),at=function(t,e){for(var n=t.length,r=new Array(n),o=0;o<n;o++){var i=t[o];r[o]=e(i,o,t)}return r},st=function(t,e){for(var n=0,r=t.length;n<r;n++)e(t[n],n,t)},ut=Array.prototype.slice,lt=it(Array.from)?Array.from:function(t){return ut.call(t)},ct=function(t){var n=ot.none(),e=[],r=function(t){o()?a(t):e.push(t)},o=function(){return n.isSome()},i=function(t){st(t,a)},a=function(e){n.each(function(t){setTimeout(function(){e(t)},0)})};return t(function(t){n=ot.some(t),i(e),e=[]}),{get:r,map:function(n){return ct(function(e)
 {r(function(t){e(n(t))})})},isReady:o}},ft={nu:ct,pure:function(e){return ct(function(t){t(e)})}},dt=function(e){var t=function(t){var r;e((r=t,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=this;setTimeout(function(){r.apply(n,t)},0)}))},n=function(){return ft.nu(t)};return{map:function(r){return dt(function(n){t(function(t){var e=r(t);n(e)})})},bind:function(n){return dt(function(e){t(function(t){n(t).get(e)})})},anonBind:function(n){return dt(function(e){t(function(t){n.get(e)})})},toLazy:n,toCached:function(){var e=null;return dt(function(t){null===e&&(e=n()),e.get(t)})},get:t}},mt={nu:dt,pure:function(e){return dt(function(t){t(e)})}},gt=function(a,t){return t(function(r){var o=[],i=0;0===a.length?r([]):st(a,function(t,e){var n;t.get((n=e,function(t){o[n]=t,++i>=a.length&&r(o)}))})})},pt=function(t,e){var n=at(t,e);return gt(n,mt.nu)},vt=function(t,e,n){var r=n||b(e),o=z(t,p(e),r);!1===o.cancelled&&X(t,o.content)},ht=fun
 ction(t,e){e=t.dom.encode(e).replace(/\r\n/g,"\n"),e=T(e,t.settings.forced_root_block,t.settings.forced_root_block_attrs),vt(t,e,!1)},yt=function(t){var e={};if(t){if(t.getData){var n=t.getData("Text");n&&0<n.length&&-1===n.indexOf("data:text/mce-internal,")&&(e["text/plain"]=n)}if(t.types)for(var r=0;r<t.types.length;r++){var o=t.types[r];try{e[o]=t.getData(o)}catch(i){e[o]=""}}}return e},bt=function(t,e){return e in t&&0<t[e].length},xt=function(t){return bt(t,"text/html")||bt(t,"text/plain")},Pt=F.createIdGenerator("mceclip"),wt=function(e,t,n){var r,o,i,a,s="paste"===t.type?t.clipboardData:t.dataTransfer;if(e.settings.paste_data_images&&s){var u=(i=(o=s).items?at(lt(o.items),function(t){return t.getAsFile()}):[],a=o.files?lt(o.files):[],function(t,e){for(var n=[],r=0,o=t.length;r<o;r++){var i=t[r];e(i,r,t)&&n.push(i)}return n}(0&lt
 ;i.length?i:a,function(t){return/^image\/(jpeg|png|gif|bmp)$/.test(t.type)}));if(0<u.length)return t.preventDefault(),(r=u,pt(r,function(r){return mt.nu(function(t){var e=r.getAsFile?r.getAsFile():r,n=new window.FileReader;n.onload=function(){t({blob:e,uri:n.result})},n.readAsDataURL(e)})})).get(function(t){n&&e.selection.setRng(n),st(t,function(t){!function(t,e){var n,r,o,i,a,s,u,l=(n=e.uri,-1!==(r=n.indexOf(","))?n.substr(r+1):null),c=Pt(),f=t.settings.images_reuse_filename&&e.blob.name?(o=t,i=e.blob.name,(a=i.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i))?o.dom.encode(a[1]):null):c,d=new Image;if(d.src=e.uri,s=t.settings,u=d,!s.images_dataimg_filter||s.images_dataimg_filter(u)){var m,g=t.editorUpload.blobCache,p=void 0;(m=g.findFirst(function(t){return t.base64()===l}))?p=m:(p=g.create(c,e.blob,l,f),g.add(p)),vt(t,'<img src="'+p.blobUri()+'">',!1)}else vt(t,'<img src="'+e.uri+'">',!1)}(e,t)})}),!0}return!1},_t=function(t)
 {return o.metaKeyPressed(t)&&86===t.keyCode||t.shiftKey&&45===t.keyCode},Dt=function(c,f,d){var m,g=0;function p(t,e,n,r){var o,i;bt(t,"text/html")?o=t["text/html"]:(o=f.getHtml(),r=r||b(o),f.isDefaultContent(o)&&(n=!0)),o=F.trimHtml(o),f.remove(),i=!1===r&&D(o),o.length&&!i||(n=!0),n&&(o=bt(t,"text/plain")&&i?t["text/plain"]:F.innerText(o)),f.isDefaultContent(o)?e||c.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."):n?ht(c,o):vt(c,o,r)}c.on("keydown",function(t){function e(t){_t(t)&&!t.isDefaultPrevented()&&f.remove()}if(_t(t)&&!t.isDefaultPrevented()){if((m=t.shiftKey&&86===t.keyCode)&&v.webkit&&-1!==navigator.userAgent.indexOf("Version/"))return;if(t.stopImmediatePropagation(),g=(new Date).getTime(),v.ie&&m)return t.preventDefault(),void n(c,!0);f.remove(),f.create()
 ,c.once("keyup",e),c.once("paste",function(){c.off("keyup",e)})}}),c.on("paste",function(t){var e,n,r,o=(new Date).getTime(),i=(e=c,n=yt(t.clipboardData||e.getDoc().dataTransfer),F.isMsEdge()?y.extend(n,{"text/html":""}):n),a=(new Date).getTime()-o,s=(new Date).getTime()-g-a<1e3,u="text"===d.get()||m,l=bt(i,x());m=!1,t.isDefaultPrevented()||(r=t.clipboardData,-1!==navigator.userAgent.indexOf("Android")&&r&&r.items&&0===r.items.length)?f.remove():xt(i)||!wt(c,t,f.getLastRng()||c.selection.getRng())?(s||t.preventDefault(),!v.ie||s&&!t.ieFake||bt(i,"text/html")||(f.create(),c.dom.bind(f.getEl(),"paste",function(t){t.stopPropagation()}),c.getDoc().execCommand("Paste",!1,null),i["text/html"]=f.getHtml()),bt(i,"text/html")?(t.preventDefault(),l||(l=b(i["text/html"])),p(i,s,u,l)):h.setEditorTimeout(c,function(){p(i,s,
 u,l)},0)):f.remove()})},Tt=function(t){return v.ie&&t.inline?document.body:t.getBody()},Ct=function(e,t,n){var r;Tt(r=e)!==r.getBody()&&e.dom.bind(t,"paste keyup",function(t){Ot(e,n)||e.fire("paste")})},kt=function(t){return t.dom.get("mcepastebin")},St=function(t,e){return e===t},Ot=function(t,e){var n,r=kt(t);return(n=r)&&"mcepastebin"===n.id&&St(e,r.innerHTML)},Rt=function(a){var s=l(null),u="%MCEPASTEBIN%";return{create:function(){return e=s,n=u,o=(t=a).dom,i=t.getBody(),e.set(t.selection.getRng()),r=t.dom.add(Tt(t),"div",{id:"mcepastebin","class":"mce-pastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0"},n),(v.ie||v.gecko)&&o.setStyle(r,"left","rtl"===o.getStyle(i,"direction",!0)?65535:-65535),o.bind(r,
 "beforedeactivate focusin focusout",function(t){t.stopPropagation()}),Ct(t,r,n),r.focus(),void t.selection.select(r,!0);var t,e,n,r,o,i},remove:function(){return function(t,e){if(kt(t)){for(var n=void 0,r=e.get();n=t.dom.get("mcepastebin");)t.dom.remove(n),t.dom.unbind(n);r&&t.selection.setRng(r)}e.set(null)}(a,s)},getEl:function(){return kt(a)},getHtml:function(){return function(n){var e,t,r,o,i,a=function(t,e){t.appendChild(e),n.dom.remove(e,!0)};for(t=y.grep(Tt(n).childNodes,function(t){return"mcepastebin"===t.id}),e=t.shift(),y.each(t,function(t){a(e,t)}),r=(o=n.dom.select("div[id=mcepastebin]",e)).length-1;0<=r;r--)i=n.dom.create("div"),e.insertBefore(i,o[r]),a(i,o[r]);return e?e.innerHTML:""}(a)},getLastRng:function(){return s.get()},isDefault:function(){return Ot(a,u)},isDefaultContent:function(t){return St(u,t)}}},Ft=function(n,t){var e=Rt(n);return n.on("preInit",function(){return Dt(a=n,e,t),v
 oid a.parser.addNodeFilter("img",function(t,e,n){var r,o=function(t){t.attr("data-mce-object")||s===v.transparentSrc||t.remove()};if(!a.settings.paste_data_images&&(r=n).data&&!0===r.data.paste)for(var i=t.length;i--;)(s=t[i].attributes.map.src)&&(0===s.indexOf("webkit-fake-url")?o(t[i]):a.settings.allow_html_data_urls||0!==s.indexOf("data:")||o(t[i]))});var a,s}),{pasteFormat:t,pasteHtml:function(t,e){return vt(n,t,e)},pasteText:function(t){return ht(n,t)},pasteImageData:function(t,e){return wt(n,t,e)},getDataTransferItems:yt,hasHtmlOrText:xt,hasContentType:bt}},Et=function(){},At=function(t,e,n){if(r=t,!1!==v.iOS||r===undefined||"function"!=typeof r.setData||!0===F.isMsEdge())return!1;try{return t.clearData(),t.setData("text/html",e),t.setData("text/plain",n),t.setData(x(),e),!0}catch(o){return!1}var r},It=function(t,e,n,r){At(t.clipboardData,e.html,e.text)?(t.preventDefault(),r()):n(e.ht
 ml,r)},Mt=function(s){return function(t,e){var n=g(t),r=s.dom.create("div",{contenteditable:"false","data-mce-bogus":"all"}),o=s.dom.create("div",{contenteditable:"true"},n);s.dom.setStyles(r,{position:"fixed",top:"0",left:"-3000px",width:"1000px",overflow:"hidden"}),r.appendChild(o),s.dom.add(s.getBody(),r);var i=s.selection.getRng();o.focus();var a=s.dom.createRng();a.selectNodeContents(o),s.selection.setRng(a),setTimeout(function(){s.selection.setRng(i),r.parentNode.removeChild(r),e()},0)}},Bt=function(t){return{html:t.selection.getContent({contextual:!0}),text:t.selection.getContent({format:"text"})}},Ht=function(t){return!t.selection.isCollapsed()||!!(e=t).dom.getParent(e.selection.getStart(),"td[data-mce-selected],th[data-mce-selected]",e.getBody());var e},jt=function(t){var e,n;t.on("cut",(e=t,function(t){Ht(e)&&It(t,Bt(e),Mt(e),f
 unction(){setTimeout(function(){e.execCommand("Delete")},0)})})),t.on("copy",(n=t,function(t){Ht(n)&&It(t,Bt(n),Mt(n),Et)}))},Lt=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),Nt=function(t,e){return Lt.getCaretRangeFromPoint(e.clientX,e.clientY,t.getDoc())},$t=function(t,e){t.focus(),t.selection.setRng(e)},Wt=function(a,s,u){m.shouldBlockDrop(a)&&a.on("dragend dragover draggesture dragdrop drop drag",function(t){t.preventDefault(),t.stopPropagation()}),m.shouldPasteDataImages(a)||a.on("drop",function(t){var e=t.dataTransfer;e&&e.files&&0<e.files.length&&t.preventDefault()}),a.on("drop",function(t){var e,n;if(n=Nt(a,t),!t.isDefaultPrevented()&&!u.get()){e=s.getDataTransferItems(t.dataTransfer);var r,o=s.hasContentType(e,x());if((s.hasHtmlOrText(e)&&(!(r=e["text/plain"])||0!==r.indexOf("file://"))||!s.pasteImageData(t,n))&&n&&amp
 ;m.shouldFilterDrop(a)){var i=e["mce-internal"]||e["text/html"]||e["text/plain"];i&&(t.preventDefault(),h.setEditorTimeout(a,function(){a.undoManager.transact(function(){e["mce-internal"]&&a.execCommand("Delete"),$t(a,n),i=F.trimHtml(i),e["text/html"]?s.pasteHtml(i,o):s.pasteText(i)})}))}}}),a.on("dragstart",function(t){u.set(!0)}),a.on("dragover dragend",function(t){m.shouldPasteDataImages(a)&&!1===u.get()&&(t.preventDefault(),$t(a,Nt(a,t))),"dragend"===t.type&&u.set(!1)})},zt=function(t){var e=t.plugins.paste,n=m.getPreProcess(t);n&&t.on("PastePreProcess",function(t){n.call(e,e,t)});var r=m.getPostProcess(t);r&&t.on("PastePostProcess",function(t){r.call(e,e,t)})};function Ut(e,n){e.on("PastePreProcess",function(t){t.content=n(e,t.content,t.internal,t.wordContent)})}function Vt(t,e){if(!N.isWordContent(e))ret
 urn e;var n=[];y.each(t.schema.getBlockElements(),function(t,e){n.push(e)});var r=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+n.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return e=F.filter(e,[[r,"$1"]]),e=F.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function qt(t,e,n,r){if(r||n)return e;var l,o=m.getWebkitStyles(t);if(!1===m.shouldRemoveWebKitStyles(t)||"all"===o)return e;if(o&&(l=o.split(/[, ]/)),l){var c=t.dom,f=t.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(t,e,n,r){var o=c.parseStyle(c.decode(n)),i={};if("none"===l)return e+r;for(var a=0;a<l.length;a++){var s=o[l[a]],u=c.getStyle(f,l[a],!0);/color/.test(l[a])&&(s=c.toHex(s),u=c.toHex(u)),u!==s&&(i[l[a]]=s)
 }return(i=c.serializeStyle(i,"span"))?e+' style="'+i+'"'+r:e+r})}else e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(t,e,n,r){return e+' style="'+n+'"'+r})}function Kt(n,t){n.$("a",t).find("font,u").each(function(t,e){n.dom.remove(e,!0)})}var Gt=function(t){var e,n;v.webkit&&Ut(t,qt),v.ie&&(Ut(t,Vt),n=Kt,(e=t).on("PastePostProcess",function(t){n(e,t.node)}))},Xt=function(t,e,n){var r=n.control;r.active("text"===e.pasteFormat.get()),t.on("PastePlainTextToggle",function(t){r.active(t.state)})},Yt=function(t,e){var n=function(r){for(var o=[],t=1;t<arguments.length;t++)o[t-1]=arguments[t];return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=o.concat(t);return r.apply(null,n)}}(Xt,t,e);t.addButton("pastetext&
 quot;,{active:!1,icon:"pastetext",tooltip:"Paste as text",cmd:"mceTogglePlainTextPaste",onPostRender:n}),t.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:e.pasteFormat,cmd:"mceTogglePlainTextPaste",onPostRender:n})};e.add("paste",function(t){if(!1===a(t)){var e=l(!1),n=l(!1),r=l(m.isPasteAsTextEnabled(t)?"text":"html"),o=Ft(t,r),i=Gt(t);return Yt(t,o),c(t,o,e),zt(t),jt(t),Wt(t,o,n),s(o,i)}})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(v){"use strict";var l=function(t){var e=t,n=function(){return e};return{get:n,set:function(t){e=t},clone:function(){return l(n())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(t){return!(!/(^|[ ,])powerpaste([, ]|$)/.test(t.settings.plugins)||!e.get("powerpaste")||("undefined"!=typeof v.window.console&&v.window.console.log&&v.window.console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option."),0))},s=function(t,e){return{clipboard:t,quirks:e}},f=function(t,e,n,r){return t.fire("PastePreProcess",{content:e,internal:n,wordContent:r})},d=function(t,e,n,r){return t.fire("PastePostProcess",{node:e,internal:n,wordContent:r})},u=function(t,e){return t.fire("PastePlainTextToggle",{state:e})},n=function(t,e){return t.fire("pa
 ste",{ieFake:e})},m={shouldPlainTextInform:function(t){return t.getParam("paste_plaintext_inform",!0)},shouldBlockDrop:function(t){return t.getParam("paste_block_drop",!1)},shouldPasteDataImages:function(t){return t.getParam("paste_data_images",!1)},shouldFilterDrop:function(t){return t.getParam("paste_filter_drop",!0)},getPreProcess:function(t){return t.getParam("paste_preprocess")},getPostProcess:function(t){return t.getParam("paste_postprocess")},getWebkitStyles:function(t){return t.getParam("paste_webkit_styles")},shouldRemoveWebKitStyles:function(t){return t.getParam("paste_remove_styles_if_webkit",!0)},shouldMergeFormats:function(t){return t.getParam("paste_merge_formats",!0)},isSmartPasteEnabled:function(t){return t.getParam("smart_paste",!0)},isPasteAsTextEnabled:function(t){return t.getParam("paste_as_text",!1)},getRetainStyleProps:function(t){return t.getParam
 ("paste_retain_style_properties")},getWordValidElements:function(t){return t.getParam("paste_word_valid_elements","-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody")},shouldConvertWordFakeLists:function(t){return t.getParam("paste_convert_word_fake_lists",!0)},shouldUseDefaultFilters:function(t){return t.getParam("paste_enable_default_filters",!0)}},r=function(t,e,n){var r,o,i;"text"===e.pasteFormat.get()?(e.pasteFormat.set("html"),u(t,!1)):(e.pasteFormat.set("text"),u(t,!0),i=t,!1===n.get()&&m.shouldPlainTextInform(i)&&(o="Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.",(r=t).notificationManager.open({text:r.translate(o),type:"info"}),n.set(!0))),t.focus()},c=functi
 on(t,n,e){t.addCommand("mceTogglePlainTextPaste",function(){r(t,n,e)}),t.addCommand("mceInsertClipboardContent",function(t,e){e.content&&n.pasteHtml(e.content,e.internal),e.text&&n.pasteText(e.text)})},h=tinymce.util.Tools.resolve("tinymce.Env"),y=tinymce.util.Tools.resolve("tinymce.util.Delay"),b=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=tinymce.util.Tools.resolve("tinymce.util.VK"),t="x-tinymce/html",i="\x3c!-- "+t+" --\x3e",g=function(t){return i+t},p=function(t){return t.replace(i,"")},x=function(t){return-1!==t.indexOf(i)},P=function(){return t},w=tinymce.util.Tools.resolve("tinymce.html.Entities"),_=function(t){return t.replace(/\r?\n/g,"<br>")},D=function(t,e,n){var r=t.split(/\n\n/),o=function(t,e){var n,r=[],o="<"+t;if("object"==typeof e){for(n in e)e.hasOwnProperty(n)&&r.push(n+'="'+w.enco
 deAllRaw(e[n])+'"');r.length&&(o+=" "+r.join(" "))}return o+">"}(e,n),i="</"+e+">",a=b.map(r,function(t){return t.split(/\n/).join("<br />")});return 1===a.length?a[0]:b.map(a,function(t){return o+t+i}).join("")},T=function(t){return!/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(t)},C=function(t,e,n){return e?D(t,e,n):_(t)},k=tinymce.util.Tools.resolve("tinymce.html.DomParser"),S=tinymce.util.Tools.resolve("tinymce.html.Node"),O=tinymce.util.Tools.resolve("tinymce.html.Schema"),R=tinymce.util.Tools.resolve("tinymce.html.Serializer");function F(e,t){return b.each(t,function(t){e=t.constructor===RegExp?e.replace(t,""):e.replace(t[0],t[1])}),e}var E={filter:F,innerText:function(e){var n=O(),r=k({},n),o="",i=n.getShortEndedElements(),a=b.make
 Map("script noscript style textarea video audio iframe object"," "),s=n.getBlockElements();return e=F(e,[/<!\[[^\]]+\]>/g]),function t(e){var n=e.name,r=e;if("br"!==n){if("wbr"!==n)if(i[n]&&(o+=" "),a[n])o+=" ";else{if(3===e.type&&(o+=e.value),!e.shortEnded&&(e=e.firstChild))for(;t(e),e=e.next;);s[n]&&r.next&&(o+="\n","p"===n&&(o+="\n"))}}else o+="\n"}(r.parse(e)),o},trimHtml:function(t){return t=F(t,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,function(t,e,n){return e||n?"\xa0":" "}],/<br class="Apple-interchange-newline">/g,/<br>$/i])},createIdGenerator:function(t){var e=0;return function(){return t+e++}},isMsEdge:function(){
 return-1!==v.navigator.userAgent.indexOf(" Edge/")}};function A(e){var n,t;return t=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],e=e.replace(/^[\u00a0 ]+/,""),b.each(t,function(t){if(t.test(e))return!(n=!0)}),n}function I(t){var i,a,s=1;function n(t){var e="";if(3===t.type)return t.value;if(t=t.firstChild)for(;e+=n(t),t=t.next;);return e}function u(t,e){if(3===t.type&&e.test(t.value))return t.value=t.value.replace(e,""),!1;if(t=t.firstChild)do{if(!u(t,e))return!1}while(t=t.next);return!0}function e(e,n,r){var o=e._listLevel||s;o!==s&&(o<s?i&&(i=i.parent.parent):(a=i,i=null)),i&&i.name===n?i.append(e):(a=a||i,i=new S(n,1),1<r&&i.attr("start",&q
 uot;"+r),e.wrap(i)),e.name="li",s<o&&a&&a.lastChild.append(i),s=o,function t(e){if(e._listIgnore)e.remove();else if(e=e.firstChild)for(;t(e),e=e.next;);}(e),u(e,/^\u00a0+/),u(e,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),u(e,/^\u00a0+/)}for(var r=[],o=t.firstChild;null!=o;)if(r.push(o),null!==(o=o.walk()))for(;void 0!==o&&o.parent!==t;)o=o.walk();for(var l=0;l<r.length;l++)if("p"===(t=r[l]).name&&t.firstChild){var c=n(t);if(/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(c)){e(t,"ul");continue}if(A(c)){var f=/([0-9]+)\./.exec(c),d=1;f&&(d=parseInt(f[1],10)),e(t,"ol",d);continue}if(t._listLevel){e(t,"ul",1);continue}i=null}else a=i,i=null}function M(n,r,o,i){var a,s={},t=n.dom.parseStyle(i);return b.each(t,function(t,e){switch(e){case"mso-list":(a=/\w+ \w+([0-9]+)/i.exec(i))&&(o._listLevel=parseInt(a[1],10)),/Ignore/i.test(t)&&o.firstChild&&(o._listIgn
 ore=!0,o.firstChild._listIgnore=!0);break;case"horiz-align":e="text-align";break;case"vert-align":e="vertical-align";break;case"font-color":case"mso-foreground":e="color";break;case"mso-background":case"mso-highlight":e="background";break;case"font-weight":case"font-style":return void("normal"!==t&&(s[e]=t));case"mso-element":if(/^(comment|comment-list)$/i.test(t))return void o.remove()}0!==e.indexOf("mso-comment")?0!==e.indexOf("mso-")&&("all"===m.getRetainStyleProps(n)||r&&r[e])&&(s[e]=t):o.remove()}),/(bold)/i.test(s["font-weight"])&&(delete s["font-weight"],o.wrap(new S("b",1))),/(italic)/i.test(s["font-style"])&&(delete s["font-style"],o.wrap(new S("i",1))),(s=n.dom.serializeStyle(s,o.name))||null}var B,H
 ,j,L,N,$={preProcess:function(t,e){return m.shouldUseDefaultFilters(t)?function(r,t){var e,o;(e=m.getRetainStyleProps(r))&&(o=b.makeMap(e.split(/[, ]/))),t=E.filter(t,[/<br class="?Apple-interchange-newline"?>/gi,/<b[^>]+id="?docs-internal-[^>]*>/gi,/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(t,e){return 0<e.length?e.replace(/./," ").slice(Math.floor(e.length/2)).split("").join("\xa0"):""}]]);var n=m.getWordValidElements(r),i=O({valid_elements:n,valid_children:"-li[p]"});b.each(i.elements,function(t){t.attributes["class"]||(t.attributes["class"]={},t.attributesOrde
 r.push("class")),t.attributes.style||(t.attributes.style={},t.attributesOrder.push("style"))});var a=k({},i);a.addAttributeFilter("style",function(t){for(var e,n=t.length;n--;)(e=t[n]).attr("style",M(r,o,e,e.attr("style"))),"span"===e.name&&e.parent&&!e.attributes.length&&e.unwrap()}),a.addAttributeFilter("class",function(t){for(var e,n,r=t.length;r--;)n=(e=t[r]).attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&e.remove(),e.attr("class",null)}),a.addNodeFilter("del",function(t){for(var e=t.length;e--;)t[e].remove()}),a.addNodeFilter("a",function(t){for(var e,n,r,o=t.length;o--;)if(n=(e=t[o]).attr("href"),r=e.attr("name"),n&&-1!==n.indexOf("#_msocom_"))e.remove();else if(n&&0===n.indexOf("file://")&&(n=n.split("#")[1])&&(n="#"+n),n
 ||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){e.unwrap();continue}e.attr({href:n,name:r})}else e.unwrap()});var s=a.parse(t);return m.shouldConvertWordFakeLists(r)&&I(s),t=R({validate:r.settings.validate},i).serialize(s)}(t,e):e},isWordContent:function(t){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(t)||/class="OutlineElement/.test(t)||/id="?docs\-internal\-guid\-/.test(t)}},W=function(t,e){return{content:t,cancelled:e}},z=function(t,e,n,r){var o,i,a,s,u,l,c=f(t,e,n,r);return t.hasEventListeners("PastePostProcess")&&!c.isDefaultPrevented()?(o=t,i=c.content,a=n,s=r,u=o.dom.create("div",{style:"display:none"},i),l=d(o,u,a,s),W(l.node.innerHTML,l.isDefaultPrevented())):W(c.content,c.isDefaultPrevented())},U=function(t,e,n){var r=$.isWordContent(e),o=r?$.preProcess(t,e):e;return z(t,o,n,r)},V=function(t,e){var n,r;return t.insertContent
 ((n=e,r=t.dom.create("body",{},n),b.each(r.querySelectorAll("meta"),function(t){return t.parentNode.removeChild(t)}),r.innerHTML),{merge:m.shouldMergeFormats(t),paste:!0}),!0},q=function(t){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(t)},K=function(t){return q(t)&&/.(gif|jpe?g|png)$/.test(t)},G=function(t,e,n){return!(!1!==t.selection.isCollapsed()||!q(e)||(o=e,i=n,(r=t).undoManager.extra(function(){i(r,o)},function(){r.execCommand("mceInsertLink",!1,o)}),0));var r,o,i},X=function(t,e,n){return!!K(e)&&(o=e,i=n,(r=t).undoManager.extra(function(){i(r,o)},function(){r.insertContent('<img src="'+o+'">')}),!0);var r,o,i},Y=function(t,e){var n,r;!1===m.isSmartPasteEnabled(t)?V(t,e):(n=t,r=e,b.each([G,X,V],function(t){return!0!==t(n,r,V)}))},Z=function(t){return function(){return t}},J=Z(!1),Q=Z(!0),tt=J,et=Q,nt=function(){return rt},rt=(L={fold:function(t,e){return t()},is:tt,isSome:tt,isNone:et,getOr:j=function(t){retur
 n t},getOrThunk:H=function(t){return t()},getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:j,orThunk:H,map:nt,ap:nt,each:function(){},bind:nt,flatten:nt,exists:tt,forall:et,filter:nt,equals:B=function(t){return t.isNone()},equals_:B,toArray:function(){return[]},toString:Z("none()")},Object.freeze&&Object.freeze(L),L),ot=function(n){var t=function(){return n},e=function(){return o},r=function(t){return t(n)},o={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:et,isNone:tt,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:e,orThunk:e,map:function(t){return ot(t(n))},ap:function(t){return t.fold(nt,function(t){return ot(t(n))})},each:function(t){t(n)},bind:r,flatten:t,exists:r,forall:r,filter:function(t){return t(n)?o:rt},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(tt,function(t){return e(n,t)
 })},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},it={some:ot,none:nt,from:function(t){return null===t||t===undefined?rt:ot(t)}},at=(N="function",function(t){return function(t){if(null===t)return"null";var e=typeof t;return"object"===e&&Array.prototype.isPrototypeOf(t)?"array":"object"===e&&String.prototype.isPrototypeOf(t)?"string":e}(t)===N}),st=function(t,e){for(var n=t.length,r=new Array(n),o=0;o<n;o++){var i=t[o];r[o]=e(i,o,t)}return r},ut=function(t,e){for(var n=0,r=t.length;n<r;n++)e(t[n],n,t)},lt=Array.prototype.slice,ct=at(Array.from)?Array.from:function(t){return lt.call(t)},ft=function(t){var n=it.none(),e=[],r=function(t){o()?a(t):e.push(t)},o=function(){return n.isSome()},i=function(t){ut(t,a)},a=function(e){n.each(function(t){v.setTimeout(function(){e(t)},0)})};return t(function(t){n=it.some(t),i(e),e=[]}),{get:r,map:function(n){retu
 rn ft(function(e){r(function(t){e(n(t))})})},isReady:o}},dt={nu:ft,pure:function(e){return ft(function(t){t(e)})}},mt=function(e){var t=function(t){var r;e((r=t,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=this;v.setTimeout(function(){r.apply(n,t)},0)}))},n=function(){return dt.nu(t)};return{map:function(r){return mt(function(n){t(function(t){var e=r(t);n(e)})})},bind:function(n){return mt(function(e){t(function(t){n(t).get(e)})})},anonBind:function(n){return mt(function(e){t(function(t){n.get(e)})})},toLazy:n,toCached:function(){var e=null;return mt(function(t){null===e&&(e=n()),e.get(t)})},get:t}},gt={nu:mt,pure:function(e){return mt(function(t){t(e)})}},pt=function(a,t){return t(function(r){var o=[],i=0;0===a.length?r([]):ut(a,function(t,e){var n;t.get((n=e,function(t){o[n]=t,++i>=a.length&&r(o)}))})})},vt=function(t,e){var n=st(t,e);return pt(n,gt.nu)},ht=function(t,e,n){var r=n||x(e),o=U(t,p(e),r);!1===o.cancelled&&Y(t
 ,o.content)},yt=function(t,e){e=t.dom.encode(e).replace(/\r\n/g,"\n"),e=C(e,t.settings.forced_root_block,t.settings.forced_root_block_attrs),ht(t,e,!1)},bt=function(t){var e={};if(t){if(t.getData){var n=t.getData("Text");n&&0<n.length&&-1===n.indexOf("data:text/mce-internal,")&&(e["text/plain"]=n)}if(t.types)for(var r=0;r<t.types.length;r++){var o=t.types[r];try{e[o]=t.getData(o)}catch(i){e[o]=""}}}return e},xt=function(t,e){return e in t&&0<t[e].length},Pt=function(t){return xt(t,"text/html")||xt(t,"text/plain")},wt=E.createIdGenerator("mceclip"),_t=function(e,t,n){var r,o,i,a,s="paste"===t.type?t.clipboardData:t.dataTransfer;if(e.settings.paste_data_images&&s){var u=(i=(o=s).items?st(ct(o.items),function(t){return t.getAsFile()}):[],a=o.files?ct(o.files):[],function(t,e){for(var n=[],r=0,o=t.length;r<o;r++){var i=t[r];e(i,r,t)&&n.pus
 h(i)}return n}(0<i.length?i:a,function(t){return/^image\/(jpeg|png|gif|bmp)$/.test(t.type)}));if(0<u.length)return t.preventDefault(),(r=u,vt(r,function(r){return gt.nu(function(t){var e=r.getAsFile?r.getAsFile():r,n=new window.FileReader;n.onload=function(){t({blob:e,uri:n.result})},n.readAsDataURL(e)})})).get(function(t){n&&e.selection.setRng(n),ut(t,function(t){!function(t,e){var n,r,o,i,a,s,u,l=(n=e.uri,-1!==(r=n.indexOf(","))?n.substr(r+1):null),c=wt(),f=t.settings.images_reuse_filename&&e.blob.name?(o=t,i=e.blob.name,(a=i.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i))?o.dom.encode(a[1]):null):c,d=new v.Image;if(d.src=e.uri,s=t.settings,u=d,!s.images_dataimg_filter||s.images_dataimg_filter(u)){var m,g=t.editorUpload.blobCache,p=void 0;(m=g.findFirst(function(t){return t.base64()===l}))?p=m:(p=g.create(c,e.blob,l,f),g.add(p)),ht(t,'<img src="'+p.blobUri()+'">',!1)}else ht(t,'<img src="'+e.uri+'">',!1)}(e,t)})}),!0}ret
 urn!1},Dt=function(t){return o.metaKeyPressed(t)&&86===t.keyCode||t.shiftKey&&45===t.keyCode},Tt=function(c,f,d){var m,g=0;function p(t,e,n,r){var o,i;xt(t,"text/html")?o=t["text/html"]:(o=f.getHtml(),r=r||x(o),f.isDefaultContent(o)&&(n=!0)),o=E.trimHtml(o),f.remove(),i=!1===r&&T(o),o.length&&!i||(n=!0),n&&(o=xt(t,"text/plain")&&i?t["text/plain"]:E.innerText(o)),f.isDefaultContent(o)?e||c.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."):n?yt(c,o):ht(c,o,r)}c.on("keydown",function(t){function e(t){Dt(t)&&!t.isDefaultPrevented()&&f.remove()}if(Dt(t)&&!t.isDefaultPrevented()){if((m=t.shiftKey&&86===t.keyCode)&&h.webkit&&-1!==v.navigator.userAgent.indexOf("Version/"))return;if(t.stopImmediatePropagation(),g=(new Date).getTime(),h.ie&&m)return t.preventDefault(),void n(c,!0
 );f.remove(),f.create(),c.once("keyup",e),c.once("paste",function(){c.off("keyup",e)})}}),c.on("paste",function(t){var e,n,r,o=(new Date).getTime(),i=(e=c,n=bt(t.clipboardData||e.getDoc().dataTransfer),E.isMsEdge()?b.extend(n,{"text/html":""}):n),a=(new Date).getTime()-o,s=(new Date).getTime()-g-a<1e3,u="text"===d.get()||m,l=xt(i,P());m=!1,t.isDefaultPrevented()||(r=t.clipboardData,-1!==v.navigator.userAgent.indexOf("Android")&&r&&r.items&&0===r.items.length)?f.remove():Pt(i)||!_t(c,t,f.getLastRng()||c.selection.getRng())?(s||t.preventDefault(),!h.ie||s&&!t.ieFake||xt(i,"text/html")||(f.create(),c.dom.bind(f.getEl(),"paste",function(t){t.stopPropagation()}),c.getDoc().execCommand("Paste",!1,null),i["text/html"]=f.getHtml()),xt(i,"text/html")?(t.preventDefault(),l||(l=x(i["text/html"])),p(i,s,u,l)):y.setEditorTi
 meout(c,function(){p(i,s,u,l)},0)):f.remove()})},Ct=function(t){return h.ie&&t.inline?v.document.body:t.getBody()},kt=function(e,t,n){var r;Ct(r=e)!==r.getBody()&&e.dom.bind(t,"paste keyup",function(t){Rt(e,n)||e.fire("paste")})},St=function(t){return t.dom.get("mcepastebin")},Ot=function(t,e){return e===t},Rt=function(t,e){var n,r=St(t);return(n=r)&&"mcepastebin"===n.id&&Ot(e,r.innerHTML)},Ft=function(a){var s=l(null),u="%MCEPASTEBIN%";return{create:function(){return e=s,n=u,o=(t=a).dom,i=t.getBody(),e.set(t.selection.getRng()),r=t.dom.add(Ct(t),"div",{id:"mcepastebin","class":"mce-pastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0"},n),(h.ie||h.gecko)&&o.setStyle(r,"left","rtl"===o.getStyle(i,"direction",
 !0)?65535:-65535),o.bind(r,"beforedeactivate focusin focusout",function(t){t.stopPropagation()}),kt(t,r,n),r.focus(),void t.selection.select(r,!0);var t,e,n,r,o,i},remove:function(){return function(t,e){if(St(t)){for(var n=void 0,r=e.get();n=t.dom.get("mcepastebin");)t.dom.remove(n),t.dom.unbind(n);r&&t.selection.setRng(r)}e.set(null)}(a,s)},getEl:function(){return St(a)},getHtml:function(){return function(n){var e,t,r,o,i,a=function(t,e){t.appendChild(e),n.dom.remove(e,!0)};for(t=b.grep(Ct(n).childNodes,function(t){return"mcepastebin"===t.id}),e=t.shift(),b.each(t,function(t){a(e,t)}),r=(o=n.dom.select("div[id=mcepastebin]",e)).length-1;0<=r;r--)i=n.dom.create("div"),e.insertBefore(i,o[r]),a(i,o[r]);return e?e.innerHTML:""}(a)},getLastRng:function(){return s.get()},isDefault:function(){return Rt(a,u)},isDefaultContent:function(t){return Ot(u,t)}}},Et=function(n,t){var e=Ft(n);return n.on("preInit",func
 tion(){return Tt(a=n,e,t),void a.parser.addNodeFilter("img",function(t,e,n){var r,o=function(t){t.attr("data-mce-object")||s===h.transparentSrc||t.remove()};if(!a.settings.paste_data_images&&(r=n).data&&!0===r.data.paste)for(var i=t.length;i--;)(s=t[i].attributes.map.src)&&(0===s.indexOf("webkit-fake-url")?o(t[i]):a.settings.allow_html_data_urls||0!==s.indexOf("data:")||o(t[i]))});var a,s}),{pasteFormat:t,pasteHtml:function(t,e){return ht(n,t,e)},pasteText:function(t){return yt(n,t)},pasteImageData:function(t,e){return _t(n,t,e)},getDataTransferItems:bt,hasHtmlOrText:Pt,hasContentType:xt}},At=function(){},It=function(t,e,n){if(r=t,!1!==h.iOS||r===undefined||"function"!=typeof r.setData||!0===E.isMsEdge())return!1;try{return t.clearData(),t.setData("text/html",e),t.setData("text/plain",n),t.setData(P(),e),!0}catch(o){return!1}var r},Mt=function(t,e,n,r){It(t.clipboardData,e.html,e.text)?(t.p
 reventDefault(),r()):n(e.html,r)},Bt=function(s){return function(t,e){var n=g(t),r=s.dom.create("div",{contenteditable:"false","data-mce-bogus":"all"}),o=s.dom.create("div",{contenteditable:"true"},n);s.dom.setStyles(r,{position:"fixed",top:"0",left:"-3000px",width:"1000px",overflow:"hidden"}),r.appendChild(o),s.dom.add(s.getBody(),r);var i=s.selection.getRng();o.focus();var a=s.dom.createRng();a.selectNodeContents(o),s.selection.setRng(a),setTimeout(function(){s.selection.setRng(i),r.parentNode.removeChild(r),e()},0)}},Ht=function(t){return{html:t.selection.getContent({contextual:!0}),text:t.selection.getContent({format:"text"})}},jt=function(t){return!t.selection.isCollapsed()||!!(e=t).dom.getParent(e.selection.getStart(),"td[data-mce-selected],th[data-mce-selected]",e.getBody());var e},Lt=function(t){var e,n;t.on("cut",(e=t,function(t){jt(e)&
 amp;&Mt(t,Ht(e),Bt(e),function(){setTimeout(function(){e.execCommand("Delete")},0)})})),t.on("copy",(n=t,function(t){jt(n)&&Mt(t,Ht(n),Bt(n),At)}))},Nt=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),$t=function(t,e){return Nt.getCaretRangeFromPoint(e.clientX,e.clientY,t.getDoc())},Wt=function(t,e){t.focus(),t.selection.setRng(e)},zt=function(a,s,u){m.shouldBlockDrop(a)&&a.on("dragend dragover draggesture dragdrop drop drag",function(t){t.preventDefault(),t.stopPropagation()}),m.shouldPasteDataImages(a)||a.on("drop",function(t){var e=t.dataTransfer;e&&e.files&&0<e.files.length&&t.preventDefault()}),a.on("drop",function(t){var e,n;if(n=$t(a,t),!t.isDefaultPrevented()&&!u.get()){e=s.getDataTransferItems(t.dataTransfer);var r,o=s.hasContentType(e,P());if((s.hasHtmlOrText(e)&&(!(r=e["text/plain"])||0!==r.indexOf("file://"))||!s.pasteImageDat
 a(t,n))&&n&&m.shouldFilterDrop(a)){var i=e["mce-internal"]||e["text/html"]||e["text/plain"];i&&(t.preventDefault(),y.setEditorTimeout(a,function(){a.undoManager.transact(function(){e["mce-internal"]&&a.execCommand("Delete"),Wt(a,n),i=E.trimHtml(i),e["text/html"]?s.pasteHtml(i,o):s.pasteText(i)})}))}}}),a.on("dragstart",function(t){u.set(!0)}),a.on("dragover dragend",function(t){m.shouldPasteDataImages(a)&&!1===u.get()&&(t.preventDefault(),Wt(a,$t(a,t))),"dragend"===t.type&&u.set(!1)})},Ut=function(t){var e=t.plugins.paste,n=m.getPreProcess(t);n&&t.on("PastePreProcess",function(t){n.call(e,e,t)});var r=m.getPostProcess(t);r&&t.on("PastePostProcess",function(t){r.call(e,e,t)})};function Vt(e,n){e.on("PastePreProcess",function(t){t.content=n(e,t.content,t.internal,t.wordContent)})}function qt(t,e)
 {if(!$.isWordContent(e))return e;var n=[];b.each(t.schema.getBlockElements(),function(t,e){n.push(e)});var r=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+n.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return e=E.filter(e,[[r,"$1"]]),e=E.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function Kt(t,e,n,r){if(r||n)return e;var l,o=m.getWebkitStyles(t);if(!1===m.shouldRemoveWebKitStyles(t)||"all"===o)return e;if(o&&(l=o.split(/[, ]/)),l){var c=t.dom,f=t.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(t,e,n,r){var o=c.parseStyle(c.decode(n)),i={};if("none"===l)return e+r;for(var a=0;a<l.length;a++){var s=o[l[a]],u=c.getStyle(f,l[a],!0);/color/.test(l[a])&&(s=c.toHex(s),u=c.toHex(u))
 ,u!==s&&(i[l[a]]=s)}return(i=c.serializeStyle(i,"span"))?e+' style="'+i+'"'+r:e+r})}else e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(t,e,n,r){return e+' style="'+n+'"'+r})}function Gt(n,t){n.$("a",t).find("font,u").each(function(t,e){n.dom.remove(e,!0)})}var Xt=function(t){var e,n;h.webkit&&Vt(t,Kt),h.ie&&(Vt(t,qt),n=Gt,(e=t).on("PastePostProcess",function(t){n(e,t.node)}))},Yt=function(t,e,n){var r=n.control;r.active("text"===e.pasteFormat.get()),t.on("PastePlainTextToggle",function(t){r.active(t.state)})},Zt=function(t,e){var n=function(r){for(var o=[],t=1;t<arguments.length;t++)o[t-1]=arguments[t];return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=o.concat(t);return r.apply(null,n)}}(Yt,t,e);t
 .addButton("pastetext",{active:!1,icon:"pastetext",tooltip:"Paste as text",cmd:"mceTogglePlainTextPaste",onPostRender:n}),t.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:e.pasteFormat,cmd:"mceTogglePlainTextPaste",onPostRender:n})};e.add("paste",function(t){if(!1===a(t)){var e=l(!1),n=l(!1),r=l(m.isPasteAsTextEnabled(t)?"text":"html"),o=Et(t,r),i=Xt(t);return Zt(t,o),c(t,o,e),Ut(t),Lt(t),zt(t,o,n),s(o,i)}})}(window);
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginstabfocuspluginjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js   2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js     2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var tabfocus = (function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var tabfocus = (function (domGlobals) {
</ins><span class="cx" style="display: block; padding: 0 10px">     'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -90,7 +90,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             global$4.setTimeout(function () {
</span><span class="cx" style="display: block; padding: 0 10px">               if (!global$3.webkit) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                window.focus();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                domGlobals.window.focus();
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">               el.focus();
</span><span class="cx" style="display: block; padding: 0 10px">             }, 10);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -120,5 +120,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     return Plugin;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}(window));
</ins><span class="cx" style="display: block; padding: 0 10px"> })();
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcepluginstabfocuspluginminjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js       2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js 2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.EditorManager"),s=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Delay"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=tinymce.util.Tools.resolve("tinymce.util.VK"),d=function(e){return e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))},m=t.DOM,n=function(e){e.keyCode!==f.TAB||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()},i=function(r){function e(n){var i,o,e,l;if(!(n.keyCode!==f.TAB||n.ctrlKey||n.altKey||n.metaKey||n.isDefaultPrevented())&&(1===(e=y.explode(d(r))).length&&(e[1]=e[0],e[0]=":prev"),o=n.shiftKey?&qu
 ot;:prev"===e[0]?u(-1):m.get(e[0]):":next"===e[1]?u(1):m.get(e[1]))){var t=c.get(o.id||o.name);o.id&&t?t.focus():a.setTimeout(function(){s.webkit||window.focus(),o.focus()},10),n.preventDefault()}function u(e){function t(t){return/INPUT|TEXTAREA|BUTTON/.test(t.tagName)&&c.get(n.id)&&-1!==t.tabIndex&&function e(t){return"BODY"===t.nodeName||"hidden"!==t.type&&"none"!==t.style.display&&"hidden"!==t.style.visibility&&e(t.parentNode)}(t)}if(o=m.select(":input:enabled,*[tabindex]:not(iframe)"),y.each(o,function(e,t){if(e.id===r.id)return i=t,!1}),0<e){for(l=i+1;l<o.length;l++)if(t(o[l]))return o[l]}else for(l=i-1;0<=l;l--)if(t(o[l]))return o[l];return null}}r.on("init",function(){r.inline&&m.setAttrib(r.getBody(),"tabIndex",null),r.on("keyup",n),s.gecko?r.on("keypress keydown",e):r.on("keydown",e)})};e.
 add("tabfocus",function(e){i(e)})}();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+!function(c){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),s=tinymce.util.Tools.resolve("tinymce.EditorManager"),a=tinymce.util.Tools.resolve("tinymce.Env"),y=tinymce.util.Tools.resolve("tinymce.util.Delay"),f=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=tinymce.util.Tools.resolve("tinymce.util.VK"),m=function(e){return e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))},v=t.DOM,n=function(e){e.keyCode!==d.TAB||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()},i=function(r){function e(n){var i,o,e,l;if(!(n.keyCode!==d.TAB||n.ctrlKey||n.altKey||n.metaKey||n.isDefaultPrevented())&&(1===(e=f.explode(m(r))).length&&(e[1]=e[0],e[0]=":prev"),o=n.shiftKey?&q
 uot;:prev"===e[0]?u(-1):v.get(e[0]):":next"===e[1]?u(1):v.get(e[1]))){var t=s.get(o.id||o.name);o.id&&t?t.focus():y.setTimeout(function(){a.webkit||c.window.focus(),o.focus()},10),n.preventDefault()}function u(e){function t(t){return/INPUT|TEXTAREA|BUTTON/.test(t.tagName)&&s.get(n.id)&&-1!==t.tabIndex&&function e(t){return"BODY"===t.nodeName||"hidden"!==t.type&&"none"!==t.style.display&&"hidden"!==t.style.visibility&&e(t.parentNode)}(t)}if(o=v.select(":input:enabled,*[tabindex]:not(iframe)"),f.each(o,function(e,t){if(e.id===r.id)return i=t,!1}),0<e){for(l=i+1;l<o.length;l++)if(t(o[l]))return o[l]}else for(l=i-1;0<=l;l--)if(t(o[l]))return o[l];return null}}r.on("init",function(){r.inline&&v.setAttrib(r.getBody(),"tabIndex",null),r.on("keyup",n),a.gecko?r.on("keypress keydown",e):r.on("keydown",e)})}
 ;e.add("tabfocus",function(e){i(e)})}(window);
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymceskinslightgrayskinmincss"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css 2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css   2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1 +1 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#595959;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto
 ;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-statusbar>.mce-container-body{display:flex;padding-right:16px}.mce-statusbar>.mce-container-body .mce-path{flex:1}.mce-wordcount{font-size:inherit;text-transform:uppercase;padding:8px 0}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative;font-size:11px}.mce-fullscreen .mce-resizehandle{display:none}.mce-statusbar .mce-flow-layout-item{margin:0}.mce-charmap{bo
 rder-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:white}.mce-grid td.mce-grid-cell div{border:1px solid #c5c5c5;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#91bbe9}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#91bbe9}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#c5c5c5;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#91bbe9;background:#bdd6f2}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;lin
 e-height:16px;color:#8b8b8b}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-container b{font-weight:bold}.mce-container p{margin-bottom:5px}.mce-container a{cursor:pointer;color:#2276d2}.mce-container a:hover{text-decoration:underline}.mce-container ul{margin-left:15px}.mce-container .mce-table-striped{border-collapse:collapse;margin:10px}.mce-container .mce-table-striped thead>tr{background-color:#fafafa}.mce-container .mce-table-striped thead>tr th{font-weight:bold}.mce-container .mce-table-striped td,.mce-container .mce-table-striped th{padding:5px}.mce-container .mce-table-striped tr:nth-child(even){background-color:#fafafa}.mce-container .mce-table-striped tbody>tr:hover{background-color:#e1e1e1}.mce-branding{font-size:inherit;text-transform:uppercase;white-space:pre;padding:8px 0}.mce-branding a{font-size:inherit;color:inherit}.mce-top-part{position:relative}.mce-top-part::before{content:
 '';position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;right:0;bottom:0;left:0;pointer-events:none}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-rtl .mce-statusbar>.mce-container-body>*:last-child{padding-right:0;padding-left:10px}.mce-rtl .mce-path{text-align:right;padding-right:16px}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-cro
 prect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.5;filter:alpha(opacity=50);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#2276d2}.mce-croprect-handle-move:focus{outline:1px solid #2276d2}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:#c5c5c5;border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bott
 om:-9px;border-top-color:#c5c5c5;border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#fff;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#fff;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:#c5c5c5;border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#fff;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-c
 enter.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:#c5c5c5;border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#fff;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid #c5c5c5;border-left-width:1px}.mce-sidebar-toolbar .mce-btn{border-left:0;border-r
 ight:0}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{background-color:#555c66}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:white;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid #c5c5c5;border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(op
 acity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #f3f3f3;border:0 solid #c5c5c5;background-color:#fff}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;left:0;background:#FFF;border:1px solid #c5c5c5;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px
 ;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#c5c5c5;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-top{margin-top:-10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-top>.mce-arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#c5c5c5;top:auto;bottom:-11px}.mce-floatpanel.mce-popover.mce-top>.mce-arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start,.mce-floatpanel.mce-popover.mce-top.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end,.mce-floatpanel.mce-popover.mce-top.mce-end{
 margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#FFF}#mce-modal-block.mce-in{opacity:.5;filter:alpha(opacity=50);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.m
 ce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#9b9b9b}.mce-close:hover i{color:#bdbdbd}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#e2e4e7}.mce-window .mce-btn:hover{border-color:#c5c5c5}.mce-window .mce-btn:focus{border-color:#2276d2}.mce-window-body .mce-btn,.mce-foot .mce-btn{border-color:#c5c5c5}.mce-foot .mce-btn.mce-primary{border-color:transparent}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:0}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-he
 ad .mce-title{direction:rtl;text-align:right;padding-right:0;padding-left:20px}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1;margin-top:1px}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;bord
 er-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:sol
 id;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#595959}.mce-bar{display:block;width:0;height:100%;background-color:#dfdfdf;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#fff;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#c5c5c5;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0;box-sizing:border-box}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color
 :#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#595959}.mce-notification .mce-progress .mce-bar-container{border-color:#c5c5c5}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#595959}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-prog
 ress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font
 -weight:bold;line-height:20px;color:#9b9b9b;cursor:pointer}.mce-abs-layout{position:relative}html .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b3b3b3;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);background:white;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn:hover,.mce-btn:active{background:white;color:#595959;border-color:#e2e4e7}.mce-btn:focus{background:white;color:#595959;border-color:#e2e4e7}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover,.mce-btn.mce-active:focus,.mce-btn.mce-active:active{-webkit-box-shadow:none;-moz-box-shadow:none;box-
 shadow:none;background:#555c66;color:white;border-color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active:hover button,.mce-btn.mce-active i,.mce-btn.mce-active:hover i{color:white}.mce-btn:hover .mce-caret{border-top-color:#b5bcc2}.mce-btn.mce-active .mce-caret,.mce-btn.mce-active:hover .mce-caret{border-top-color:white}.mce-btn button{padding:4px 6px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#595959;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:white;border:1px solid transparent;border-color:transparent;background-color:#2276d2}.mce-primary:hover,.mce-primary:focus{background-color:#1e6abc;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alp
 ha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#1e6abc;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-primary button,.mce-primary button i{color:white;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #b5bcc2;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px 
 solid #b5bcc2;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-toolbar .mce-btn-group{margin:0;padding:2px 0}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:0;margin-left:2px}.mce-btn-group{margin-left:2px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox
 {margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:white;text-indent:-10em;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#595959;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid #2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#bdbdbd}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#bdbdbd}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:
 0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text,.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu
 -item-link b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-
 overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;bo
 rder-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid black;background:white;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal;font-size:inherit}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#595959;font-size:inherit;text-transform:uppercase}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#555c66;color:white}.mce-path .mce-divider{display:inline;font-size:inherit}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}
 .mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #e2e4e7}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{d
 isplay:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar{border:1px solid #e2e4e7}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar .mce-menubt
 n button span{color:#595959}.mce-menubar .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-active .mce-caret,.mce-menubar .mce-menubtn:hover .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#e2e4e7;background:white;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubar .mce-menubtn.mce-active{border-bottom:none;z-index:65537}div.mce-menubtn.mce-opened{border-bottom-color:white;z-index:65537}div.mce-menubtn.mce-opened.mce-opened-under{z-index:0}.mce-menubtn button{color:#595959}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-rtl .mce-menubtn.mce-fixed-width span{direction:rtl;text-alig
 n:right}.mce-menu-item{display:block;padding:6px 4px 6px 4px;clear:both;font-weight:normal;line-height:20px;color:#595959;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-text,.mce-menu-item .mce-text b{line-height:1;vertical-align:initial}.mce-menu-item .mce-caret{margin-top:4px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #595959}.mce-menu-item .mce-menu-shortcut{display:inline-block;padding:0 10px 0 20px;color:#aaa}.mce-menu-item .mce-ico{padding-right:4px}.mce-menu-item:hover,.mce-menu-item:focus{background:#ededee}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#aaa}.mce-menu-item:hover .mce-text,.mce-menu-item:focus .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item:focus .mce-ico{color:#595959}.mce-menu-item.mce-selected{background:#ededee}.mce-menu-item.mce-selected .mce-text,.mce-menu-item.mce-se
 lected .mce-ico{color:#595959}.mce-menu-item.mce-active.mce-menu-item-normal{background:#555c66}.mce-menu-item.mce-active.mce-menu-item-normal .mce-text,.mce-menu-item.mce-active.mce-menu-item-normal .mce-ico{color:white}.mce-menu-item.mce-active.mce-menu-item-checkbox .mce-ico{visibility:visible}.mce-menu-item.mce-disabled,.mce-menu-item.mce-disabled:hover{background:white}.mce-menu-item.mce-disabled:focus,.mce-menu-item.mce-disabled:hover:focus{background:#ededee}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled:hover .mce-text,.mce-menu-item.mce-disabled .mce-ico,.mce-menu-item.mce-disabled:hover .mce-ico{color:#aaa}.mce-menu-item.mce-menu-item-preview.mce-active{border-left:5px solid #555c66;background:white}.mce-menu-item.mce-menu-item-preview.mce-active .mce-text,.mce-menu-item.mce-menu-item-preview.mce-active .mce-ico{color:#595959}.mce-menu-item.mce-menu-item-preview.mce-active:hover{background:#ededee}.mce-menu-item-link{color:#093;overflow:hidden;text-overf
 low:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:#595959}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px s
 olid #595959;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#595959}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:180px;background:white;border:1px solid #c5c9cf;border:1px solid #e2e4e7;z-index:1002;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);max-height:500px;ov
 erflow:auto;overflow-x:hidden}.mce-menu.mce-animate{opacity:.01;transform:rotateY(10deg) rotateX(-10deg);transform-origin:left top}.mce-menu.mce-menu-align .mce-menu-shortcut,.mce-menu.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block}.mce-menu.mce-in.mce-animate{opacity:1;transform:rotateY(0) rotateX(0);transition:opacity .075s ease,transform .1s ease}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-rtl.mce-menu-align .mce-caret,.mce-rtl .mce-menu-shortcut{right:auto;left:0}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20
 px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#595959}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #c5c5c5;background:#fff;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #c5c5c5;background:#e6e6e6;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{border-color:#2276d2}.mce-spacer{visibility:hidden}.mce-splitbtn:hover .mce-open{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open{border-left:1px solid transparent;padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open:focus{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open:hover,.mce-splitbtn .mce-open:active{border-left:1px solid #e2e4e7}.mce-sp
 litbtn.mce-active:hover .mce-open{border-left:1px solid white}.mce-splitbtn.mce-opened{border-color:#e2e4e7}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#fff;padding:8px 15px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-tab:focus{color:#2276d2}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5
 ;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#595959}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#bdbdbd}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-dropzone{border:3px dashed gray;text-align:center}.mce-dropzone span{text-transform:uppercase;display:inline-block;vertical-align:middle}.mce-dropzone:after{content:"";height:100%;display:inline-block;vertical-align:middle}.mce-dropzone.mce-disabled{opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-dropzone.mce-disabled.mce-dragenter{cursor:not-allowed}.mce-browsebutton{position:re
 lative;overflow:hidden}.mce-browsebutton button{position:relative;z-index:1}.mce-browsebutton input{opacity:0;filter:alpha(opacity=0);zoom:1;position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webk
 it-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#595959}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:bef
 ore{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-prin
 t:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before
 {content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablece
 llprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907
 "}.mce-i-drag:before{content:"\e908"}.mce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961&qu
 ot;}.mce-i-a11y:before{content:"\e900"}.mce-i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-format-painter:before{content:"\e909"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}.mce-rtl .mce-filepicker input{direction:ltr}
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#595959;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;
 -moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-statusbar>.mce-container-body{display:flex;padding-right:16px}.mce-statusbar>.mce-container-body .mce-path{flex:1}.mce-wordcount{font-size:inherit;text-transform:uppercase;padding:8px 0}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative;font-size:11px}.mce-fullscreen .mce-resizehandle{display:none}.mce-statusbar .mce-flow-layout-item{margin:0}.mce-charmap{bor
 der-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:white}.mce-grid td.mce-grid-cell div{border:1px solid #c5c5c5;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#91bbe9}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#91bbe9}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#c5c5c5;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#91bbe9;background:#bdd6f2}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line
 -height:16px;color:#8b8b8b}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-container b{font-weight:bold}.mce-container p{margin-bottom:5px}.mce-container a{cursor:pointer;color:#2276d2}.mce-container a:hover{text-decoration:underline}.mce-container ul{margin-left:15px}.mce-container .mce-table-striped{border-collapse:collapse;margin:10px}.mce-container .mce-table-striped thead>tr{background-color:#fafafa}.mce-container .mce-table-striped thead>tr th{font-weight:bold}.mce-container .mce-table-striped td,.mce-container .mce-table-striped th{padding:5px}.mce-container .mce-table-striped tr:nth-child(even){background-color:#fafafa}.mce-container .mce-table-striped tbody>tr:hover{background-color:#e1e1e1}.mce-branding{font-size:inherit;text-transform:uppercase;white-space:pre;padding:8px 0}.mce-branding a{font-size:inherit;color:inherit}.mce-top-part{position:relative}.mce-top-part::before{content:'
 ';position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;right:0;bottom:0;left:0;pointer-events:none}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-rtl .mce-statusbar>.mce-container-body>*:last-child{padding-right:0;padding-left:10px}.mce-rtl .mce-path{text-align:right;padding-right:16px}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-crop
 rect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.5;filter:alpha(opacity=50);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#2276d2}.mce-croprect-handle-move:focus{outline:1px solid #2276d2}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:#c5c5c5;border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{botto
 m:-9px;border-top-color:#c5c5c5;border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#fff;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#fff;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:#c5c5c5;border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#fff;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-ce
 nter.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:#c5c5c5;border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#fff;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid #c5c5c5;border-left-width:1px}.mce-sidebar-toolbar .mce-btn{border-left:0;border-ri
 ght:0}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{background-color:#555c66}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:white;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid #c5c5c5;border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opa
 city=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #f3f3f3;border:0 solid #c5c5c5;background-color:#fff}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;left:0;background:#FFF;border:1px solid #c5c5c5;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;
 *margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#c5c5c5;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-top{margin-top:-10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-top>.mce-arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#c5c5c5;top:auto;bottom:-11px}.mce-floatpanel.mce-popover.mce-top>.mce-arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start,.mce-floatpanel.mce-popover.mce-top.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end,.mce-floatpanel.mce-popover.mce-top.mce-end{m
 argin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#FFF}#mce-modal-block.mce-in{opacity:.5;filter:alpha(opacity=50);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mc
 e-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#9b9b9b}.mce-close:hover i{color:#bdbdbd}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#e2e4e7}.mce-window .mce-btn:hover{border-color:#c5c5c5}.mce-window .mce-btn:focus{border-color:#2276d2}.mce-window-body .mce-btn,.mce-foot .mce-btn{border-color:#c5c5c5}.mce-foot .mce-btn.mce-primary{border-color:transparent}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:0}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-hea
 d .mce-title{direction:rtl;text-align:right;padding-right:0;padding-left:20px}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1;margin-top:1px}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;borde
 r-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:soli
 d;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#595959}.mce-bar{display:block;width:0;height:100%;background-color:#dfdfdf;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#fff;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#c5c5c5;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0;box-sizing:border-box}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color:
 #faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#595959}.mce-notification .mce-progress .mce-bar-container{border-color:#c5c5c5}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#595959}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progr
 ess .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-
 weight:bold;line-height:20px;color:#9b9b9b;cursor:pointer}.mce-abs-layout{position:relative}html .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b3b3b3;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);background:white;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn:hover,.mce-btn:active{background:white;color:#595959;border-color:#e2e4e7}.mce-btn:focus{background:white;color:#595959;border-color:#e2e4e7}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover,.mce-btn.mce-active:focus,.mce-btn.mce-active:active{-webkit-box-shadow:none;-moz-box-shadow:none;box-s
 hadow:none;background:#555c66;color:white;border-color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active:hover button,.mce-btn.mce-active i,.mce-btn.mce-active:hover i{color:white}.mce-btn:hover .mce-caret{border-top-color:#b5bcc2}.mce-btn.mce-active .mce-caret,.mce-btn.mce-active:hover .mce-caret{border-top-color:white}.mce-btn button{padding:4px 6px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#595959;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:white;border:1px solid transparent;border-color:transparent;background-color:#2276d2}.mce-primary:hover,.mce-primary:focus{background-color:#1e6abc;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alph
 a(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#1e6abc;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-primary button,.mce-primary button i{color:white;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #b5bcc2;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px s
 olid #b5bcc2;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-toolbar .mce-btn-group{margin:0;padding:2px 0}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:0;margin-left:2px}.mce-btn-group{margin-left:2px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{
 margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:white;text-indent:-10em;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#595959;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid #2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#bdbdbd}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#bdbdbd}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0
 ;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text,.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu-
 item-link b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-o
 verlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;bor
 der-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid black;background:white;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal;font-size:inherit}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#595959;font-size:inherit;text-transform:uppercase}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#555c66;color:white}.mce-path .mce-divider{display:inline;font-size:inherit}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.
 mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #e2e4e7}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{di
 splay:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar{border:1px solid #e2e4e7}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar .mce-menubtn
  button span{color:#595959}.mce-menubar .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-active .mce-caret,.mce-menubar .mce-menubtn:hover .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#e2e4e7;background:white;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubar .mce-menubtn.mce-active{border-bottom:none;z-index:65537}div.mce-menubtn.mce-opened{border-bottom-color:white;z-index:65537}div.mce-menubtn.mce-opened.mce-opened-under{z-index:0}.mce-menubtn button{color:#595959}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-rtl .mce-menubtn.mce-fixed-width span{direction:rtl;text-align
 :right}.mce-menu-item{display:block;padding:6px 4px 6px 4px;clear:both;font-weight:normal;line-height:20px;color:#595959;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-text,.mce-menu-item .mce-text b{line-height:1;vertical-align:initial}.mce-menu-item .mce-caret{margin-top:4px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #595959}.mce-menu-item .mce-menu-shortcut{display:inline-block;padding:0 10px 0 20px;color:#aaa}.mce-menu-item .mce-ico{padding-right:4px}.mce-menu-item:hover,.mce-menu-item:focus{background:#ededee}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#aaa}.mce-menu-item:hover .mce-text,.mce-menu-item:focus .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item:focus .mce-ico{color:#595959}.mce-menu-item.mce-selected{background:#ededee}.mce-menu-item.mce-selected .mce-text,.mce-menu-item.mce-sel
 ected .mce-ico{color:#595959}.mce-menu-item.mce-active.mce-menu-item-normal{background:#555c66}.mce-menu-item.mce-active.mce-menu-item-normal .mce-text,.mce-menu-item.mce-active.mce-menu-item-normal .mce-ico{color:white}.mce-menu-item.mce-active.mce-menu-item-checkbox .mce-ico{visibility:visible}.mce-menu-item.mce-disabled,.mce-menu-item.mce-disabled:hover{background:white}.mce-menu-item.mce-disabled:focus,.mce-menu-item.mce-disabled:hover:focus{background:#ededee}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled:hover .mce-text,.mce-menu-item.mce-disabled .mce-ico,.mce-menu-item.mce-disabled:hover .mce-ico{color:#aaa}.mce-menu-item.mce-menu-item-preview.mce-active{border-left:5px solid #555c66;background:white}.mce-menu-item.mce-menu-item-preview.mce-active .mce-text,.mce-menu-item.mce-menu-item-preview.mce-active .mce-ico{color:#595959}.mce-menu-item.mce-menu-item-preview.mce-active:hover{background:#ededee}.mce-menu-item-link{color:#093;overflow:hidden;text-overfl
 ow:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:#595959}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px so
 lid #595959;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#595959}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:180px;background:white;border:1px solid #c5c9cf;border:1px solid #e2e4e7;z-index:1002;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);max-height:500px;ove
 rflow:auto;overflow-x:hidden}.mce-menu.mce-animate{opacity:.01;transform:rotateY(10deg) rotateX(-10deg);transform-origin:left top}.mce-menu.mce-menu-align .mce-menu-shortcut,.mce-menu.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block}.mce-menu.mce-in.mce-animate{opacity:1;transform:rotateY(0) rotateX(0);transition:opacity .075s ease,transform .1s ease}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-rtl.mce-menu-align .mce-caret,.mce-rtl .mce-menu-shortcut{right:auto;left:0}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20p
 x}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#595959}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #c5c5c5;background:#fff;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #c5c5c5;background:#e6e6e6;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{border-color:#2276d2}.mce-spacer{visibility:hidden}.mce-splitbtn:hover .mce-open{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open{border-left:1px solid transparent;padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open:focus{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open:hover,.mce-splitbtn .mce-open:active{border-left:1px solid #e2e4e7}.mce-spl
 itbtn.mce-active:hover .mce-open{border-left:1px solid white}.mce-splitbtn.mce-opened{border-color:#e2e4e7}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#fff;padding:8px 15px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-tab:focus{color:#2276d2}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;
 -webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#595959}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#bdbdbd}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-dropzone{border:3px dashed gray;text-align:center}.mce-dropzone span{text-transform:uppercase;display:inline-block;vertical-align:middle}.mce-dropzone:after{content:"";height:100%;display:inline-block;vertical-align:middle}.mce-dropzone.mce-disabled{opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-dropzone.mce-disabled.mce-dragenter{cursor:not-allowed}.mce-browsebutton{position:rel
 ative;overflow:hidden}.mce-browsebutton button{position:relative;z-index:1}.mce-browsebutton input{opacity:0;filter:alpha(opacity=0);zoom:1;position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webki
 t-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#595959}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:befo
 re{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print
 :before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{
 content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecel
 lprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907&
 quot;}.mce-i-drag:before{content:"\e908"}.mce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961&quo
 t;}.mce-i-a11y:before{content:"\e900"}.mce-i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-format-painter:before{content:"\e909"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}.mce-rtl .mce-filepicker input{direction:ltr}/*# sourceMappingURL=skin.min.css.map */
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="branches52srcjs_enqueuesvendortinymcethemesinlitethemejs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/5.2/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/5.2/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js       2019-05-17 04:24:44 UTC (rev 45342)
+++ branches/5.2/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js 2019-05-17 04:48:21 UTC (rev 45343)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> (function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-var inlite = (function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+var inlite = (function (domGlobals) {
</ins><span class="cx" style="display: block; padding: 0 10px">     'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var global = tinymce.util.Tools.resolve('tinymce.ThemeManager');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -475,7 +475,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return result && result.rect ? result : null;
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var editorHasFocus = function (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      return document.activeElement === editor.getBody();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      return domGlobals.document.activeElement === editor.getBody();
</ins><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var togglePanel = function (editor, panel) {
</span><span class="cx" style="display: block; padding: 0 10px">       var toggle = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -573,13 +573,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">       var eq = function (o) {
</span><span class="cx" style="display: block; padding: 0 10px">         return o.isNone();
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var call$$1 = function (thunk) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var call = function (thunk) {
</ins><span class="cx" style="display: block; padding: 0 10px">         return thunk();
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var id = function (n) {
</span><span class="cx" style="display: block; padding: 0 10px">         return n;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var noop$$1 = function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var noop = function () {
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       var nul = function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -595,7 +595,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         isSome: never$1,
</span><span class="cx" style="display: block; padding: 0 10px">         isNone: always$1,
</span><span class="cx" style="display: block; padding: 0 10px">         getOr: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        getOrThunk: call$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        getOrThunk: call,
</ins><span class="cx" style="display: block; padding: 0 10px">         getOrDie: function (msg) {
</span><span class="cx" style="display: block; padding: 0 10px">           throw new Error(msg || 'error: getOrDie called on none.');
</span><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -602,10 +602,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         getOrNull: nul,
</span><span class="cx" style="display: block; padding: 0 10px">         getOrUndefined: undef,
</span><span class="cx" style="display: block; padding: 0 10px">         or: id,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        orThunk: call$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        orThunk: call,
</ins><span class="cx" style="display: block; padding: 0 10px">         map: none,
</span><span class="cx" style="display: block; padding: 0 10px">         ap: none,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        each: noop$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        each: noop,
</ins><span class="cx" style="display: block; padding: 0 10px">         bind: none,
</span><span class="cx" style="display: block; padding: 0 10px">         flatten: none,
</span><span class="cx" style="display: block; padding: 0 10px">         exists: never$1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -805,8 +805,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">       id: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         return 'mceu_' + count++;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      create: function (name$$1, attrs, children) {
-        var elm = document.createElement(name$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      create: function (name, attrs, children) {
+        var elm = domGlobals.document.createElement(name);
</ins><span class="cx" style="display: block; padding: 0 10px">         global$2.DOM.setAttribs(elm, attrs);
</span><span class="cx" style="display: block; padding: 0 10px">         if (typeof children === 'string') {
</span><span class="cx" style="display: block; padding: 0 10px">           elm.innerHTML = children;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -844,13 +844,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return global$2.DOM.getPos(elm, root || funcs.getContainer());
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       getContainer: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return global$1.container ? global$1.container : document.body;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return global$1.container ? global$1.container : domGlobals.document.body;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       getViewPort: function (win) {
</span><span class="cx" style="display: block; padding: 0 10px">         return global$2.DOM.getViewPort(win);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       get: function (id) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return document.getElementById(id);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return domGlobals.document.getElementById(id);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       addClass: function (elm, cls) {
</span><span class="cx" style="display: block; padding: 0 10px">         return global$2.DOM.addClass(elm, cls);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -864,20 +864,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">       toggleClass: function (elm, cls, state) {
</span><span class="cx" style="display: block; padding: 0 10px">         return global$2.DOM.toggleClass(elm, cls, state);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      css: function (elm, name$$1, value) {
-        return global$2.DOM.setStyle(elm, name$$1, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      css: function (elm, name, value) {
+        return global$2.DOM.setStyle(elm, name, value);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      getRuntimeStyle: function (elm, name$$1) {
-        return global$2.DOM.getStyle(elm, name$$1, true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      getRuntimeStyle: function (elm, name) {
+        return global$2.DOM.getStyle(elm, name, true);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      on: function (target, name$$1, callback, scope) {
-        return global$2.DOM.bind(target, name$$1, callback, scope);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      on: function (target, name, callback, scope) {
+        return global$2.DOM.bind(target, name, callback, scope);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      off: function (target, name$$1, callback) {
-        return global$2.DOM.unbind(target, name$$1, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      off: function (target, name, callback) {
+        return global$2.DOM.unbind(target, name, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      fire: function (target, name$$1, args) {
-        return global$2.DOM.fire(target, name$$1, args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      fire: function (target, name, args) {
+        return global$2.DOM.fire(target, name, args);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       innerHtml: function (elm, html) {
</span><span class="cx" style="display: block; padding: 0 10px">         global$2.DOM.setHTML(elm, html);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1506,13 +1506,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var dirtyCtrls = {}, animationFrameRequested;
</span><span class="cx" style="display: block; padding: 0 10px">     var ReflowQueue = {
</span><span class="cx" style="display: block; padding: 0 10px">       add: function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var parent$$1 = ctrl.parent();
-        if (parent$$1) {
-          if (!parent$$1._layout || parent$$1._layout.isNative()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var parent = ctrl.parent();
+        if (parent) {
+          if (!parent._layout || parent._layout.isNative()) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (!dirtyCtrls[parent$$1._id]) {
-            dirtyCtrls[parent$$1._id] = parent$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (!dirtyCtrls[parent._id]) {
+            dirtyCtrls[parent._id] = parent;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           if (!animationFrameRequested) {
</span><span class="cx" style="display: block; padding: 0 10px">             animationFrameRequested = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1526,7 +1526,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">               dirtyCtrls = {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            }, document.body);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            }, domGlobals.document.body);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1568,7 +1568,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       inheritUiContainer: inheritUiContainer
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var hasMouseWheelEventSupport = 'onmousewheel' in document;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var hasMouseWheelEventSupport = 'onmousewheel' in domGlobals.document;
</ins><span class="cx" style="display: block; padding: 0 10px">     var hasWheelEventSupport = false;
</span><span class="cx" style="display: block; padding: 0 10px">     var classPrefix = 'mce-';
</span><span class="cx" style="display: block; padding: 0 10px">     var Control, idCounter = 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1579,37 +1579,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       classPrefix: classPrefix,
</span><span class="cx" style="display: block; padding: 0 10px">       init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         var classes, defaultClasses;
</span><span class="cx" style="display: block; padding: 0 10px">         function applyClasses(classes) {
</span><span class="cx" style="display: block; padding: 0 10px">           var i;
</span><span class="cx" style="display: block; padding: 0 10px">           classes = classes.split(' ');
</span><span class="cx" style="display: block; padding: 0 10px">           for (i = 0; i < classes.length; i++) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.classes.add(classes[i]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.classes.add(classes[i]);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.settings = settings = global$4.extend({}, self$$1.Defaults, settings);
-        self$$1._id = settings.id || 'mceu_' + idCounter++;
-        self$$1._aria = { role: settings.role };
-        self$$1._elmCache = {};
-        self$$1.$ = global$7;
-        self$$1.state = new ObservableObject({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.settings = settings = global$4.extend({}, self.Defaults, settings);
+        self._id = settings.id || 'mceu_' + idCounter++;
+        self._aria = { role: settings.role };
+        self._elmCache = {};
+        self.$ = global$7;
+        self.state = new ObservableObject({
</ins><span class="cx" style="display: block; padding: 0 10px">           visible: true,
</span><span class="cx" style="display: block; padding: 0 10px">           active: false,
</span><span class="cx" style="display: block; padding: 0 10px">           disabled: false,
</span><span class="cx" style="display: block; padding: 0 10px">           value: ''
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.data = new ObservableObject(settings.data);
-        self$$1.classes = new ClassList(function () {
-          if (self$$1.state.get('rendered')) {
-            self$$1.getEl().className = this.toString();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.data = new ObservableObject(settings.data);
+        self.classes = new ClassList(function () {
+          if (self.state.get('rendered')) {
+            self.getEl().className = this.toString();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.classes.prefix = self$$1.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.classes.prefix = self.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">         classes = settings.classes;
</span><span class="cx" style="display: block; padding: 0 10px">         if (classes) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (self$$1.Defaults) {
-            defaultClasses = self$$1.Defaults.classes;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (self.Defaults) {
+            defaultClasses = self.Defaults.classes;
</ins><span class="cx" style="display: block; padding: 0 10px">             if (defaultClasses && classes !== defaultClasses) {
</span><span class="cx" style="display: block; padding: 0 10px">               applyClasses(defaultClasses);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1616,22 +1616,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           applyClasses(classes);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        global$4.each('title text name visible disabled active value'.split(' '), function (name$$1) {
-          if (name$$1 in settings) {
-            self$$1[name$$1](settings[name$$1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        global$4.each('title text name visible disabled active value'.split(' '), function (name) {
+          if (name in settings) {
+            self[name](settings[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('click', function () {
-          if (self$$1.disabled()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('click', function () {
+          if (self.disabled()) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return false;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.settings = settings;
-        self$$1.borderBox = BoxUtils.parseBox(settings.border);
-        self$$1.paddingBox = BoxUtils.parseBox(settings.padding);
-        self$$1.marginBox = BoxUtils.parseBox(settings.margin);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.settings = settings;
+        self.borderBox = BoxUtils.parseBox(settings.border);
+        self.paddingBox = BoxUtils.parseBox(settings.padding);
+        self.marginBox = BoxUtils.parseBox(settings.margin);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (settings.hidden) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.hide();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.hide();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       Properties: 'parent,name',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1652,15 +1652,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       initLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        var settings = self$$1.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        var settings = self.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">         var borderBox, layoutRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var elm = self$$1.getEl();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var elm = self.getEl();
</ins><span class="cx" style="display: block; padding: 0 10px">         var width, height, minWidth, minHeight, autoResize;
</span><span class="cx" style="display: block; padding: 0 10px">         var startMinWidth, startMinHeight, initialSize;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        borderBox = self$$1.borderBox = self$$1.borderBox || BoxUtils.measureBox(elm, 'border');
-        self$$1.paddingBox = self$$1.paddingBox || BoxUtils.measureBox(elm, 'padding');
-        self$$1.marginBox = self$$1.marginBox || BoxUtils.measureBox(elm, 'margin');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        borderBox = self.borderBox = self.borderBox || BoxUtils.measureBox(elm, 'border');
+        self.paddingBox = self.paddingBox || BoxUtils.measureBox(elm, 'padding');
+        self.marginBox = self.marginBox || BoxUtils.measureBox(elm, 'margin');
</ins><span class="cx" style="display: block; padding: 0 10px">         initialSize = funcs.getSize(elm);
</span><span class="cx" style="display: block; padding: 0 10px">         startMinWidth = settings.minWidth;
</span><span class="cx" style="display: block; padding: 0 10px">         startMinHeight = settings.minHeight;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1676,7 +1676,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         var deltaH = borderBox.top + borderBox.bottom;
</span><span class="cx" style="display: block; padding: 0 10px">         var maxW = settings.maxWidth || 65535;
</span><span class="cx" style="display: block; padding: 0 10px">         var maxH = settings.maxHeight || 65535;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1._layoutRect = layoutRect = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self._layoutRect = layoutRect = {
</ins><span class="cx" style="display: block; padding: 0 10px">           x: settings.x || 0,
</span><span class="cx" style="display: block; padding: 0 10px">           y: settings.y || 0,
</span><span class="cx" style="display: block; padding: 0 10px">           w: width,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1696,14 +1696,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">           autoResize: autoResize,
</span><span class="cx" style="display: block; padding: 0 10px">           scrollW: 0
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1._lastLayoutRect = {};
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self._lastLayoutRect = {};
</ins><span class="cx" style="display: block; padding: 0 10px">         return layoutRect;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       layoutRect: function (newRect) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        var curRect = self$$1._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        var curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!curRect) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          curRect = self$$1.initLayoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          curRect = self.initLayoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (newRect) {
</span><span class="cx" style="display: block; padding: 0 10px">           deltaWidth = curRect.deltaW;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1754,13 +1754,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">           if (newRect.contentH !== undefined) {
</span><span class="cx" style="display: block; padding: 0 10px">             curRect.contentH = newRect.contentH;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          lastLayoutRect = self$$1._lastLayoutRect;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          lastLayoutRect = self._lastLayoutRect;
</ins><span class="cx" style="display: block; padding: 0 10px">           if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) {
</span><span class="cx" style="display: block; padding: 0 10px">             repaintControls = Control.repaintControls;
</span><span class="cx" style="display: block; padding: 0 10px">             if (repaintControls) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              if (repaintControls.map && !repaintControls.map[self$$1._id]) {
-                repaintControls.push(self$$1);
-                repaintControls.map[self$$1._id] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              if (repaintControls.map && !repaintControls.map[self._id]) {
+                repaintControls.push(self);
+                repaintControls.map[self._id] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             lastLayoutRect.x = curRect.x;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1768,21 +1768,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">             lastLayoutRect.w = curRect.w;
</span><span class="cx" style="display: block; padding: 0 10px">             lastLayoutRect.h = curRect.h;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return self;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return curRect;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       repaint: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         var style, bodyStyle, bodyElm, rect, borderBox;
</span><span class="cx" style="display: block; padding: 0 10px">         var borderW, borderH, lastRepaintRect, round, value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        round = !document.createRange ? Math.round : function (value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        round = !domGlobals.document.createRange ? Math.round : function (value) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return value;
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        style = self$$1.getEl().style;
-        rect = self$$1._layoutRect;
-        lastRepaintRect = self$$1._lastRepaintRect || {};
-        borderBox = self$$1.borderBox;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        style = self.getEl().style;
+        rect = self._layoutRect;
+        lastRepaintRect = self._lastRepaintRect || {};
+        borderBox = self.borderBox;
</ins><span class="cx" style="display: block; padding: 0 10px">         borderW = borderBox.left + borderBox.right;
</span><span class="cx" style="display: block; padding: 0 10px">         borderH = borderBox.top + borderBox.bottom;
</span><span class="cx" style="display: block; padding: 0 10px">         if (rect.x !== lastRepaintRect.x) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1803,9 +1803,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">           style.height = (value >= 0 ? value : 0) + 'px';
</span><span class="cx" style="display: block; padding: 0 10px">           lastRepaintRect.h = rect.h;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1._hasBody && rect.innerW !== lastRepaintRect.innerW) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) {
</ins><span class="cx" style="display: block; padding: 0 10px">           value = round(rect.innerW);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          bodyElm = self$$1.getEl('body');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          bodyElm = self.getEl('body');
</ins><span class="cx" style="display: block; padding: 0 10px">           if (bodyElm) {
</span><span class="cx" style="display: block; padding: 0 10px">             bodyStyle = bodyElm.style;
</span><span class="cx" style="display: block; padding: 0 10px">             bodyStyle.width = (value >= 0 ? value : 0) + 'px';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1812,9 +1812,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           lastRepaintRect.innerW = rect.innerW;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1._hasBody && rect.innerH !== lastRepaintRect.innerH) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) {
</ins><span class="cx" style="display: block; padding: 0 10px">           value = round(rect.innerH);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          bodyElm = bodyElm || self$$1.getEl('body');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          bodyElm = bodyElm || self.getEl('body');
</ins><span class="cx" style="display: block; padding: 0 10px">           if (bodyElm) {
</span><span class="cx" style="display: block; padding: 0 10px">             bodyStyle = bodyStyle || bodyElm.style;
</span><span class="cx" style="display: block; padding: 0 10px">             bodyStyle.height = (value >= 0 ? value : 0) + 'px';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1821,31 +1821,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           lastRepaintRect.innerH = rect.innerH;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1._lastRepaintRect = lastRepaintRect;
-        self$$1.fire('repaint', {}, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self._lastRepaintRect = lastRepaintRect;
+        self.fire('repaint', {}, false);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       updateLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        self$$1.parent()._lastRect = null;
-        funcs.css(self$$1.getEl(), {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        self.parent()._lastRect = null;
+        funcs.css(self.getEl(), {
</ins><span class="cx" style="display: block; padding: 0 10px">           width: '',
</span><span class="cx" style="display: block; padding: 0 10px">           height: ''
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1._layoutRect = self$$1._lastRepaintRect = self$$1._lastLayoutRect = null;
-        self$$1.initLayoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self._layoutRect = self._lastRepaintRect = self._lastLayoutRect = null;
+        self.initLayoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      on: function (name$$1, callback) {
-        var self$$1 = this;
-        function resolveCallbackName(name$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      on: function (name, callback) {
+        var self = this;
+        function resolveCallbackName(name) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var callback, scope;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (typeof name$$1 !== 'string') {
-            return name$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (typeof name !== 'string') {
+            return name;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           return function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (!callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              self$$1.parentsAndSelf().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              self.parentsAndSelf().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var callbacks = ctrl.settings.callbacks;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if (callbacks && (callback = callbacks[name$$1])) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                if (callbacks && (callback = callbacks[name])) {
</ins><span class="cx" style="display: block; padding: 0 10px">                   scope = ctrl;
</span><span class="cx" style="display: block; padding: 0 10px">                   return false;
</span><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1852,7 +1852,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">               });
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             if (!callback) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              e.action = name$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              e.action = name;
</ins><span class="cx" style="display: block; padding: 0 10px">               this.fire('execute', e);
</span><span class="cx" style="display: block; padding: 0 10px">               return;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1859,36 +1859,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">             return callback.call(scope, e);
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        getEventDispatcher(self$$1).on(name$$1, resolveCallbackName(callback));
-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        getEventDispatcher(self).on(name, resolveCallbackName(callback));
+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      off: function (name$$1, callback) {
-        getEventDispatcher(this).off(name$$1, callback);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      off: function (name, callback) {
+        getEventDispatcher(this).off(name, callback);
</ins><span class="cx" style="display: block; padding: 0 10px">         return this;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      fire: function (name$$1, args, bubble) {
-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      fire: function (name, args, bubble) {
+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         args = args || {};
</span><span class="cx" style="display: block; padding: 0 10px">         if (!args.control) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          args.control = self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          args.control = self;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        args = getEventDispatcher(self$$1).fire(name$$1, args);
-        if (bubble !== false && self$$1.parent) {
-          var parent$$1 = self$$1.parent();
-          while (parent$$1 && !args.isPropagationStopped()) {
-            parent$$1.fire(name$$1, args, false);
-            parent$$1 = parent$$1.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        args = getEventDispatcher(self).fire(name, args);
+        if (bubble !== false && self.parent) {
+          var parent = self.parent();
+          while (parent && !args.isPropagationStopped()) {
+            parent.fire(name, args, false);
+            parent = parent.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return args;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      hasEventListeners: function (name$$1) {
-        return getEventDispatcher(this).has(name$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      hasEventListeners: function (name) {
+        return getEventDispatcher(this).has(name);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       parents: function (selector) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         var ctrl, parents = new Collection$2();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for (ctrl = self$$1.parent(); ctrl; ctrl = ctrl.parent()) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) {
</ins><span class="cx" style="display: block; padding: 0 10px">           parents.add(ctrl);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (selector) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1935,16 +1935,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">         this.getEl().blur();
</span><span class="cx" style="display: block; padding: 0 10px">         return this;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      aria: function (name$$1, value) {
-        var self$$1 = this, elm = self$$1.getEl(self$$1.ariaTarget);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      aria: function (name, value) {
+        var self = this, elm = self.getEl(self.ariaTarget);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (typeof value === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return self$$1._aria[name$$1];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return self._aria[name];
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1._aria[name$$1] = value;
-        if (self$$1.state.get('rendered')) {
-          elm.setAttribute(name$$1 === 'role' ? name$$1 : 'aria-' + name$$1, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self._aria[name] = value;
+        if (self.state.get('rendered')) {
+          elm.setAttribute(name === 'role' ? name : 'aria-' + name, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       encode: function (text, translate) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (translate !== false) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1958,55 +1958,55 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return Control.translate ? Control.translate(text) : text;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       before: function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this, parent$$1 = self$$1.parent();
-        if (parent$$1) {
-          parent$$1.insert(items, parent$$1.items().indexOf(self$$1), true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this, parent = self.parent();
+        if (parent) {
+          parent.insert(items, parent.items().indexOf(self), true);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       after: function (items) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this, parent$$1 = self$$1.parent();
-        if (parent$$1) {
-          parent$$1.insert(items, parent$$1.items().indexOf(self$$1));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this, parent = self.parent();
+        if (parent) {
+          parent.insert(items, parent.items().indexOf(self));
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       remove: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        var elm = self$$1.getEl();
-        var parent$$1 = self$$1.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        var elm = self.getEl();
+        var parent = self.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">         var newItems, i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.items) {
-          var controls = self$$1.items().toArray();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.items) {
+          var controls = self.items().toArray();
</ins><span class="cx" style="display: block; padding: 0 10px">           i = controls.length;
</span><span class="cx" style="display: block; padding: 0 10px">           while (i--) {
</span><span class="cx" style="display: block; padding: 0 10px">             controls[i].remove();
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (parent$$1 && parent$$1.items) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (parent && parent.items) {
</ins><span class="cx" style="display: block; padding: 0 10px">           newItems = [];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          parent$$1.items().each(function (item) {
-            if (item !== self$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          parent.items().each(function (item) {
+            if (item !== self) {
</ins><span class="cx" style="display: block; padding: 0 10px">               newItems.push(item);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          parent$$1.items().set(newItems);
-          parent$$1._lastRect = null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          parent.items().set(newItems);
+          parent._lastRect = null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1._eventsRoot && self$$1._eventsRoot === self$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self._eventsRoot && self._eventsRoot === self) {
</ins><span class="cx" style="display: block; padding: 0 10px">           global$7(elm).off();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var lookup = self$$1.getRoot().controlIdLookup;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var lookup = self.getRoot().controlIdLookup;
</ins><span class="cx" style="display: block; padding: 0 10px">         if (lookup) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          delete lookup[self$$1._id];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          delete lookup[self._id];
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (elm && elm.parentNode) {
</span><span class="cx" style="display: block; padding: 0 10px">           elm.parentNode.removeChild(elm);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.state.set('rendered', false);
-        self$$1.state.destroy();
-        self$$1.fire('remove');
-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.state.set('rendered', false);
+        self.state.destroy();
+        self.fire('remove');
+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       renderBefore: function (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">         global$7(elm).before(this.renderHtml());
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2026,37 +2026,37 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return '<div id="' + this._id + '" class="' + this.classes + '"></div>';
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        var settings = self$$1.settings;
-        var elm, box, parent$$1, name$$1, parentEventsRoot;
-        self$$1.$el = global$7(self$$1.getEl());
-        self$$1.state.set('rendered', true);
-        for (name$$1 in settings) {
-          if (name$$1.indexOf('on') === 0) {
-            self$$1.on(name$$1.substr(2), settings[name$$1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        var settings = self.settings;
+        var elm, box, parent, name, parentEventsRoot;
+        self.$el = global$7(self.getEl());
+        self.state.set('rendered', true);
+        for (name in settings) {
+          if (name.indexOf('on') === 0) {
+            self.on(name.substr(2), settings[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1._eventsRoot) {
-          for (parent$$1 = self$$1.parent(); !parentEventsRoot && parent$$1; parent$$1 = parent$$1.parent()) {
-            parentEventsRoot = parent$$1._eventsRoot;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self._eventsRoot) {
+          for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) {
+            parentEventsRoot = parent._eventsRoot;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           if (parentEventsRoot) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            for (name$$1 in parentEventsRoot._nativeEvents) {
-              self$$1._nativeEvents[name$$1] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            for (name in parentEventsRoot._nativeEvents) {
+              self._nativeEvents[name] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        bindPendingEvents(self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        bindPendingEvents(self);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (settings.style) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          elm = self$$1.getEl();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          elm = self.getEl();
</ins><span class="cx" style="display: block; padding: 0 10px">           if (elm) {
</span><span class="cx" style="display: block; padding: 0 10px">             elm.setAttribute('style', settings.style);
</span><span class="cx" style="display: block; padding: 0 10px">             elm.style.cssText = settings.style;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.settings.border) {
-          box = self$$1.borderBox;
-          self$$1.$el.css({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.settings.border) {
+          box = self.borderBox;
+          self.$el.css({
</ins><span class="cx" style="display: block; padding: 0 10px">             'border-top-width': box.top,
</span><span class="cx" style="display: block; padding: 0 10px">             'border-right-width': box.right,
</span><span class="cx" style="display: block; padding: 0 10px">             'border-bottom-width': box.bottom,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2063,44 +2063,44 @@
</span><span class="cx" style="display: block; padding: 0 10px">             'border-left-width': box.left
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var root = self$$1.getRoot();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var root = self.getRoot();
</ins><span class="cx" style="display: block; padding: 0 10px">         if (!root.controlIdLookup) {
</span><span class="cx" style="display: block; padding: 0 10px">           root.controlIdLookup = {};
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        root.controlIdLookup[self$$1._id] = self$$1;
-        for (var key in self$$1._aria) {
-          self$$1.aria(key, self$$1._aria[key]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        root.controlIdLookup[self._id] = self;
+        for (var key in self._aria) {
+          self.aria(key, self._aria[key]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.state.get('visible') === false) {
-          self$$1.getEl().style.display = 'none';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.state.get('visible') === false) {
+          self.getEl().style.display = 'none';
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.bindStates();
-        self$$1.state.on('change:visible', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.bindStates();
+        self.state.on('change:visible', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var state = e.value;
</span><span class="cx" style="display: block; padding: 0 10px">           var parentCtrl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (self$$1.state.get('rendered')) {
-            self$$1.getEl().style.display = state === false ? 'none' : '';
-            self$$1.getEl().getBoundingClientRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (self.state.get('rendered')) {
+            self.getEl().style.display = state === false ? 'none' : '';
+            self.getEl().getBoundingClientRect();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          parentCtrl = self$$1.parent();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          parentCtrl = self.parent();
</ins><span class="cx" style="display: block; padding: 0 10px">           if (parentCtrl) {
</span><span class="cx" style="display: block; padding: 0 10px">             parentCtrl._lastRect = null;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.fire(state ? 'show' : 'hide');
-          ReflowQueue.add(self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.fire(state ? 'show' : 'hide');
+          ReflowQueue.add(self);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.fire('postrender', {}, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.fire('postrender', {}, false);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       bindStates: function () {
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       scrollIntoView: function (align) {
</span><span class="cx" style="display: block; padding: 0 10px">         function getOffset(elm, rootElm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var x, y, parent$$1 = elm;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var x, y, parent = elm;
</ins><span class="cx" style="display: block; padding: 0 10px">           x = y = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          while (parent$$1 && parent$$1 !== rootElm && parent$$1.nodeType) {
-            x += parent$$1.offsetLeft || 0;
-            y += parent$$1.offsetTop || 0;
-            parent$$1 = parent$$1.offsetParent;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          while (parent && parent !== rootElm && parent.nodeType) {
+            x += parent.offsetLeft || 0;
+            y += parent.offsetTop || 0;
+            parent = parent.offsetParent;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           return {
</span><span class="cx" style="display: block; padding: 0 10px">             x: x,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2150,20 +2150,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       reflow: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         ReflowQueue.remove(this);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var parent$$1 = this.parent();
-        if (parent$$1 && parent$$1._layout && !parent$$1._layout.isNative()) {
-          parent$$1.reflow();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var parent = this.parent();
+        if (parent && parent._layout && !parent._layout.isNative()) {
+          parent.reflow();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return this;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    global$4.each('text title visible disabled active value'.split(' '), function (name$$1) {
-      proto$1[name$$1] = function (value) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    global$4.each('text title visible disabled active value'.split(' '), function (name) {
+      proto$1[name] = function (value) {
</ins><span class="cx" style="display: block; padding: 0 10px">         if (arguments.length === 0) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return this.state.get(name$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return this.state.get(name);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (typeof value !== 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          this.state.set(name$$1, value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          this.state.set(name, value);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return this;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2173,12 +2173,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (!obj._eventDispatcher) {
</span><span class="cx" style="display: block; padding: 0 10px">         obj._eventDispatcher = new global$9({
</span><span class="cx" style="display: block; padding: 0 10px">           scope: obj,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          toggleEvent: function (name$$1, state) {
-            if (state && global$9.isNative(name$$1)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          toggleEvent: function (name, state) {
+            if (state && global$9.isNative(name)) {
</ins><span class="cx" style="display: block; padding: 0 10px">               if (!obj._nativeEvents) {
</span><span class="cx" style="display: block; padding: 0 10px">                 obj._nativeEvents = {};
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              obj._nativeEvents[name$$1] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              obj._nativeEvents[name] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">               if (obj.state.get('rendered')) {
</span><span class="cx" style="display: block; padding: 0 10px">                 bindPendingEvents(obj);
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2189,7 +2189,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       return obj._eventDispatcher;
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function bindPendingEvents(eventCtrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var i, l, parents, eventRootCtrl, nativeEvents, name$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var i, l, parents, eventRootCtrl, nativeEvents, name;
</ins><span class="cx" style="display: block; padding: 0 10px">       function delegate(e) {
</span><span class="cx" style="display: block; padding: 0 10px">         var control = eventCtrl.getParentCtrl(e.target);
</span><span class="cx" style="display: block; padding: 0 10px">         if (control) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2262,11 +2262,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (!eventRootDelegates) {
</span><span class="cx" style="display: block; padding: 0 10px">           eventRootDelegates = eventRootCtrl._delegates = {};
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        for (name$$1 in nativeEvents) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        for (name in nativeEvents) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!nativeEvents) {
</span><span class="cx" style="display: block; padding: 0 10px">             return false;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (name$$1 === 'wheel' && !hasWheelEventSupport) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (name === 'wheel' && !hasWheelEventSupport) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (hasMouseWheelEventSupport) {
</span><span class="cx" style="display: block; padding: 0 10px">               global$7(eventCtrl.getEl()).on('mousewheel', fixWheelEvent);
</span><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2274,16 +2274,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             continue;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (name$$1 === 'mouseenter' || name$$1 === 'mouseleave') {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (name === 'mouseenter' || name === 'mouseleave') {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (!eventRootCtrl._hasMouseEnter) {
</span><span class="cx" style="display: block; padding: 0 10px">               global$7(eventRootCtrl.getEl()).on('mouseleave', mouseLeaveHandler).on('mouseover', mouseEnterHandler);
</span><span class="cx" style="display: block; padding: 0 10px">               eventRootCtrl._hasMouseEnter = 1;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          } else if (!eventRootDelegates[name$$1]) {
-            global$7(eventRootCtrl.getEl()).on(name$$1, delegate);
-            eventRootDelegates[name$$1] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          } else if (!eventRootDelegates[name]) {
+            global$7(eventRootCtrl.getEl()).on(name, delegate);
+            eventRootDelegates[name] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          nativeEvents[name$$1] = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          nativeEvents[name] = false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2301,7 +2301,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">       pos = funcs.getPos(targetElm, UiContainer.getUiContainer(ctrl));
</span><span class="cx" style="display: block; padding: 0 10px">       x = pos.x;
</span><span class="cx" style="display: block; padding: 0 10px">       y = pos.y;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      if (isFixed(ctrl) && isStatic(document.body)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      if (isFixed(ctrl) && isStatic(domGlobals.document.body)) {
</ins><span class="cx" style="display: block; padding: 0 10px">         x -= viewport.x;
</span><span class="cx" style="display: block; padding: 0 10px">         y -= viewport.y;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2353,11 +2353,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var getWindowViewPort = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var win = window;
-      var x = Math.max(win.pageXOffset, document.body.scrollLeft, document.documentElement.scrollLeft);
-      var y = Math.max(win.pageYOffset, document.body.scrollTop, document.documentElement.scrollTop);
-      var w = win.innerWidth || document.documentElement.clientWidth;
-      var h = win.innerHeight || document.documentElement.clientHeight;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var win = domGlobals.window;
+      var x = Math.max(win.pageXOffset, domGlobals.document.body.scrollLeft, domGlobals.document.documentElement.scrollLeft);
+      var y = Math.max(win.pageYOffset, domGlobals.document.body.scrollTop, domGlobals.document.documentElement.scrollTop);
+      var w = win.innerWidth || domGlobals.document.documentElement.clientWidth;
+      var h = win.innerHeight || domGlobals.document.documentElement.clientHeight;
</ins><span class="cx" style="display: block; padding: 0 10px">       return {
</span><span class="cx" style="display: block; padding: 0 10px">         x: x,
</span><span class="cx" style="display: block; padding: 0 10px">         y: y,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2394,12 +2394,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return this.moveTo(pos.x, pos.y);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       moveBy: function (dx, dy) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this, rect = self$$1.layoutRect();
-        self$$1.moveTo(rect.x + dx, rect.y + dy);
-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this, rect = self.layoutRect();
+        self.moveTo(rect.x + dx, rect.y + dy);
+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       moveTo: function (x, y) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         function constrain(value, max, size) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (value < 0) {
</span><span class="cx" style="display: block; padding: 0 10px">             return 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2410,14 +2410,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           return value;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.settings.constrainToViewport) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.settings.constrainToViewport) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var viewPortRect = getViewPortRect(this);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var layoutRect = self$$1.layoutRect();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var layoutRect = self.layoutRect();
</ins><span class="cx" style="display: block; padding: 0 10px">           x = constrain(x, viewPortRect.w + viewPortRect.x, layoutRect.w);
</span><span class="cx" style="display: block; padding: 0 10px">           y = constrain(y, viewPortRect.h + viewPortRect.y, layoutRect.h);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var uiContainer = UiContainer.getUiContainer(self$$1);
-        if (uiContainer && isStatic(uiContainer) && !isFixed(self$$1)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var uiContainer = UiContainer.getUiContainer(self);
+        if (uiContainer && isStatic(uiContainer) && !isFixed(self)) {
</ins><span class="cx" style="display: block; padding: 0 10px">           x -= uiContainer.scrollLeft;
</span><span class="cx" style="display: block; padding: 0 10px">           y -= uiContainer.scrollTop;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2425,20 +2425,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">           x += 1;
</span><span class="cx" style="display: block; padding: 0 10px">           y += 1;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.state.get('rendered')) {
-          self$$1.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.state.get('rendered')) {
+          self.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">             x: x,
</span><span class="cx" style="display: block; padding: 0 10px">             y: y
</span><span class="cx" style="display: block; padding: 0 10px">           }).repaint();
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.settings.x = x;
-          self$$1.settings.y = y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.settings.x = x;
+          self.settings.y = y;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.fire('move', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.fire('move', {
</ins><span class="cx" style="display: block; padding: 0 10px">           x: x,
</span><span class="cx" style="display: block; padding: 0 10px">           y: y
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2766,9 +2766,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function DragHelper (id, settings) {
</span><span class="cx" style="display: block; padding: 0 10px">       var $eventOverlay;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var doc = settings.document || document;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var doc = settings.document || domGlobals.document;
</ins><span class="cx" style="display: block; padding: 0 10px">       var downButton;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var start, stop$$1, drag, startX, startY;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var start, stop, drag, startX, startY;
</ins><span class="cx" style="display: block; padding: 0 10px">       settings = settings || {};
</span><span class="cx" style="display: block; padding: 0 10px">       var handleElement = doc.getElementById(settings.handle || id);
</span><span class="cx" style="display: block; padding: 0 10px">       start = function (e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2780,8 +2780,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         handleElm = handleElement;
</span><span class="cx" style="display: block; padding: 0 10px">         startX = e.screenX;
</span><span class="cx" style="display: block; padding: 0 10px">         startY = e.screenY;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (window.getComputedStyle) {
-          cursor = window.getComputedStyle(handleElm, null).getPropertyValue('cursor');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (domGlobals.window.getComputedStyle) {
+          cursor = domGlobals.window.getComputedStyle(handleElm, null).getPropertyValue('cursor');
</ins><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="cx" style="display: block; padding: 0 10px">           cursor = handleElm.runtimeStyle.cursor;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2795,13 +2795,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">           opacity: 0.0001,
</span><span class="cx" style="display: block; padding: 0 10px">           cursor: cursor
</span><span class="cx" style="display: block; padding: 0 10px">         }).appendTo(doc.body);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        global$7(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        global$7(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop);
</ins><span class="cx" style="display: block; padding: 0 10px">         settings.start(e);
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       drag = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">         updateWithTouchData(e);
</span><span class="cx" style="display: block; padding: 0 10px">         if (e.button !== downButton) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return stop$$1(e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return stop(e);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         e.deltaX = e.screenX - startX;
</span><span class="cx" style="display: block; padding: 0 10px">         e.deltaY = e.screenY - startY;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2808,9 +2808,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         settings.drag(e);
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      stop$$1 = function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      stop = function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">         updateWithTouchData(e);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        global$7(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        global$7(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop);
</ins><span class="cx" style="display: block; padding: 0 10px">         $eventOverlay.remove();
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.stop) {
</span><span class="cx" style="display: block; padding: 0 10px">           settings.stop(e);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2834,9 +2834,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return node && node.nodeType === 1;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       try {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        focusedElement = document.activeElement;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        focusedElement = domGlobals.document.activeElement;
</ins><span class="cx" style="display: block; padding: 0 10px">       } catch (ex) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        focusedElement = document.body;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        focusedElement = domGlobals.document.body;
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       focusedControl = root.getParentCtrl(focusedElement);
</span><span class="cx" style="display: block; padding: 0 10px">       function getRole(elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2847,17 +2847,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return null;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       function getParentRole(elm) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var role, parent$$1 = elm || focusedElement;
-        while (parent$$1 = parent$$1.parentNode) {
-          if (role = getRole(parent$$1)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var role, parent = elm || focusedElement;
+        while (parent = parent.parentNode) {
+          if (role = getRole(parent)) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return role;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      function getAriaProp(name$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      function getAriaProp(name) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var elm = focusedElement;
</span><span class="cx" style="display: block; padding: 0 10px">         if (isElement(elm)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return elm.getAttribute('aria-' + name$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return elm.getAttribute('aria-' + name);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       function isTextInputElement(elm) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3432,9 +3432,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var visiblePanels = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var zOrder = [];
</span><span class="cx" style="display: block; padding: 0 10px">     var hasModal;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    function isChildOf(ctrl, parent$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    function isChildOf(ctrl, parent) {
</ins><span class="cx" style="display: block; padding: 0 10px">       while (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (ctrl === parent$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (ctrl === parent) {
</ins><span class="cx" style="display: block; padding: 0 10px">           return true;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         ctrl = ctrl.parent();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3465,7 +3465,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           skipOrHidePanels(e);
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        global$7(document).on('click touchstart', documentClickHandler);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        global$7(domGlobals.document).on('click touchstart', documentClickHandler);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function bindDocumentScrollHandler() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3477,32 +3477,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">             repositionPanel$1(visiblePanels[i]);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        global$7(window).on('scroll', documentScrollHandler);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        global$7(domGlobals.window).on('scroll', documentScrollHandler);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function bindWindowResizeHandler() {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!windowResizeHandler) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var docElm_1 = document.documentElement;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var docElm_1 = domGlobals.document.documentElement;
</ins><span class="cx" style="display: block; padding: 0 10px">         var clientWidth_1 = docElm_1.clientWidth, clientHeight_1 = docElm_1.clientHeight;
</span><span class="cx" style="display: block; padding: 0 10px">         windowResizeHandler = function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (!document.all || clientWidth_1 !== docElm_1.clientWidth || clientHeight_1 !== docElm_1.clientHeight) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (!domGlobals.document.all || clientWidth_1 !== docElm_1.clientWidth || clientHeight_1 !== docElm_1.clientHeight) {
</ins><span class="cx" style="display: block; padding: 0 10px">             clientWidth_1 = docElm_1.clientWidth;
</span><span class="cx" style="display: block; padding: 0 10px">             clientHeight_1 = docElm_1.clientHeight;
</span><span class="cx" style="display: block; padding: 0 10px">             FloatPanel.hideAll();
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        global$7(window).on('resize', windowResizeHandler);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        global$7(domGlobals.window).on('resize', windowResizeHandler);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="cx" style="display: block; padding: 0 10px">     function repositionPanel$1(panel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var scrollY$$1 = funcs.getViewPort().y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var scrollY = funcs.getViewPort().y;
</ins><span class="cx" style="display: block; padding: 0 10px">       function toggleFixedChildPanels(fixed, deltaY) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var parent$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var parent;
</ins><span class="cx" style="display: block; padding: 0 10px">         for (var i = 0; i < visiblePanels.length; i++) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (visiblePanels[i] !== panel) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            parent$$1 = visiblePanels[i].parent();
-            while (parent$$1 && (parent$$1 = parent$$1.parent())) {
-              if (parent$$1 === panel) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            parent = visiblePanels[i].parent();
+            while (parent && (parent = parent.parent())) {
+              if (parent === panel) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint();
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3512,14 +3512,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">       if (panel.settings.autofix) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!panel.state.get('fixed')) {
</span><span class="cx" style="display: block; padding: 0 10px">           panel._autoFixY = panel.layoutRect().y;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (panel._autoFixY < scrollY$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (panel._autoFixY < scrollY) {
</ins><span class="cx" style="display: block; padding: 0 10px">             panel.fixed(true).layoutRect({ y: 0 }).repaint();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            toggleFixedChildPanels(true, scrollY$$1 - panel._autoFixY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            toggleFixedChildPanels(true, scrollY - panel._autoFixY);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (panel._autoFixY > scrollY$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (panel._autoFixY > scrollY) {
</ins><span class="cx" style="display: block; padding: 0 10px">             panel.fixed(false).layoutRect({ y: panel._autoFixY }).repaint();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            toggleFixedChildPanels(false, panel._autoFixY - scrollY$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            toggleFixedChildPanels(false, panel._autoFixY - scrollY);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3562,83 +3562,83 @@
</span><span class="cx" style="display: block; padding: 0 10px">         Resizable
</span><span class="cx" style="display: block; padding: 0 10px">       ],
</span><span class="cx" style="display: block; padding: 0 10px">       init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        self$$1._super(settings);
-        self$$1._eventsRoot = self$$1;
-        self$$1.classes.add('floatpanel');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        self._super(settings);
+        self._eventsRoot = self;
+        self.classes.add('floatpanel');
</ins><span class="cx" style="display: block; padding: 0 10px">         if (settings.autohide) {
</span><span class="cx" style="display: block; padding: 0 10px">           bindDocumentClickHandler();
</span><span class="cx" style="display: block; padding: 0 10px">           bindWindowResizeHandler();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          visiblePanels.push(self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          visiblePanels.push(self);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.autofix) {
</span><span class="cx" style="display: block; padding: 0 10px">           bindDocumentScrollHandler();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.on('move', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.on('move', function () {
</ins><span class="cx" style="display: block; padding: 0 10px">             repositionPanel$1(this);
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('postrender show', function (e) {
-          if (e.control === self$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('postrender show', function (e) {
+          if (e.control === self) {
</ins><span class="cx" style="display: block; padding: 0 10px">             var $modalBlockEl_1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            var prefix_1 = self$$1.classPrefix;
-            if (self$$1.modal && !hasModal) {
-              $modalBlockEl_1 = global$7('#' + prefix_1 + 'modal-block', self$$1.getContainerElm());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            var prefix_1 = self.classPrefix;
+            if (self.modal && !hasModal) {
+              $modalBlockEl_1 = global$7('#' + prefix_1 + 'modal-block', self.getContainerElm());
</ins><span class="cx" style="display: block; padding: 0 10px">               if (!$modalBlockEl_1[0]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $modalBlockEl_1 = global$7('<div id="' + prefix_1 + 'modal-block" class="' + prefix_1 + 'reset ' + prefix_1 + 'fade"></div>').appendTo(self$$1.getContainerElm());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $modalBlockEl_1 = global$7('<div id="' + prefix_1 + 'modal-block" class="' + prefix_1 + 'reset ' + prefix_1 + 'fade"></div>').appendTo(self.getContainerElm());
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">               global$3.setTimeout(function () {
</span><span class="cx" style="display: block; padding: 0 10px">                 $modalBlockEl_1.addClass(prefix_1 + 'in');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                global$7(self$$1.getEl()).addClass(prefix_1 + 'in');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                global$7(self.getEl()).addClass(prefix_1 + 'in');
</ins><span class="cx" style="display: block; padding: 0 10px">               });
</span><span class="cx" style="display: block; padding: 0 10px">               hasModal = true;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            addRemove(true, self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            addRemove(true, self);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('show', function () {
-          self$$1.parents().each(function (ctrl) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('show', function () {
+          self.parents().each(function (ctrl) {
</ins><span class="cx" style="display: block; padding: 0 10px">             if (ctrl.state.get('fixed')) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              self$$1.fixed(true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              self.fixed(true);
</ins><span class="cx" style="display: block; padding: 0 10px">               return false;
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.popover) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1._preBodyHtml = '<div class="' + self$$1.classPrefix + 'arrow"></div>';
-          self$$1.classes.add('popover').add('bottom').add(self$$1.isRtl() ? 'end' : 'start');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>';
+          self.classes.add('popover').add('bottom').add(self.isRtl() ? 'end' : 'start');
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.aria('label', settings.ariaLabel);
-        self$$1.aria('labelledby', self$$1._id);
-        self$$1.aria('describedby', self$$1.describedBy || self$$1._id + '-none');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.aria('label', settings.ariaLabel);
+        self.aria('labelledby', self._id);
+        self.aria('describedby', self.describedBy || self._id + '-none');
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       fixed: function (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        if (self$$1.state.get('fixed') !== state) {
-          if (self$$1.state.get('rendered')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        if (self.state.get('fixed') !== state) {
+          if (self.state.get('rendered')) {
</ins><span class="cx" style="display: block; padding: 0 10px">             var viewport = funcs.getViewPort();
</span><span class="cx" style="display: block; padding: 0 10px">             if (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              self$$1.layoutRect().y -= viewport.y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              self.layoutRect().y -= viewport.y;
</ins><span class="cx" style="display: block; padding: 0 10px">             } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              self$$1.layoutRect().y += viewport.y;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              self.layoutRect().y += viewport.y;
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.classes.toggle('fixed', state);
-          self$$1.state.set('fixed', state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.classes.toggle('fixed', state);
+          self.state.set('fixed', state);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       show: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var state = self$$1._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var state = self._super();
</ins><span class="cx" style="display: block; padding: 0 10px">         i = visiblePanels.length;
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (visiblePanels[i] === self$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (visiblePanels[i] === self) {
</ins><span class="cx" style="display: block; padding: 0 10px">             break;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (i === -1) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          visiblePanels.push(self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          visiblePanels.push(self);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         return state;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3651,12 +3651,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">         FloatPanel.hideAll();
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       close: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        if (!self$$1.fire('close').isDefaultPrevented()) {
-          self$$1.remove();
-          addRemove(false, self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        if (!self.fire('close').isDefaultPrevented()) {
+          self.remove();
+          addRemove(false, self);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       remove: function () {
</span><span class="cx" style="display: block; padding: 0 10px">         removeVisiblePanel(this);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3663,11 +3663,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         this._super();
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        if (self$$1.settings.bodyRole) {
-          this.getEl('body').setAttribute('role', self$$1.settings.bodyRole);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        if (self.settings.bodyRole) {
+          this.getEl('body').setAttribute('role', self.settings.bodyRole);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     FloatPanel.hideAll = function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3705,9 +3705,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return;
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       if (!viewport) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        viewport = document.createElement('meta');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        viewport = domGlobals.document.createElement('meta');
</ins><span class="cx" style="display: block; padding: 0 10px">         viewport.setAttribute('name', 'viewport');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        document.getElementsByTagName('head')[0].appendChild(viewport);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        domGlobals.document.getElementsByTagName('head')[0].appendChild(viewport);
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">       contentValue = viewport.getAttribute('content');
</span><span class="cx" style="display: block; padding: 0 10px">       if (contentValue && typeof oldMetaValue !== 'undefined') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3718,8 +3718,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">     function toggleBodyFullScreenClasses(classPrefix, state) {
</span><span class="cx" style="display: block; padding: 0 10px">       if (checkFullscreenWindows() && state === false) {
</span><span class="cx" style="display: block; padding: 0 10px">         global$7([
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          document.documentElement,
-          document.body
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          domGlobals.document.documentElement,
+          domGlobals.document.body
</ins><span class="cx" style="display: block; padding: 0 10px">         ]).removeClass(classPrefix + 'fullscreen');
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3734,17 +3734,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">     function handleWindowResize() {
</span><span class="cx" style="display: block; padding: 0 10px">       if (!global$1.desktop) {
</span><span class="cx" style="display: block; padding: 0 10px">         var lastSize_1 = {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          w: window.innerWidth,
-          h: window.innerHeight
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          w: domGlobals.window.innerWidth,
+          h: domGlobals.window.innerHeight
</ins><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px">         global$3.setInterval(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var w = window.innerWidth, h = window.innerHeight;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var w = domGlobals.window.innerWidth, h = domGlobals.window.innerHeight;
</ins><span class="cx" style="display: block; padding: 0 10px">           if (lastSize_1.w !== w || lastSize_1.h !== h) {
</span><span class="cx" style="display: block; padding: 0 10px">             lastSize_1 = {
</span><span class="cx" style="display: block; padding: 0 10px">               w: w,
</span><span class="cx" style="display: block; padding: 0 10px">               h: h
</span><span class="cx" style="display: block; padding: 0 10px">             };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            global$7(window).trigger('resize');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            global$7(domGlobals.window).trigger('resize');
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }, 100);
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3757,9 +3757,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">           windows[i].moveTo(windows[i].settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2), windows[i].settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2));
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      global$7(window).on('resize', reposition);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      global$7(domGlobals.window).on('resize', reposition);
</ins><span class="cx" style="display: block; padding: 0 10px">     }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var Window$$1 = FloatPanel.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var Window = FloatPanel.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">       modal: true,
</span><span class="cx" style="display: block; padding: 0 10px">       Defaults: {
</span><span class="cx" style="display: block; padding: 0 10px">         border: 1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3776,61 +3776,61 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        self$$1._super(settings);
-        if (self$$1.isRtl()) {
-          self$$1.classes.add('rtl');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        self._super(settings);
+        if (self.isRtl()) {
+          self.classes.add('rtl');
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.classes.add('window');
-        self$$1.bodyClasses.add('window-body');
-        self$$1.state.set('fixed', true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.classes.add('window');
+        self.bodyClasses.add('window-body');
+        self.state.set('fixed', true);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (settings.buttons) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.statusbar = new Panel({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.statusbar = new Panel({
</ins><span class="cx" style="display: block; padding: 0 10px">             layout: 'flex',
</span><span class="cx" style="display: block; padding: 0 10px">             border: '1 0 0 0',
</span><span class="cx" style="display: block; padding: 0 10px">             spacing: 3,
</span><span class="cx" style="display: block; padding: 0 10px">             padding: 10,
</span><span class="cx" style="display: block; padding: 0 10px">             align: 'center',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            pack: self$$1.isRtl() ? 'start' : 'end',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            pack: self.isRtl() ? 'start' : 'end',
</ins><span class="cx" style="display: block; padding: 0 10px">             defaults: { type: 'button' },
</span><span class="cx" style="display: block; padding: 0 10px">             items: settings.buttons
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.statusbar.classes.add('foot');
-          self$$1.statusbar.parent(self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.statusbar.classes.add('foot');
+          self.statusbar.parent(self);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('click', function (e) {
-          var closeClass = self$$1.classPrefix + 'close';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('click', function (e) {
+          var closeClass = self.classPrefix + 'close';
</ins><span class="cx" style="display: block; padding: 0 10px">           if (funcs.hasClass(e.target, closeClass) || funcs.hasClass(e.target.parentNode, closeClass)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.close();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('cancel', function () {
-          self$$1.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('cancel', function () {
+          self.close();
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('move', function (e) {
-          if (e.control === self$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('move', function (e) {
+          if (e.control === self) {
</ins><span class="cx" style="display: block; padding: 0 10px">             FloatPanel.hideAll();
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.aria('describedby', self$$1.describedBy || self$$1._id + '-none');
-        self$$1.aria('label', settings.title);
-        self$$1._fullscreen = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.aria('describedby', self.describedBy || self._id + '-none');
+        self.aria('label', settings.title);
+        self._fullscreen = false;
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       recalc: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        var statusbar$$1 = self$$1.statusbar;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        var statusbar = self.statusbar;
</ins><span class="cx" style="display: block; padding: 0 10px">         var layoutRect, width, x, needsRecalc;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1._fullscreen) {
-          self$$1.layoutRect(funcs.getWindowSize());
-          self$$1.layoutRect().contentH = self$$1.layoutRect().innerH;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self._fullscreen) {
+          self.layoutRect(funcs.getWindowSize());
+          self.layoutRect().contentH = self.layoutRect().innerH;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1._super();
-        layoutRect = self$$1.layoutRect();
-        if (self$$1.settings.title && !self$$1._fullscreen) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self._super();
+        layoutRect = self.layoutRect();
+        if (self.settings.title && !self._fullscreen) {
</ins><span class="cx" style="display: block; padding: 0 10px">           width = layoutRect.headerW;
</span><span class="cx" style="display: block; padding: 0 10px">           if (width > layoutRect.w) {
</span><span class="cx" style="display: block; padding: 0 10px">             x = layoutRect.x - Math.max(0, width / 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">               w: width,
</span><span class="cx" style="display: block; padding: 0 10px">               x: x
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3837,12 +3837,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">             needsRecalc = true;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (statusbar$$1) {
-          statusbar$$1.layoutRect({ w: self$$1.layoutRect().innerW }).recalc();
-          width = statusbar$$1.layoutRect().minW + layoutRect.deltaW;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (statusbar) {
+          statusbar.layoutRect({ w: self.layoutRect().innerW }).recalc();
+          width = statusbar.layoutRect().minW + layoutRect.deltaW;
</ins><span class="cx" style="display: block; padding: 0 10px">           if (width > layoutRect.w) {
</span><span class="cx" style="display: block; padding: 0 10px">             x = layoutRect.x - Math.max(0, width - layoutRect.w);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.layoutRect({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.layoutRect({
</ins><span class="cx" style="display: block; padding: 0 10px">               w: width,
</span><span class="cx" style="display: block; padding: 0 10px">               x: x
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3850,141 +3850,141 @@
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (needsRecalc) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.recalc();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.recalc();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       initLayoutRect: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        var layoutRect = self$$1._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        var layoutRect = self._super();
</ins><span class="cx" style="display: block; padding: 0 10px">         var deltaH = 0, headEl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.settings.title && !self$$1._fullscreen) {
-          headEl = self$$1.getEl('head');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.settings.title && !self._fullscreen) {
+          headEl = self.getEl('head');
</ins><span class="cx" style="display: block; padding: 0 10px">           var size = funcs.getSize(headEl);
</span><span class="cx" style="display: block; padding: 0 10px">           layoutRect.headerW = size.width;
</span><span class="cx" style="display: block; padding: 0 10px">           layoutRect.headerH = size.height;
</span><span class="cx" style="display: block; padding: 0 10px">           deltaH += layoutRect.headerH;
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.statusbar) {
-          deltaH += self$$1.statusbar.layoutRect().h;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.statusbar) {
+          deltaH += self.statusbar.layoutRect().h;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         layoutRect.deltaH += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">         layoutRect.minH += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">         layoutRect.h += deltaH;
</span><span class="cx" style="display: block; padding: 0 10px">         var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        layoutRect.x = self$$1.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2);
-        layoutRect.y = self$$1.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        layoutRect.x = self.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2);
+        layoutRect.y = self.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2);
</ins><span class="cx" style="display: block; padding: 0 10px">         return layoutRect;
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this, layout = self$$1._layout, id = self$$1._id, prefix = self$$1.classPrefix;
-        var settings = self$$1.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this, layout = self._layout, id = self._id, prefix = self.classPrefix;
+        var settings = self.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">         var headerHtml = '', footerHtml = '', html = settings.html;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.preRender();
-        layout.preRender(self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.preRender();
+        layout.preRender(self);
</ins><span class="cx" style="display: block; padding: 0 10px">         if (settings.title) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          headerHtml = '<div id="' + id + '-head" class="' + prefix + 'window-head">' + '<div id="' + id + '-title" class="' + prefix + 'title">' + self$$1.encode(settings.title) + '</div>' + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + '<i class="mce-ico mce-i-remove"></i>' + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          headerHtml = '<div id="' + id + '-head" class="' + prefix + 'window-head">' + '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + '<i class="mce-ico mce-i-remove"></i>' + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.url) {
</span><span class="cx" style="display: block; padding: 0 10px">           html = '<iframe src="' + settings.url + '" tabindex="-1"></iframe>';
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (typeof html === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          html = layout.renderHtml(self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          html = layout.renderHtml(self);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.statusbar) {
-          footerHtml = self$$1.statusbar.renderHtml();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.statusbar) {
+          footerHtml = self.statusbar.renderHtml();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return '<div id="' + id + '" class="' + self$$1.classes + '" hidefocus="1">' + '<div class="' + self$$1.classPrefix + 'reset" role="application">' + headerHtml + '<div id="' + id + '-body" class="' + self$$1.bodyClasses + '">' + html + '</div>' + footerHtml + '</div>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return '<div id="' + id + '" class="' + self.classes + '" hidefocus="1">' + '<div class="' + self.classPrefix + 'reset" role="application">' + headerHtml + '<div id="' + id + '-body" class="' + self.bodyClasses + '">' + html + '</div>' + footerHtml + '</div>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       fullscreen: function (state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        var documentElement = document.documentElement;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        var documentElement = domGlobals.document.documentElement;
</ins><span class="cx" style="display: block; padding: 0 10px">         var slowRendering;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var prefix = self$$1.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var prefix = self.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">         var layoutRect;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (state !== self$$1._fullscreen) {
-          global$7(window).on('resize', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (state !== self._fullscreen) {
+          global$7(domGlobals.window).on('resize', function () {
</ins><span class="cx" style="display: block; padding: 0 10px">             var time;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            if (self$$1._fullscreen) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if (self._fullscreen) {
</ins><span class="cx" style="display: block; padding: 0 10px">               if (!slowRendering) {
</span><span class="cx" style="display: block; padding: 0 10px">                 time = new Date().getTime();
</span><span class="cx" style="display: block; padding: 0 10px">                 var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                self.moveTo(0, 0).resizeTo(rect.w, rect.h);
</ins><span class="cx" style="display: block; padding: 0 10px">                 if (new Date().getTime() - time > 50) {
</span><span class="cx" style="display: block; padding: 0 10px">                   slowRendering = true;
</span><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">               } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if (!self$$1._timer) {
-                  self$$1._timer = global$3.setTimeout(function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                if (!self._timer) {
+                  self._timer = global$3.setTimeout(function () {
</ins><span class="cx" style="display: block; padding: 0 10px">                     var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                    self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
-                    self$$1._timer = 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                    self.moveTo(0, 0).resizeTo(rect.w, rect.h);
+                    self._timer = 0;
</ins><span class="cx" style="display: block; padding: 0 10px">                   }, 50);
</span><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          layoutRect = self$$1.layoutRect();
-          self$$1._fullscreen = state;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          layoutRect = self.layoutRect();
+          self._fullscreen = state;
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.borderBox = BoxUtils.parseBox(self$$1.settings.border);
-            self$$1.getEl('head').style.display = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.borderBox = BoxUtils.parseBox(self.settings.border);
+            self.getEl('head').style.display = '';
</ins><span class="cx" style="display: block; padding: 0 10px">             layoutRect.deltaH += layoutRect.headerH;
</span><span class="cx" style="display: block; padding: 0 10px">             global$7([
</span><span class="cx" style="display: block; padding: 0 10px">               documentElement,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              document.body
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              domGlobals.document.body
</ins><span class="cx" style="display: block; padding: 0 10px">             ]).removeClass(prefix + 'fullscreen');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.classes.remove('fullscreen');
-            self$$1.moveTo(self$$1._initial.x, self$$1._initial.y).resizeTo(self$$1._initial.w, self$$1._initial.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.classes.remove('fullscreen');
+            self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h);
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1._initial = {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self._initial = {
</ins><span class="cx" style="display: block; padding: 0 10px">               x: layoutRect.x,
</span><span class="cx" style="display: block; padding: 0 10px">               y: layoutRect.y,
</span><span class="cx" style="display: block; padding: 0 10px">               w: layoutRect.w,
</span><span class="cx" style="display: block; padding: 0 10px">               h: layoutRect.h
</span><span class="cx" style="display: block; padding: 0 10px">             };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.borderBox = BoxUtils.parseBox('0');
-            self$$1.getEl('head').style.display = 'none';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.borderBox = BoxUtils.parseBox('0');
+            self.getEl('head').style.display = 'none';
</ins><span class="cx" style="display: block; padding: 0 10px">             layoutRect.deltaH -= layoutRect.headerH + 2;
</span><span class="cx" style="display: block; padding: 0 10px">             global$7([
</span><span class="cx" style="display: block; padding: 0 10px">               documentElement,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              document.body
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              domGlobals.document.body
</ins><span class="cx" style="display: block; padding: 0 10px">             ]).addClass(prefix + 'fullscreen');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.classes.add('fullscreen');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.classes.add('fullscreen');
</ins><span class="cx" style="display: block; padding: 0 10px">             var rect = funcs.getWindowSize();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.moveTo(0, 0).resizeTo(rect.w, rect.h);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1.reflow();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self.reflow();
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       postRender: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         var startPos;
</span><span class="cx" style="display: block; padding: 0 10px">         setTimeout(function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.classes.add('in');
-          self$$1.fire('open');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.classes.add('in');
+          self.fire('open');
</ins><span class="cx" style="display: block; padding: 0 10px">         }, 0);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1._super();
-        if (self$$1.statusbar) {
-          self$$1.statusbar.postRender();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self._super();
+        if (self.statusbar) {
+          self.statusbar.postRender();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.focus();
-        this.dragHelper = new DragHelper(self$$1._id + '-dragh', {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.focus();
+        this.dragHelper = new DragHelper(self._id + '-dragh', {
</ins><span class="cx" style="display: block; padding: 0 10px">           start: function () {
</span><span class="cx" style="display: block; padding: 0 10px">             startPos = {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              x: self$$1.layoutRect().x,
-              y: self$$1.layoutRect().y
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              x: self.layoutRect().x,
+              y: self.layoutRect().y
</ins><span class="cx" style="display: block; padding: 0 10px">             };
</span><span class="cx" style="display: block; padding: 0 10px">           },
</span><span class="cx" style="display: block; padding: 0 10px">           drag: function (e) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY);
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('submit', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('submit', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           if (!e.isDefaultPrevented()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            self$$1.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            self.close();
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        windows.push(self$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        windows.push(self);
</ins><span class="cx" style="display: block; padding: 0 10px">         toggleFullScreenState(true);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       submit: function () {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3991,17 +3991,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return this.fire('submit', { data: this.toJSON() });
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       remove: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         var i;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.dragHelper.destroy();
-        self$$1._super();
-        if (self$$1.statusbar) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.dragHelper.destroy();
+        self._super();
+        if (self.statusbar) {
</ins><span class="cx" style="display: block; padding: 0 10px">           this.statusbar.remove();
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        toggleBodyFullScreenClasses(self$$1.classPrefix, false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        toggleBodyFullScreenClasses(self.classPrefix, false);
</ins><span class="cx" style="display: block; padding: 0 10px">         i = windows.length;
</span><span class="cx" style="display: block; padding: 0 10px">         while (i--) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (windows[i] === self$$1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (windows[i] === self) {
</ins><span class="cx" style="display: block; padding: 0 10px">             windows.splice(i, 1);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4014,7 +4014,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px">     handleWindowResize();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var MessageBox = Window$$1.extend({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var MessageBox = Window.extend({
</ins><span class="cx" style="display: block; padding: 0 10px">       init: function (settings) {
</span><span class="cx" style="display: block; padding: 0 10px">         settings = {
</span><span class="cx" style="display: block; padding: 0 10px">           border: 1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4047,7 +4047,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">           var buttons;
</span><span class="cx" style="display: block; padding: 0 10px">           var callback = settings.callback || function () {
</span><span class="cx" style="display: block; padding: 0 10px">           };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          function createButton(text, status$$1, primary) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          function createButton(text, status, primary) {
</ins><span class="cx" style="display: block; padding: 0 10px">             return {
</span><span class="cx" style="display: block; padding: 0 10px">               type: 'button',
</span><span class="cx" style="display: block; padding: 0 10px">               text: text,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4054,7 +4054,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">               subtype: primary ? 'primary' : '',
</span><span class="cx" style="display: block; padding: 0 10px">               onClick: function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">                 e.control.parents()[1].close();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                callback(status$$1);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                callback(status);
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             };
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4079,7 +4079,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             buttons = [createButton('Ok', true, true)];
</span><span class="cx" style="display: block; padding: 0 10px">             break;
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          return new Window$$1({
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          return new Window({
</ins><span class="cx" style="display: block; padding: 0 10px">             padding: 20,
</span><span class="cx" style="display: block; padding: 0 10px">             x: settings.x,
</span><span class="cx" style="display: block; padding: 0 10px">             y: settings.y,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4105,7 +4105,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             onCancel: function () {
</span><span class="cx" style="display: block; padding: 0 10px">               callback(false);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          }).renderTo(document.body).reflow();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          }).renderTo(domGlobals.document.body).reflow();
</ins><span class="cx" style="display: block; padding: 0 10px">         },
</span><span class="cx" style="display: block; padding: 0 10px">         alert: function (settings, callback) {
</span><span class="cx" style="display: block; padding: 0 10px">           if (typeof settings === 'string') {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4126,7 +4126,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     function WindowManagerImpl (editor) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var open$$1 = function (args, params, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var open = function (args, params, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var win;
</span><span class="cx" style="display: block; padding: 0 10px">         args.title = args.title || ' ';
</span><span class="cx" style="display: block; padding: 0 10px">         args.url = args.url || args.file;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4160,7 +4160,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">           ];
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        win = new Window$$1(args);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        win = new Window(args);
</ins><span class="cx" style="display: block; padding: 0 10px">         win.on('close', function () {
</span><span class="cx" style="display: block; padding: 0 10px">           closeCallback(win);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4167,9 +4167,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         if (args.data) {
</span><span class="cx" style="display: block; padding: 0 10px">           win.on('postRender', function () {
</span><span class="cx" style="display: block; padding: 0 10px">             this.find('*').each(function (ctrl) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              var name$$1 = ctrl.name();
-              if (name$$1 in args.data) {
-                ctrl.value(args.data[name$$1]);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              var name = ctrl.name();
+              if (name in args.data) {
+                ctrl.value(args.data[name]);
</ins><span class="cx" style="display: block; padding: 0 10px">               }
</span><span class="cx" style="display: block; padding: 0 10px">             });
</span><span class="cx" style="display: block; padding: 0 10px">           });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4176,10 +4176,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         win.features = args || {};
</span><span class="cx" style="display: block; padding: 0 10px">         win.params = params || {};
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        win = win.renderTo(document.body).reflow();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        win = win.renderTo(domGlobals.document.body).reflow();
</ins><span class="cx" style="display: block; padding: 0 10px">         return win;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var alert$$1 = function (message, choiceCallback, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var alert = function (message, choiceCallback, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var win;
</span><span class="cx" style="display: block; padding: 0 10px">         win = MessageBox.alert(message, function () {
</span><span class="cx" style="display: block; padding: 0 10px">           choiceCallback();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4189,7 +4189,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return win;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var confirm$$1 = function (message, choiceCallback, closeCallback) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var confirm = function (message, choiceCallback, closeCallback) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var win;
</span><span class="cx" style="display: block; padding: 0 10px">         win = MessageBox.confirm(message, function (state) {
</span><span class="cx" style="display: block; padding: 0 10px">           choiceCallback(state);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4199,20 +4199,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         return win;
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var close$$1 = function (window$$1) {
-        window$$1.close();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var close = function (window) {
+        window.close();
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var getParams = function (window$$1) {
-        return window$$1.params;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var getParams = function (window) {
+        return window.params;
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      var setParams = function (window$$1, params) {
-        window$$1.params = params;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      var setParams = function (window, params) {
+        window.params = params;
</ins><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="cx" style="display: block; padding: 0 10px">       return {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        open: open$$1,
-        alert: alert$$1,
-        confirm: confirm$$1,
-        close: close$$1,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        open: open,
+        alert: alert,
+        confirm: confirm,
+        close: close,
</ins><span class="cx" style="display: block; padding: 0 10px">         getParams: getParams,
</span><span class="cx" style="display: block; padding: 0 10px">         setParams: setParams
</span><span class="cx" style="display: block; padding: 0 10px">       };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4234,7 +4234,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">     };
</span><span class="cx" style="display: block; padding: 0 10px">     var ThemeApi = { get: get };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    var Global = typeof window !== 'undefined' ? window : Function('return this;')();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var path = function (parts, scope) {
</span><span class="cx" style="display: block; padding: 0 10px">       var o = scope !== undefined && scope !== null ? scope : Global;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4279,13 +4279,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">     var pickFile = function () {
</span><span class="cx" style="display: block; padding: 0 10px">       return new global$c(function (resolve) {
</span><span class="cx" style="display: block; padding: 0 10px">         var fileInput;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        fileInput = document.createElement('input');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        fileInput = domGlobals.document.createElement('input');
</ins><span class="cx" style="display: block; padding: 0 10px">         fileInput.type = 'file';
</span><span class="cx" style="display: block; padding: 0 10px">         fileInput.style.position = 'fixed';
</span><span class="cx" style="display: block; padding: 0 10px">         fileInput.style.left = 0;
</span><span class="cx" style="display: block; padding: 0 10px">         fileInput.style.top = 0;
</span><span class="cx" style="display: block; padding: 0 10px">         fileInput.style.opacity = 0.001;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        document.body.appendChild(fileInput);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        domGlobals.document.body.appendChild(fileInput);
</ins><span class="cx" style="display: block; padding: 0 10px">         fileInput.onchange = function (e) {
</span><span class="cx" style="display: block; padding: 0 10px">           resolve(Array.prototype.slice.call(e.target.files));
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5029,26 +5029,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">         role: 'button'
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         var size;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1._super(settings);
-        settings = self$$1.settings;
-        size = self$$1.settings.size;
-        self$$1.on('click mousedown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self._super(settings);
+        settings = self.settings;
+        size = self.settings.size;
+        self.on('click mousedown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('touchstart', function (e) {
-          self$$1.fire('click', e);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('touchstart', function (e) {
+          self.fire('click', e);
</ins><span class="cx" style="display: block; padding: 0 10px">           e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.subtype) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.classes.add(settings.subtype);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.classes.add(settings.subtype);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (size) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.classes.add('btn-' + size);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.classes.add('btn-' + size);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (settings.icon) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.icon(settings.icon);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.icon(settings.icon);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       icon: function (icon) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5068,17 +5068,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">         this._super();
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;
-        var icon = self$$1.state.get('icon'), image;
-        var text = self$$1.state.get('text');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this, id = self._id, prefix = self.classPrefix;
+        var icon = self.state.get('icon'), image;
+        var text = self.state.get('text');
</ins><span class="cx" style="display: block; padding: 0 10px">         var textHtml = '';
</span><span class="cx" style="display: block; padding: 0 10px">         var ariaPressed;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var settings = self$$1.settings;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var settings = self.settings;
</ins><span class="cx" style="display: block; padding: 0 10px">         image = settings.image;
</span><span class="cx" style="display: block; padding: 0 10px">         if (image) {
</span><span class="cx" style="display: block; padding: 0 10px">           icon = 'none';
</span><span class="cx" style="display: block; padding: 0 10px">           if (typeof image !== 'string') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            image = window.getSelection ? image[0] : image[1];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            image = domGlobals.window.getSelection ? image[0] : image[1];
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">           image = ' style="background-image: url(\'' + image + '\')"';
</span><span class="cx" style="display: block; padding: 0 10px">         } else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5085,41 +5085,41 @@
</span><span class="cx" style="display: block; padding: 0 10px">           image = '';
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         if (text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.classes.add('btn-has-text');
-          textHtml = '<span class="' + prefix + 'txt">' + self$$1.encode(text) + '</span>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.classes.add('btn-has-text');
+          textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>';
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px">         icon = icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';
</span><span class="cx" style="display: block; padding: 0 10px">         ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return '<div id="' + id + '" class="' + self$$1.classes + '" tabindex="-1"' + ariaPressed + '>' + '<button id="' + id + '-button" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1"' + ariaPressed + '>' + '<button id="' + id + '-button" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this, $ = self$$1.$, textCls = self$$1.classPrefix + 'txt';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this, $ = self.$, textCls = self.classPrefix + 'txt';
</ins><span class="cx" style="display: block; padding: 0 10px">         function setButtonText(text) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var $span = $('span.' + textCls, self$$1.getEl());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var $span = $('span.' + textCls, self.getEl());
</ins><span class="cx" style="display: block; padding: 0 10px">           if (text) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (!$span[0]) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              $('button:first', self$$1.getEl()).append('<span class="' + textCls + '"></span>');
-              $span = $('span.' + textCls, self$$1.getEl());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              $('button:first', self.getEl()).append('<span class="' + textCls + '"></span>');
+              $span = $('span.' + textCls, self.getEl());
</ins><span class="cx" style="display: block; padding: 0 10px">             }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            $span.html(self$$1.encode(text));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            $span.html(self.encode(text));
</ins><span class="cx" style="display: block; padding: 0 10px">           } else {
</span><span class="cx" style="display: block; padding: 0 10px">             $span.remove();
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.classes.toggle('btn-has-text', !!text);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.classes.toggle('btn-has-text', !!text);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.state.on('change:text', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.state.on('change:text', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           setButtonText(e.value);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.state.on('change:icon', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.state.on('change:icon', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var icon = e.value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var prefix = self$$1.classPrefix;
-          self$$1.settings.icon = icon;
-          icon = icon ? prefix + 'ico ' + prefix + 'i-' + self$$1.settings.icon : '';
-          var btnElm = self$$1.getEl().firstChild;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var prefix = self.classPrefix;
+          self.settings.icon = icon;
+          icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';
+          var btnElm = self.getEl().firstChild;
</ins><span class="cx" style="display: block; padding: 0 10px">           var iconElm = btnElm.getElementsByTagName('i')[0];
</span><span class="cx" style="display: block; padding: 0 10px">           if (icon) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (!iconElm || iconElm !== btnElm.firstChild) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              iconElm = document.createElement('i');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              iconElm = domGlobals.document.createElement('i');
</ins><span class="cx" style="display: block; padding: 0 10px">               btnElm.insertBefore(iconElm, btnElm.firstChild);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             iconElm.className = icon;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5126,9 +5126,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">           } else if (iconElm) {
</span><span class="cx" style="display: block; padding: 0 10px">             btnElm.removeChild(iconElm);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          setButtonText(self$$1.state.get('text'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          setButtonText(self.state.get('text'));
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5207,18 +5207,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">         checked: false
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        self$$1._super(settings);
-        self$$1.on('click mousedown', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        self._super(settings);
+        self.on('click mousedown', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.preventDefault();
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.on('click', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.on('click', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           e.preventDefault();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          if (!self$$1.disabled()) {
-            self$$1.checked(!self$$1.checked());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          if (!self.disabled()) {
+            self.checked(!self.checked());
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.checked(self$$1.settings.checked);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.checked(self.settings.checked);
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       checked: function (state) {
</span><span class="cx" style="display: block; padding: 0 10px">         if (!arguments.length) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5234,35 +5234,35 @@
</span><span class="cx" style="display: block; padding: 0 10px">         return this.checked(state);
</span><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       renderHtml: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;
-        return '<div id="' + id + '" class="' + self$$1.classes + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + '<span id="' + id + '-al" class="' + prefix + 'label">' + self$$1.encode(self$$1.state.get('text')) + '</span>' + '</div>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this, id = self._id, prefix = self.classPrefix;
+        return '<div id="' + id + '" class="' + self.classes + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self.state.get('text')) + '</span>' + '</div>';
</ins><span class="cx" style="display: block; padding: 0 10px">       },
</span><span class="cx" style="display: block; padding: 0 10px">       bindStates: function () {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
</ins><span class="cx" style="display: block; padding: 0 10px">         function checked(state) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.classes.toggle('checked', state);
-          self$$1.aria('checked', state);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.classes.toggle('checked', state);
+          self.aria('checked', state);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.state.on('change:text', function (e) {
-          self$$1.getEl('al').firstChild.data = self$$1.translate(e.value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.state.on('change:text', function (e) {
+          self.getEl('al').firstChild.data = self.translate(e.value);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.state.on('change:checked change:value', function (e) {
-          self$$1.fire('change');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.state.on('change:checked change:value', function (e) {
+          self.fire('change');
</ins><span class="cx" style="display: block; padding: 0 10px">           checked(e.value);
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        self$$1.state.on('change:icon', function (e) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        self.state.on('change:icon', function (e) {
</ins><span class="cx" style="display: block; padding: 0 10px">           var icon = e.value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          var prefix = self$$1.classPrefix;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          var prefix = self.classPrefix;
</ins><span class="cx" style="display: block; padding: 0 10px">           if (typeof icon === 'undefined') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            return self$$1.settings.icon;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            return self.settings.icon;
</ins><span class="cx" style="display: block; padding: 0 10px">           }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          self$$1.settings.icon = icon;
-          icon = icon ? prefix + 'ico ' + prefix + 'i-' + self$$1.settings.icon : '';
-          var btnElm = self$$1.getEl().firstChild;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          self.settings.icon = icon;
+          icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';
+          var btnElm = self.getEl().firstChild;
</ins><span class="cx" style="display: block; padding: 0 10px">           var iconElm = btnElm.getElementsByTagName('i')[0];
</span><span class="cx" style="display: block; padding: 0 10px">           if (icon) {
</span><span class="cx" style="display: block; padding: 0 10px">             if (!iconElm || iconElm !== btnElm.firstChild) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-              iconElm = document.createElement('i');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+              iconElm = domGlobals.document.createElement('i');
</ins><span class="cx" style="display: block; padding: 0 10px">               btnElm.insertBefore(iconElm, btnElm.firstChild);
</span><span class="cx" style="display: block; padding: 0 10px">             }
</span><span class="cx" style="display: block; padding: 0 10px">             iconElm.className = icon;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5270,10 +5270,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">             btnElm.removeChild(iconElm);
</span><span class="cx" style="display: block; padding: 0 10px">           }
</span><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if (self$$1.state.get('checked')) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        if (self.state.get('checked')) {
</ins><span class="cx" style="display: block; padding: 0 10px">           checked(true);
</span><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        return self$$1._super();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        return self._super();
</ins><span class="cx" style="display: block; padding: 0 10px">       }
</span><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5281,29 +5281,29 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">     var ComboBox = Widget.extend({
</span><span class="cx" style="display: block; padding: 0 10px">       init: function (settings) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var self$$1 = this;
-        self$$1._super(settings);
-        settings = self$$1.settings;
-        self$$1.classes.add('combobox');
-        self$$1.subinput = true;
-        self$$1.ariaTarget = 'inp';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var self = this;
+        self._super(settings);
+        settings = self.settings;
+        self.classes.add('combobox');
+        self.subinput = true;
+        self.ariaTarget = 'inp';
</ins><span class="cx" style="display: block; padding: 0 10px">         settings.menu = settings.menu || settings.values;
</span><span class="cx" style="display: block; paddin