2016-12-17 16:59:11 +01:00
// 4.5.1 (2016-12-07)
! function ( e , t ) { "use strict" ; function n ( e , t ) { for ( var n , r = [ ] , i = 0 ; i < e . length ; ++ i ) { if ( n = s [ e [ i ] ] || o ( e [ i ] ) , ! n ) throw "module definition dependecy not found: " + e [ i ] ; r . push ( n ) } t . apply ( null , r ) } function r ( e , r , i ) { if ( "string" != typeof e ) throw "invalid module definition, module id must be defined and be a string" ; if ( r === t ) throw "invalid module definition, dependencies must be specified" ; if ( i === t ) throw "invalid module definition, definition function must be specified" ; n ( r , function ( ) { s [ e ] = i . apply ( null , arguments ) } ) } function i ( e ) { return ! ! s [ e ] } function o ( t ) { for ( var n = e , r = t . split ( /[.\/]/ ) , i = 0 ; i < r . length ; ++ i ) { if ( ! n [ r [ i ] ] ) return ; n = n [ r [ i ] ] } return n } function a ( n ) { var r , i , o , a , l ; for ( r = 0 ; r < n . length ; r ++ ) { i = e , o = n [ r ] , a = o . split ( /[.\/]/ ) ; for ( var c = 0 ; c < a . length - 1 ; ++ c ) i [ a [ c ] ] === t && ( i [ a [ c ] ] = { } ) , i = i [ a [ c ] ] ; i [ a [ a . length - 1 ] ] = s [ o ] } if ( e . AMDLC _TESTS ) { l = e . privateModules || { } ; for ( o in s ) l [ o ] = s [ o ] ; for ( r = 0 ; r < n . length ; r ++ ) delete l [ n [ r ] ] ; e . privateModules = l } } var s = { } , l = "tinymce/geom/Rect" , c = "tinymce/util/Promise" , u = "tinymce/util/Delay" , d = "tinymce/Env" , f = "tinymce/dom/EventUtils" , h = "tinymce/dom/Sizzle" , p = "tinymce/util/Arr" , m = "tinymce/util/Tools" , g = "tinymce/dom/DomQuery" , v = "tinymce/html/Styles" , y = "tinymce/dom/TreeWalker" , b = "tinymce/dom/Range" , C = "tinymce/html/Entities" , x = "tinymce/dom/StyleSheetLoader" , w = "tinymce/dom/DOMUtils" , E = "tinymce/dom/ScriptLoader" , N = "tinymce/AddOnManager" , _ = "tinymce/dom/NodeType" , S = "tinymce/text/Zwsp" , k = "tinymce/caret/CaretContainer" , T = "tinymce/dom/RangeUtils" , R = "tinymce/NodeChange" , A = "tinymce/html/Node" , B = "tinymce/html/Schema" , D = "tinymce/html/SaxParser" , L = "tinymce/html/DomParser" , M = "tinymce/html/Writer" , P = "tinymce/html/Serializer" , O = "tinymce/dom/Serializer" , H = "tinymce/dom/TridentSelection" , I = "tinymce/util/VK" , F = "tinymce/dom/ControlSelection" , z = "tinymce/util/Fun" , U = "tinymce/caret/CaretCandidate" , W = "tinymce/geom/ClientRect" , V = "tinymce/text/ExtendingChar" , $ = "tinymce/caret/CaretPosition" , q = "tinymce/caret/CaretBookmark" , j = "tinymce/dom/BookmarkManager" , Y = "tinymce/dom/Selection" , X = "tinymce/dom/ElementUtils" , K = "tinymce/fmt/Preview" , G = "tinymce/fmt/Hooks" , J = "tinymce/Formatter" , Q = "tinymce/undo/Diff" , Z = "tinymce/undo/Fragments" , ee = "tinymce/undo/Levels" , te = "tinymce/UndoManager" , ne = "tinymce/EnterKey" , re = "tinymce/ForceBlocks" , ie = "tinymce/caret/CaretUtils" , oe = "tinymce/caret/CaretWalker" , ae = "tinymce/InsertList" , se = "tinymce/InsertContent" , le = "tinymce/EditorCommands" , ce = "tinymce/util/URI" , ue = "tinymce/util/Class" , de = "tinymce/util/EventDispatcher" , fe = "tinymce/data/Binding" , he = "tinymce/util/Observable" , pe = "tinymce/data/ObservableObject" , me = "tinymce/ui/Selector" , ge = "tinymce/ui/Collection" , ve = "tinymce/ui/DomUtils" , ye = "tinymce/ui/BoxUtils" , be = "tinymce/ui/ClassList" , Ce = "tinymce/ui/ReflowQueue" , xe = "tinymce/ui/Control" , we = "tinymce/ui/Factory" , Ee = "tinymce/ui/KeyboardNavigation" , Ne = "tinymce/ui/Container" , _e = "tinymce/ui/DragHelper" , Se = "tinymce/ui/Scrollable" , ke = "tinymce/ui/Panel" , Te = "tinymce/ui/Movable" , Re = "tinymce/ui/Resizable" , Ae = "tinymce/ui/FloatPanel" , Be = "tinymce/ui/Window" , De = "tinymce/ui/MessageBox" , Le = "tinymce/WindowManager" , Me = "tinymce/ui/Tooltip" , Pe = "tinymce/ui/Widget" , Oe = "tinymce/ui/Progress" , He = "tinymce/ui/Notification" , Ie = "tinymce/NotificationManager" , Fe = "tinymce/dom/NodePath" , ze = "tinymce/util/Quirks" , Ue = "tinymce/EditorObservable" , We = "tinymce/Mode" , Ve = "tinymce/Shortcuts" , $e = "tinymce/file/Uploader" , qe = "tinymce/file/Conversions" , je = "tinymce/file/ImageScanner" , Ye = "tinymce/file/BlobCache" , Xe = "tinymce/file/UploadStatus" , Ke = "tinymce/EditorUpload" , Ge = "tinymce/caret/FakeCaret" , Je = "tinymce/dom/Dimensions" , Qe = "tinymce/caret/LineWalker" , Ze = "tinymce/caret/LineUtils" , et = "tinymce/dom/MousePosition" , tt = "tinymce/DragDropOverrides" , nt = "tinymce/SelectionOverrides" , rt = "tinymce/util/Uuid" , it = "tinymce/ui/Sidebar" , ot = "tinymce/Editor" , at = "tinymce/util/I18n" , st = "tinymce/FocusManager" , lt = "tinymce/EditorManager" , ct = "tinymce/LegacyInput" , ut = "tinymce/util/XHR" , dt = "tinymce/util/JSON" , ft = "tinymce/util/JSONRequest" , ht = "tinymce/util/JSONP" , pt = "tinymce/util/LocalStorage" , mt = "tinymce/Compat" , gt = "tinymce/ui/Layout" , vt = "tinymce/ui/AbsoluteLayout" , yt = "tinymce/ui/Button" , bt = "tinymce/ui/ButtonGroup" , Ct = " tinymce /
o . length > 2 && "ID" === ( a = o [ 0 ] ) . type && x . getById && 9 === t . nodeType && M && w . relative [ o [ 1 ] . type ] ) { if ( t = ( w . find . ID ( a . matches [ 0 ] . replace ( Ce , xe ) , t ) || [ ] ) [ 0 ] , ! t ) return n ; c && ( t = t . parentNode ) , e = e . slice ( o . shift ( ) . value . length ) } for ( i = he . needsContext . test ( e ) ? 0 : o . length ; i -- && ( a = o [ i ] , ! w . relative [ s = a . type ] ) ; ) if ( ( l = w . find [ s ] ) && ( r = l ( a . matches [ 0 ] . replace ( Ce , xe ) , ye . test ( o [ 0 ] . type ) && u ( t . parentNode ) || t ) ) ) { if ( o . splice ( i , 1 ) , e = r . length && f ( o ) , ! e ) return Z . apply ( n , r ) , n ; break } } return ( c || S ( e , d ) ) ( r , t , ! M , n , ye . test ( e ) && u ( t . parentNode ) || t ) , n } , x . sortStable = F . split ( "" ) . sort ( j ) . join ( "" ) === F , x . detectDuplicates = ! ! A , B ( ) , x . sortDetached = i ( function ( e ) { return 1 & e . compareDocumentPosition ( D . createElement ( "div" ) ) } ) , i ( function ( e ) { return e . innerHTML = "<a href='#'></a>" , "#" === e . firstChild . getAttribute ( "href" ) } ) || o ( "type|href|height|width" , function ( e , t , n ) { if ( ! n ) return e . getAttribute ( t , "type" === t . toLowerCase ( ) ? 1 : 2 ) } ) , x . attributes && i ( function ( e ) { return e . innerHTML = "<input/>" , e . firstChild . setAttribute ( "value" , "" ) , "" === e . firstChild . getAttribute ( "value" ) } ) || o ( "value" , function ( e , t , n ) { if ( ! n && "input" === e . nodeName . toLowerCase ( ) ) return e . defaultValue } ) , i ( function ( e ) { return null == e . getAttribute ( "disabled" ) } ) || o ( ne , function ( e , t , n ) { var r ; if ( ! n ) return e [ t ] === ! 0 ? t . toLowerCase ( ) : ( r = e . getAttributeNode ( t ) ) && r . specified ? r . value : null } ) , e } ) , r ( p , [ ] , function ( ) { function e ( e ) { var t = e , n , r ; if ( ! u ( e ) ) for ( t = [ ] , n = 0 , r = e . length ; n < r ; n ++ ) t [ n ] = e [ n ] ; return t } function n ( e , n , r ) { var i , o ; if ( ! e ) return 0 ; if ( r = r || e , e . length !== t ) { for ( i = 0 , o = e . length ; i < o ; i ++ ) if ( n . call ( r , e [ i ] , i , e ) === ! 1 ) return 0 } else for ( i in e ) if ( e . hasOwnProperty ( i ) && n . call ( r , e [ i ] , i , e ) === ! 1 ) return 0 ; return 1 } function r ( e , t ) { var r = [ ] ; return n ( e , function ( n , i ) { r . push ( t ( n , i , e ) ) } ) , r } function i ( e , t ) { var r = [ ] ; return n ( e , function ( n , i ) { t && ! t ( n , i , e ) || r . push ( n ) } ) , r } function o ( e , t ) { var n , r ; if ( e ) for ( n = 0 , r = e . length ; n < r ; n ++ ) if ( e [ n ] === t ) return n ; return - 1 } function a ( e , t , n , r ) { var i = 0 ; for ( arguments . length < 3 && ( n = e [ 0 ] ) ; i < e . length ; i ++ ) n = t . call ( r , n , e [ i ] , i ) ; return n } function s ( e , t , n ) { var r , i ; for ( r = 0 , i = e . length ; r < i ; r ++ ) if ( t . call ( n , e [ r ] , r , e ) ) return r ; return - 1 } function l ( e , n , r ) { var i = s ( e , n , r ) ; return i !== - 1 ? e [ i ] : t } function c ( e ) { return e [ e . length - 1 ] } var u = Array . isArray || function ( e ) { return "[object Array]" === Object . prototype . toString . call ( e ) } ; return { isArray : u , toArray : e , each : n , map : r , filter : i , indexOf : o , reduce : a , findIndex : s , find : l , last : c } } ) , r ( m , [ d , p ] , function ( e , n ) { function r ( e ) { return null === e || e === t ? "" : ( "" + e ) . replace ( p , "" ) } function i ( e , r ) { return r ? ! ( "array" != r || ! n . isArray ( e ) ) || typeof e == r : e !== t } function o ( e , t , n ) { var r ; for ( e = e || [ ] , t = t || "," , "string" == typeof e && ( e = e . split ( t ) ) , n = n || { } , r = e . length ; r -- ; ) n [ e [ r ] ] = { } ; return n } function a ( e , t ) { return Object . prototype . hasOwnProperty . call ( e , t ) } function s ( e , t , n ) { var r = this , i , o , a , s , l , c = 0 ; if ( e = /^((static) )?([\w.]+)(:([\w.]+))?/ . exec ( e ) , a = e [ 3 ] . match ( /(^|\.)(\w+)$/i ) [ 2 ] , o = r . createNS ( e [ 3 ] . replace ( /\.\w+$/ , "" ) , n ) , ! o [ a ] ) { if ( "static" == e [ 2 ] ) return o [ a ] = t , void ( this . onCreate && this . onCreate ( e [ 2 ] , e [ 3 ] , o [ a ] ) ) ; t [ a ] || ( t [ a ] = function ( ) { } , c = 1 ) , o [ a ] = t [ a ] , r . extend ( o [ a ] . prototype , t ) , e [ 5 ] && ( i = r . resolve ( e [ 5 ] ) . prototype , s = e [ 5 ] . match ( /\.(\w+)$/i ) [ 1 ] , l = o [ a ] , c ? o [ a ] = function ( ) { return i [ s ] . apply ( this , arguments ) } : o [ a ] = function ( ) { return this . parent = i [ s ] , l . apply ( this , arguments ) } , o [ a ] . prototype [ a ] = o [ a ] , r . each ( i , function ( e , t ) { o [ a ] . prototype [ t ] = i [ t ] } ) , r . each ( t , function ( e , t ) { i [ t ] ? o [ a ] . prototype [ t ] = function ( ) { return this . parent = i [ t ] , e . apply ( this , arguments ) } : t != a && ( o [ a ] . prototype [ t ] = e ) } ) ) , r . each ( t [ "static" ] , function ( e , t ) { o [ a ] [ t ] = e } ) } } function l ( e , n ) { var r , i , o , a = arguments , s ; for ( r = 1 , i = a . length ; r < i ; r ++ ) { n = a [ r ] ; for ( o in n ) n . hasOwnProperty ( o ) && ( s = n [ o ] , s !== t && ( e [ o ] = s ) ) } return e } function c ( e , t , r , i ) { i = i || this , e && ( r && ( e = e [ r ] ) , n . each ( e , function ( e , n ) { return t . call ( i , e , n , r ) !== ! 1 && void c ( e , t , r , i ) } ) ) } function u ( e , t ) { var n , r ; for ( t = t || window , e = e . split ( "." ) , n = 0 ; n < e . length ; n ++ ) r = e [ n ] , t [ r ] || ( t [ r ] = { } ) , t = t [ r ] ; return t } function d ( e , t ) { var n , r ; for ( t = t || window , e = e . split ( "." ) , n = 0 , r = e . length ; n < r && ( t = t [ e [ n ] ] , t ) ; n ++ ) ; return t } function f ( e , t ) { return ! e || i ( e , "array" ) ? e : n . map ( e . split ( t || "," ) , r ) } function h ( t ) { var n = e . cacheSuffix ; return n && ( t += ( t . indexOf ( "?" ) === - 1 ? "?" : "&" ) + n ) , t } var p = /^\s*|\s*$/g ; return { trim : r , isArray : n . isArra
h : parseInt ( r , 10 ) || e . offsetHeight || e . clientHeight } } , getParent : function ( e , t , n ) { return this . getParents ( e , t , n , ! 1 ) } , getParents : function ( e , n , r , i ) { var o = this , a , s = [ ] ; for ( e = o . get ( e ) , i = i === t , r = r || ( "BODY" != o . getRoot ( ) . nodeName ? o . getRoot ( ) . parentNode : null ) , g ( n , "string" ) && ( a = n , n = "*" === n ? function ( e ) { return 1 == e . nodeType } : function ( e ) { return o . is ( e , a ) } ) ; e && e != r && e . nodeType && 9 !== e . nodeType ; ) { if ( ! n || n ( e ) ) { if ( ! i ) return e ; s . push ( e ) } e = e . parentNode } return i ? s : null } , get : function ( e ) { var t ; return e && this . doc && "string" == typeof e && ( t = e , e = this . doc . getElementById ( e ) , e && e . id !== t ) ? this . doc . getElementsByName ( t ) [ 1 ] : e } , getNext : function ( e , t ) { return this . _findSib ( e , t , "nextSibling" ) } , getPrev : function ( e , t ) { return this . _findSib ( e , t , "previousSibling" ) } , select : function ( t , n ) { var r = this ; return e ( t , r . get ( n ) || r . settings . root _element || r . doc , [ ] ) } , is : function ( n , r ) { var i ; if ( n . length === t ) { if ( "*" === r ) return 1 == n . nodeType ; if ( C . test ( r ) ) { for ( r = r . toLowerCase ( ) . split ( /,/ ) , n = n . nodeName . toLowerCase ( ) , i = r . length - 1 ; i >= 0 ; i -- ) if ( r [ i ] == n ) return ! 0 ; return ! 1 } } if ( n . nodeType && 1 != n . nodeType ) return ! 1 ; var o = n . nodeType ? [ n ] : n ; return e ( r , o [ 0 ] . ownerDocument || o [ 0 ] , null , o ) . length > 0 } , add : function ( e , t , n , r , i ) { var o = this ; return this . run ( e , function ( e ) { var a ; return a = g ( t , "string" ) ? o . doc . createElement ( t ) : t , o . setAttribs ( a , n ) , r && ( r . nodeType ? a . appendChild ( r ) : o . setHTML ( a , r ) ) , i ? a : e . appendChild ( a ) } ) } , create : function ( e , t , n ) { return this . add ( this . doc . createElement ( e ) , e , t , n , 1 ) } , createHTML : function ( e , t , n ) { var r = "" , i ; r += "<" + e ; for ( i in t ) t . hasOwnProperty ( i ) && null !== t [ i ] && "undefined" != typeof t [ i ] && ( r += " " + i + '="' + this . encode ( t [ i ] ) + '"' ) ; return "undefined" != typeof n ? r + ">" + n + "</" + e + ">" : r + " />" } , createFragment : function ( e ) { var t , n , r = this . doc , i ; for ( i = r . createElement ( "div" ) , t = r . createDocumentFragment ( ) , e && ( i . innerHTML = e ) ; n = i . firstChild ; ) t . appendChild ( n ) ; return t } , remove : function ( e , t ) { return e = this . $$ ( e ) , t ? e . each ( function ( ) { for ( var e ; e = this . firstChild ; ) 3 == e . nodeType && 0 === e . data . length ? this . removeChild ( e ) : this . parentNode . insertBefore ( e , this ) } ) . remove ( ) : e . remove ( ) , e . length > 1 ? e . toArray ( ) : e [ 0 ] } , setStyle : function ( e , t , n ) { e = this . $$ ( e ) . css ( t , n ) , this . settings . update _styles && f ( this , e ) } , getStyle : function ( e , n , r ) { return e = this . $$ ( e ) , r ? e . css ( n ) : ( n = n . replace ( /-(\D)/g , function ( e , t ) { return t . toUpperCase ( ) } ) , "float" == n && ( n = l . ie && l . ie < 12 ? "styleFloat" : "cssFloat" ) , e [ 0 ] && e [ 0 ] . style ? e [ 0 ] . style [ n ] : t ) } , setStyles : function ( e , t ) { e = this . $$ ( e ) . css ( t ) , this . settings . update _styles && f ( this , e ) } , removeAllAttribs : function ( e ) { return this . run ( e , function ( e ) { var t , n = e . attributes ; for ( t = n . length - 1 ; t >= 0 ; t -- ) e . removeAttributeNode ( n . item ( t ) ) } ) } , setAttrib : function ( e , t , n ) { var r = this , i , o , a = r . settings ; "" === n && ( n = null ) , e = r . $$ ( e ) , i = e . attr ( t ) , e . length && ( o = r . attrHooks [ t ] , o && o . set ? o . set ( e , n , t ) : e . attr ( t , n ) , i != n && a . onSetAttrib && a . onSetAttrib ( { attrElm : e , attrName : t , attrValue : n } ) ) } , setAttribs : function ( e , t ) { var n = this ; n . $$ ( e ) . each ( function ( e , r ) { m ( t , function ( e , t ) { n . setAttrib ( r , t , e ) } ) } ) } , getAttrib : function ( e , t , n ) { var r = this , i , o ; return e = r . $$ ( e ) , e . length && ( i = r . attrHooks [ t ] , o = i && i . get ? i . get ( e , t ) : e . attr ( t ) ) , "undefined" == typeof o && ( o = n || "" ) , o } , getPos : function ( e , t ) { var r = this , i = 0 , o = 0 , a , s = r . doc , l = s . body , c ; if ( e = r . get ( e ) , t = t || l , e ) { if ( t === l && e . getBoundingClientRect && "static" === n ( l ) . css ( "position" ) ) return c = e . getBoundingClientRect ( ) , t = r . boxModel ? s . documentElement : l , i = c . left + ( s . documentElement . scrollLeft || l . scrollLeft ) - t . clientLeft , o = c . top + ( s . documentElement . scrollTop || l . scrollTop ) - t . clientTop , { x : i , y : o } ; for ( a = e ; a && a != t && a . nodeType ; ) i += a . offsetLeft || 0 , o += a . offsetTop || 0 , a = a . offsetParent ; for ( a = e . parentNode ; a && a != t && a . nodeType ; ) i -= a . scrollLeft || 0 , o -= a . scrollTop || 0 , a = a . parentNode } return { x : i , y : o } } , parseStyle : function ( e ) { return this . styles . parse ( e ) } , serializeStyle : function ( e , t ) { return this . styles . serialize ( e , t ) } , addStyle : function ( e ) { var t = this , n = t . doc , r , i ; if ( t !== p . DOM && n === document ) { var o = p . DOM . addedStyles ; if ( o = o || [ ] , o [ e ] ) return ; o [ e ] = ! 0 , p . DOM . addedStyles = o } i = n . getElementById ( "mceDefaultStyles" ) , i || ( i = n . createElement ( "style" ) , i . id = "mceDefaultStyles" , i . type = "text/css" , r = n . getElementsByTagName ( "head" ) [ 0 ] , r . firstChild ? r . insertBefore ( i , r . firstChild ) : r . appendChild ( i ) ) , i . styleSheet ? i . styleSheet . cssText += e : i . appe
o || ( o = a ( n , " " , a ( n . toUpperCase ( ) , " " ) ) , o = l ( o , r ) , i [ t ] = o ) ) , o } function d ( e ) { return new RegExp ( "^" + e . replace ( /([?+*])/g , ".$1" ) + "$" ) } function f ( e ) { var n , r , i , o , s , l , c , f , h , p , m , g , v , b , x , w , E , N , _ , S = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/ , k = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/ , T = /[*?+]/ ; if ( e ) for ( e = t ( e , "," ) , y [ "@" ] && ( w = y [ "@" ] . attributes , E = y [ "@" ] . attributesOrder ) , n = 0 , r = e . length ; n < r ; n ++ ) if ( s = S . exec ( e [ n ] ) ) { if ( b = s [ 1 ] , h = s [ 2 ] , x = s [ 3 ] , f = s [ 5 ] , g = { } , v = [ ] , l = { attributes : g , attributesOrder : v } , "#" === b && ( l . paddEmpty = ! 0 ) , "-" === b && ( l . removeEmpty = ! 0 ) , "!" === s [ 4 ] && ( l . removeEmptyAttrs = ! 0 ) , w ) { for ( N in w ) g [ N ] = w [ N ] ; v . push . apply ( v , E ) } if ( f ) for ( f = t ( f , "|" ) , i = 0 , o = f . length ; i < o ; i ++ ) if ( s = k . exec ( f [ i ] ) ) { if ( c = { } , m = s [ 1 ] , p = s [ 2 ] . replace ( /::/g , ":" ) , b = s [ 3 ] , _ = s [ 4 ] , "!" === m && ( l . attributesRequired = l . attributesRequired || [ ] , l . attributesRequired . push ( p ) , c . required = ! 0 ) , "-" === m ) { delete g [ p ] , v . splice ( u ( v , p ) , 1 ) ; continue } b && ( "=" === b && ( l . attributesDefault = l . attributesDefault || [ ] , l . attributesDefault . push ( { name : p , value : _ } ) , c . defaultValue = _ ) , ":" === b && ( l . attributesForced = l . attributesForced || [ ] , l . attributesForced . push ( { name : p , value : _ } ) , c . forcedValue = _ ) , "<" === b && ( c . validValues = a ( _ , "?" ) ) ) , T . test ( p ) ? ( l . attributePatterns = l . attributePatterns || [ ] , c . pattern = d ( p ) , l . attributePatterns . push ( c ) ) : ( g [ p ] || v . push ( p ) , g [ p ] = c ) } w || "@" != h || ( w = g , E = v ) , x && ( l . outputName = h , y [ x ] = l ) , T . test ( h ) ? ( l . pattern = d ( h ) , C . push ( l ) ) : y [ h ] = l } } function h ( e ) { y = { } , C = [ ] , f ( e ) , s ( E , function ( e , t ) { b [ t ] = e . children } ) } function p ( e ) { var n = /^(~)?(.+)$/ ; e && ( i . text _block _elements = i . block _elements = null , s ( t ( e , "," ) , function ( e ) { var t = n . exec ( e ) , r = "~" === t [ 1 ] , i = r ? "span" : "div" , o = t [ 2 ] ; if ( b [ o ] = b [ i ] , M [ o ] = i , r || ( R [ o . toUpperCase ( ) ] = { } , R [ o ] = { } ) , ! y [ o ] ) { var a = y [ i ] ; a = l ( { } , a ) , delete a . removeEmptyAttrs , delete a . removeEmpty , y [ o ] = a } s ( b , function ( e , t ) { e [ i ] && ( b [ t ] = e = l ( { } , b [ t ] ) , e [ o ] = e [ i ] ) } ) } ) ) } function m ( n ) { var r = /^([+\-]?)(\w+)\[([^\]]+)\]$/ ; i [ e . schema ] = null , n && s ( t ( n , "," ) , function ( e ) { var n = r . exec ( e ) , i , o ; n && ( o = n [ 1 ] , i = o ? b [ n [ 2 ] ] : b [ n [ 2 ] ] = { "#comment" : { } } , i = b [ n [ 2 ] ] , s ( t ( n [ 3 ] , "|" ) , function ( e ) { "-" === o ? delete i [ e ] : i [ e ] = { } } ) ) } ) } function g ( e ) { var t = y [ e ] , n ; if ( t ) return t ; for ( n = C . length ; n -- ; ) if ( t = C [ n ] , t . pattern . test ( e ) ) return t } var v = this , y = { } , b = { } , C = [ ] , x , w , E , N , _ , S , k , T , R , A , B , D , L , M = { } , P = { } ; e = e || { } , E = n ( e . schema ) , e . verify _html === ! 1 && ( e . valid _elements = "*[*]" ) , x = r ( e . valid _styles ) , w = r ( e . invalid _styles , "map" ) , T = r ( e . valid _classes , "map" ) , N = o ( "whitespace_elements" , "pre script noscript style textarea video audio iframe object" ) , _ = o ( "self_closing_elements" , "colgroup dd dt li option p td tfoot th thead tr" ) , S = o ( "short_ended_elements" , "area base basefont br col frame hr img input isindex link meta param embed source wbr track" ) , k = o ( "boolean_attributes" , "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls" ) , A = o ( "non_empty_elements" , "td th iframe video audio object script" , S ) , B = o ( "move_caret_before_on_enter_elements" , "table" , A ) , D = o ( "text_block_elements" , "h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure" ) , R = o ( "block_elements" , "hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption" , D ) , L = o ( "text_inline_elements" , "span strong b em i font strike u var cite dfn code mark q sup sub samp" ) , s ( ( e . special || "script noscript style textarea" ) . split ( " " ) , function ( e ) { P [ e ] = new RegExp ( "</" + e + "[^>]*>" , "gi" ) } ) , e . valid _elements ? h ( e . valid _elements ) : ( s ( E , function ( e , t ) { y [ t ] = { attributes : e . attributes , attributesOrder : e . attributesOrder } , b [ t ] = e . children } ) , "html5" != e . schema && s ( t ( "strong/b em/i" ) , function ( e ) { e = t ( e , "/" ) , y [ e [ 1 ] ] . outputName = e [ 0 ] } ) , s ( t ( "ol ul sub sup blockquote span font a table tbody tr strong em b i" ) , function ( e ) { y [ e ] && ( y [ e ] . removeEmpty = ! 0 ) } ) , s ( t ( "p h1 h2 h3 h4 h5 h6 th td pre div address caption" ) , function ( e ) { y [ e ] . paddEmpty = ! 0 } ) , s ( t ( "span" ) , function ( e ) { y [ e ] . removeEmptyAttrs = ! 0 } ) ) , p ( e . custom _elements ) , m ( e . valid _children ) , f ( e . extended _valid _elements ) , m ( "+ol[ul|ol],+ul[ul|ol]" ) , s ( { dd : "dl" , dt : "dl" , li : "ul ol" , td : "tr" , th : "tr" , tr : "tbody thead tfoot" , tbody : "table" , thead : "table" ,
s . on ( "init" , function ( ) { q ? ( s . on ( "ObjectResized" , function ( e ) { "TABLE" != e . target . nodeName && ( f ( ) , E ( e . target ) ) } ) , p ( X , "controlselect" , b ) , s . on ( "mousedown" , function ( e ) { D = e } ) ) : ( w ( ) , r . ie >= 11 && ( s . on ( "mousedown click" , function ( e ) { var t = e . target , n = t . nodeName ; z || ! /^(TABLE|IMG|HR)$/ . test ( n ) || y ( t ) || ( s . selection . select ( t , "TABLE" == n ) , "mousedown" == e . type && s . nodeChanged ( ) ) } ) , s . dom . bind ( X , "mscontrolselect" , function ( e ) { function t ( e ) { n . setEditorTimeout ( s , function ( ) { s . selection . select ( e ) } ) } return y ( e . target ) ? ( e . preventDefault ( ) , void t ( e . target ) ) : void ( /^(TABLE|IMG|HR)$/ . test ( e . target . nodeName ) && ( e . preventDefault ( ) , "IMG" == e . target . tagName && t ( e . target ) ) ) } ) ) ) ; var e = n . throttle ( function ( e ) { s . composing || h ( e ) } ) ; s . on ( "nodechange ResizeEditor ResizeWindow drop" , e ) , s . on ( "keyup compositionend" , function ( t ) { k && "TABLE" == k . nodeName && e ( t ) } ) , s . on ( "hide blur" , f ) } ) , s . on ( "remove" , x ) , { isResizable : l , showResizeRect : d , hideResizeRect : f , updateResizeRect : h , controlSelect : E , destroy : N } } } ) , r ( z , [ ] , function ( ) { function e ( e ) { return function ( ) { return e } } function t ( e ) { return function ( t ) { return ! e ( t ) } } function n ( e , t ) { return function ( n ) { return e ( t ( n ) ) } } function r ( ) { var e = s . call ( arguments ) ; return function ( t ) { for ( var n = 0 ; n < e . length ; n ++ ) if ( e [ n ] ( t ) ) return ! 0 ; return ! 1 } } function i ( ) { var e = s . call ( arguments ) ; return function ( t ) { for ( var n = 0 ; n < e . length ; n ++ ) if ( ! e [ n ] ( t ) ) return ! 1 ; return ! 0 } } function o ( e ) { var t = s . call ( arguments ) ; return t . length - 1 >= e . length ? e . apply ( this , t . slice ( 1 ) ) : function ( ) { var e = t . concat ( [ ] . slice . call ( arguments ) ) ; return o . apply ( this , e ) } } function a ( ) { } var s = [ ] . slice ; return { constant : e , negate : t , and : i , or : r , curry : o , compose : n , noop : a } } ) , r ( U , [ _ , p , k ] , function ( e , t , n ) { function r ( e ) { return ! m ( e ) && ( d ( e ) ? ! f ( e . parentNode ) : h ( e ) || u ( e ) || p ( e ) || c ( e ) ) } function i ( e , t ) { for ( e = e . parentNode ; e && e != t ; e = e . parentNode ) { if ( c ( e ) ) return ! 1 ; if ( l ( e ) ) return ! 0 } return ! 0 } function o ( e ) { return ! ! c ( e ) && t . reduce ( e . getElementsByTagName ( "*" ) , function ( e , t ) { return e || l ( t ) } , ! 1 ) !== ! 0 } function a ( e ) { return h ( e ) || o ( e ) } function s ( e , t ) { return r ( e ) && i ( e , t ) } var l = e . isContentEditableTrue , c = e . isContentEditableFalse , u = e . isBr , d = e . isText , f = e . matchNodeNames ( "script style textarea" ) , h = e . matchNodeNames ( "img input textarea hr iframe video audio object" ) , p = e . matchNodeNames ( "table" ) , m = n . isCaretContainer ; return { isCaretCandidate : r , isInEditable : i , isAtomic : a , isEditableCaretCandidate : s } } ) , r ( W , [ ] , function ( ) { function e ( e ) { return e ? { left : u ( e . left ) , top : u ( e . top ) , bottom : u ( e . bottom ) , right : u ( e . right ) , width : u ( e . width ) , height : u ( e . height ) } : { left : 0 , top : 0 , bottom : 0 , right : 0 , width : 0 , height : 0 } } function t ( t , n ) { return t = e ( t ) , n ? t . right = t . left : ( t . left = t . left + t . width , t . right = t . left ) , t . width = 0 , t } function n ( e , t ) { return e . left === t . left && e . top === t . top && e . bottom === t . bottom && e . right === t . right } function r ( e , t , n ) { return e >= 0 && e <= Math . min ( t . height , n . height ) / 2 } function i ( e , t ) { return e . bottom < t . top || ! ( e . top > t . bottom ) && r ( t . top - e . bottom , e , t ) } function o ( e , t ) { return e . top > t . bottom || ! ( e . bottom < t . top ) && r ( t . bottom - e . top , e , t ) } function a ( e , t ) { return e . left < t . left } function s ( e , t ) { return e . right > t . right } function l ( e , t ) { return i ( e , t ) ? - 1 : o ( e , t ) ? 1 : a ( e , t ) ? - 1 : s ( e , t ) ? 1 : 0 } function c ( e , t , n ) { return t >= e . left && t <= e . right && n >= e . top && n <= e . bottom } var u = Math . round ; return { clone : e , collapse : t , isEqual : n , isAbove : i , isBelow : o , isLeft : a , isRight : s , compare : l , containsXY : c } } ) , r ( V , [ ] , function ( ) { function e ( e ) { return "string" == typeof e && e . charCodeAt ( 0 ) >= 768 && t . test ( e ) } var t = new RegExp ( " [ \u0300 - \u036f\u0483 - \u0487\u0488 - \u0489\u0591 - \u05bd\u05bf\u05c1 - \u05c2\u05c4 - \u05c5\u05c7\u0610 - \u061a\u064b - \u065f\u0670\u06d6 - \u06dc\u06df - \u06e4\u06e7 - \u06e8\u06ea - \u06ed\u0711\u0730 - \u074a\u07a6 - \u07b0\u07eb - \u07f3\u0816 - \u0819\u081b - \u0823\u0825 - \u0827\u0829 - \u082d\u0859 - \u085b\u08e3 - \u0902\u093a\u093c\u0941 - \u0948\u094d\u0951 - \u0957\u0962 - \u0963\u0981\u09bc\u09be\u09c1 - \u09c4\u09cd\u09d7\u09e2 - \u09e3\u0a01 - \u0a02\u0a3c\u0a41 - \u0a42\u0a47 - \u0a48\u0a4b - \u0a4d\u0a51\u0a70 - \u0a71\u0a75\u0a81 - \u0a82\u0abc\u0ac1 - \u0ac5\u0ac7 - \u0ac8\u0acd\u0ae2 - \u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41 - \u0b44\u0b4d\u0b56\u0b57\u0b62 - \u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e - \u0c40\u0c46 - \u0c48\u0c4a - \u0c4d\u0c55 - \u0c56\u0c62 - \u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6 \ u0
} function x ( t , n , r ) { function i ( e , t ) { if ( t = t || h , e ) { if ( t . onformat && t . onformat ( e , t , n , r ) , ue ( t . styles , function ( t , r ) { Y . setStyle ( e , r , M ( t , n ) ) } ) , t . styles ) { var i = Y . getAttrib ( e , "style" ) ; i && e . setAttribute ( "data-mce-style" , i ) } ue ( t . attributes , function ( t , r ) { Y . setAttrib ( e , r , M ( t , n ) ) } ) , ue ( t . classes , function ( t ) { t = M ( t , n ) , Y . hasClass ( e , t ) || Y . addClass ( e , t ) } ) } } function o ( e , t ) { var n = ! 1 ; return ! ! h . selector && ( ue ( e , function ( e ) { if ( ! ( "collapsed" in e && e . collapsed !== v ) ) return Y . is ( t , e . selector ) && ! f ( t ) ? ( i ( t , e ) , n = ! 0 , ! 1 ) : void 0 } ) , n ) } function c ( ) { function t ( t , n ) { var i = new e ( n ) ; for ( r = i . prev2 ( ) ; r ; r = i . prev2 ( ) ) { if ( 3 == r . nodeType && r . data . length > 0 ) return r ; if ( r . childNodes . length > 1 || r == t || "BR" == r . tagName ) return r } } var n = s . selection . getRng ( ) , i = n . startContainer , o = n . endContainer ; if ( i != o && 0 === n . endOffset ) { var a = t ( i , o ) , l = 3 == a . nodeType ? a . data . length : a . childNodes . length ; n . setEnd ( a , l ) } return n } function u ( e , r , a ) { var s = [ ] , c , u , p = ! 0 ; c = h . inline || h . block , u = Y . create ( c ) , i ( u ) , K . walk ( e , function ( e ) { function r ( e ) { var g , v , y , b ; if ( b = p , g = e . nodeName . toLowerCase ( ) , v = e . parentNode . nodeName . toLowerCase ( ) , 1 === e . nodeType && ae ( e ) && ( b = p , p = "true" === ae ( e ) , y = ! 0 ) , B ( g , "br" ) ) return m = 0 , void ( h . block && Y . remove ( e ) ) ; if ( h . wrapper && N ( e , t , n ) ) return void ( m = 0 ) ; if ( p && ! y && h . block && ! h . wrapper && l ( g ) && G ( v , c ) ) return e = Y . rename ( e , c ) , i ( e ) , s . push ( e ) , void ( m = 0 ) ; if ( h . selector ) { var C = o ( d , e ) ; if ( ! h . inline || C ) return void ( m = 0 ) } ! p || y || ! G ( c , g ) || ! G ( v , c ) || ! a && 3 === e . nodeType && 1 === e . nodeValue . length && 65279 === e . nodeValue . charCodeAt ( 0 ) || f ( e ) || h . inline && J ( e ) ? ( m = 0 , ue ( de ( e . childNodes ) , r ) , y && ( p = b ) , m = 0 ) : ( m || ( m = Y . clone ( u , ne ) , e . parentNode . insertBefore ( m , e ) , s . push ( m ) ) , m . appendChild ( e ) ) } var m ; ue ( e , r ) } ) , h . links === ! 0 && ue ( s , function ( e ) { function t ( e ) { "A" === e . nodeName && i ( e , h ) , ue ( de ( e . childNodes ) , t ) } t ( e ) } ) , ue ( s , function ( e ) { function r ( e ) { var t = 0 ; return ue ( e . childNodes , function ( e ) { P ( e ) || ce ( e ) || t ++ } ) , t } function o ( e ) { var t , n ; return ue ( e . childNodes , function ( e ) { if ( 1 == e . nodeType && ! ce ( e ) && ! f ( e ) ) return t = e , ne } ) , t && ! ce ( t ) && A ( t , h ) && ( n = Y . clone ( t , ne ) , i ( n ) , Y . replace ( n , e , re ) , Y . remove ( t , 1 ) ) , n || e } var a ; if ( a = r ( e ) , ( s . length > 1 || ! J ( e ) ) && 0 === a ) return void Y . remove ( e , 1 ) ; if ( h . inline || h . wrapper ) { if ( h . exact || 1 !== a || ( e = o ( e ) ) , ue ( d , function ( t ) { ue ( Y . select ( t . inline , e ) , function ( e ) { ce ( e ) || F ( t , n , e , t . exact ? e : null ) } ) } ) , N ( e . parentNode , t , n ) ) return Y . remove ( e , 1 ) , e = 0 , re ; h . merge _with _parents && Y . getParent ( e . parentNode , function ( r ) { if ( N ( r , t , n ) ) return Y . remove ( e , 1 ) , e = 0 , re } ) , e && h . merge _siblings !== ! 1 && ( e = W ( U ( e ) , e ) , e = W ( e , U ( e , re ) ) ) } } ) } var d = m ( t ) , h = d [ 0 ] , p , g , v = ! r && X . isCollapsed ( ) ; if ( "false" !== ae ( X . getNode ( ) ) ) { if ( h ) { if ( r ) r . nodeType ? o ( d , r ) || ( g = Y . createRng ( ) , g . setStartBefore ( r ) , g . setEndAfter ( r ) , u ( H ( g , d ) , null , ! 0 ) ) : u ( r , null , ! 0 ) ; else if ( v && h . inline && ! Y . select ( "td[data-mce-selected],th[data-mce-selected]" ) . length ) $ ( "apply" , t , n ) ; else { var y = s . selection . getNode ( ) ; Q || ! d [ 0 ] . defaultBlock || Y . getParent ( y , Y . isBlock ) || x ( d [ 0 ] . defaultBlock ) , s . selection . setRng ( c ( ) ) , p = X . getBookmark ( ) , u ( H ( X . getRng ( re ) , d ) , p ) , h . styles && ( h . styles . color || h . styles . textDecoration ) && ( fe ( y , C , "childNodes" ) , C ( y ) ) , X . moveToBookmark ( p ) , q ( X . getRng ( re ) ) , s . nodeChanged ( ) } a . postProcess ( t , s ) } } else { r = X . getNode ( ) ; for ( var b = 0 , w = d . length ; b < w ; b ++ ) if ( d [ b ] . ceFalseOverride && Y . is ( r , d [ b ] . selector ) ) return void i ( r , d [ b ] ) } } function w ( e , t , n , r ) { function i ( e ) { var n , r , o , a , s ; if ( 1 === e . nodeType && ae ( e ) && ( a = y , y = "true" === ae ( e ) , s = ! 0 ) , n = de ( e . childNodes ) , y && ! s ) for ( r = 0 , o = h . length ; r < o && ! F ( h [ r ] , t , e , e ) ; r ++ ) ; if ( p . deep && n . length ) { for ( r = 0 , o = n . length ; r < o ; r ++ ) i ( n [ r ] ) ; s && ( y = a ) } } function o ( n ) { var i ; return ue ( d ( n . parentNode ) . reverse ( ) , function ( n ) { var o ; i || "_start" == n . id || "_end" == n . id || ( o = N ( n , e , t , r ) , o && o . split !== ! 1 && ( i = n ) ) } ) , i } function a ( e , n , r , i ) { var o , a , s , l , c , u ; if ( e ) { for ( u = e . parentNode , o = n . parentNode ; o && o != u ; o = o . parentNode ) { for ( a = Y . clone ( o , ne ) , c = 0 ; c < h . length ; c ++ ) if ( F ( h [ c ] , t , a , a ) ) { a = 0 ; break } a && ( s && a . appendChild ( s ) , l || ( l = a ) , s = a ) } ! i || p . mixed && J ( e ) || ( n = Y . split ( e , n ) ) , s && ( r . parentNode . insertBefore ( s , r ) , l . appendChild ( r ) ) } return n } function l ( e ) { return a ( o ( e ) , e , e , ! 0 ) } function u ( e ) { var t = Y . get ( e ? "_start" : "_end" ) , n = t [ e ? "firstChild" : "lastChild" ] ; return ce ( n ) && ( n = n [ e ? "firstChild" : "lastChild" ] ) , 3 == n . nodeType && 0 === n . data . length && ( n = e ? t . previousSibling || t . nextSibling : t . nextSibling || t . previousSibling ) , Y . remove ( t ,
if ( s === a . data . length ) return o = u ( a ) , o ? T ( o ) : r ; if ( 0 === s ) return o = c ( a ) , o ? R ( o ) : r } return r } function b ( e , t ) { return x ( p ( e , t ) ) } var C = n . isContentEditableTrue , x = n . isContentEditableFalse , w = n . matchStyleValues ( "display" , "block table table-cell table-caption" ) , E = i . isCaretContainer , N = i . isCaretContainerBlock , _ = e . curry , S = n . isElement , k = o . isCaretCandidate , T = _ ( m , ! 0 ) , R = _ ( m , ! 1 ) ; return { isForwards : a , isBackwards : s , findNode : c , getEditingHost : u , getParentBlock : d , isInSameBlock : f , isInSameEditingHost : h , isBeforeContentEditableFalse : _ ( b , 0 ) , isAfterContentEditableFalse : _ ( b , - 1 ) , normalizeRange : y } } ) , r ( oe , [ _ , U , $ , ie , p , z ] , function ( e , t , n , r , i , o ) { function a ( e , t ) { for ( var n = [ ] ; e && e != t ; ) n . push ( e ) , e = e . parentNode ; return n } function s ( e , t ) { return e . hasChildNodes ( ) && t < e . childNodes . length ? e . childNodes [ t ] : null } function l ( e , t ) { if ( m ( e ) ) { if ( v ( t . previousSibling ) && ! f ( t . previousSibling ) ) return n . before ( t ) ; if ( f ( t ) ) return n ( t , 0 ) } if ( g ( e ) ) { if ( v ( t . nextSibling ) && ! f ( t . nextSibling ) ) return n . after ( t ) ; if ( f ( t ) ) return n ( t , t . data . length ) } return g ( e ) ? p ( t ) ? n . before ( t ) : n . after ( t ) : n . before ( t ) } function c ( t , i ) { var o ; return ! ! e . isBr ( t ) && ( o = u ( 1 , n . after ( t ) , i ) , ! ! o && ! r . isInSameBlock ( n . before ( t ) , n . before ( o ) , i ) ) } function u ( e , t , p ) { var C , x , w , E , N , _ , S ; if ( ! h ( p ) || ! t ) return null ; if ( S = t , C = S . container ( ) , x = S . offset ( ) , f ( C ) ) { if ( g ( e ) && x > 0 ) return n ( C , -- x ) ; if ( m ( e ) && x < C . length ) return n ( C , ++ x ) ; w = C } else { if ( g ( e ) && x > 0 && ( E = s ( C , x - 1 ) , v ( E ) ) ) return ! y ( E ) && ( N = r . findNode ( E , e , b , E ) ) ? f ( N ) ? n ( N , N . data . length ) : n . after ( N ) : f ( E ) ? n ( E , E . data . length ) : n . before ( E ) ; if ( m ( e ) && x < C . childNodes . length && ( E = s ( C , x ) , v ( E ) ) ) return c ( E , p ) ? u ( e , n . after ( E ) , p ) : ! y ( E ) && ( N = r . findNode ( E , e , b , E ) ) ? f ( N ) ? n ( N , 0 ) : n . before ( N ) : f ( E ) ? n ( E , 0 ) : n . after ( E ) ; w = S . getNode ( ) } return ( m ( e ) && S . isAtEnd ( ) || g ( e ) && S . isAtStart ( ) ) && ( w = r . findNode ( w , e , o . constant ( ! 0 ) , p , ! 0 ) , b ( w ) ) ? l ( e , w ) : ( E = r . findNode ( w , e , b , p ) , _ = i . last ( i . filter ( a ( C , p ) , d ) ) , ! _ || E && _ . contains ( E ) ? E ? l ( e , E ) : null : S = m ( e ) ? n . after ( _ ) : n . before ( _ ) ) } var d = e . isContentEditableFalse , f = e . isText , h = e . isElement , p = e . isBr , m = r . isForwards , g = r . isBackwards , v = t . isCaretCandidate , y = t . isAtomic , b = t . isEditableCaretCandidate ; return function ( e ) { return { next : function ( t ) { return u ( 1 , t , e ) } , prev : function ( t ) { return u ( - 1 , t , e ) } } } } ) , r ( ae , [ m , oe , $ ] , function ( e , t , n ) { var r = function ( e ) { var t = e . firstChild , n = e . lastChild ; return t && "meta" === t . name && ( t = t . next ) , n && "mce_marker" === n . attr ( "id" ) && ( n = n . prev ) , ! ( ! t || t !== n ) && ( "ul" === t . name || "ol" === t . name ) } , i = function ( e ) { var t = e . firstChild , n = e . lastChild ; return t && "META" === t . nodeName && t . parentNode . removeChild ( t ) , n && "mce_marker" === n . id && n . parentNode . removeChild ( n ) , e } , o = function ( e , t , n ) { var r = t . serialize ( n ) , o = e . createFragment ( r ) ; return i ( o ) } , a = function ( t ) { return e . grep ( t . childNodes , function ( e ) { return "LI" === e . nodeName } ) } , s = function ( e ) { return ! e . firstChild } , l = function ( e ) { return e . length > 0 && s ( e [ e . length - 1 ] ) ? e . slice ( 0 , - 1 ) : e } , c = function ( e , t ) { var n = e . getParent ( t , e . isBlock ) ; return n && "LI" === n . nodeName ? n : null } , u = function ( e , t ) { return ! ! c ( e , t ) } , d = function ( e , t ) { var n = t . cloneRange ( ) , r = t . cloneRange ( ) ; return n . setStartBefore ( e ) , r . setEndAfter ( e ) , [ n . cloneContents ( ) , r . cloneContents ( ) ] } , f = function ( e , r ) { var i = n . before ( e ) , o = new t ( r ) , a = o . next ( i ) ; return a ? a . toRange ( ) : null } , h = function ( e , r ) { var i = n . after ( e ) , o = new t ( r ) , a = o . prev ( i ) ; return a ? a . toRange ( ) : null } , p = function ( t , n , r , i ) { var o = d ( t , i ) , a = t . parentNode ; return a . insertBefore ( o [ 0 ] , t ) , e . each ( n , function ( e ) { a . insertBefore ( e , t ) } ) , a . insertBefore ( o [ 1 ] , t ) , a . removeChild ( t ) , h ( n [ n . length - 1 ] , r ) } , m = function ( t , n , r ) { var i = t . parentNode ; return e . each ( n , function ( e ) { i . insertBefore ( e , t ) } ) , f ( t , r ) } , g = function ( e , t , n , r ) { return r . insertAfter ( t . reverse ( ) , e ) , h ( t [ 0 ] , n ) } , v = function ( e , r , i , s ) { var u = o ( r , e , s ) , d = c ( r , i . startContainer ) , f = l ( a ( u . firstChild ) ) , h = 1 , v = 2 , y = r . getRoot ( ) , b = function ( e ) { var o = n . fromRangeStart ( i ) , a = new t ( r . getRoot ( ) ) , s = e === h ? a . prev ( o ) : a . next ( o ) ; return ! s || c ( r , s . getNode ( ) ) !== d } ; return b ( h ) ? m ( d , f , y ) : b ( v ) ? g ( d , f , y , r ) : p ( d , f , y , i ) } ; return { isListFragment : r , insertAtCaret : v , isParentBlockLi : u , trimListItems : l , listItems : a } } ) , r ( se , [ d , m , P , oe , $ , X , _ , ae ] , function ( e , t , n , r , i , o , a , s ) { var l = a . matchNodeNames ( "td th" ) , c = function ( a , c , u ) { function d ( e ) { function t ( e ) { return r [ e ] && 3 == r [ e ] . nodeType } var n , r , i ; return n = D . getRng ( ! 0 ) , r = n . startContainer , i = n . startOffset , 3 == r . nodeType
e && ( e . fire ( "mouseleave" , { target : e . getEl ( ) } ) , e . parents ( ) . each ( function ( e ) { e . fire ( "mouseleave" , { target : e . getEl ( ) } ) } ) , c . _lastHoverCtrl = null ) } function r ( t ) { var n = e . getParentCtrl ( t . target ) , r = c . _lastHoverCtrl , i = 0 , o , a , s ; if ( n !== r ) { if ( c . _lastHoverCtrl = n , a = n . parents ( ) . toArray ( ) . reverse ( ) , a . push ( n ) , r ) { for ( s = r . parents ( ) . toArray ( ) . reverse ( ) , s . push ( r ) , i = 0 ; i < s . length && a [ i ] === s [ i ] ; i ++ ) ; for ( o = s . length - 1 ; o >= i ; o -- ) r = s [ o ] , r . fire ( "mouseleave" , { target : r . getEl ( ) } ) } for ( o = i ; o < a . length ; o ++ ) n = a [ o ] , n . fire ( "mouseenter" , { target : n . getEl ( ) } ) } } function i ( t ) { t . preventDefault ( ) , "mousewheel" == t . type ? ( t . deltaY = - . 025 * t . wheelDelta , t . wheelDeltaX && ( t . deltaX = - . 025 * t . wheelDeltaX ) ) : ( t . deltaX = 0 , t . deltaY = t . detail ) , t = e . fire ( "wheel" , t ) } var o , s , l , c , u , d ; if ( u = e . _nativeEvents ) { for ( l = e . parents ( ) . toArray ( ) , l . unshift ( e ) , o = 0 , s = l . length ; ! c && o < s ; o ++ ) c = l [ o ] . _eventsRoot ; for ( c || ( c = l [ l . length - 1 ] || e ) , e . _eventsRoot = c , s = o , o = 0 ; o < s ; o ++ ) l [ o ] . _eventsRoot = c ; var p = c . _delegates ; p || ( p = c . _delegates = { } ) ; for ( d in u ) { if ( ! u ) return ! 1 ; "wheel" !== d || h ? ( "mouseenter" === d || "mouseleave" === d ? c . _hasMouseEnter || ( a ( c . getEl ( ) ) . on ( "mouseleave" , n ) . on ( "mouseover" , r ) , c . _hasMouseEnter = 1 ) : p [ d ] || ( a ( c . getEl ( ) ) . on ( d , t ) , p [ d ] = ! 0 ) , u [ d ] = ! 1 ) : f ? a ( e . getEl ( ) ) . on ( "mousewheel" , i ) : a ( e . getEl ( ) ) . on ( "DOMMouseScroll" , i ) } } } var f = "onmousewheel" in document , h = ! 1 , p = "mce-" , m , g = 0 , v = { Statics : { classPrefix : p } , isRtl : function ( ) { return m . rtl } , classPrefix : p , init : function ( e ) { function n ( e ) { var t ; for ( e = e . split ( " " ) , t = 0 ; t < e . length ; t ++ ) i . classes . add ( e [ t ] ) } var i = this , o , c ; i . settings = e = t . extend ( { } , i . Defaults , e ) , i . _id = e . id || "mceu_" + g ++ , i . _aria = { role : e . role } , i . _elmCache = { } , i . $ = a , i . state = new r ( { visible : ! 0 , active : ! 1 , disabled : ! 1 , value : "" } ) , i . data = new r ( e . data ) , i . classes = new l ( function ( ) { i . state . get ( "rendered" ) && ( i . getEl ( ) . className = this . toString ( ) ) } ) , i . classes . prefix = i . classPrefix , o = e . classes , o && ( i . Defaults && ( c = i . Defaults . classes , c && o != c && n ( c ) ) , n ( o ) ) , t . each ( "title text name visible disabled active value" . split ( " " ) , function ( t ) { t in e && i [ t ] ( e [ t ] ) } ) , i . on ( "click" , function ( ) { if ( i . disabled ( ) ) return ! 1 } ) , i . settings = e , i . borderBox = s . parseBox ( e . border ) , i . paddingBox = s . parseBox ( e . padding ) , i . marginBox = s . parseBox ( e . margin ) , e . hidden && i . hide ( ) } , Properties : "parent,name" , getContainerElm : function ( ) { return o . getContainer ( ) } , getParentCtrl : function ( e ) { for ( var t , n = this . getRoot ( ) . controlIdLookup ; e && n && ! ( t = n [ e . id ] ) ; ) e = e . parentNode ; return t } , initLayoutRect : function ( ) { var e = this , t = e . settings , n , r , i = e . getEl ( ) , a , l , c , u , d , f , h , p ; n = e . borderBox = e . borderBox || s . measureBox ( i , "border" ) , e . paddingBox = e . paddingBox || s . measureBox ( i , "padding" ) , e . marginBox = e . marginBox || s . measureBox ( i , "margin" ) , p = o . getSize ( i ) , f = t . minWidth , h = t . minHeight , c = f || p . width , u = h || p . height , a = t . width , l = t . height , d = t . autoResize , d = "undefined" != typeof d ? d : ! a && ! l , a = a || c , l = l || u ; var m = n . left + n . right , g = n . top + n . bottom , v = t . maxWidth || 65535 , y = t . maxHeight || 65535 ; return e . _layoutRect = r = { x : t . x || 0 , y : t . y || 0 , w : a , h : l , deltaW : m , deltaH : g , contentW : a - m , contentH : l - g , innerW : a - m , innerH : l - g , startMinWidth : f || 0 , startMinHeight : h || 0 , minW : Math . min ( c , v ) , minH : Math . min ( u , y ) , maxW : v , maxH : y , autoResize : d , scrollW : 0 } , e . _lastLayoutRect = { } , r } , layoutRect : function ( e ) { var t = this , n = t . _layoutRect , r , i , o , a , s , l ; return n || ( n = t . initLayoutRect ( ) ) , e ? ( o = n . deltaW , a = n . deltaH , e . x !== s && ( n . x = e . x ) , e . y !== s && ( n . y = e . y ) , e . minW !== s && ( n . minW = e . minW ) , e . minH !== s && ( n . minH = e . minH ) , i = e . w , i !== s && ( i = i < n . minW ? n . minW : i , i = i > n . maxW ? n . maxW : i , n . w = i , n . innerW = i - o ) , i = e . h , i !== s && ( i = i < n . minH ? n . minH : i , i = i > n . maxH ? n . maxH : i , n . h = i , n . innerH = i - a ) , i = e . innerW , i !== s && ( i = i < n . minW - o ? n . minW - o : i , i = i > n . maxW - o ? n . maxW - o : i , n . innerW = i , n . w = i + o ) , i = e . innerH , i !== s && ( i = i < n . minH - a ? n . minH - a : i , i = i > n . maxH - a ? n . maxH - a : i , n . innerH = i , n . h = i + a ) , e . contentW !== s && ( n . contentW = e . contentW ) , e . contentH !== s && ( n . contentH = e . contentH ) , r = t . _lastLayoutRect , r . x === n . x && r . y === n . y && r . w === n . w && r . h === n . h || ( l = m . repaintControls , l && l . map && ! l . map [ t . _id ] && ( l . push ( t ) , l . map [ t . _id ] = ! 0 ) , r . x = n . x , r . y = n . y , r . w = n . w , r . h = n . h ) , t ) : n } , repaint : function ( ) { var e = this , t , n , r , i , o , a , s , l , c , u ; c = document . createRange ? function ( e ) { return e } : Math . round , t = e . getEl ( ) . style , i = e . _layoutRect , l = e . _lastRepaintRect || { } , o = e . borderBox , a = o . left + o . right , s = o . top + o . bottom , i . x !== l . x && ( t . left = c ( i . x ) + "px" , l . x = i . x ) , i . y !== l .
return '<div id="' + e . _id + '" class="' + e . classes + '" role="presentation"><div class="' + t + 'tooltip-arrow"></div><div class="' + t + 'tooltip-inner">' + e . encode ( e . state . get ( "text" ) ) + "</div></div>" } , bindStates : function ( ) { var e = this ; return e . state . on ( "change:text" , function ( t ) { e . getEl ( ) . lastChild . innerHTML = e . encode ( t . value ) } ) , e . _super ( ) } , repaint : function ( ) { var e = this , t , n ; t = e . getEl ( ) . style , n = e . _layoutRect , t . left = n . x + "px" , t . top = n . y + "px" , t . zIndex = 131070 } } ) } ) , r ( Pe , [ xe , Me ] , function ( e , t ) { var n , r = e . extend ( { init : function ( e ) { var t = this ; t . _super ( e ) , e = t . settings , t . canFocus = ! 0 , e . tooltip && r . tooltips !== ! 1 && ( t . on ( "mouseenter" , function ( n ) { var r = t . tooltip ( ) . moveTo ( - 65535 ) ; if ( n . control == t ) { var i = r . text ( e . tooltip ) . show ( ) . testMoveRel ( t . getEl ( ) , [ "bc-tc" , "bc-tl" , "bc-tr" ] ) ; r . classes . toggle ( "tooltip-n" , "bc-tc" == i ) , r . classes . toggle ( "tooltip-nw" , "bc-tl" == i ) , r . classes . toggle ( "tooltip-ne" , "bc-tr" == i ) , r . moveRel ( t . getEl ( ) , i ) } else r . hide ( ) } ) , t . on ( "mouseleave mousedown click" , function ( ) { t . tooltip ( ) . hide ( ) } ) ) , t . aria ( "label" , e . ariaLabel || e . tooltip ) } , tooltip : function ( ) { return n || ( n = new t ( { type : "tooltip" } ) , n . renderTo ( ) ) , n } , postRender : function ( ) { var e = this , t = e . settings ; e . _super ( ) , e . parent ( ) || ! t . width && ! t . height || ( e . initLayoutRect ( ) , e . repaint ( ) ) , t . autofocus && e . focus ( ) } , bindStates : function ( ) { function e ( e ) { n . aria ( "disabled" , e ) , n . classes . toggle ( "disabled" , e ) } function t ( e ) { n . aria ( "pressed" , e ) , n . classes . toggle ( "active" , e ) } var n = this ; return n . state . on ( "change:disabled" , function ( t ) { e ( t . value ) } ) , n . state . on ( "change:active" , function ( e ) { t ( e . value ) } ) , n . state . get ( "disabled" ) && e ( ! 0 ) , n . state . get ( "active" ) && t ( ! 0 ) , n . _super ( ) } , remove : function ( ) { this . _super ( ) , n && ( n . remove ( ) , n = null ) } } ) ; return r } ) , r ( Oe , [ Pe ] , function ( e ) { return e . extend ( { Defaults : { value : 0 } , init : function ( e ) { var t = this ; t . _super ( e ) , t . classes . add ( "progress" ) , t . settings . filter || ( t . settings . filter = function ( e ) { return Math . round ( e ) } ) } , renderHtml : function ( ) { var e = this , t = e . _id , n = this . classPrefix ; return '<div id="' + t + '" class="' + e . classes + '"><div class="' + n + 'bar-container"><div class="' + n + 'bar"></div></div><div class="' + n + 'text">0%</div></div>' } , postRender : function ( ) { var e = this ; return e . _super ( ) , e . value ( e . settings . value ) , e } , bindStates : function ( ) { function e ( e ) { e = t . settings . filter ( e ) , t . getEl ( ) . lastChild . innerHTML = e + "%" , t . getEl ( ) . firstChild . firstChild . style . width = e + "%" } var t = this ; return t . state . on ( "change:value" , function ( t ) { e ( t . value ) } ) , e ( t . state . get ( "value" ) ) , t . _super ( ) } } ) } ) , r ( He , [ xe , Te , Oe , u ] , function ( e , t , n , r ) { return e . extend ( { Mixins : [ t ] , Defaults : { classes : "widget notification" } , init : function ( e ) { var t = this ; t . _super ( e ) , e . text && t . text ( e . text ) , e . icon && ( t . icon = e . icon ) , e . color && ( t . color = e . color ) , e . type && t . classes . add ( "notification-" + e . type ) , e . timeout && ( e . timeout < 0 || e . timeout > 0 ) && ! e . closeButton ? t . closeButton = ! 1 : ( t . classes . add ( "has-close" ) , t . closeButton = ! 0 ) , e . progressBar && ( t . progressBar = new n ) , t . on ( "click" , function ( e ) { e . target . className . indexOf ( t . classPrefix + "close" ) != - 1 && t . close ( ) } ) } , renderHtml : function ( ) { var e = this , t = e . classPrefix , n = "" , r = "" , i = "" , o = "" ; return e . icon && ( n = '<i class="' + t + "ico " + t + "i-" + e . icon + '"></i>' ) , e . color && ( o = ' style="background-color: ' + e . color + '"' ) , e . closeButton && ( r = '<button type="button" class="' + t + 'close" aria-hidden="true">\xd7</button>' ) , e . progressBar && ( i = e . progressBar . renderHtml ( ) ) , '<div id="' + e . _id + '" class="' + e . classes + '"' + o + ' role="presentation">' + n + '<div class="' + t + 'notification-inner">' + e . state . get ( "text" ) + "</div>" + i + r + "</div>" } , postRender : function ( ) { var e = this ; return r . setTimeout ( function ( ) { e . $el . addClass ( e . classPrefix + "in" ) } ) , e . _super ( ) } , bindStates : function ( ) { var e = this ; return e . state . on ( "change:text" , function ( t ) { e . getEl ( ) . childNodes [ 1 ] . innerHTML = t . value } ) , e . progressBar && e . progressBar . bindStates ( ) , e . _super ( ) } , close : function ( ) { var e = this ; return e . fire ( "close" ) . isDefaultPrevented ( ) || e . remove ( ) , e } , repaint : function ( ) { var e = this , t , n ; t = e . getEl ( ) . style , n = e . _layoutRect , t . left = n . x + "px" , t . top = n . y + "px" , t . zIndex = 65534 } } ) } ) , r ( Ie , [ He , u , m ] , function ( e , t , n ) { return function ( r ) { function i ( ) { if ( f . length ) return f [ f . length - 1 ] } function o ( ) { t . requestAnimationFrame ( function ( ) { a ( ) , s ( ) } ) } function a ( ) { for ( var e = 0 ; e < f . length ; e ++ ) f [ e ] . moveTo ( 0 , 0 )
return e . each ( t , function ( e ) { u ( e . image . src , e . blobInfo . blobUri ( ) ) , e . image . src = e . blobInfo . blobUri ( ) , e . image . removeAttribute ( "data-mce-src" ) } ) , t } ) ) } function v ( ) { b . destroy ( ) , E . destroy ( ) , x = C = null } function y ( t ) { return t . replace ( /src="(blob:[^"]+)"/g , function ( t , n ) { var r = E . getResultUri ( n ) ; if ( r ) return 'src="' + r + '"' ; var i = b . getByUri ( n ) ; return i || ( i = e . reduce ( o . editorManager . editors , function ( e , t ) { return e || t . editorUpload . blobCache . getByUri ( n ) } , null ) ) , i ? 'src="data:' + i . blob ( ) . type + ";base64," + i . base64 ( ) + '"' : t } ) } var b = new r , C , x , w = o . settings , E = new i ; return o . on ( "setContent" , function ( ) { o . settings . automatic _uploads !== ! 1 ? p ( ) : g ( ) } ) , o . on ( "RawSaveContent" , function ( e ) { e . content = y ( e . content ) } ) , o . on ( "getContent" , function ( e ) { e . source _view || "raw" == e . format || ( e . content = y ( e . content ) ) } ) , o . on ( "PostRender" , function ( ) { o . parser . addNodeFilter ( "img" , function ( t ) { e . each ( t , function ( e ) { var t = e . attr ( "src" ) ; if ( ! b . getByUri ( t ) ) { var n = E . getResultUri ( t ) ; n && e . attr ( "src" , n ) } } ) } ) } ) , { blobCache : b , uploadImages : h , uploadImagesAuto : p , scanForImages : g , destroy : v } } } ) , r ( Ge , [ k , $ , _ , T , g , W , u ] , function ( e , t , n , r , i , o , a ) { var s = n . isContentEditableFalse ; return function ( t , n ) { function r ( e , n ) { var r = o . collapse ( e . getBoundingClientRect ( ) , n ) , i , a , s , l , c ; return "BODY" == t . tagName ? ( i = t . ownerDocument . documentElement , a = t . scrollLeft || i . scrollLeft , s = t . scrollTop || i . scrollTop ) : ( c = t . getBoundingClientRect ( ) , a = t . scrollLeft - c . left , s = t . scrollTop - c . top ) , r . left += a , r . right += a , r . top += s , r . bottom += s , r . width = 1 , l = e . offsetWidth - e . clientWidth , l > 0 && ( n && ( l *= - 1 ) , r . left += l , r . right += l ) , r } function l ( ) { var n , r , o , a , s ; for ( n = i ( "*[contentEditable=false]" , t ) , a = 0 ; a < n . length ; a ++ ) r = n [ a ] , o = r . previousSibling , e . endsWithCaretContainer ( o ) && ( s = o . data , 1 == s . length ? o . parentNode . removeChild ( o ) : o . deleteData ( s . length - 1 , 1 ) ) , o = r . nextSibling , e . startsWithCaretContainer ( o ) && ( s = o . data , 1 == s . length ? o . parentNode . removeChild ( o ) : o . deleteData ( 0 , 1 ) ) ; return null } function c ( o , a ) { var l , c ; return u ( ) , n ( a ) ? ( g = e . insertBlock ( "p" , a , o ) , l = r ( a , o ) , i ( g ) . css ( "top" , l . top ) , m = i ( '<div class="mce-visual-caret" data-mce-bogus="all"></div>' ) . css ( l ) . appendTo ( t ) , o && m . addClass ( "mce-visual-caret-before" ) , d ( ) , c = a . ownerDocument . createRange ( ) , c . setStart ( g , 0 ) , c . setEnd ( g , 0 ) , c ) : ( g = e . insertInline ( a , o ) , c = a . ownerDocument . createRange ( ) , s ( g . nextSibling ) ? ( c . setStart ( g , 0 ) , c . setEnd ( g , 0 ) ) : ( c . setStart ( g , 1 ) , c . setEnd ( g , 1 ) ) , c ) } function u ( ) { l ( ) , g && ( e . remove ( g ) , g = null ) , m && ( m . remove ( ) , m = null ) , clearInterval ( p ) } function d ( ) { p = a . setInterval ( function ( ) { i ( "div.mce-visual-caret" , t ) . toggleClass ( "mce-visual-caret-hidden" ) } , 500 ) } function f ( ) { a . clearInterval ( p ) } function h ( ) { return ".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}" } var p , m , g ; return { show : c , hide : u , getCss : h , destroy : f } } } ) , r ( Je , [ p , _ , W ] , function ( e , t , n ) { function r ( i ) { function o ( t ) { return e . map ( t , function ( e ) { return e = n . clone ( e ) , e . node = i , e } ) } if ( e . isArray ( i ) ) return e . reduce ( i , function ( e , t ) { return e . concat ( r ( t ) ) } , [ ] ) ; if ( t . isElement ( i ) ) return o ( i . getClientRects ( ) ) ; if ( t . isText ( i ) ) { var a = i . ownerDocument . createRange ( ) ; return a . setStart ( i , 0 ) , a . setEnd ( i , i . data . length ) , o ( a . getClientRects ( ) ) } } return { getClientRects : r } } ) , r ( Qe , [ z , p , Je , U , ie , oe , $ , W ] , function ( e , t , n , r , i , o , a , s ) { function l ( e , t , n , o ) { for ( ; o = i . findNode ( o , e , r . isEditableCaretCandidate , t ) ; ) if ( n ( o ) ) return } function c ( e , r , i , o , a , s ) { function c ( o ) { var s , l , c ; for ( c = n . getClientRects ( o ) , e == - 1 && ( c = c . reverse ( ) ) , s = 0 ; s < c . length ; s ++ ) if ( l = c [ s ] , ! i ( l , h ) ) { if ( f . length > 0 && r ( l , t . last ( f ) ) && u ++ , l . line = u , a ( l ) ) return ! 0 ; f . push ( l ) } } var u = 0 , d , f = [ ] , h ; return ( h = t . last ( s . getClientRects ( ) ) ) ? ( d = s . getNode ( ) , c ( d ) , l ( e , o , c , d ) , f ) : f } function u ( e , t ) { return t . line > e } function d ( e , t ) { return t . line === e } function f ( e , n , r , i ) { function l ( n ) { return 1 == e ? t . last ( n . getClientRects ( ) ) : t . last ( n . getClientRects ( ) ) } var c = new o ( n ) , u , d , f , h , p = [ ] , m = 0 , g , v ; 1 == e ? ( u = c . next , d = s . isBelow , f = s . isAbove , h = a . after ( i ) ) : ( u = c . prev , d = s . isAbove , f = s . isBelow , h = a . before ( i ) ) , v = l ( h ) ; do if ( h . isVisible ( ) && ( g = l ( h ) , ! f ( g , v ) ) ) { if ( p . length > 0 && d ( g , t . last ( p ) ) && m ++ , g = s . clone ( g ) , g . position = h , g . line = m , r ( g ) ) return p ; p . push ( g ) } while ( h = u ( h ) ) ; retur
e = e . split ( "=" ) , e . length > 1 ? i [ z ( e [ 0 ] ) ] = z ( e [ 1 ] ) : i [ z ( e [ 0 ] ) ] = z ( e ) } ) : i = r , i ) : r } , nodeChanged : function ( e ) { this . _nodeChangeDispatcher . nodeChanged ( e ) } , addButton : function ( e , t ) { var n = this ; t . cmd && ( t . onclick = function ( ) { n . execCommand ( t . cmd ) } ) , t . text || t . icon || ( t . icon = e ) , n . buttons = n . buttons || { } , t . tooltip = t . tooltip || t . title , n . buttons [ e ] = t } , addSidebar : function ( e , t ) { return B . add ( this , e , t ) } , addMenuItem : function ( e , t ) { var n = this ; t . cmd && ( t . onclick = function ( ) { n . execCommand ( t . cmd ) } ) , n . menuItems = n . menuItems || { } , n . menuItems [ e ] = t } , addContextToolbar : function ( e , t ) { var n = this , r ; n . contextToolbars = n . contextToolbars || [ ] , "string" == typeof e && ( r = e , e = function ( e ) { return n . dom . is ( e , r ) } ) , n . contextToolbars . push ( { id : A . uuid ( "mcet" ) , predicate : e , items : t } ) } , addCommand : function ( e , t , n ) { this . editorCommands . addCommand ( e , t , n ) } , addQueryStateHandler : function ( e , t , n ) { this . editorCommands . addQueryStateHandler ( e , t , n ) } , addQueryValueHandler : function ( e , t , n ) { this . editorCommands . addQueryValueHandler ( e , t , n ) } , addShortcut : function ( e , t , n , r ) { this . shortcuts . add ( e , t , n , r ) } , execCommand : function ( e , t , n , r ) { return this . editorCommands . execCommand ( e , t , n , r ) } , queryCommandState : function ( e ) { return this . editorCommands . queryCommandState ( e ) } , queryCommandValue : function ( e ) { return this . editorCommands . queryCommandValue ( e ) } , queryCommandSupported : function ( e ) { return this . editorCommands . queryCommandSupported ( e ) } , show : function ( ) { var e = this ; e . hidden && ( e . hidden = ! 1 , e . inline ? e . getBody ( ) . contentEditable = ! 0 : ( L . show ( e . getContainer ( ) ) , L . hide ( e . id ) ) , e . load ( ) , e . fire ( "show" ) ) } , hide : function ( ) { var e = this , t = e . getDoc ( ) ; e . hidden || ( $ && t && ! e . inline && t . execCommand ( "SelectAll" ) , e . save ( ) , e . inline ? ( e . getBody ( ) . contentEditable = ! 1 , e == e . editorManager . focusedEditor && ( e . editorManager . focusedEditor = null ) ) : ( L . hide ( e . getContainer ( ) ) , L . setStyle ( e . id , "display" , e . orgDisplay ) ) , e . hidden = ! 0 , e . fire ( "hide" ) ) } , isHidden : function ( ) { return ! ! this . hidden } , setProgressState : function ( e , t ) { this . fire ( "ProgressState" , { state : e , time : t } ) } , load : function ( e ) { var n = this , r = n . getElement ( ) , i ; if ( r ) return e = e || { } , e . load = ! 0 , i = n . setContent ( r . value !== t ? r . value : r . innerHTML , e ) , e . element = r , e . no _events || n . fire ( "LoadContent" , e ) , e . element = r = null , i } , save : function ( e ) { var t = this , n = t . getElement ( ) , r , i ; if ( n && t . initialized ) return e = e || { } , e . save = ! 0 , e . element = n , r = e . content = t . getContent ( e ) , e . no _events || t . fire ( "SaveContent" , e ) , "raw" == e . format && t . fire ( "RawSaveContent" , e ) , r = e . content , /TEXTAREA|INPUT/i . test ( n . nodeName ) ? n . value = r : ( t . inline || ( n . innerHTML = r ) , ( i = L . getParent ( t . id , "form" ) ) && H ( i . elements , function ( e ) { if ( e . name == t . id ) return e . value = r , ! 1 } ) ) , e . element = n = null , e . set _dirty !== ! 1 && t . setDirty ( ! 1 ) , r } , setContent : function ( e , t ) { var n = this , r = n . getBody ( ) , i , o ; return t = t || { } , t . format = t . format || "html" , t . set = ! 0 , t . content = e , t . no _events || n . fire ( "BeforeSetContent" , t ) , e = t . content , 0 === e . length || /^\s+$/ . test ( e ) ? ( o = $ && $ < 11 ? "" : '<br data-mce-bogus="1">' , "TABLE" == r . nodeName ? e = "<tr><td>" + o + "</td></tr>" : /^(UL|OL)$/ . test ( r . nodeName ) && ( e = "<li>" + o + "</li>" ) , i = n . settings . forced _root _block , i && n . schema . isValidChild ( r . nodeName . toLowerCase ( ) , i . toLowerCase ( ) ) ? ( e = o , e = n . dom . createHTML ( i , n . settings . forced _root _block _attrs , e ) ) : $ || e || ( e = '<br data-mce-bogus="1">' ) , n . dom . setHTML ( r , e ) , n . fire ( "SetContent" , t ) ) : ( "raw" !== t . format && ( e = new s ( { validate : n . validate } , n . schema ) . serialize ( n . parser . parse ( e , { isRootContent : ! 0 } ) ) ) , t . content = z ( e ) , n . dom . setHTML ( r , t . content ) , t . no _events || n . fire ( "SetContent" , t ) ) , t . content } , getContent : function ( e ) { var t = this , n , r = t . getBody ( ) ; return e = e || { } , e . format = e . format || "html" , e . get = ! 0 , e . getInner = ! 0 , e . no _events || t . fire ( "BeforeGetContent" , e ) , n = "raw" == e . format ? t . serializer . getTrimmedContent ( ) : "text" == e . format ? r . innerText || r . textContent : t . serializer . serialize ( r , e ) , "text" != e . format ? e . content = z ( n ) : e . content = n , e . no _events || t . fire ( "GetContent" , e ) , e . content } , insertContent : function ( e , t ) { t && ( e = O ( { content : e } , t ) ) , this . execCommand ( "mceInsertContent" , ! 1 , e ) } , isDirty : function ( ) { return ! this . isNotDirty } , setDirty : function ( e ) { var t = ! this . isNotDirty ; this . isNotDirty = ! e , e && e != t && this . fire ( "dirty" ) } , setMode : function ( e ) { S . setMode ( this , e ) } , getContainer : function ( ) { var e = this ; return e . container || ( e . container = L . get ( e . editorContainer || e . id + "_parent" )
return this . _color = null , this . getEl ( "preview" ) . style . backgroundColor = null , this } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . classPrefix , r = e . state . get ( "text" ) , i = e . settings . icon ? n + "ico " + n + "i-" + e . settings . icon : "" , o = e . settings . image ? " style=\"background-image: url('" + e . settings . image + "')\"" : "" , a = "" ; return r && ( e . classes . add ( "btn-has-text" ) , a = '<span class="' + n + 'txt">' + e . encode ( r ) + "</span>" ) , '<div id="' + t + '" class="' + e . classes + '" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">' + ( i ? '<i class="' + i + '"' + o + "></i>" : "" ) + '<span id="' + t + '-preview" class="' + n + 'preview"></span>' + a + '</button><button type="button" class="' + n + 'open" hidefocus="1" tabindex="-1"> <i class="' + n + 'caret"></i></button></div>' } , postRender : function ( ) { var e = this , t = e . settings . onclick ; return e . on ( "click" , function ( r ) { r . aria && "down" == r . aria . key || r . control != e || n . getParent ( r . target , "." + e . classPrefix + "open" ) || ( r . stopImmediatePropagation ( ) , t . call ( e , r ) ) } ) , delete e . settings . onclick , e . _super ( ) } } ) } ) , r ( _t , [ ] , function ( ) { function e ( e ) { function i ( e , i , o ) { var a , s , l , c , u , d ; return a = 0 , s = 0 , l = 0 , e /= 255 , i /= 255 , o /= 255 , u = t ( e , t ( i , o ) ) , d = n ( e , n ( i , o ) ) , u == d ? ( l = u , { h : 0 , s : 0 , v : 100 * l } ) : ( c = e == u ? i - o : o == u ? e - i : o - e , a = e == u ? 3 : o == u ? 1 : 5 , a = 60 * ( a - c / ( d - u ) ) , s = ( d - u ) / d , l = d , { h : r ( a ) , s : r ( 100 * s ) , v : r ( 100 * l ) } ) } function o ( e , i , o ) { var a , s , l , c ; if ( e = ( parseInt ( e , 10 ) || 0 ) % 360 , i = parseInt ( i , 10 ) / 100 , o = parseInt ( o , 10 ) / 100 , i = n ( 0 , t ( i , 1 ) ) , o = n ( 0 , t ( o , 1 ) ) , 0 === i ) return void ( d = f = h = r ( 255 * o ) ) ; switch ( a = e / 60 , s = o * i , l = s * ( 1 - Math . abs ( a % 2 - 1 ) ) , c = o - s , Math . floor ( a ) ) { case 0 : d = s , f = l , h = 0 ; break ; case 1 : d = l , f = s , h = 0 ; break ; case 2 : d = 0 , f = s , h = l ; break ; case 3 : d = 0 , f = l , h = s ; break ; case 4 : d = l , f = 0 , h = s ; break ; case 5 : d = s , f = 0 , h = l ; break ; default : d = f = h = 0 } d = r ( 255 * ( d + c ) ) , f = r ( 255 * ( f + c ) ) , h = r ( 255 * ( h + c ) ) } function a ( ) { function e ( e ) { return e = parseInt ( e , 10 ) . toString ( 16 ) , e . length > 1 ? e : "0" + e } return "#" + e ( d ) + e ( f ) + e ( h ) } function s ( ) { return { r : d , g : f , b : h } } function l ( ) { return i ( d , f , h ) } function c ( e ) { var t ; return "object" == typeof e ? "r" in e ? ( d = e . r , f = e . g , h = e . b ) : "v" in e && o ( e . h , e . s , e . v ) : ( t = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi . exec ( e ) ) ? ( d = parseInt ( t [ 1 ] , 10 ) , f = parseInt ( t [ 2 ] , 10 ) , h = parseInt ( t [ 3 ] , 10 ) ) : ( t = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi . exec ( e ) ) ? ( d = parseInt ( t [ 1 ] , 16 ) , f = parseInt ( t [ 2 ] , 16 ) , h = parseInt ( t [ 3 ] , 16 ) ) : ( t = /#([0-F])([0-F])([0-F])/gi . exec ( e ) ) && ( d = parseInt ( t [ 1 ] + t [ 1 ] , 16 ) , f = parseInt ( t [ 2 ] + t [ 2 ] , 16 ) , h = parseInt ( t [ 3 ] + t [ 3 ] , 16 ) ) , d = d < 0 ? 0 : d > 255 ? 255 : d , f = f < 0 ? 0 : f > 255 ? 255 : f , h = h < 0 ? 0 : h > 255 ? 255 : h , u } var u = this , d = 0 , f = 0 , h = 0 ; e && c ( e ) , u . toRgb = s , u . toHsv = l , u . toHex = a , u . parse = c } var t = Math . min , n = Math . max , r = Math . round ; return e } ) , r ( St , [ Pe , _e , ve , _t ] , function ( e , t , n , r ) { return e . extend ( { Defaults : { classes : "widget colorpicker" } , init : function ( e ) { this . _super ( e ) } , postRender : function ( ) { function e ( e , t ) { var r = n . getPos ( e ) , i , o ; return i = t . pageX - r . x , o = t . pageY - r . y , i = Math . max ( 0 , Math . min ( i / e . clientWidth , 1 ) ) , o = Math . max ( 0 , Math . min ( o / e . clientHeight , 1 ) ) , { x : i , y : o } } function i ( e , t ) { var i = ( 360 - e . h ) / 360 ; n . css ( d , { top : 100 * i + "%" } ) , t || n . css ( h , { left : e . s + "%" , top : 100 - e . v + "%" } ) , f . style . background = new r ( { s : 100 , v : 100 , h : e . h } ) . toHex ( ) , s . color ( ) . parse ( { s : e . s , v : e . v , h : e . h } ) } function o ( t ) { var n ; n = e ( f , t ) , c . s = 100 * n . x , c . v = 100 * ( 1 - n . y ) , i ( c ) , s . fire ( "change" ) } function a ( t ) { var n ; n = e ( u , t ) , c = l . toHsv ( ) , c . h = 360 * ( 1 - n . y ) , i ( c , ! 0 ) , s . fire ( "change" ) } var s = this , l = s . color ( ) , c , u , d , f , h ; u = s . getEl ( "h" ) , d = s . getEl ( "hp" ) , f = s . getEl ( "sv" ) , h = s . getEl ( "svp" ) , s . _repaint = function ( ) { c = l . toHsv ( ) , i ( c ) } , s . _super ( ) , s . _svdraghelper = new t ( s . _id + "-sv" , { start : o , drag : o } ) , s . _hdraghelper = new t ( s . _id + "-h" , { start : a , drag : a } ) , s . _repaint ( ) } , rgb : function ( ) { return this . color ( ) . toRgb ( ) } , value : function ( e ) { var t = this ; return arguments . length ? ( t . color ( ) . parse ( e ) , void ( t . _rendered && t . _repaint ( ) ) ) : t . color ( ) . toHex ( ) } , color : function ( ) { return this . _color || ( this . _color = new r ) , this . _color } , renderHtml : function ( ) { function e ( ) { var e , t , n = "" , i , a ; for ( i = "filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=" , a = o . split ( "," ) , e = 0 , t = a . length - 1 ; e < t ; e ++ ) n += '<div class="' + r + 'colorpicker-h-chunk" style="height:' + 100 / t + "%;" + i + a [ e ] + ",endColorstr=" + a [ e + 1 ] + ");-ms-" + i + a [ e ] + ",endColorstr=" + a [ e + 1 ] + ')"></div>' ; return n } var t = this , n = t . _id , r = t . classP
t . state . set ( "text" , "-" ) ) , e . selectable && ( t . aria ( "role" , "menuitemcheckbox" ) , t . classes . add ( "menu-item-checkbox" ) , e . icon = "selected" ) , e . preview || e . selectable || t . classes . add ( "menu-item-normal" ) , t . on ( "mousedown" , function ( e ) { e . preventDefault ( ) } ) , e . menu && ! e . ariaHideMenu && t . aria ( "haspopup" , ! 0 ) } , hasMenus : function ( ) { return ! ! this . settings . menu } , showMenu : function ( ) { var e = this , n = e . settings , r , i = e . parent ( ) ; if ( i . items ( ) . each ( function ( t ) { t !== e && t . hideMenu ( ) } ) , n . menu ) { r = e . menu , r ? r . show ( ) : ( r = n . menu , r . length ? r = { type : "menu" , items : r } : r . type = r . type || "menu" , i . settings . itemDefaults && ( r . itemDefaults = i . settings . itemDefaults ) , r = e . menu = t . create ( r ) . parent ( e ) . renderTo ( ) , r . reflow ( ) , r . on ( "cancel" , function ( t ) { t . stopPropagation ( ) , e . focus ( ) , r . hide ( ) } ) , r . on ( "show hide" , function ( e ) { e . control . items && e . control . items ( ) . each ( function ( e ) { e . active ( e . settings . selected ) } ) } ) . fire ( "show" ) , r . on ( "hide" , function ( t ) { t . control === r && e . classes . remove ( "selected" ) } ) , r . submenu = ! 0 ) , r . _parentMenu = i , r . classes . add ( "menu-sub" ) ; var o = r . testMoveRel ( e . getEl ( ) , e . isRtl ( ) ? [ "tl-tr" , "bl-br" , "tr-tl" , "br-bl" ] : [ "tr-tl" , "br-bl" , "tl-tr" , "bl-br" ] ) ; r . moveRel ( e . getEl ( ) , o ) , r . rel = o , o = "menu-sub-" + o , r . classes . remove ( r . _lastRel ) . add ( o ) , r . _lastRel = o , e . classes . add ( "selected" ) , e . aria ( "expanded" , ! 0 ) } } , hideMenu : function ( ) { var e = this ; return e . menu && ( e . menu . items ( ) . each ( function ( e ) { e . hideMenu && e . hideMenu ( ) } ) , e . menu . hide ( ) , e . aria ( "expanded" , ! 1 ) ) , e } , renderHtml : function ( ) { function e ( e ) { var t , r , i = { } ; for ( i = n . mac ? { alt : "⌥" , ctrl : "⌘" , shift : "⇧" , meta : "⌘" } : { meta : "Ctrl" } , e = e . split ( "+" ) , t = 0 ; t < e . length ; t ++ ) r = i [ e [ t ] . toLowerCase ( ) ] , r && ( e [ t ] = r ) ; return e . join ( "+" ) } function t ( e ) { return e . replace ( /[.*+?^${}()|[\]\\]/g , "\\$&" ) } function r ( e ) { var n = s . match || "" ; return n ? e . replace ( new RegExp ( t ( n ) , "gi" ) , function ( e ) { return "!mce~match[" + e + "]mce~match!" } ) : e } function i ( e ) { return e . replace ( new RegExp ( t ( "!mce~match[" ) , "g" ) , "<b>" ) . replace ( new RegExp ( t ( "]mce~match!" ) , "g" ) , "</b>" ) } var o = this , a = o . _id , s = o . settings , l = o . classPrefix , c = o . state . get ( "text" ) , u = o . settings . icon , d = "" , f = s . shortcut , h = o . encode ( s . url ) , p = "" ; return u && o . parent ( ) . classes . add ( "menu-has-icons" ) , s . image && ( d = " style=\"background-image: url('" + s . image + "')\"" ) , f && ( f = e ( f ) ) , u = l + "ico " + l + "i-" + ( o . settings . icon || "none" ) , p = "-" !== c ? '<i class="' + u + '"' + d + "></i>\xa0" : "" , c = i ( o . encode ( r ( c ) ) ) , h = i ( o . encode ( r ( h ) ) ) , '<div id="' + a + '" class="' + o . classes + '" tabindex="-1">' + p + ( "-" !== c ? '<span id="' + a + '-text" class="' + l + 'text">' + c + "</span>" : "" ) + ( f ? '<div id="' + a + '-shortcut" class="' + l + 'menu-shortcut">' + f + "</div>" : "" ) + ( s . menu ? '<div class="' + l + 'caret"></div>' : "" ) + ( h ? '<div class="' + l + 'menu-item-link">' + h + "</div>" : "" ) + "</div>" } , postRender : function ( ) { var e = this , t = e . settings , n = t . textStyle ; if ( "function" == typeof n && ( n = n . call ( this ) ) , n ) { var i = e . getEl ( "text" ) ; i && i . setAttribute ( "style" , n ) } return e . on ( "mouseenter click" , function ( n ) { n . control === e && ( t . menu || "click" !== n . type ? ( e . showMenu ( ) , n . aria && e . menu . focus ( ! 0 ) ) : ( e . fire ( "select" ) , r . requestAnimationFrame ( function ( ) { e . parent ( ) . hideAll ( ) } ) ) ) } ) , e . _super ( ) , e } , hover : function ( ) { var e = this ; return e . parent ( ) . items ( ) . each ( function ( e ) { e . classes . remove ( "selected" ) } ) , e . classes . toggle ( "selected" , ! 0 ) , e } , active : function ( e ) { return "undefined" != typeof e && this . aria ( "checked" , e ) , this . _super ( e ) } , remove : function ( ) { this . _super ( ) , this . menu && this . menu . remove ( ) } } ) } ) , r ( jt , [ g , xe , u ] , function ( e , t , n ) { return function ( r , i ) { var o = this , a , s = t . classPrefix , l ; o . show = function ( t , c ) { function u ( ) { a && ( e ( r ) . append ( '<div class="' + s + "throbber" + ( i ? " " + s + "throbber-inline" : "" ) + '"></div>' ) , c && c ( ) ) } return o . hide ( ) , a = ! 0 , t ? l = n . setTimeout ( u , t ) : u ( ) , o } , o . hide = function ( ) { var e = r . lastChild ; return n . clearTimeout ( l ) , e && e . className . indexOf ( "throbber" ) != - 1 && e . parentNode . removeChild ( e ) , a = ! 1 , o } } } ) , r ( Yt , [ Ae , qt , jt , m ] , function ( e , t , n , r ) { return e . extend ( { Defaults : { defaultType : "menuitem" , border : 1 , layout : "stack" , role : "application" , bodyRole : "menu" , ariaRoot : ! 0 } , init : function ( e ) { var t = this ; if ( e . autohide = ! 0 , e . constrainToViewport = ! 0 , "function" == typeof e . items && ( e . itemsFactory = e . items , e . items = [ ] ) , e . itemDefaults ) for ( var n = e . items , i = n . length ; i -- ; ) n [ i ] = r . extend ( { } , e . itemDefaults , n [ i ] ) ; t . _super ( e ) , t . classes . add ( "menu" ) } , repaint :