2014-04-01 18:46:14 -04:00
// 4.0.21 (2014-04-01)
! 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 ) { for ( var r = 0 ; r < n . length ; r ++ ) { for ( var i = e , o = n [ r ] , a = o . split ( /[.\/]/ ) , l = 0 ; l < a . length - 1 ; ++ l ) i [ a [ l ] ] === t && ( i [ a [ l ] ] = { } ) , i = i [ a [ l ] ] ; i [ a [ a . length - 1 ] ] = s [ o ] } } var s = { } , l = "tinymce/dom/EventUtils" , c = "tinymce/dom/Sizzle" , u = "tinymce/dom/DomQuery" , d = "tinymce/html/Styles" , f = "tinymce/dom/TreeWalker" , p = "tinymce/util/Tools" , m = "tinymce/dom/Range" , h = "tinymce/html/Entities" , g = "tinymce/Env" , v = "tinymce/dom/StyleSheetLoader" , y = "tinymce/dom/DOMUtils" , b = "tinymce/dom/ScriptLoader" , C = "tinymce/AddOnManager" , x = "tinymce/html/Node" , w = "tinymce/html/Schema" , _ = "tinymce/html/SaxParser" , N = "tinymce/html/DomParser" , E = "tinymce/html/Writer" , S = "tinymce/html/Serializer" , k = "tinymce/dom/Serializer" , T = "tinymce/dom/TridentSelection" , R = "tinymce/util/VK" , A = "tinymce/dom/ControlSelection" , B = "tinymce/dom/RangeUtils" , L = "tinymce/dom/Selection" , D = "tinymce/fmt/Preview" , M = "tinymce/Formatter" , H = "tinymce/UndoManager" , P = "tinymce/EnterKey" , O = "tinymce/ForceBlocks" , I = "tinymce/EditorCommands" , F = "tinymce/util/URI" , z = "tinymce/util/Class" , W = "tinymce/ui/Selector" , V = "tinymce/ui/Collection" , U = "tinymce/ui/DomUtils" , q = "tinymce/ui/Control" , $ = "tinymce/ui/Factory" , j = "tinymce/ui/KeyboardNavigation" , K = "tinymce/ui/Container" , Y = "tinymce/ui/DragHelper" , G = "tinymce/ui/Scrollable" , X = "tinymce/ui/Panel" , J = "tinymce/ui/Movable" , Q = "tinymce/ui/Resizable" , Z = "tinymce/ui/FloatPanel" , et = "tinymce/ui/Window" , tt = "tinymce/ui/MessageBox" , nt = "tinymce/WindowManager" , rt = "tinymce/util/Quirks" , it = "tinymce/util/Observable" , ot = "tinymce/Shortcuts" , at = "tinymce/Editor" , st = "tinymce/util/I18n" , lt = "tinymce/FocusManager" , ct = "tinymce/EditorManager" , ut = "tinymce/LegacyInput" , dt = "tinymce/util/XHR" , ft = "tinymce/util/JSON" , pt = "tinymce/util/JSONRequest" , mt = "tinymce/util/JSONP" , ht = "tinymce/util/LocalStorage" , gt = "tinymce/Compat" , vt = "tinymce/ui/Layout" , yt = "tinymce/ui/AbsoluteLayout" , bt = "tinymce/ui/Tooltip" , Ct = "tinymce/ui/Widget" , xt = "tinymce/ui/Button" , wt = "tinymce/ui/ButtonGroup" , _t = "tinymce/ui/Checkbox" , Nt = "tinymce/ui/PanelButton" , Et = "tinymce/ui/ColorButton" , St = "tinymce/ui/ComboBox" , kt = "tinymce/ui/Path" , Tt = "tinymce/ui/ElementPath" , Rt = "tinymce/ui/FormItem" , At = "tinymce/ui/Form" , Bt = "tinymce/ui/FieldSet" , Lt = "tinymce/ui/FilePicker" , Dt = "tinymce/ui/FitLayout" , Mt = "tinymce/ui/FlexLayout" , Ht = "tinymce/ui/FlowLayout" , Pt = "tinymce/ui/FormatControls" , Ot = "tinymce/ui/GridLayout" , It = "tinymce/ui/Iframe" , Ft = "tinymce/ui/Label" , zt = "tinymce/ui/Toolbar" , Wt = "tinymce/ui/MenuBar" , Vt = "tinymce/ui/MenuButton" , Ut = "tinymce/ui/ListBox" , qt = "tinymce/ui/MenuItem" , $t = "tinymce/ui/Menu" , jt = "tinymce/ui/Radio" , Kt = "tinymce/ui/ResizeHandle" , Yt = "tinymce/ui/Spacer" , Gt = "tinymce/ui/SplitButton" , Xt = "tinymce/ui/StackLayout" , Jt = "tinymce/ui/TabPanel" , Qt = "tinymce/ui/TextBox" , Zt = "tinymce/ui/Throbber" ; r ( l , [ ] , function ( ) { function e ( e , t , n , r ) { e . addEventListener ? e . addEventListener ( t , n , r || ! 1 ) : e . attachEvent && e . attachEvent ( "on" + t , n ) } function t ( e , t , n , r ) { e . removeEventListener ? e . removeEventListener ( t , n , r || ! 1 ) : e . detachEvent && e . detachEvent ( "on" + t , n ) } function n ( e , t ) { function n ( ) { return ! 1 } function r ( ) { return ! 0 } var i , o = t || { } , l ; for ( i in e ) s [ i ] || ( o [ i ] = e [ i ] ) ; if ( o . target || ( o . target = o . srcElement || document ) , e && a . test ( e . type ) && e . pageX === l && e . clientX !== l ) { var c = o . target . ownerDocument || document , u = c . documentElement , d = c . body ; o . pageX = e . clientX + ( u && u . scrollLeft || d && d . scrollLeft || 0 ) - ( u && u . clientLeft || d && d . clientLeft || 0 ) , o . pageY = e . clientY + ( u && u . scrollTop || d && d . scrollTop || 0 ) - ( u && u . clientTop || d && d . clientTop || 0 ) } return o . preventDefault = function ( ) { o . isDefaultPrevented = r , e && ( e . preventDefault ? e . preventD
for ( e = e || { } , u = ( "\\\" \\' \\; \\: ; : " + d ) . split ( " " ) , l = 0 ; l < u . length ; l ++ ) c [ u [ l ] ] = d + l , c [ d + l ] = u [ l ] ; return { toHex : function ( e ) { return e . replace ( r , n ) } , parse : function ( t ) { function s ( e , t , n ) { var r , i , o , a ; if ( r = h [ e + "-top" + t ] , r && ( i = h [ e + "-right" + t ] , i && ( o = h [ e + "-bottom" + t ] , o && ( a = h [ e + "-left" + t ] ) ) ) ) { var s = [ r , i , o , a ] ; for ( l = s . length - 1 ; l -- && s [ l ] === s [ l + 1 ] ; ) ; l > - 1 && n || ( h [ e + t ] = - 1 == l ? s [ 0 ] : s . join ( " " ) , delete h [ e + "-top" + t ] , delete h [ e + "-right" + t ] , delete h [ e + "-bottom" + t ] , delete h [ e + "-left" + t ] ) } } function u ( e ) { var t = h [ e ] , n ; if ( t ) { for ( t = t . split ( " " ) , n = t . length ; n -- ; ) if ( t [ n ] !== t [ 0 ] ) return ! 1 ; return h [ e ] = t [ 0 ] , ! 0 } } function d ( e , t , n , r ) { u ( t ) && u ( n ) && u ( r ) && ( h [ e ] = h [ t ] + " " + h [ n ] + " " + h [ r ] , delete h [ t ] , delete h [ n ] , delete h [ r ] ) } function f ( e ) { return b = ! 0 , c [ e ] } function p ( e , t ) { return b && ( e = e . replace ( /\uFEFF[0-9]/g , function ( e ) { return c [ e ] } ) ) , t || ( e = e . replace ( /\\([\'\";:])/g , "$1" ) ) , e } function m ( t , n , r , i , o , a ) { return ( o = o || a ) ? ( o = p ( o ) , "'" + o . replace ( /\'/g , "\\'" ) + "'" ) : ( n = p ( n || r || i ) , ! e . allow _script _urls && /(java|vb)script:/i . test ( n . replace ( /[\s\r\n]+/ , "" ) ) ? "" : ( C && ( n = C . call ( x , n , "style" ) ) , "url('" + n . replace ( /\'/g , "\\'" ) + "')" ) ) } var h = { } , g , v , y , b , C = e . url _converter , x = e . url _converter _scope || this ; if ( t ) { for ( t = t . replace ( /[\u0000-\u001F]/g , "" ) , t = t . replace ( /\\[\"\';:\uFEFF]/g , f ) . replace ( /\"[^\"]+\"|\'[^\']+\'/g , function ( e ) { return e . replace ( /[;:]/g , f ) } ) ; g = o . exec ( t ) ; ) { if ( v = g [ 1 ] . replace ( a , "" ) . toLowerCase ( ) , y = g [ 2 ] . replace ( a , "" ) , v && y . length > 0 ) { if ( ! e . allow _script _urls && ( "behavior" == v || /expression\s*\(/ . test ( y ) ) ) continue ; "font-weight" === v && "700" === y ? y = "bold" : ( "color" === v || "background-color" === v ) && ( y = y . toLowerCase ( ) ) , y = y . replace ( r , n ) , y = y . replace ( i , m ) , h [ v ] = b ? p ( y , ! 0 ) : y } o . lastIndex = g . index + g [ 0 ] . length } s ( "border" , "" , ! 0 ) , s ( "border" , "-width" ) , s ( "border" , "-color" ) , s ( "border" , "-style" ) , s ( "padding" , "" ) , s ( "margin" , "" ) , d ( "border" , "border-width" , "border-style" , "border-color" ) , "medium none" === h . border && delete h . border , "none" === h [ "border-image" ] && delete h [ "border-image" ] } return h } , serialize : function ( e , n ) { function r ( n ) { var r , o , a , l ; if ( r = t . styles [ n ] ) for ( o = 0 , a = r . length ; a > o ; o ++ ) n = r [ o ] , l = e [ n ] , l !== s && l . length > 0 && ( i += ( i . length > 0 ? " " : "" ) + n + ": " + l + ";" ) } var i = "" , o , a ; if ( n && t && t . styles ) r ( "*" ) , r ( n ) ; else for ( o in e ) a = e [ o ] , a !== s && a . length > 0 && ( i += ( i . length > 0 ? " " : "" ) + o + ": " + a + ";" ) ; return i } } } } ) , r ( f , [ ] , function ( ) { return function ( e , t ) { function n ( e , n , r , i ) { var o , a ; if ( e ) { if ( ! i && e [ n ] ) return e [ n ] ; if ( e != t ) { if ( o = e [ r ] ) return o ; for ( a = e . parentNode ; a && a != t ; a = a . parentNode ) if ( o = a [ r ] ) return o } } } var r = e ; this . current = function ( ) { return r } , this . next = function ( e ) { return r = n ( r , "firstChild" , "nextSibling" , e ) } , this . prev = function ( e ) { return r = n ( r , "lastChild" , "previousSibling" , e ) } } } ) , r ( p , [ ] , function ( ) { function e ( e ) { return null === e || e === t ? "" : ( "" + e ) . replace ( h , "" ) } function n ( e , n ) { return n ? "array" == n && g ( e ) ? ! 0 : typeof e == n : e !== t } function r ( e ) { var t = [ ] , n , r ; for ( n = 0 , r = e . length ; r > n ; n ++ ) t [ n ] = e [ n ] ; return t } function i ( 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 o ( e , n , r ) { var i , o ; if ( ! e ) return 0 ; if ( r = r || e , e . length !== t ) { for ( i = 0 , o = e . length ; o > i ; 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 a ( e , t ) { var n = [ ] ; return o ( e , function ( e ) { n . push ( t ( e ) ) } ) , n } function s ( e , t ) { var n = [ ] ; return o ( e , function ( e ) { ( ! t || t ( e ) ) && n . push ( e ) } ) , n } function l ( 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 ] , o [ a ] = c ? function ( ) { return i [ s ] . apply ( this , arguments ) } : 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 c ( e , t ) { var n , r ; if ( e ) for ( n = 0 , r = e . length ; r > n ; n ++ ) if ( e [ n ]
} function i ( ) { "undefined" != typeof console && console . log && console . log ( "Failed to load: " + e ) } var o = r , a , s ; s = o . uniqueId ( ) , a = document . createElement ( "script" ) , a . id = s , a . type = "text/javascript" , a . src = e , "onreadystatechange" in a ? a . onreadystatechange = function ( ) { /loaded|complete/ . test ( a . readyState ) && n ( ) } : a . onload = n , a . onerror = i , ( document . getElementsByTagName ( "head" ) [ 0 ] || document . body ) . appendChild ( a ) } var t = 0 , n = 1 , a = 2 , s = { } , l = [ ] , c = { } , u = [ ] , d = 0 , f ; this . isDone = function ( e ) { return s [ e ] == a } , this . markDone = function ( e ) { s [ e ] = a } , this . add = this . load = function ( e , n , r ) { var i = s [ e ] ; i == f && ( l . push ( e ) , s [ e ] = t ) , n && ( c [ e ] || ( c [ e ] = [ ] ) , c [ e ] . push ( { func : n , scope : r || this } ) ) } , this . loadQueue = function ( e , t ) { this . loadScripts ( l , e , t ) } , this . loadScripts = function ( t , r , l ) { function p ( e ) { i ( c [ e ] , function ( e ) { e . func . call ( e . scope ) } ) , c [ e ] = f } var m ; u . push ( { func : r , scope : l || this } ) , ( m = function ( ) { var r = o ( t ) ; t . length = 0 , i ( r , function ( t ) { return s [ t ] == a ? void p ( t ) : void ( s [ t ] != n && ( s [ t ] = n , d ++ , e ( t , function ( ) { s [ t ] = a , d -- , p ( t ) , m ( ) } ) ) ) } ) , d || ( i ( u , function ( e ) { e . func . call ( e . scope ) } ) , u . length = 0 ) } ) ( ) } } var r = e . DOM , i = t . each , o = t . grep ; return n . ScriptLoader = new n , n } ) , r ( C , [ b , p ] , function ( e , n ) { function r ( ) { var e = this ; e . items = [ ] , e . urls = { } , e . lookup = { } } var i = n . each ; return r . prototype = { get : function ( e ) { return this . lookup [ e ] ? this . lookup [ e ] . instance : t } , dependencies : function ( e ) { var t ; return this . lookup [ e ] && ( t = this . lookup [ e ] . dependencies ) , t || [ ] } , requireLangPack : function ( t , n ) { if ( r . language && r . languageLoad !== ! 1 ) { if ( n && new RegExp ( "([, ]|\\b)" + r . language + "([, ]|\\b)" ) . test ( n ) === ! 1 ) return ; e . ScriptLoader . add ( this . urls [ t ] + "/langs/" + r . language + ".js" ) } } , add : function ( e , t , n ) { return this . items . push ( t ) , this . lookup [ e ] = { instance : t , dependencies : n } , t } , createUrl : function ( e , t ) { return "object" == typeof t ? t : { prefix : e . prefix , resource : t , suffix : e . suffix } } , addComponents : function ( t , n ) { var r = this . urls [ t ] ; i ( n , function ( t ) { e . ScriptLoader . add ( r + "/" + t ) } ) } , load : function ( n , o , a , s ) { function l ( ) { var r = c . dependencies ( n ) ; i ( r , function ( e ) { var n = c . createUrl ( o , e ) ; c . load ( n . resource , n , t , t ) } ) , a && a . call ( s ? s : e ) } var c = this , u = o ; c . urls [ n ] || ( "object" == typeof o && ( u = o . prefix + o . resource + o . suffix ) , 0 !== u . indexOf ( "/" ) && - 1 == u . indexOf ( "://" ) && ( u = r . baseURL + "/" + u ) , c . urls [ n ] = u . substring ( 0 , u . lastIndexOf ( "/" ) ) , c . lookup [ n ] ? l ( ) : e . ScriptLoader . add ( u , l , s ) ) } } , r . PluginManager = new r , r . ThemeManager = new r , r } ) , r ( x , [ ] , function ( ) { function e ( e , t , n ) { var r , i , o = n ? "lastChild" : "firstChild" , a = n ? "prev" : "next" ; if ( e [ o ] ) return e [ o ] ; if ( e !== t ) { if ( r = e [ a ] ) return r ; for ( i = e . parent ; i && i !== t ; i = i . parent ) if ( r = i [ a ] ) return r } } function t ( e , t ) { this . name = e , this . type = t , 1 === t && ( this . attributes = [ ] , this . attributes . map = { } ) } var n = /^[ \t\r\n]*$/ , r = { "#text" : 3 , "#comment" : 8 , "#cdata" : 4 , "#pi" : 7 , "#doctype" : 10 , "#document-fragment" : 11 } ; return t . prototype = { replace : function ( e ) { var t = this ; return e . parent && e . remove ( ) , t . insert ( e , t ) , t . remove ( ) , t } , attr : function ( e , t ) { var n = this , r , i , o ; if ( "string" != typeof e ) { for ( i in e ) n . attr ( i , e [ i ] ) ; return n } if ( r = n . attributes ) { if ( t !== o ) { if ( null === t ) { if ( e in r . map ) for ( delete r . map [ e ] , i = r . length ; i -- ; ) if ( r [ i ] . name === e ) return r = r . splice ( i , 1 ) , n ; return n } if ( e in r . map ) { for ( i = r . length ; i -- ; ) if ( r [ i ] . name === e ) { r [ i ] . value = t ; break } } else r . push ( { name : e , value : t } ) ; return r . map [ e ] = t , n } return r . map [ e ] } } , clone : function ( ) { var e = this , n = new t ( e . name , e . type ) , r , i , o , a , s ; if ( o = e . attributes ) { for ( s = [ ] , s . map = { } , r = 0 , i = o . length ; i > r ; r ++ ) a = o [ r ] , "id" !== a . name && ( s [ s . length ] = { name : a . name , value : a . value } , s . map [ a . name ] = a . value ) ; n . attributes = s } return n . value = e . value , n . shortEnded = e . shortEnded , n } , wrap : function ( e ) { var t = this ; return t . parent . insert ( e , t ) , e . append ( t ) , t } , unwrap : function ( ) { var e = this , t , n ; for ( t = e . firstChild ; t ; ) n = t . next , e . insert ( t , e , ! 0 ) , t = n ; e . remove ( ) } , remove : function ( ) { var e = this , t = e . parent , n = e . next , r = e . prev ; return t && ( t . firstChild === e ? ( t . firstChild = n , n && ( n . prev = null ) ) : r . next = n , t . lastChild === e ? ( t . lastChild = r , r && ( r . next = null ) ) : n . prev = r , e . parent = e . next = e . prev = null ) , e } , append : function ( e ) { var t = this , n ; return e . parent && e . remove ( ) , n = t . lastChild , n ? ( n . next = e , e . prev = n , t . lastChild = e ) : t . lastChild = t . firstChild = e , e . parent = t , e } , insert : function ( e , t , n ) { var r ; return e . parent && e . remove ( ) , r = t . parent || this , n ? ( t === r . firstChild ? r . firstChild = e : t . prev . next = e , e . prev = t . prev , e . next =
if ( ! i ) return void ( 3 == l . nodeType ? a [ e ? "setStart" : "setEnd" ] ( l , 0 ) : a [ e ? "setStartBefore" : "setEndBefore" ] ( l ) ) ; for ( ; l ; ) { if ( u = l . nodeValue , s += u . length , s >= i ) { r = l , s -= i , s = u . length - s ; break } l = l . nextSibling } } else { if ( l = r . previousSibling , ! l ) return a [ e ? "setStartBefore" : "setEndBefore" ] ( r ) ; if ( ! i ) return void ( 3 == r . nodeType ? a [ e ? "setStart" : "setEnd" ] ( l , r . nodeValue . length ) : a [ e ? "setStartAfter" : "setEndAfter" ] ( l ) ) ; for ( ; l ; ) { if ( s += l . nodeValue . length , s >= i ) { r = l , s -= i ; break } l = l . previousSibling } } a [ e ? "setStart" : "setEnd" ] ( r , s ) } var o = e . getRng ( ) , a = i . createRng ( ) , s , l , c , u , d ; if ( s = o . item ? o . item ( 0 ) : o . parentElement ( ) , s . ownerDocument != i . doc ) return a ; if ( l = e . isCollapsed ( ) , o . item ) return a . setStart ( s . parentNode , i . nodeIndex ( s ) ) , a . setEnd ( a . startContainer , a . startOffset + 1 ) , a ; try { n ( ! 0 ) , l || n ( ) } catch ( f ) { if ( - 2147024809 != f . number ) throw f ; d = r . getBookmark ( 2 ) , c = o . duplicate ( ) , c . collapse ( ! 0 ) , s = c . parentElement ( ) , l || ( c = o . duplicate ( ) , c . collapse ( ! 1 ) , u = c . parentElement ( ) , u . innerHTML = u . innerHTML ) , s . innerHTML = s . innerHTML , r . moveToBookmark ( d ) , o = e . getRng ( ) , n ( ! 0 ) , l || n ( ) } return a } var r = this , i = e . dom , o = ! 1 ; this . getBookmark = function ( n ) { function r ( e ) { var t , n , r , o , a = [ ] ; for ( t = e . parentNode , n = i . getRoot ( ) . parentNode ; t != n && 9 !== t . nodeType ; ) { for ( r = t . children , o = r . length ; o -- ; ) if ( e === r [ o ] ) { a . push ( o ) ; break } e = t , t = t . parentNode } return a } function o ( e ) { var n ; return n = t ( a , e ) , n ? { position : n . position , offset : n . offset , indexes : r ( n . node ) , inside : n . inside } : void 0 } var a = e . getRng ( ) , s = { } ; return 2 === n && ( a . item ? s . start = { ctrl : ! 0 , indexes : r ( a . item ( 0 ) ) } : ( s . start = o ( ! 0 ) , e . isCollapsed ( ) || ( s . end = o ( ) ) ) ) , s } , this . moveToBookmark = function ( e ) { function t ( e ) { var t , n , r , o ; for ( t = i . getRoot ( ) , n = e . length - 1 ; n >= 0 ; n -- ) o = t . children , r = e [ n ] , r <= o . length - 1 && ( t = o [ r ] ) ; return t } function n ( n ) { var i = e [ n ? "start" : "end" ] , a , s , l , c ; i && ( a = i . position > 0 , s = o . createTextRange ( ) , s . moveToElementText ( t ( i . indexes ) ) , c = i . offset , c !== l ? ( s . collapse ( i . inside || a ) , s . moveStart ( "character" , a ? - c : c ) ) : s . collapse ( n ) , r . setEndPoint ( n ? "StartToStart" : "EndToStart" , s ) , n && r . collapse ( ! 0 ) ) } var r , o = i . doc . body ; e . start && ( e . start . ctrl ? ( r = o . createControlRange ( ) , r . addElement ( t ( e . start . indexes ) ) , r . select ( ) ) : ( r = o . createTextRange ( ) , n ( ! 0 ) , n ( ) , r . select ( ) ) ) } , this . addRange = function ( t ) { function n ( e ) { var t , n , a , d , m ; a = i . create ( "a" ) , t = e ? s : c , n = e ? l : u , d = r . duplicate ( ) , ( t == f || t == f . documentElement ) && ( t = p , n = 0 ) , 3 == t . nodeType ? ( t . parentNode . insertBefore ( a , t ) , d . moveToElementText ( a ) , d . moveStart ( "character" , n ) , i . remove ( a ) , r . setEndPoint ( e ? "StartToStart" : "EndToEnd" , d ) ) : ( m = t . childNodes , m . length ? ( n >= m . length ? i . insertAfter ( a , m [ m . length - 1 ] ) : t . insertBefore ( a , m [ n ] ) , d . moveToElementText ( a ) ) : t . canHaveHTML && ( t . innerHTML = "<span></span>" , a = t . firstChild , d . moveToElementText ( a ) , d . collapse ( o ) ) , r . setEndPoint ( e ? "StartToStart" : "EndToEnd" , d ) , i . remove ( a ) ) } var r , a , s , l , c , u , d , f = e . dom . doc , p = f . body , m , h ; if ( s = t . startContainer , l = t . startOffset , c = t . endContainer , u = t . endOffset , r = p . createTextRange ( ) , s == c && 1 == s . nodeType ) { if ( l == u && ! s . hasChildNodes ( ) ) { if ( s . canHaveHTML ) return d = s . previousSibling , d && ! d . hasChildNodes ( ) && i . isBlock ( d ) ? d . innerHTML = "" : d = null , s . innerHTML = "<span></span><span></span>" , r . moveToElementText ( s . lastChild ) , r . select ( ) , i . doc . selection . clear ( ) , s . innerHTML = "" , void ( d && ( d . innerHTML = "" ) ) ; l = i . nodeIndex ( s ) , s = s . parentNode } if ( l == u - 1 ) try { if ( h = s . childNodes [ l ] , a = p . createControlRange ( ) , a . addElement ( h ) , a . select ( ) , m = e . getRng ( ) , m . item && h === m . item ( 0 ) ) return } catch ( g ) { } } n ( ! 0 ) , n ( ) , r . select ( ) } , this . getRangeAt = n } return e } ) , r ( R , [ g ] , function ( e ) { return { BACKSPACE : 8 , DELETE : 46 , DOWN : 40 , ENTER : 13 , LEFT : 37 , RIGHT : 39 , SPACEBAR : 32 , TAB : 9 , UP : 38 , modifierPressed : function ( e ) { return e . shiftKey || e . ctrlKey || e . altKey } , metaKeyPressed : function ( t ) { return ( e . mac ? t . metaKey : t . ctrlKey ) && ! t . altKey } } } ) , r ( A , [ R , p , g ] , function ( e , t , n ) { return function ( r , i ) { function o ( e ) { var t = i . settings . object _resizing ; return t === ! 1 || n . iOS ? ! 1 : ( "string" != typeof t && ( t = "table,img,div" ) , "false" === e . getAttribute ( "data-mce-resize" ) ? ! 1 : i . dom . is ( e , t ) ) } function a ( t ) { var n , r ; n = t . screenX - k , r = t . screenY - T , H = n * E [ 2 ] + B , P = r * E [ 3 ] + L , H = 5 > H ? 5 : H , P = 5 > P ? 5 : P , ( e . modifierPressed ( t ) || "IMG" == w . nodeName && E [ 2 ] * E [ 3 ] !== 0 ) && ( H = Math . round ( P / D ) , P = Math . round ( H * D ) ) , C . setStyles ( _ , { width : H , height : P } ) , E [ 2 ] < 0 && _ . clientWidth <= H && C . setStyle ( _ , "left" ,
s && ( b = a ) } } function o ( n ) { var r ; return nt ( a ( n . parentNode ) . reverse ( ) , function ( n ) { var i ; r || "_start" == n . id || "_end" == n . id || ( i = v ( n , e , t ) , i && i . split !== ! 1 && ( r = n ) ) } ) , r } function s ( 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 = z . clone ( o , G ) , c = 0 ; c < p . length ; c ++ ) if ( B ( p [ c ] , t , a , a ) ) { a = 0 ; break } a && ( s && a . appendChild ( s ) , l || ( l = a ) , s = a ) } ! i || m . mixed && q ( e ) || ( n = z . split ( e , n ) ) , s && ( r . parentNode . insertBefore ( s , r ) , l . appendChild ( r ) ) } return n } function l ( e ) { return s ( o ( e ) , e , e , ! 0 ) } function c ( e ) { var t = z . get ( e ? "_start" : "_end" ) , n = t [ e ? "firstChild" : "lastChild" ] ; return M ( n ) && ( n = n [ e ? "firstChild" : "lastChild" ] ) , z . remove ( t , ! 0 ) , n } function d ( e ) { var t , n , o = e . commonAncestorContainer ; e = A ( e , p , X ) , m . split && ( t = P ( e , X ) , n = P ( e ) , t != n ? ( /^(TR|TH|TD)$/ . test ( t . nodeName ) && t . firstChild && ( t = "TR" == t . nodeName ? t . firstChild . firstChild || t : t . firstChild || t ) , o && /^T(HEAD|BODY|FOOT|R)$/ . test ( o . nodeName ) && /^(TH|TD)$/ . test ( n . nodeName ) && n . firstChild && ( n = n . firstChild || n ) , t = R ( t , "span" , { id : "_start" , "data-mce-type" : "bookmark" } ) , n = R ( n , "span" , { id : "_end" , "data-mce-type" : "bookmark" } ) , l ( t ) , l ( n ) , t = c ( X ) , n = c ( ) ) : t = n = l ( t ) , e . startContainer = t . parentNode , e . startOffset = j ( t ) , e . endContainer = n . parentNode , e . endOffset = j ( n ) + 1 ) , V . walk ( e , function ( e ) { nt ( e , function ( e ) { r ( e ) , 1 === e . nodeType && "underline" === i . dom . getStyle ( e , "text-decoration" ) && e . parentNode && "underline" === f ( e . parentNode ) && B ( { deep : ! 1 , exact : ! 0 , inline : "span" , styles : { textDecoration : "underline" } } , null , e ) } ) } ) } var p = u ( e ) , m = p [ 0 ] , h , g , b = ! 0 ; return n ? void ( n . nodeType ? ( g = z . createRng ( ) , g . setStartBefore ( n ) , g . setEndAfter ( n ) , d ( g ) ) : d ( n ) ) : void ( W . isCollapsed ( ) && m . inline && ! z . select ( "td.mce-item-selected,th.mce-item-selected" ) . length ? O ( "remove" , e , t ) : ( h = W . getBookmark ( ) , d ( W . getRng ( X ) ) , W . moveToBookmark ( h ) , m . inline && y ( e , t , W . getStart ( ) ) && I ( W . getRng ( ! 0 ) ) , i . nodeChanged ( ) ) ) } function g ( e , t , n ) { var r = u ( e ) ; ! y ( e , t , n ) || "toggle" in r [ 0 ] && ! r [ 0 ] . toggle ? m ( e , t , n ) : h ( e , t , n ) } function v ( e , t , n , r ) { function i ( e , t , i ) { var o , a , s = t [ i ] , l ; if ( t . onmatch ) return t . onmatch ( e , t , i ) ; if ( s ) if ( s . length === Q ) { for ( o in s ) if ( s . hasOwnProperty ( o ) ) { if ( a = "attributes" === i ? z . getAttrib ( e , o ) : E ( e , o ) , r && ! a && ! t . exact ) return ; if ( ( ! r || t . exact ) && ! N ( a , S ( k ( s [ o ] , n ) , o ) ) ) return } } else for ( l = 0 ; l < s . length ; l ++ ) if ( "attributes" === i ? z . getAttrib ( e , s [ l ] ) : E ( e , s [ l ] ) ) return t ; return t } var o = u ( t ) , a , s , l ; if ( o && e ) for ( s = 0 ; s < o . length ; s ++ ) if ( a = o [ s ] , _ ( e , a ) && i ( e , a , "attributes" ) && i ( e , a , "styles" ) ) { if ( l = a . classes ) for ( s = 0 ; s < l . length ; s ++ ) if ( ! z . hasClass ( e , l [ s ] ) ) return ; return a } } function y ( e , t , n ) { function r ( n ) { var r = z . getRoot ( ) ; return n === r ? ! 1 : ( n = z . getParent ( n , function ( n ) { return n . parentNode === r || ! ! v ( n , e , t , ! 0 ) } ) , v ( n , e , t ) ) } var i ; return n ? r ( n ) : ( n = W . getNode ( ) , r ( n ) ? X : ( i = W . getStart ( ) , i != n && r ( i ) ? X : G ) ) } function b ( e , t ) { var n , r = [ ] , i = { } ; return n = W . getStart ( ) , z . getParent ( n , function ( n ) { var o , a ; for ( o = 0 ; o < e . length ; o ++ ) a = e [ o ] , ! i [ a ] && v ( n , a , t ) && ( i [ a ] = ! 0 , r . push ( a ) ) } , z . getRoot ( ) ) , r } function C ( e ) { var t = u ( e ) , n , r , i , o , s ; if ( t ) for ( n = W . getStart ( ) , r = a ( n ) , o = t . length - 1 ; o >= 0 ; o -- ) { if ( s = t [ o ] . selector , ! s || t [ o ] . defaultBlock ) return X ; for ( i = r . length - 1 ; i >= 0 ; i -- ) if ( z . is ( r [ i ] , s ) ) return X } return G } function x ( e , t , n ) { var r ; return J || ( J = { } , r = { } , i . on ( "NodeChange" , function ( e ) { var t = a ( e . element ) , n = { } ; nt ( J , function ( e , i ) { nt ( t , function ( o ) { return v ( o , i , { } , e . similar ) ? ( r [ i ] || ( nt ( e , function ( e ) { e ( ! 0 , { node : o , format : i , parents : t } ) } ) , r [ i ] = e ) , n [ i ] = e , ! 1 ) : void 0 } ) } ) , nt ( r , function ( i , o ) { n [ o ] || ( delete r [ o ] , nt ( i , function ( n ) { n ( ! 1 , { node : e . element , format : o , parents : t } ) } ) ) } ) } ) ) , nt ( e . split ( "," ) , function ( e ) { J [ e ] || ( J [ e ] = [ ] , J [ e ] . similar = n ) , J [ e ] . push ( t ) } ) , this } function w ( e ) { return r . getCssText ( i , e ) } function _ ( e , t ) { return N ( e , t . inline ) ? X : N ( e , t . block ) ? X : t . selector ? 1 == e . nodeType && z . is ( e , t . selector ) : void 0 } function N ( e , t ) { return e = e || "" , t = t || "" , e = "" + ( e . nodeName || e ) , t = "" + ( t . nodeName || t ) , e . toLowerCase ( ) == t . toLowerCase ( ) } function E ( e , t ) { return S ( z . getStyle ( e , t ) , t ) } function S ( e , t ) { return ( "color" == t || "backgroundColor" == t ) && ( e = z . toHex ( e ) ) , "fontWeight" == t && 700 == e && ( e = "bold" ) , "fontFamily" == t && ( e = e . replace ( /[\'\"]/g , "" ) . replace ( /,\s+/g , "," ) ) , "" + e } function k ( e , t ) { return "string" != typeof e ? e = e ( t ) : t && ( e = e . replace ( /%(\w+)/g , function ( e , n ) { return t [ n ] || e } ) ) , e } function T ( e ) { return e && 3 === e . nodeType && /^([\t \r\n]+|)$/ . test ( e . nodeValu
r && ( r = r . replace ( /\(mce_at\)/g , "@@" ) ) , o [ t ] = r } ) , a = i . base _uri , a && ( o . protocol || ( o . protocol = a . protocol ) , o . userInfo || ( o . userInfo = a . userInfo ) , o . port || "mce_host" !== o . host || ( o . port = a . port ) , o . host && "mce_host" !== o . host || ( o . host = a . host ) , o . source = "" ) , l && ( o . protocol = "" ) } var n = e . each , r = e . trim ; return t . prototype = { setPath : function ( e ) { var t = this ; e = /^(.*?)\/?(\w+)?$/ . exec ( e ) , t . path = e [ 0 ] , t . directory = e [ 1 ] , t . file = e [ 2 ] , t . source = "" , t . getURI ( ) } , toRelative : function ( e ) { var n = this , r ; if ( "./" === e ) return e ; if ( e = new t ( e , { base _uri : n } ) , "mce_host" != e . host && n . host != e . host && e . host || n . port != e . port || n . protocol != e . protocol && "" !== e . protocol ) return e . getURI ( ) ; var i = n . getURI ( ) , o = e . getURI ( ) ; return i == o || "/" == i . charAt ( i . length - 1 ) && i . substr ( 0 , i . length - 1 ) == o ? i : ( r = n . toRelPath ( n . path , e . path ) , e . query && ( r += "?" + e . query ) , e . anchor && ( r += "#" + e . anchor ) , r ) } , toAbsolute : function ( e , n ) { return e = new t ( e , { base _uri : this } ) , e . getURI ( this . host == e . host && this . protocol == e . protocol ? n : 0 ) } , toRelPath : function ( e , t ) { var n , r = 0 , i = "" , o , a ; if ( e = e . substring ( 0 , e . lastIndexOf ( "/" ) ) , e = e . split ( "/" ) , n = t . split ( "/" ) , e . length >= n . length ) for ( o = 0 , a = e . length ; a > o ; o ++ ) if ( o >= n . length || e [ o ] != n [ o ] ) { r = o + 1 ; break } if ( e . length < n . length ) for ( o = 0 , a = n . length ; a > o ; o ++ ) if ( o >= e . length || e [ o ] != n [ o ] ) { r = o + 1 ; break } if ( 1 === r ) return t ; for ( o = 0 , a = e . length - ( r - 1 ) ; a > o ; o ++ ) i += "../" ; for ( o = r - 1 , a = n . length ; a > o ; o ++ ) i += o != r - 1 ? "/" + n [ o ] : n [ o ] ; return i } , toAbsPath : function ( e , t ) { var r , i = 0 , o = [ ] , a , s ; for ( a = /\/$/ . test ( t ) ? "/" : "" , e = e . split ( "/" ) , t = t . split ( "/" ) , n ( e , function ( e ) { e && o . push ( e ) } ) , e = o , r = t . length - 1 , o = [ ] ; r >= 0 ; r -- ) 0 !== t [ r ] . length && "." !== t [ r ] && ( ".." !== t [ r ] ? i > 0 ? i -- : o . push ( t [ r ] ) : i ++ ) ; return r = e . length - i , s = 0 >= r ? o . reverse ( ) . join ( "/" ) : e . slice ( 0 , r ) . join ( "/" ) + "/" + o . reverse ( ) . join ( "/" ) , 0 !== s . indexOf ( "/" ) && ( s = "/" + s ) , a && s . lastIndexOf ( "/" ) !== s . length - 1 && ( s += a ) , s } , getURI : function ( e ) { var t , n = this ; return ( ! n . source || e ) && ( t = "" , e || ( t += n . protocol ? n . protocol + "://" : "//" , n . userInfo && ( t += n . userInfo + "@" ) , n . host && ( t += n . host ) , n . port && ( t += ":" + n . port ) ) , n . path && ( t += n . path ) , n . query && ( t += "?" + n . query ) , n . anchor && ( t += "#" + n . anchor ) , n . source = t ) , n . source } } , t } ) , r ( z , [ p ] , function ( e ) { function t ( ) { } var n = e . each , r = e . extend , i , o ; return t . extend = i = function ( e ) { function t ( ) { var e , t , n , r = this ; if ( ! o && ( r . init && r . init . apply ( r , arguments ) , t = r . Mixins ) ) for ( e = t . length ; e -- ; ) n = t [ e ] , n . init && n . init . apply ( r , arguments ) } function a ( ) { return this } function s ( e , t ) { return function ( ) { var n = this , r = n . _super , i ; return n . _super = c [ e ] , i = t . apply ( n , arguments ) , n . _super = r , i } } var l = this , c = l . prototype , u , d , f ; o = ! 0 , u = new l , o = ! 1 , e . Mixins && ( n ( e . Mixins , function ( t ) { t = t ; for ( var n in t ) "init" !== n && ( e [ n ] = t [ n ] ) } ) , c . Mixins && ( e . Mixins = c . Mixins . concat ( e . Mixins ) ) ) , e . Methods && n ( e . Methods . split ( "," ) , function ( t ) { e [ t ] = a } ) , e . Properties && n ( e . Properties . split ( "," ) , function ( t ) { var n = "_" + t ; e [ t ] = function ( e ) { var t = this , r ; return e !== r ? ( t [ n ] = e , t ) : t [ n ] } } ) , e . Statics && n ( e . Statics , function ( e , n ) { t [ n ] = e } ) , e . Defaults && c . Defaults && ( e . Defaults = r ( { } , c . Defaults , e . Defaults ) ) ; for ( d in e ) f = e [ d ] , u [ d ] = "function" == typeof f && c [ d ] ? s ( d , f ) : f ; return t . prototype = u , t . constructor = t , t . extend = i , t } , t } ) , r ( W , [ z ] , function ( e ) { function t ( e ) { for ( var t = [ ] , n = e . length , r ; n -- ; ) r = e [ n ] , r . _ _checked || ( t . push ( r ) , r . _ _checked = 1 ) ; for ( n = t . length ; n -- ; ) delete t [ n ] . _ _checked ; return t } var n = /^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i , r = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g , i = /^\s*|\s*$/g , o , a = e . extend ( { init : function ( e ) { function t ( e ) { return e ? ( e = e . toLowerCase ( ) , function ( t ) { return "*" === e || t . type === e } ) : void 0 } function o ( e ) { return e ? function ( t ) { return t . _name === e } : void 0 } function a ( e ) { return e ? ( e = e . split ( "." ) , function ( t ) { for ( var n = e . length ; n -- ; ) if ( ! t . hasClass ( e [ n ] ) ) return ! 1 ; return ! 0 } ) : void 0 } function s ( e , t , n ) { return e ? function ( r ) { var i = r [ e ] ? r [ e ] ( ) : "" ; return t ? "=" === t ? i === n : "*=" === t ? i . indexOf ( n ) >= 0 : "~=" === t ? ( " " + i + " " ) . indexOf ( " " + n + " " ) >= 0 : "!=" === t ? i != n : "^=" === t ? 0 === i . indexOf ( n ) : "$=" === t ? i . substr ( i . length - n . length ) === n : ! 1 : ! ! n } : void 0 } function l ( e ) { var t ; return e ? ( e = /(?:not\((.+)\))|(.+)/i . exec ( e ) , e [ 1 ] ? ( t = u ( e [ 1 ] , [ ] ) , function ( e ) { return ! d ( e , t ) } ) : ( e = e [ 2 ] , function ( t , n , r ) { ret
} , 0 ) , c = ! 0 ) , l . push ( d ) , t ( ) } } ) , d . on ( "close hide" , function ( e ) { if ( e . control == d ) { for ( var n = l . length ; n -- ; ) l [ n ] === d && l . splice ( n , 1 ) ; t ( ) } } ) , d . on ( "show" , function ( ) { d . parents ( ) . each ( function ( e ) { return e . _fixed ? ( d . fixed ( ! 0 ) , ! 1 ) : void 0 } ) } ) , e . popover && ( d . _preBodyHtml = '<div class="' + d . classPrefix + 'arrow"></div>' , d . addClass ( "popover" ) . addClass ( "bottom" ) . addClass ( d . isRtl ( ) ? "end" : "start" ) ) } , fixed : function ( e ) { var t = this ; if ( t . _fixed != e ) { if ( t . _rendered ) { var n = r . getViewPort ( ) ; e ? t . layoutRect ( ) . y -= n . y : t . layoutRect ( ) . y += n . y } t . toggleClass ( "fixed" , e ) , t . _fixed = e } return t } , show : function ( ) { var e = this , t , n = e . _super ( ) ; for ( t = s . length ; t -- && s [ t ] !== e ; ) ; return - 1 === t && s . push ( e ) , n } , hide : function ( ) { return i ( this ) , this . _super ( ) } , hideAll : function ( ) { u . hideAll ( ) } , close : function ( ) { var e = this ; return e . fire ( "close" ) , e . remove ( ) } , remove : function ( ) { i ( this ) , this . _super ( ) } , postRender : function ( ) { var e = this ; return e . settings . bodyRole && this . getEl ( "body" ) . setAttribute ( "role" , e . settings . bodyRole ) , e . _super ( ) } } ) ; return u . hideAll = function ( ) { for ( var e = s . length ; e -- ; ) { var t = s [ e ] ; t && t . settings . autohide && ( t . hide ( ) , s . splice ( e , 1 ) ) } } , u } ) , r ( et , [ Z , X , U , Y ] , function ( e , t , n , r ) { var i = e . extend ( { modal : ! 0 , Defaults : { border : 1 , layout : "flex" , containerCls : "panel" , role : "dialog" , callbacks : { submit : function ( ) { this . fire ( "submit" , { data : this . toJSON ( ) } ) } , close : function ( ) { this . close ( ) } } } , init : function ( e ) { var n = this ; n . _super ( e ) , n . isRtl ( ) && n . addClass ( "rtl" ) , n . addClass ( "window" ) , n . _fixed = ! 0 , e . buttons && ( n . statusbar = new t ( { layout : "flex" , border : "1 0 0 0" , spacing : 3 , padding : 10 , align : "center" , pack : n . isRtl ( ) ? "start" : "end" , defaults : { type : "button" } , items : e . buttons } ) , n . statusbar . addClass ( "foot" ) , n . statusbar . parent ( n ) ) , n . on ( "click" , function ( e ) { - 1 != e . target . className . indexOf ( n . classPrefix + "close" ) && n . close ( ) } ) , n . on ( "cancel" , function ( ) { n . close ( ) } ) , n . aria ( "describedby" , n . describedBy || n . _id + "-none" ) , n . aria ( "label" , e . title ) , n . _fullscreen = ! 1 } , recalc : function ( ) { var e = this , t = e . statusbar , r , i , o , a ; e . _fullscreen && ( e . layoutRect ( n . getWindowSize ( ) ) , e . layoutRect ( ) . contentH = e . layoutRect ( ) . innerH ) , e . _super ( ) , r = e . layoutRect ( ) , e . settings . title && ! e . _fullscreen && ( i = r . headerW , i > r . w && ( o = r . x - Math . max ( 0 , i / 2 ) , e . layoutRect ( { w : i , x : o } ) , a = ! 0 ) ) , t && ( t . layoutRect ( { w : e . layoutRect ( ) . innerW } ) . recalc ( ) , i = t . layoutRect ( ) . minW + r . deltaW , i > r . w && ( o = r . x - Math . max ( 0 , i - r . w ) , e . layoutRect ( { w : i , x : o } ) , a = ! 0 ) ) , a && e . recalc ( ) } , initLayoutRect : function ( ) { var e = this , t = e . _super ( ) , r = 0 , i ; if ( e . settings . title && ! e . _fullscreen ) { i = e . getEl ( "head" ) ; var o = n . getSize ( i ) ; t . headerW = o . width , t . headerH = o . height , r += t . headerH } e . statusbar && ( r += e . statusbar . layoutRect ( ) . h ) , t . deltaH += r , t . minH += r , t . h += r ; var a = n . getWindowSize ( ) ; return t . x = Math . max ( 0 , a . w / 2 - t . w / 2 ) , t . y = Math . max ( 0 , a . h / 2 - t . h / 2 ) , t } , renderHtml : function ( ) { var e = this , t = e . _layout , n = e . _id , r = e . classPrefix , i = e . settings , o = "" , a = "" , s = i . html ; return e . preRender ( ) , t . preRender ( e ) , i . title && ( o = '<div id="' + n + '-head" class="' + r + 'window-head"><div id="' + n + '-title" class="' + r + 'title">' + e . encode ( i . title ) + '</div><button type="button" class="' + r + 'close" aria-hidden="true">\xd7</button><div id="' + n + '-dragh" class="' + r + 'dragh"></div></div>' ) , i . url && ( s = '<iframe src="' + i . url + '" tabindex="-1"></iframe>' ) , "undefined" == typeof s && ( s = t . renderHtml ( e ) ) , e . statusbar && ( a = e . statusbar . renderHtml ( ) ) , '<div id="' + n + '" class="' + e . classes ( ) + '" hidefocus="1"><div class="' + e . classPrefix + 'reset" role="application">' + o + '<div id="' + n + '-body" class="' + e . classes ( "body" ) + '">' + s + "</div>" + a + "</div></div>" } , fullscreen : function ( e ) { var t = this , r = document . documentElement , i , o = t . classPrefix , a ; if ( e != t . _fullscreen ) if ( n . on ( window , "resize" , function ( ) { var e ; if ( t . _fullscreen ) if ( i ) t . _timer || ( t . _timer = setTimeout ( function ( ) { var e = n . getWindowSize ( ) ; t . moveTo ( 0 , 0 ) . resizeTo ( e . w , e . h ) , t . _timer = 0 } , 50 ) ) ; else { e = ( new Date ) . getTime ( ) ; var r = n . getWindowSize ( ) ; t . moveTo ( 0 , 0 ) . resizeTo ( r . w , r . h ) , ( new Date ) . getTime ( ) - e > 50 && ( i = ! 0 ) } } ) , a = t . layoutRect ( ) , t . _fullscreen = e , e ) { t . _initial = { x : a . x , y : a . y , w : a . w , h : a . h } , t . _borderBox = t . parseBox ( "0" ) , t . getEl ( "head" ) . style . display = "none" , a . deltaH -= a . headerH + 2 , n . addClass ( r , o + "fullscreen" ) , n . addClass ( document . body , o + "fullscreen" ) , t . addClass ( "fullscreen" ) ; var s = n . getWindowSize ( ) ; t . moveTo ( 0 , 0 ) . resizeTo ( s . w , s .
} ) , n . dom . addStyle ( h ) ) , R ( n . contentCSS , function ( e ) { n . loadedCSS [ e ] || ( n . dom . loadCSS ( e ) , n . loadedCSS [ e ] = ! 0 ) } ) , o . auto _focus && setTimeout ( function ( ) { var e = n . editorManager . get ( o . auto _focus ) ; e . selection . select ( e . getBody ( ) , 1 ) , e . selection . collapse ( 1 ) , e . getBody ( ) . focus ( ) , e . getWin ( ) . focus ( ) } , 100 ) , f = p = m = null } , focus : function ( e ) { var t , n = this , r = n . selection , i = n . settings . content _editable , o , a , s = n . getDoc ( ) , l ; if ( ! e ) { if ( o = r . getRng ( ) , o . item && ( a = o . item ( 0 ) ) , n . _refreshContentEditable ( ) , i || ( b . opera || n . getBody ( ) . focus ( ) , n . getWin ( ) . focus ( ) ) , H || i ) { if ( l = n . getBody ( ) , l . setActive ) try { l . setActive ( ) } catch ( c ) { l . focus ( ) } else l . focus ( ) ; i && r . normalize ( ) } a && a . ownerDocument == s && ( o = s . body . createControlRange ( ) , o . addElement ( a ) , o . select ( ) ) } n . editorManager . activeEditor != n && ( ( t = n . editorManager . activeEditor ) && t . fire ( "deactivate" , { relatedTarget : n } ) , n . fire ( "activate" , { relatedTarget : t } ) ) , n . editorManager . activeEditor = n } , execCallback : function ( e ) { var t = this , n = t . settings [ e ] , r ; if ( n ) return t . callbackLookup && ( r = t . callbackLookup [ e ] ) && ( n = r . func , r = r . scope ) , "string" == typeof n && ( r = n . replace ( /\.\w+$/ , "" ) , r = r ? D ( r ) : 0 , n = D ( n ) , t . callbackLookup = t . callbackLookup || { } , t . callbackLookup [ e ] = { func : n , scope : r } ) , n . apply ( r || t , Array . prototype . slice . call ( arguments , 1 ) ) } , translate : function ( e ) { var t = this . settings . language || "en" , n = this . editorManager . i18n ; return e ? n . data [ t + "." + e ] || e . replace ( /\{\#([^\}]+)\}/g , function ( e , r ) { return n . data [ t + "." + r ] || "{#" + r + "}" } ) : "" } , getLang : function ( e , n ) { return this . editorManager . i18n . data [ ( this . settings . language || "en" ) + "." + e ] || ( n !== t ? n : "{#" + e + "}" ) } , getParam : function ( e , t , n ) { var r = e in this . settings ? this . settings [ e ] : t , i ; return "hash" === n ? ( i = { } , "string" == typeof r ? R ( r . split ( r . indexOf ( "=" ) > 0 ? /[;,](?![^=;,]*(?:[;,]|$))/ : "," ) , function ( e ) { e = e . split ( "=" ) , i [ L ( e [ 0 ] ) ] = L ( e . length > 1 ? e [ 1 ] : e ) } ) : i = r , i ) : r } , nodeChanged : function ( ) { var e = this , t = e . selection , n , r , i ; ! e . initialized || e . settings . disable _nodechange || e . settings . readonly || ( i = e . getBody ( ) , n = t . getStart ( ) || i , n = P && n . ownerDocument != e . getDoc ( ) ? e . getBody ( ) : n , "IMG" == n . nodeName && t . isCollapsed ( ) && ( n = n . parentNode ) , r = [ ] , e . dom . getParent ( n , function ( e ) { return e === i ? ! 0 : void r . push ( e ) } ) , e . fire ( "NodeChange" , { element : n , parents : r } ) ) } , 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 } , addMenuItem : function ( e , t ) { var n = this ; t . cmd && ( t . onclick = function ( ) { n . execCommand ( t . cmd ) } ) , n . menuItems = n . menuItems || { } , n . menuItems [ e ] = t } , addCommand : function ( e , t , n ) { this . execCommands [ e ] = { func : t , scope : n || this } } , addQueryStateHandler : function ( e , t , n ) { this . queryStateCommands [ e ] = { func : t , scope : n || this } } , addQueryValueHandler : function ( e , t , n ) { this . queryValueCommands [ e ] = { func : t , scope : n || this } } , addShortcut : function ( e , t , n , r ) { this . shortcuts . add ( e , t , n , r ) } , execCommand : function ( e , t , n , r ) { var i = this , o = 0 , a ; return /^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/ . test ( e ) || r && r . skip _focus || i . focus ( ) , r = T ( { } , r ) , r = i . fire ( "BeforeExecCommand" , { command : e , ui : t , value : n } ) , r . isDefaultPrevented ( ) ? ! 1 : ( a = i . execCommands [ e ] ) && a . func . call ( a . scope , t , n ) !== ! 0 ? ( i . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , ! 0 ) : ( R ( i . plugins , function ( r ) { return r . execCommand && r . execCommand ( e , t , n ) ? ( i . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , o = ! 0 , ! 1 ) : void 0 } ) , o ? o : i . theme && i . theme . execCommand && i . theme . execCommand ( e , t , n ) ? ( i . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , ! 0 ) : i . editorCommands . execCommand ( e , t , n ) ? ( i . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , ! 0 ) : ( i . getDoc ( ) . execCommand ( e , t , n ) , void i . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) ) ) } , queryCommandState : function ( e ) { var t = this , n , r ; if ( ! t . _isHidden ( ) ) { if ( ( n = t . queryStateCommands [ e ] ) && ( r = n . func . call ( n . scope ) , r !== ! 0 ) ) return r ; if ( r = t . editorCommands . queryCommandState ( e ) , - 1 !== r ) return r ; try { return t . getDoc ( ) . queryCommandState ( e ) } catch ( i ) { } } } , queryCommandValue : function ( e ) { var n = this , r , i ; if ( ! n . _isHidden ( ) ) { if ( ( r = n . queryValueCommands [ e ] ) && ( i = r . func . call ( r . scope ) , i !== ! 0 ) ) return i ; if ( i = n . editorCommands . queryCommandValue ( e ) , i !== t ) return i ; try { return n . getDoc ( ) . queryCommandValue ( e ) } catch ( o ) { } } } , show : function ( ) { var e = this ; E . show ( e . getContainer ( ) ) , E . hide ( e . id ) , e . l
} } ) } ) , r ( At , [ K , Rt ] , function ( e , t ) { return e . extend ( { Defaults : { containerCls : "form" , layout : "flex" , direction : "column" , align : "stretch" , flex : 1 , padding : 20 , labelGap : 30 , spacing : 10 , callbacks : { submit : function ( ) { this . submit ( ) } } } , preRender : function ( ) { var e = this , n = e . items ( ) ; n . each ( function ( n ) { var r , i = n . settings . label ; i && ( r = new t ( { layout : "flex" , autoResize : "overflow" , defaults : { flex : 1 } , items : [ { type : "label" , id : n . _id + "-l" , text : i , flex : 0 , forId : n . _id , disabled : n . disabled ( ) } ] } ) , r . type = "formitem" , n . aria ( "labelledby" , n . _id + "-l" ) , "undefined" == typeof n . settings . flex && ( n . settings . flex = 1 ) , e . replace ( n , r ) , r . add ( n ) ) } ) } , recalcLabels : function ( ) { var e = this , t = 0 , n = [ ] , r , i ; if ( e . settings . labelGapCalc !== ! 1 ) for ( e . items ( ) . filter ( "formitem" ) . each ( function ( e ) { var r = e . items ( ) [ 0 ] , i = r . getEl ( ) . clientWidth ; t = i > t ? i : t , n . push ( r ) } ) , i = e . settings . labelGap || 0 , r = n . length ; r -- ; ) n [ r ] . settings . minWidth = t + i } , visible : function ( e ) { var t = this . _super ( e ) ; return e === ! 0 && this . _rendered && this . recalcLabels ( ) , t } , submit : function ( ) { return this . fire ( "submit" , { data : this . toJSON ( ) } ) } , postRender : function ( ) { var e = this ; e . _super ( ) , e . recalcLabels ( ) , e . fromJSON ( e . settings . data ) } } ) } ) , r ( Bt , [ At ] , function ( e ) { return e . extend ( { Defaults : { containerCls : "fieldset" , layout : "flex" , direction : "column" , align : "stretch" , flex : 1 , padding : "25 15 5 15" , labelGap : 30 , spacing : 10 , border : 1 } , renderHtml : function ( ) { var e = this , t = e . _layout , n = e . classPrefix ; return e . preRender ( ) , t . preRender ( e ) , '<fieldset id="' + e . _id + '" class="' + e . classes ( ) + '" hidefocus="1" tabindex="-1">' + ( e . settings . title ? '<legend id="' + e . _id + '-title" class="' + n + 'fieldset-title">' + e . settings . title + "</legend>" : "" ) + '<div id="' + e . _id + '-body" class="' + e . classes ( "body" ) + '">' + ( e . settings . html || "" ) + t . renderHtml ( e ) + "</div></fieldset>" } } ) } ) , r ( Lt , [ St ] , function ( e ) { return e . extend ( { init : function ( e ) { var t = this , n = tinymce . activeEditor , r ; e . spellcheck = ! 1 , r = n . settings . file _browser _callback , r && ( e . icon = "browse" , e . onaction = function ( ) { r ( t . getEl ( "inp" ) . id , t . getEl ( "inp" ) . value , e . filetype , window ) } ) , t . _super ( e ) } } ) } ) , r ( Dt , [ yt ] , function ( e ) { return e . extend ( { recalc : function ( e ) { var t = e . layoutRect ( ) , n = e . paddingBox ( ) ; e . items ( ) . filter ( ":visible" ) . each ( function ( e ) { e . layoutRect ( { x : n . left , y : n . top , w : t . innerW - n . right - n . left , h : t . innerH - n . top - n . bottom } ) , e . recalc && e . recalc ( ) } ) } } ) } ) , r ( Mt , [ yt ] , function ( e ) { return e . extend ( { recalc : function ( e ) { var t , n , r , i , o , a , s , l , c , u , d , f , p , m , h , g , v = [ ] , y , b , C , x , w , _ , N , E , S , k , T , R , A , B , L , D , M , H , P , O , I , F , z = Math . max , W = Math . min ; for ( r = e . items ( ) . filter ( ":visible" ) , i = e . layoutRect ( ) , o = e . _paddingBox , a = e . settings , f = e . isRtl ( ) ? a . direction || "row-reversed" : a . direction , s = a . align , l = e . isRtl ( ) ? a . pack || "end" : a . pack , c = a . spacing || 0 , ( "row-reversed" == f || "column-reverse" == f ) && ( r = r . set ( r . toArray ( ) . reverse ( ) ) , f = f . split ( "-" ) [ 0 ] ) , "column" == f ? ( S = "y" , N = "h" , E = "minH" , k = "maxH" , R = "innerH" , T = "top" , A = "deltaH" , B = "contentH" , P = "left" , M = "w" , L = "x" , D = "innerW" , H = "minW" , O = "right" , I = "deltaW" , F = "contentW" ) : ( S = "x" , N = "w" , E = "minW" , k = "maxW" , R = "innerW" , T = "left" , A = "deltaW" , B = "contentW" , P = "top" , M = "h" , L = "y" , D = "innerH" , H = "minH" , O = "bottom" , I = "deltaH" , F = "contentH" ) , d = i [ R ] - o [ T ] - o [ T ] , _ = u = 0 , t = 0 , n = r . length ; n > t ; t ++ ) p = r [ t ] , m = p . layoutRect ( ) , h = p . settings , g = h . flex , d -= n - 1 > t ? c : 0 , g > 0 && ( u += g , m [ k ] && v . push ( p ) , m . flex = g ) , d -= m [ E ] , y = o [ P ] + m [ H ] + o [ O ] , y > _ && ( _ = y ) ; if ( x = { } , x [ E ] = 0 > d ? i [ E ] - d + i [ A ] : i [ R ] - d + i [ A ] , x [ H ] = _ + i [ I ] , x [ B ] = i [ R ] - d , x [ F ] = _ , x . minW = W ( x . minW , i . maxW ) , x . minH = W ( x . minH , i . maxH ) , x . minW = z ( x . minW , i . startMinWidth ) , x . minH = z ( x . minH , i . startMinHeight ) , ! i . autoResize || x . minW == i . minW && x . minH == i . minH ) { for ( C = d / u , t = 0 , n = v . length ; n > t ; t ++ ) p = v [ t ] , m = p . layoutRect ( ) , b = m [ k ] , y = m [ E ] + m . flex * C , y > b ? ( d -= m [ k ] - m [ E ] , u -= m . flex , m . flex = 0 , m . maxFlexSize = b ) : m . maxFlexSize = 0 ; for ( C = d / u , w = o [ T ] , x = { } , 0 === u && ( "end" == l ? w = d + o [ T ] : "center" == l ? ( w = Math . round ( i [ R ] / 2 - ( i [ R ] - d ) / 2 ) + o [ T ] , 0 > w && ( w = o [ T ] ) ) : "justify" == l && ( w = o [ T ] , c = Math . floor ( d / ( r . length - 1 ) ) ) ) , x [ L ] = o [ P ] , t = 0 , n = r . length ; n > t ; t ++ ) p = r [ t ] , m = p . layoutRect ( ) , y = m . maxFlexSize || m [ E ] , "center" === s ? x [ L ] = Math . round ( i [ D ] / 2 - m [ M ] / 2 ) : "stretch" === s ? ( x [ M ] = z ( m [ H ] || 0 , i [ D ] - o [ P ] - o [ O ] ) , x [ L ] = o [ P ] ) : "end" === s && ( x [ L ] = i [ D ] - m [ M ] - o . top ) , m . flex > 0 && ( y += m . flex * C ) , x [ N ] = y , x [ S ] = w , p . layoutRect ( x ) , p . recalc && p . recalc ( ) , w += y + c } else if ( x . w = x . minW , x . h = x . minH , e . layoutRect ( x ) , this . recalc ( e ) , null === e . _lastRect ) { var V