// 4.1.3 (2014-07-29)
! 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/util/Tools" , d = "tinymce/Env" , f = "tinymce/dom/DomQuery" , p = "tinymce/html/Styles" , h = "tinymce/dom/TreeWalker" , m = "tinymce/dom/Range" , g = "tinymce/html/Entities" , v = "tinymce/dom/StyleSheetLoader" , y = "tinymce/dom/DOMUtils" , b = "tinymce/dom/ScriptLoader" , C = "tinymce/AddOnManager" , x = "tinymce/dom/RangeUtils" , w = "tinymce/NodeChange" , _ = "tinymce/html/Node" , E = "tinymce/html/Schema" , N = "tinymce/html/SaxParser" , k = "tinymce/html/DomParser" , S = "tinymce/html/Writer" , T = "tinymce/html/Serializer" , R = "tinymce/dom/Serializer" , A = "tinymce/dom/TridentSelection" , B = "tinymce/util/VK" , D = "tinymce/dom/ControlSelection" , L = "tinymce/dom/BookmarkManager" , H = "tinymce/dom/Selection" , M = "tinymce/dom/ElementUtils" , P = "tinymce/fmt/Preview" , O = "tinymce/Formatter" , I = "tinymce/UndoManager" , F = "tinymce/EnterKey" , z = "tinymce/ForceBlocks" , W = "tinymce/EditorCommands" , V = "tinymce/util/URI" , U = "tinymce/util/Class" , $ = "tinymce/util/EventDispatcher" , q = "tinymce/ui/Selector" , j = "tinymce/ui/Collection" , Y = "tinymce/ui/DomUtils" , K = "tinymce/ui/Control" , G = "tinymce/ui/Factory" , X = "tinymce/ui/KeyboardNavigation" , J = "tinymce/ui/Container" , Q = "tinymce/ui/DragHelper" , Z = "tinymce/ui/Scrollable" , et = "tinymce/ui/Panel" , tt = "tinymce/ui/Movable" , nt = "tinymce/ui/Resizable" , rt = "tinymce/ui/FloatPanel" , it = "tinymce/ui/Window" , ot = "tinymce/ui/MessageBox" , at = "tinymce/WindowManager" , st = "tinymce/util/Quirks" , lt = "tinymce/util/Observable" , ct = "tinymce/EditorObservable" , ut = "tinymce/Shortcuts" , dt = "tinymce/Editor" , ft = "tinymce/util/I18n" , pt = "tinymce/FocusManager" , ht = "tinymce/EditorManager" , mt = "tinymce/LegacyInput" , gt = "tinymce/util/XHR" , vt = "tinymce/util/JSON" , yt = "tinymce/util/JSONRequest" , bt = "tinymce/util/JSONP" , Ct = "tinymce/util/LocalStorage" , xt = "tinymce/Compat" , wt = "tinymce/ui/Layout" , _t = "tinymce/ui/AbsoluteLayout" , Et = "tinymce/ui/Tooltip" , Nt = "tinymce/ui/Widget" , kt = "tinymce/ui/Button" , St = "tinymce/ui/ButtonGroup" , Tt = "tinymce/ui/Checkbox" , Rt = "tinymce/ui/ComboBox" , At = "tinymce/ui/ColorBox" , Bt = "tinymce/ui/PanelButton" , Dt = "tinymce/ui/ColorButton" , Lt = "tinymce/util/Color" , Ht = "tinymce/ui/ColorPicker" , Mt = "tinymce/ui/Path" , Pt = "tinymce/ui/ElementPath" , Ot = "tinymce/ui/FormItem" , It = "tinymce/ui/Form" , Ft = "tinymce/ui/FieldSet" , zt = "tinymce/ui/FilePicker" , Wt = "tinymce/ui/FitLayout" , Vt = "tinymce/ui/FlexLayout" , Ut = "tinymce/ui/FlowLayout" , $t = "tinymce/ui/FormatControls" , qt = "tinymce/ui/GridLayout" , jt = "tinymce/ui/Iframe" , Yt = "tinymce/ui/Label" , Kt = "tinymce/ui/Toolbar" , Gt = "tinymce/ui/MenuBar" , Xt = "tinymce/ui/MenuButton" , Jt = "tinymce/ui/ListBox" , Qt = "tinymce/ui/MenuItem" , Zt = "tinymce/ui/Menu" , en = "tinymce/ui/Radio" , tn = "tinymce/ui/ResizeHandle" , nn = "tinymce/ui/Spacer" , rn = "tinymce/ui/SplitButton" , on = "tinymce/ui/StackLayout" , an = "tinymce/ui/TabPanel" , sn = "tinymce/ui/TextBox" , ln = "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 . scro
return n } , attr : function ( e , t ) { var n = this , r ; if ( "object" == typeof e ) h ( e , function ( e , t ) { n . attr ( e , t ) } ) ; else { if ( ! o ( t ) ) { if ( n [ 0 ] && 1 === n [ 0 ] . nodeType ) { if ( r = B [ e ] , r && r . get ) return r . get ( n [ 0 ] , e ) ; if ( T [ e ] ) return n . prop ( e ) ? e : k ; t = n [ 0 ] . getAttribute ( e , 2 ) , null === t && ( t = k ) } return t } this . each ( function ( ) { var n ; if ( 1 === this . nodeType ) { if ( n = B [ e ] , n && n . set ) return void n . set ( this , t ) ; null === t ? this . removeAttribute ( e , 2 ) : this . setAttribute ( e , t , 2 ) } } ) } return n } , removeAttr : function ( e ) { return this . attr ( e , null ) } , prop : function ( e , t ) { var n = this ; if ( e = R [ e ] || e , "object" == typeof e ) h ( e , function ( e , t ) { n . prop ( e , t ) } ) ; else { if ( ! o ( t ) ) return n [ 0 ] && n [ 0 ] . nodeType && e in n [ 0 ] ? n [ 0 ] [ e ] : t ; this . each ( function ( ) { 1 == this . nodeType && ( this [ e ] = t ) } ) } return n } , css : function ( e , t ) { function n ( e ) { return e . replace ( /-(\D)/g , function ( e , t ) { return t . toUpperCase ( ) } ) } function r ( e ) { return e . replace ( /[A-Z]/g , function ( e ) { return "-" + e } ) } var i = this , a , s ; if ( "object" == typeof e ) h ( e , function ( e , t ) { i . css ( e , t ) } ) ; else if ( o ( t ) ) e = n ( e ) , "number" != typeof t || S [ e ] || ( t += "px" ) , i . each ( function ( ) { var n = this . style ; if ( s = D [ e ] , s && s . set ) return void s . set ( this , t ) ; try { this . style [ A [ e ] || e ] = t } catch ( i ) { } ( null === t || "" === t ) && ( n . removeProperty ? n . removeProperty ( r ( e ) ) : n . removeAttribute ( e ) ) } ) ; else { if ( a = i [ 0 ] , s = D [ e ] , s && s . get ) return s . get ( a ) ; if ( a . ownerDocument . defaultView ) try { return a . ownerDocument . defaultView . getComputedStyle ( a , null ) . getPropertyValue ( r ( e ) ) } catch ( l ) { return k } else if ( a . currentStyle ) return a . currentStyle [ n ( e ) ] } return i } , remove : function ( ) { for ( var e = this , t , n = this . length ; n -- ; ) t = e [ n ] , N . clean ( t ) , t . parentNode && t . parentNode . removeChild ( t ) ; return this } , empty : function ( ) { for ( var e = this , t , n = this . length ; n -- ; ) for ( t = e [ n ] ; t . firstChild ; ) t . removeChild ( t . firstChild ) ; return this } , html : function ( e ) { var t = this , n ; if ( o ( e ) ) { n = t . length ; try { for ( ; n -- ; ) t [ n ] . innerHTML = e } catch ( r ) { d ( t [ n ] ) . empty ( ) . append ( e ) } return t } return t [ 0 ] ? t [ 0 ] . innerHTML : "" } , text : function ( e ) { var t = this , n ; if ( o ( e ) ) { for ( n = t . length ; n -- ; ) "innerText" in t [ n ] ? t [ n ] . innerText = e : t [ 0 ] . textContent = e ; return t } return t [ 0 ] ? t [ 0 ] . innerText || t [ 0 ] . textContent : "" } , append : function ( ) { return l ( this , arguments , function ( e ) { 1 === this . nodeType && this . appendChild ( e ) } ) } , prepend : function ( ) { return l ( this , arguments , function ( e ) { 1 === this . nodeType && this . insertBefore ( e , this . firstChild ) } , ! 0 ) } , before : function ( ) { var e = this ; return e [ 0 ] && e [ 0 ] . parentNode ? l ( e , arguments , function ( e ) { this . parentNode . insertBefore ( e , this ) } ) : e } , after : function ( ) { var e = this ; return e [ 0 ] && e [ 0 ] . parentNode ? l ( e , arguments , function ( e ) { this . parentNode . insertBefore ( e , this . nextSibling ) } , ! 0 ) : e } , appendTo : function ( e ) { return d ( e ) . append ( this ) , this } , prependTo : function ( e ) { return d ( e ) . prepend ( this ) , this } , replaceWith : function ( e ) { return this . before ( e ) . remove ( ) } , wrap : function ( e ) { return u ( this , e ) } , wrapAll : function ( e ) { return u ( this , e , ! 0 ) } , wrapInner : function ( e ) { return this . each ( function ( ) { d ( this ) . contents ( ) . wrapAll ( e ) } ) , this } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { d ( this ) . replaceWith ( this . childNodes ) } ) } , clone : function ( ) { var e = [ ] ; return this . each ( function ( ) { e . push ( this . cloneNode ( ! 0 ) ) } ) , d ( e ) } , addClass : function ( e ) { return this . toggleClass ( e , ! 0 ) } , removeClass : function ( e ) { return this . toggleClass ( e , ! 1 ) } , toggleClass : function ( e , t ) { var n = this ; return "string" != typeof e ? n : ( - 1 !== e . indexOf ( " " ) ? h ( e . split ( " " ) , function ( ) { n . toggleClass ( this , t ) } ) : n . each ( function ( n , r ) { var i , o ; o = c ( r , e ) , o !== t && ( i = r . className , o ? r . className = p ( ( " " + i + " " ) . replace ( " " + e + " " , " " ) ) : r . className += i ? " " + e : e ) } ) , n ) } , hasClass : function ( e ) { return c ( this [ 0 ] , e ) } , each : function ( e ) { return h ( this , e ) } , on : function ( e , t ) { return this . each ( function ( ) { N . bind ( this , e , t ) } ) } , off : function ( e , t ) { return this . each ( function ( ) { N . unbind ( this , e , t ) } ) } , trigger : function ( e ) { return this . each ( function ( ) { "object" == typeof e ? N . fire ( this , e . type , e ) : N . fire ( this , e ) } ) } , show : function ( ) { return this . css ( "display" , "" ) } , hide : function ( ) { return this . css ( "display" , "none" ) } , slice : function ( ) { return new d ( _ . apply ( this , arguments ) ) } , eq : function ( e ) { return - 1 === e ? this . slice ( e ) : this . slice ( e , + e + 1 ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , find : function ( e ) { var t , n , r = [ ] ; for ( t = 0 , n = this . length ; n > t ; t ++ ) d . find ( e , this [ t ] , r ) ; return d ( r ) } , filter : function ( e ) { return
} } var i = this , o = i . createRng ( ) , a , s , l ; return e && t ? ( o . setStart ( e . parentNode , i . nodeIndex ( e ) ) , o . setEnd ( t . parentNode , i . nodeIndex ( t ) ) , a = o . extractContents ( ) , o = i . createRng ( ) , o . setStart ( t . parentNode , i . nodeIndex ( t ) + 1 ) , o . setEnd ( e . parentNode , i . nodeIndex ( e ) + 1 ) , s = o . extractContents ( ) , l = e . parentNode , l . insertBefore ( r ( a ) , e ) , n ? l . replaceChild ( n , t ) : l . insertBefore ( t , e ) , l . insertBefore ( r ( s ) , e ) , i . remove ( e ) , n || t ) : void 0 } , bind : function ( e , t , n , r ) { var i = this ; if ( c . isArray ( e ) ) { for ( var o = e . length ; o -- ; ) e [ o ] = i . bind ( e [ o ] , t , n , r ) ; return e } return ! i . settings . collect || e !== i . doc && e !== i . win || i . boundEvents . push ( [ e , t , n , r ] ) , i . events . bind ( e , t , n , r || i ) } , unbind : function ( e , t , n ) { var r = this , i ; if ( c . isArray ( e ) ) { for ( i = e . length ; i -- ; ) e [ i ] = r . unbind ( e [ i ] , t , n ) ; return e } if ( r . boundEvents && ( e === r . doc || e === r . win ) ) for ( i = r . boundEvents . length ; i -- ; ) { var o = r . boundEvents [ i ] ; e != o [ 0 ] || t && t != o [ 1 ] || n && n != o [ 2 ] || this . events . unbind ( o [ 0 ] , o [ 1 ] , o [ 2 ] ) } return this . events . unbind ( e , t , n ) } , fire : function ( e , t , n ) { return this . events . fire ( e , t , n ) } , getContentEditable : function ( e ) { var t ; return e && 1 == e . nodeType ? ( t = e . getAttribute ( "data-mce-contenteditable" ) , t && "inherit" !== t ? t : "inherit" !== e . contentEditable ? e . contentEditable : null ) : null } , getContentEditableParent : function ( e ) { for ( var t = this . getRoot ( ) , n = null ; e && e !== t && ( n = this . getContentEditable ( e ) , null === n ) ; e = e . parentNode ) ; return n } , destroy : function ( ) { var t = this ; if ( t . boundEvents ) { for ( var n = t . boundEvents . length ; n -- ; ) { var r = t . boundEvents [ n ] ; this . events . unbind ( r [ 0 ] , r [ 1 ] , r [ 2 ] ) } t . boundEvents = null } e . setDocument && e . setDocument ( ) , t . win = t . doc = t . root = t . events = t . frag = null } , isChildOf : function ( e , t ) { for ( ; e ; ) { if ( t === e ) return ! 0 ; e = e . parentNode } return ! 1 } , dumpRng : function ( e ) { return "startContainer: " + e . startContainer . nodeName + ", startOffset: " + e . startOffset + ", endContainer: " + e . endContainer . nodeName + ", endOffset: " + e . endOffset } , _findSib : function ( e , t , n ) { var r = this , i = t ; if ( e ) for ( "string" == typeof i && ( i = function ( e ) { return r . is ( e , t ) } ) , e = e [ n ] ; e ; e = e [ n ] ) if ( i ( e ) ) return e ; return null } } , f . DOM = new f ( document ) , f } ) , r ( b , [ y , u ] , function ( e , t ) { function n ( ) { function e ( e , t ) { function n ( ) { o . remove ( s ) , a && ( a . onreadystatechange = a . onload = a = null ) , t ( ) } 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 h ; u . push ( { func : r , scope : l || this } ) , ( h = 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 ) , h ( ) } ) ) ) } ) , 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 , u ] , 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 ) { var i = r . language ; if ( i && r . languageLoad !== ! 1 ) { if ( n ) if ( n = "," + n + "," , - 1 != n . indexOf ( "," + i . substr ( 0 , 2 ) + "," ) ) i = i . substr ( 0 , 2 ) ; else if ( - 1 == n . indexOf ( "," + i + "," ) ) return ; e . ScriptLoader . add ( this . urls [ t ] + "/langs/" + i + ".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 . c
for ( _ = 0 , E = N . callbacks . length ; E > _ ; _ ++ ) N . callbacks [ _ ] ( C , N . name , o ) } } return y } , r . remove _trailing _brs && u . addNodeFilter ( "br" , function ( t ) { var n , r = t . length , i , o = s ( { } , l . getBlockElements ( ) ) , a = l . getNonEmptyElements ( ) , c , u , d , f , p , h ; for ( o . body = 1 , n = 0 ; r > n ; n ++ ) if ( i = t [ n ] , c = i . parent , o [ i . parent . name ] && i === c . lastChild ) { for ( d = i . prev ; d ; ) { if ( f = d . name , "span" !== f || "bookmark" !== d . attr ( "data-mce-type" ) ) { if ( "br" !== f ) break ; if ( "br" === f ) { i = null ; break } } d = d . prev } i && ( i . remove ( ) , c . isEmpty ( a ) && ( p = l . getElementRule ( c . name ) , p && ( p . removeEmpty ? c . remove ( ) : p . paddEmpty && ( c . empty ( ) . append ( new e ( "#text" , 3 ) ) . value = "\xa0" ) ) ) ) } else { for ( u = i ; c && c . firstChild === u && c . lastChild === u && ( u = c , ! o [ c . name ] ) ; ) c = c . parent ; u === c && ( h = new e ( "#text" , 3 ) , h . value = "\xa0" , i . replace ( h ) ) } } ) , r . allow _html _in _named _anchor || u . addAttributeFilter ( "id,name" , function ( e ) { for ( var t = e . length , n , r , i , o ; t -- ; ) if ( o = e [ t ] , "a" === o . name && o . firstChild && ! o . attr ( "href" ) ) { i = o . parent , n = o . lastChild ; do r = n . prev , i . insert ( n , o ) , n = r ; while ( n ) } } ) , r . validate && l . getValidClasses ( ) && u . addAttributeFilter ( "class" , function ( e ) { for ( var t = e . length , n , r , i , o , a , s = l . getValidClasses ( ) , c , u ; t -- ; ) { for ( n = e [ t ] , r = n . attr ( "class" ) . split ( " " ) , a = "" , i = 0 ; i < r . length ; i ++ ) o = r [ i ] , u = ! 1 , c = s [ "*" ] , c && c [ o ] && ( u = ! 0 ) , c = s [ n . name ] , u || ! c || c [ o ] || ( u = ! 0 ) , u && ( a && ( a += " " ) , a += o ) ; a . length || ( a = null ) , n . attr ( "class" , a ) } } ) } } ) , r ( S , [ g , u ] , function ( e , t ) { var n = t . makeMap ; return function ( t ) { var r = [ ] , i , o , a , s , l ; return t = t || { } , i = t . indent , o = n ( t . indent _before || "" ) , a = n ( t . indent _after || "" ) , s = e . getEncodeFunc ( t . entity _encoding || "raw" , t . entities ) , l = "html" == t . element _format , { start : function ( e , t , n ) { var c , u , d , f ; if ( i && o [ e ] && r . length > 0 && ( f = r [ r . length - 1 ] , f . length > 0 && "\n" !== f && r . push ( "\n" ) ) , r . push ( "<" , e ) , t ) for ( c = 0 , u = t . length ; u > c ; c ++ ) d = t [ c ] , r . push ( " " , d . name , '="' , s ( d . value , ! 0 ) , '"' ) ; r [ r . length ] = ! n || l ? ">" : " />" , n && i && a [ e ] && r . length > 0 && ( f = r [ r . length - 1 ] , f . length > 0 && "\n" !== f && r . push ( "\n" ) ) } , end : function ( e ) { var t ; r . push ( "</" , e , ">" ) , i && a [ e ] && r . length > 0 && ( t = r [ r . length - 1 ] , t . length > 0 && "\n" !== t && r . push ( "\n" ) ) } , text : function ( e , t ) { e . length > 0 && ( r [ r . length ] = t ? e : s ( e ) ) } , cdata : function ( e ) { r . push ( "<![CDATA[" , e , "]]>" ) } , comment : function ( e ) { r . push ( "<!--" , e , "-->" ) } , pi : function ( e , t ) { t ? r . push ( "<?" , e , " " , t , "?>" ) : r . push ( "<?" , e , "?>" ) , i && r . push ( "\n" ) } , doctype : function ( e ) { r . push ( "<!DOCTYPE" , e , ">" , i ? "\n" : "" ) } , reset : function ( ) { r . length = 0 } , getContent : function ( ) { return r . join ( "" ) . replace ( /\n$/ , "" ) } } } } ) , r ( T , [ S , E ] , function ( e , t ) { return function ( n , r ) { var i = this , o = new e ( n ) ; n = n || { } , n . validate = "validate" in n ? n . validate : ! 0 , i . schema = r = r || new t , i . writer = o , i . serialize = function ( e ) { function t ( e ) { var n = i [ e . type ] , s , l , c , u , d , f , p , h , m ; if ( n ) n ( e ) ; else { if ( s = e . name , l = e . shortEnded , c = e . attributes , a && c && c . length > 1 ) { for ( f = [ ] , f . map = { } , m = r . getElementRule ( e . name ) , p = 0 , h = m . attributesOrder . length ; h > p ; p ++ ) u = m . attributesOrder [ p ] , u in c . map && ( d = c . map [ u ] , f . map [ u ] = d , f . push ( { name : u , value : d } ) ) ; for ( p = 0 , h = c . length ; h > p ; p ++ ) u = c [ p ] . name , u in f . map || ( d = c . map [ u ] , f . map [ u ] = d , f . push ( { name : u , value : d } ) ) ; c = f } if ( o . start ( e . name , c , l ) , ! l ) { if ( e = e . firstChild ) do t ( e ) ; while ( e = e . next ) ; o . end ( s ) } } } var i , a ; return a = n . validate , i = { 3 : function ( e ) { o . text ( e . value , e . raw ) } , 8 : function ( e ) { o . comment ( e . value ) } , 7 : function ( e ) { o . pi ( e . name , e . value ) } , 10 : function ( e ) { o . doctype ( e . value ) } , 4 : function ( e ) { o . cdata ( e . value ) } , 11 : function ( e ) { if ( e = e . firstChild ) do t ( e ) ; while ( e = e . next ) } } , o . reset ( ) , 1 != e . type || n . inner ? i [ 11 ] ( e ) : t ( e ) , o . getContent ( ) } } } ) , r ( R , [ y , k , g , T , _ , E , d , u ] , function ( e , t , n , r , i , o , a , s ) { var l = s . each , c = s . trim , u = e . DOM ; return function ( e , i ) { var s , d , f ; return i && ( s = i . dom , d = i . schema ) , s = s || u , d = d || new o ( e ) , e . entity _encoding = e . entity _encoding || "named" , e . remove _trailing _brs = "remove_trailing_brs" in e ? e . remove _trailing _brs : ! 0 , f = new t ( e , d ) , f . addAttributeFilter ( "data-mce-tabindex" , function ( e , t ) { for ( var n = e . length , r ; n -- ; ) r = e [ n ] , r . attr ( "tabindex" , r . attributes . map [ "data-mce-tabindex" ] ) , r . attr ( t , null ) } ) , f . addAttributeFilter ( "src,href,style" , function ( t , n ) { for ( var r = t . length , i , o , a = "data-mce-" + n , l = e . url _converter , c = e . url _converter _scope , u ; r -- ; ) i = t [ r ] , o = i . attributes . map [ a ] , o !== u ? ( i . attr ( n , o . length > 0 ? o : null ) , i . attr ( a , null ) ) : ( o = i . attributes . map [ n ] , "style" === n ? o = s . serializeStyle ( s . parseStyle ( o ) , i . name ) : l && ( o = l . call ( c , o , n , i . name ) ) , i . attr ( n , o . length > 0 ? o : nu
} , onformat : function ( e , t , n ) { ot ( n , function ( t , n ) { V . setAttrib ( e , n , t ) } ) } } , removeformat : [ { selector : "b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q" , remove : "all" , split : ! 0 , expand : ! 1 , block _expand : ! 0 , deep : ! 0 } , { selector : "span" , attributes : [ "style" , "class" ] , remove : "empty" , split : ! 0 , expand : ! 1 , deep : ! 0 } , { selector : "*" , attributes : [ "style" , "class" ] , split : ! 1 , expand : ! 1 , deep : ! 0 } ] } ) , ot ( "p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp" . split ( /\s/ ) , function ( e ) { p ( e , { block : e , remove : "all" } ) } ) , p ( a . settings . formats ) } function d ( ) { a . addShortcut ( "ctrl+b" , "bold_desc" , "Bold" ) , a . addShortcut ( "ctrl+i" , "italic_desc" , "Italic" ) , a . addShortcut ( "ctrl+u" , "underline_desc" , "Underline" ) ; for ( var e = 1 ; 6 >= e ; e ++ ) a . addShortcut ( "ctrl+" + e , "" , [ "FormatBlock" , ! 1 , "h" + e ] ) ; a . addShortcut ( "ctrl+7" , "" , [ "FormatBlock" , ! 1 , "p" ] ) , a . addShortcut ( "ctrl+8" , "" , [ "FormatBlock" , ! 1 , "div" ] ) , a . addShortcut ( "ctrl+9" , "" , [ "FormatBlock" , ! 1 , "address" ] ) } function f ( e ) { return e ? W [ e ] : W } function p ( e , t ) { e && ( "string" != typeof e ? ot ( e , function ( e , t ) { p ( t , e ) } ) : ( t = t . length ? t : [ t ] , ot ( t , function ( e ) { e . deep === et && ( e . deep = ! e . selector ) , e . split === et && ( e . split = ! e . selector || e . inline ) , e . remove === et && e . selector && ! e . inline && ( e . remove = "none" ) , e . selector && e . inline && ( e . mixed = ! 0 , e . block _expand = ! 0 ) , "string" == typeof e . classes && ( e . classes = e . classes . split ( /\s+/ ) ) } ) , W [ e ] = t ) ) } function h ( e ) { var t ; return a . dom . getParent ( e , function ( e ) { return t = a . dom . getStyle ( e , "text-decoration" ) , t && "none" !== t } ) , t } function m ( e ) { var t ; 1 === e . nodeType && e . parentNode && 1 === e . parentNode . nodeType && ( t = h ( e . parentNode ) , a . dom . getStyle ( e , "color" ) && t ? a . dom . setStyle ( e , "text-decoration" , t ) : a . dom . getStyle ( e , "textdecoration" ) === t && a . dom . setStyle ( e , "text-decoration" , null ) ) } function g ( t , n , r ) { function i ( e , t ) { if ( t = t || d , e ) { if ( t . onformat && t . onformat ( e , t , n , r ) , ot ( t . styles , function ( t , r ) { V . setStyle ( e , r , R ( t , n ) ) } ) , t . styles ) { var i = V . getAttrib ( e , "style" ) ; i && e . setAttribute ( "data-mce-style" , i ) } ot ( t . attributes , function ( t , r ) { V . setAttrib ( e , r , R ( t , n ) ) } ) , ot ( t . classes , function ( t ) { t = R ( t , n ) , V . hasClass ( e , t ) || V . addClass ( e , t ) } ) } } function o ( ) { function t ( t , n ) { var i = new e ( n ) ; for ( r = i . current ( ) ; r ; r = i . prev ( ) ) if ( r . childNodes . length > 1 || r == t || "BR" == r . tagName ) return r } var n = a . selection . getRng ( ) , i = n . startContainer , o = n . endContainer ; if ( i != o && 0 === n . endOffset ) { var s = t ( i , o ) , l = 3 == s . nodeType ? s . length : s . childNodes . length ; n . setEnd ( s , l ) } return n } function l ( e , r , o ) { var a = [ ] , l , f , p = ! 0 ; l = d . inline || d . block , f = V . create ( l ) , i ( f ) , $ . walk ( e , function ( e ) { function r ( e ) { var m , g , y , C , x ; return x = p , m = e . nodeName . toLowerCase ( ) , g = e . parentNode . nodeName . toLowerCase ( ) , 1 === e . nodeType && tt ( e ) && ( x = p , p = "true" === tt ( e ) , C = ! 0 ) , k ( m , "br" ) ? ( h = 0 , void ( d . block && V . remove ( e ) ) ) : d . wrapper && b ( e , t , n ) ? void ( h = 0 ) : p && ! C && d . block && ! d . wrapper && s ( m ) && q ( g , l ) ? ( e = V . rename ( e , l ) , i ( e ) , a . push ( e ) , void ( h = 0 ) ) : d . selector && ( ot ( u , function ( t ) { "collapsed" in t && t . collapsed !== v || V . is ( e , t . selector ) && ! c ( e ) && ( i ( e , t ) , y = ! 0 ) } ) , ! d . inline || y ) ? void ( h = 0 ) : void ( ! p || C || ! q ( l , m ) || ! q ( g , l ) || ! o && 3 === e . nodeType && 1 === e . nodeValue . length && 65279 === e . nodeValue . charCodeAt ( 0 ) || c ( e ) || d . inline && j ( e ) ? ( h = 0 , ot ( at ( e . childNodes ) , r ) , C && ( p = x ) , h = 0 ) : ( h || ( h = V . clone ( f , J ) , e . parentNode . insertBefore ( h , e ) , a . push ( h ) ) , h . appendChild ( e ) ) ) } var h ; ot ( e , r ) } ) , d . links === ! 0 && ot ( a , function ( e ) { function t ( e ) { "A" === e . nodeName && i ( e , d ) , ot ( at ( e . childNodes ) , t ) } t ( e ) } ) , ot ( a , function ( e ) { function r ( e ) { var t = 0 ; return ot ( e . childNodes , function ( e ) { A ( e ) || it ( e ) || t ++ } ) , t } function o ( e ) { var t , n ; return ot ( e . childNodes , function ( e ) { return 1 != e . nodeType || it ( e ) || c ( e ) ? void 0 : ( t = e , J ) } ) , t && ! it ( t ) && N ( t , d ) && ( n = V . clone ( t , J ) , i ( n ) , V . replace ( n , e , Q ) , V . remove ( t , 1 ) ) , n || e } var s ; if ( s = r ( e ) , ( a . length > 1 || ! j ( e ) ) && 0 === s ) return void V . remove ( e , 1 ) ; if ( d . inline || d . wrapper ) { if ( d . exact || 1 !== s || ( e = o ( e ) ) , ot ( u , function ( t ) { ot ( V . select ( t . inline , e ) , function ( e ) { it ( e ) || H ( t , n , e , t . exact ? e : null ) } ) } ) , b ( e . parentNode , t , n ) ) return V . remove ( e , 1 ) , e = 0 , Q ; d . merge _with _parents && V . getParent ( e . parentNode , function ( r ) { return b ( r , t , n ) ? ( V . remove ( e , 1 ) , e = 0 , Q ) : void 0 } ) , e && d . merge _siblings !== ! 1 && ( e = O ( P ( e ) , e ) , e = O ( e , P ( e , Q ) ) ) } } ) } var u = f ( t ) , d = u [ 0 ] , p , h , v = ! r && U . isCollapsed ( ) ; if ( d ) if ( r ) r . nodeType ? ( h = V . createRng ( ) , h . setStartBefore ( r ) , h . setEndAfter ( r ) , l ( D ( h , u ) , null , ! 0 ) ) : l ( r , null , ! 0 ) ; else if ( v && d . inline && ! V . select ( " td
break } if ( T . invalid ) { for ( S . setContent ( x ) , f = S . getNode ( ) , h = r . getBody ( ) , 9 == f . nodeType ? f = b = h : b = f ; b !== h ; ) f = b , b = b . parentNode ; o = f == h ? h . innerHTML : k . getOuterHTML ( f ) , o = d . serialize ( u . parse ( o . replace ( /<span (id="mce_marker"|id=mce_marker).+?<\/span>/i , function ( ) { return d . serialize ( m ) } ) ) ) , f == h ? k . setHTML ( h , o ) : k . setOuterHTML ( f , o ) } else o = d . serialize ( m ) , b = f . firstChild , C = f . lastChild , ! b || b === C && "BR" === b . nodeName ? k . setHTML ( f , o ) : S . setContent ( o ) ; c ( ) , v = k . get ( "mce_marker" ) , S . scrollIntoView ( v ) , y = k . createRng ( ) , b = v . previousSibling , b && 3 == b . nodeType ? ( y . setStart ( b , b . nodeValue . length ) , p || ( C = v . nextSibling , C && 3 == C . nodeType && ( b . appendData ( C . data ) , C . parentNode . removeChild ( C ) ) ) ) : ( y . setStartBefore ( v ) , y . setEndBefore ( v ) ) , k . remove ( v ) , S . setRng ( y ) , r . fire ( "SetContent" , g ) , r . addVisual ( ) } , mceInsertRawHTML : function ( e , t , n ) { S . setContent ( "tiny_mce_marker" ) , r . setContent ( r . getContent ( ) . replace ( /tiny_mce_marker/g , function ( ) { return n } ) ) } , mceToggleFormat : function ( e , t , n ) { _ ( n ) } , mceSetContent : function ( e , t , n ) { r . setContent ( n ) } , "Indent,Outdent" : function ( e ) { var t , n , i ; t = R . indentation , n = /[a-z%]+$/i . exec ( t ) , t = parseInt ( t , 10 ) , y ( "InsertUnorderedList" ) || y ( "InsertOrderedList" ) ? x ( e ) : ( R . forced _root _block || k . getParent ( S . getNode ( ) , k . isBlock ) || A . apply ( "div" ) , s ( S . getSelectedBlocks ( ) , function ( o ) { if ( "LI" != o . nodeName ) { var a = r . getParam ( "indent_use_margin" , ! 1 ) ? "margin" : "padding" ; a += "rtl" == k . getStyle ( o , "direction" , ! 0 ) ? "Right" : "Left" , "outdent" == e ? ( i = Math . max ( 0 , parseInt ( o . style [ a ] || 0 , 10 ) - t ) , k . setStyle ( o , a , i ? i + n : "" ) ) : ( i = parseInt ( o . style [ a ] || 0 , 10 ) + t + n , k . setStyle ( o , a , i ) ) } } ) ) } , mceRepaint : function ( ) { if ( f ) try { E ( m ) , S . getSel ( ) && S . getSel ( ) . selectAllChildren ( r . getBody ( ) ) , S . collapse ( m ) , N ( ) } catch ( e ) { } } , InsertHorizontalRule : function ( ) { r . execCommand ( "mceInsertContent" , ! 1 , "<hr />" ) } , mceToggleVisualAid : function ( ) { r . hasVisual = ! r . hasVisual , r . addVisual ( ) } , mceReplaceContent : function ( e , t , n ) { r . execCommand ( "mceInsertContent" , ! 1 , n . replace ( /\{\$selection\}/g , S . getContent ( { format : "text" } ) ) ) } , mceInsertLink : function ( e , t , n ) { var r ; "string" == typeof n && ( n = { href : n } ) , r = k . getParent ( S . getNode ( ) , "a" ) , n . href = n . href . replace ( " " , "%20" ) , r && n . href || A . remove ( "link" ) , n . href && A . apply ( "link" , n , r ) } , selectAll : function ( ) { var e = k . getRoot ( ) , t ; S . getRng ( ) . setStart ? ( t = k . createRng ( ) , t . setStart ( e , 0 ) , t . setEnd ( e , e . childNodes . length ) , S . setRng ( t ) ) : ( t = S . getRng ( ) , t . item || ( t . moveToElementText ( e ) , t . select ( ) ) ) } , "delete" : function ( ) { x ( "Delete" ) ; var e = r . getBody ( ) ; k . isEmpty ( e ) && ( r . setContent ( "" ) , e . firstChild && k . isBlock ( e . firstChild ) ? r . selection . setCursorLocation ( e . firstChild , 0 ) : r . selection . setCursorLocation ( e , 0 ) ) } , mceNewDocument : function ( ) { r . setContent ( "" ) } , InsertLineBreak : function ( e , t , n ) { function i ( ) { for ( var e = new a ( p , v ) , t , n = r . schema . getNonEmptyElements ( ) ; t = e . next ( ) ; ) if ( n [ t . nodeName . toLowerCase ( ) ] || t . length > 0 ) return ! 0 } var s = n , l , c , u , d = S . getRng ( ! 0 ) ; new o ( k ) . normalize ( d ) ; var f = d . startOffset , p = d . startContainer ; if ( 1 == p . nodeType && p . hasChildNodes ( ) ) { var g = f > p . childNodes . length - 1 ; p = p . childNodes [ Math . min ( f , p . childNodes . length - 1 ) ] || p , f = g && 3 == p . nodeType ? p . nodeValue . length : 0 } var v = k . getParent ( p , k . isBlock ) , y = v ? v . nodeName . toUpperCase ( ) : "" , b = v ? k . getParent ( v . parentNode , k . isBlock ) : null , C = b ? b . nodeName . toUpperCase ( ) : "" , x = s && s . ctrlKey ; "LI" != C || x || ( v = b , y = C ) , p && 3 == p . nodeType && f >= p . nodeValue . length && ( h || i ( ) || ( l = k . create ( "br" ) , d . insertNode ( l ) , d . setStartAfter ( l ) , d . setEndAfter ( l ) , c = ! 0 ) ) , l = k . create ( "br" ) , d . insertNode ( l ) ; var w = k . doc . documentMode ; return h && "PRE" == y && ( ! w || 8 > w ) && l . parentNode . insertBefore ( k . doc . createTextNode ( "\r" ) , l ) , u = k . create ( "span" , { } , " " ) , l . parentNode . insertBefore ( u , l ) , S . scrollIntoView ( u ) , k . remove ( u ) , c ? ( d . setStartBefore ( l ) , d . setEndBefore ( l ) ) : ( d . setStartAfter ( l ) , d . setEndAfter ( l ) ) , S . setRng ( d ) , r . undoManager . add ( ) , m } } ) , C ( { "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull" : function ( e ) { var t = "align" + e . substring ( 7 ) , n = S . isCollapsed ( ) ? [ k . getParent ( S . getNode ( ) , k . isBlock ) ] : S . getSelectedBlocks ( ) , r = c ( n , function ( e ) { return ! ! A . matchNode ( e , t ) } ) ; return - 1 !== u ( r , m ) } , "Bold,Italic,Underline,Strikethrough,Superscript,Subscript" : function ( e ) { return w ( e ) } , mceBlockQuote : function ( ) { return w ( "blockquote" ) } , Outdent : function ( ) { var e ; if ( R . inline _styles ) { if ( ( e = k . getParent ( S . getStart ( ) , k . isBlock ) ) && parseIn
"flow" !== this . settings . layout && "stack" !== this . settings . layout && this . repaint ( ) , e . repaintControls = [ ] } return this } } ) } ) , r ( Q , [ Y ] , function ( e ) { function t ( ) { var e = document , t , n , r , i , o , a , s , l , c = Math . max ; return t = e . documentElement , n = e . body , r = c ( t . scrollWidth , n . scrollWidth ) , i = c ( t . clientWidth , n . clientWidth ) , o = c ( t . offsetWidth , n . offsetWidth ) , a = c ( t . scrollHeight , n . scrollHeight ) , s = c ( t . clientHeight , n . clientHeight ) , l = c ( t . offsetHeight , n . offsetHeight ) , { width : o > r ? i : r , height : l > a ? s : a } } return function ( n , r ) { function i ( ) { return a . getElementById ( r . handle || n ) } var o , a = document , s , l , c , u , d , f ; r = r || { } , l = function ( n ) { var l = t ( ) , p , h ; n . preventDefault ( ) , s = n . button , p = i ( ) , d = n . screenX , f = n . screenY , h = window . getComputedStyle ? window . getComputedStyle ( p , null ) . getPropertyValue ( "cursor" ) : p . runtimeStyle . cursor , o = a . createElement ( "div" ) , e . css ( o , { position : "absolute" , top : 0 , left : 0 , width : l . width , height : l . height , zIndex : 2147483647 , opacity : 1e-4 , cursor : h } ) , a . body . appendChild ( o ) , e . on ( a , "mousemove" , u ) , e . on ( a , "mouseup" , c ) , r . start ( n ) } , u = function ( e ) { return e . button !== s ? c ( e ) : ( e . deltaX = e . screenX - d , e . deltaY = e . screenY - f , e . preventDefault ( ) , void r . drag ( e ) ) } , c = function ( t ) { e . off ( a , "mousemove" , u ) , e . off ( a , "mouseup" , c ) , o . parentNode . removeChild ( o ) , r . stop && r . stop ( t ) } , this . destroy = function ( ) { e . off ( i ( ) ) } , e . on ( i ( ) , "mousedown" , l ) } } ) , r ( Z , [ Y , Q ] , function ( e , t ) { return { init : function ( ) { var e = this ; e . on ( "repaint" , e . renderScroll ) } , renderScroll : function ( ) { function n ( ) { function t ( t , a , s , l , c , u ) { var d , f , p , h , m , g , v , y , b ; if ( f = i . getEl ( "scroll" + t ) ) { if ( y = a . toLowerCase ( ) , b = s . toLowerCase ( ) , i . getEl ( "absend" ) && e . css ( i . getEl ( "absend" ) , y , i . layoutRect ( ) [ l ] - 1 ) , ! c ) return void e . css ( f , "display" , "none" ) ; e . css ( f , "display" , "block" ) , d = i . getEl ( "body" ) , p = i . getEl ( "scroll" + t + "t" ) , h = d [ "client" + s ] - 2 * o , h -= n && r ? f [ "client" + u ] : 0 , m = d [ "scroll" + s ] , g = h / m , v = { } , v [ y ] = d [ "offset" + a ] + o , v [ b ] = h , e . css ( f , v ) , v = { } , v [ y ] = d [ "scroll" + a ] * g , v [ b ] = h * g , e . css ( p , v ) } } var n , r , a ; a = i . getEl ( "body" ) , n = a . scrollWidth > a . clientWidth , r = a . scrollHeight > a . clientHeight , t ( "h" , "Left" , "Width" , "contentW" , n , "Height" ) , t ( "v" , "Top" , "Height" , "contentH" , r , "Width" ) } function r ( ) { function n ( n , r , a , s , l ) { var c , u = i . _id + "-scroll" + n , d = i . classPrefix ; i . getEl ( ) . appendChild ( e . createFragment ( '<div id="' + u + '" class="' + d + "scrollbar " + d + "scrollbar-" + n + '"><div id="' + u + 't" class="' + d + 'scrollbar-thumb"></div></div>' ) ) , i . draghelper = new t ( u + "t" , { start : function ( ) { c = i . getEl ( "body" ) [ "scroll" + r ] , e . addClass ( e . get ( u ) , d + "active" ) } , drag : function ( e ) { var t , u , d , f , p = i . layoutRect ( ) ; u = p . contentW > p . innerW , d = p . contentH > p . innerH , f = i . getEl ( "body" ) [ "client" + a ] - 2 * o , f -= u && d ? i . getEl ( "scroll" + n ) [ "client" + l ] : 0 , t = f / i . getEl ( "body" ) [ "scroll" + a ] , i . getEl ( "body" ) [ "scroll" + r ] = c + e [ "delta" + s ] / t } , stop : function ( ) { e . removeClass ( e . get ( u ) , d + "active" ) } } ) } i . addClass ( "scroll" ) , n ( "v" , "Top" , "Height" , "Y" , "Width" ) , n ( "h" , "Left" , "Width" , "X" , "Height" ) } var i = this , o = 2 ; i . settings . autoScroll && ( i . _hasScroll || ( i . _hasScroll = ! 0 , r ( ) , i . on ( "wheel" , function ( e ) { var t = i . getEl ( "body" ) ; t . scrollLeft += 10 * ( e . deltaX || 0 ) , t . scrollTop += 10 * e . deltaY , n ( ) } ) , e . on ( i . getEl ( "body" ) , "scroll" , n ) ) , n ( ) ) } } } ) , r ( et , [ J , Z ] , function ( e , t ) { return e . extend ( { Defaults : { layout : "fit" , containerCls : "panel" } , Mixins : [ t ] , renderHtml : function ( ) { var e = this , t = e . _layout , n = e . settings . html ; return e . preRender ( ) , t . preRender ( e ) , "undefined" == typeof n ? n = '<div id="' + e . _id + '-body" class="' + e . classes ( "body" ) + '">' + t . renderHtml ( e ) + "</div>" : ( "function" == typeof n && ( n = n . call ( e ) ) , e . _hasBody = ! 1 ) , '<div id="' + e . _id + '" class="' + e . classes ( ) + '" hidefocus="1" tabindex="-1" role="group">' + ( e . _preBodyHtml || "" ) + n + "</div>" } } ) } ) , r ( tt , [ Y ] , function ( e ) { function t ( t , n , r ) { var i , o , a , s , l , c , u , d , f , p ; return f = e . getViewPort ( ) , o = e . getPos ( n ) , a = o . x , s = o . y , t . _fixed && ( a -= f . x , s -= f . y ) , i = t . getEl ( ) , p = e . getSize ( i ) , l = p . width , c = p . height , p = e . getSize ( n ) , u = p . width , d = p . height , r = ( r || "" ) . split ( "" ) , "b" === r [ 0 ] && ( s += d ) , "r" === r [ 1 ] && ( a += u ) , "c" === r [ 0 ] && ( s += Math . round ( d / 2 ) ) , "c" === r [ 1 ] && ( a += Math . round ( u / 2 ) ) , "b" === r [ 3 ] && ( s -= c ) , "r" === r [ 4 ] && ( a -= l ) , "c" === r [ 3 ] && ( s -= Math . round ( c / 2 ) ) , "c" === r [ 4 ] && ( a -= Math . round ( l / 2 ) ) , { x : a , y : s , w : l , h : c } } return { testMoveRel : function ( n , r ) { for ( var i = e . getViewPort ( ) , o = 0 ; o < r . length ; o ++ ) { var a = t ( this , n , r [ o ] ) ; if ( this . _fixed ) { if ( a . x > 0 && a . x + a . w < i . w && a . y > 0 && a . y + a . h < i . h ) return r [ o ]
} ) , A ( r . plugins . split ( /[ ,]/ ) , function ( e ) { if ( e = L ( e ) , e && ! T . urls [ e ] ) if ( "-" == e . charAt ( 0 ) ) { e = e . substr ( 1 , e . length ) ; var t = T . dependencies ( e ) ; A ( t , function ( e ) { var t = { prefix : "plugins/" , resource : e , suffix : "/plugin" + o + ".js" } ; e = T . createUrl ( t , e ) , T . load ( e . resource , e ) } ) } else T . load ( e , { prefix : "plugins/" , resource : e , suffix : "/plugin" + o + ".js" } ) } ) , e . loadQueue ( function ( ) { n . removed || n . init ( ) } ) } var n = this , r = n . settings , i = n . id , o = n . suffix ; if ( ! M . domLoaded ) return void k . bind ( window , "ready" , e ) ; if ( n . getElement ( ) && x . contentEditable ) { r . inline ? n . inline = ! 0 : ( n . orgVisibility = n . getElement ( ) . style . visibility , n . getElement ( ) . style . visibility = "hidden" ) ; var a = n . getElement ( ) . form || k . getParent ( i , "form" ) ; a && ( n . formElement = a , r . hidden _input && ! /TEXTAREA|INPUT/i . test ( n . getElement ( ) . nodeName ) && ( k . insertAfter ( k . create ( "input" , { type : "hidden" , name : i } ) , i ) , n . hasHiddenInput = ! 0 ) , n . formEventDelegate = function ( e ) { n . fire ( e . type , e ) } , k . bind ( a , "submit reset" , n . formEventDelegate ) , n . on ( "reset" , function ( ) { n . setContent ( n . startContent , { format : "raw" } ) } ) , ! r . submit _patch || a . submit . nodeType || a . submit . length || a . _mceOldSubmit || ( a . _mceOldSubmit = a . submit , a . submit = function ( ) { return n . editorManager . triggerSave ( ) , n . isNotDirty = ! 0 , a . _mceOldSubmit ( a ) } ) ) , n . windowManager = new v ( n ) , "xml" == r . encoding && n . on ( "GetContent" , function ( e ) { e . save && ( e . content = k . encode ( e . content ) ) } ) , r . add _form _submit _trigger && n . on ( "submit" , function ( ) { n . initialized && n . save ( ) } ) , r . add _unload _trigger && ( n . _beforeUnload = function ( ) { ! n . initialized || n . destroyed || n . isHidden ( ) || n . save ( { format : "raw" , no _events : ! 0 , set _dirty : ! 1 } ) } , n . editorManager . on ( "BeforeUnload" , n . _beforeUnload ) ) , t ( ) } } , init : function ( ) { function e ( n ) { var r = T . get ( n ) , i , o ; i = T . urls [ n ] || t . documentBaseUrl . replace ( /\/$/ , "" ) , n = L ( n ) , r && - 1 === D ( m , n ) && ( A ( T . dependencies ( n ) , function ( t ) { e ( t ) } ) , o = new r ( t , i , t . $ ) , t . plugins [ n ] = o , o . init && ( o . init ( t , i ) , m . push ( n ) ) ) } var t = this , n = t . settings , r = t . getElement ( ) , i , o , a , s , l , c , u , d , f , p , h , m = [ ] ; if ( t . rtl = this . editorManager . i18n . rtl , t . editorManager . add ( t ) , n . aria _label = n . aria _label || k . getAttrib ( r , "aria-label" , t . getLang ( "aria.rich_text_area" ) ) , n . theme && ( "function" != typeof n . theme ? ( n . theme = n . theme . replace ( /-/ , "" ) , c = S . get ( n . theme ) , t . theme = new c ( t , S . urls [ n . theme ] ) , t . theme . init && t . theme . init ( t , S . urls [ n . theme ] || t . documentBaseUrl . replace ( /\/$/ , "" ) , t . $ ) ) : t . theme = n . theme ) , A ( n . plugins . replace ( /\-/g , "" ) . split ( /[ ,]/ ) , e ) , n . render _ui && t . theme && ( t . orgDisplay = r . style . display , "function" != typeof n . theme ? ( i = n . width || r . style . width || r . offsetWidth , o = n . height || r . style . height || r . offsetHeight , a = n . min _height || 100 , p = /^[0-9\.]+(|px)$/i , p . test ( "" + i ) && ( i = Math . max ( parseInt ( i , 10 ) , 100 ) ) , p . test ( "" + o ) && ( o = Math . max ( parseInt ( o , 10 ) , a ) ) , l = t . theme . renderUI ( { targetNode : r , width : i , height : o , deltaWidth : n . delta _width , deltaHeight : n . delta _height } ) , n . content _editable || ( o = ( l . iframeHeight || o ) + ( "number" == typeof o ? l . deltaHeight || 0 : "" ) , a > o && ( o = a ) ) ) : ( l = n . theme ( t , r ) , l . editorContainer . nodeType && ( l . editorContainer = l . editorContainer . id = l . editorContainer . id || t . id + "_parent" ) , l . iframeContainer . nodeType && ( l . iframeContainer = l . iframeContainer . id = l . iframeContainer . id || t . id + "_iframecontainer" ) , o = l . iframeHeight || r . offsetHeight ) , t . editorContainer = l . editorContainer ) , n . content _css && A ( B ( n . content _css ) , function ( e ) { t . contentCSS . push ( t . documentBaseURI . toAbsolute ( e ) ) } ) , n . content _style && t . contentStyles . push ( n . content _style ) , n . content _editable ) return r = s = l = null , t . initContentBody ( ) ; for ( t . iframeHTML = n . doctype + "<html><head>" , n . document _base _url != t . documentBaseUrl && ( t . iframeHTML += '<base href="' + t . documentBaseURI . getURI ( ) + '" />' ) , ! x . caretAfter && n . ie7 _compat && ( t . iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />' ) , t . iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' , h = 0 ; h < t . contentCSS . length ; h ++ ) { var g = t . contentCSS [ h ] ; t . iframeHTML += '<link type="text/css" rel="stylesheet" href="' + g + '" />' , t . loadedCSS [ g ] = ! 0 } d = n . body _id || "tinymce" , - 1 != d . indexOf ( "=" ) && ( d = t . getParam ( "body_id" , "" , "hash" ) , d = d [ t . id ] || d ) , f = n . body _class || "" , - 1 != f . indexOf ( "=" ) && ( f = t . getParam ( "body_class" , "" , "hash" ) , f = f [ t . id ] || "" ) , t . iframeHTML += '</head><body id="' + d + '" class="mce-content-body ' + f + '" data-id="' + t . id + '"><br></body></html>' ; var v = ' javascri
} } ) } ) , r ( St , [ J ] , function ( e ) { return e . extend ( { Defaults : { defaultType : "button" , role : "group" } , renderHtml : function ( ) { var e = this , t = e . _layout ; return e . addClass ( "btn-group" ) , e . preRender ( ) , t . preRender ( e ) , '<div id="' + e . _id + '" class="' + e . classes ( ) + '"><div id="' + e . _id + '-body">' + ( e . settings . html || "" ) + t . renderHtml ( e ) + "</div></div>" } } ) } ) , r ( Tt , [ Nt ] , function ( e ) { return e . extend ( { Defaults : { classes : "checkbox" , role : "checkbox" , checked : ! 1 } , init : function ( e ) { var t = this ; t . _super ( e ) , t . on ( "click mousedown" , function ( e ) { e . preventDefault ( ) } ) , t . on ( "click" , function ( e ) { e . preventDefault ( ) , t . disabled ( ) || t . checked ( ! t . checked ( ) ) } ) , t . checked ( t . settings . checked ) } , checked : function ( e ) { var t = this ; return "undefined" != typeof e ? ( e ? t . addClass ( "checked" ) : t . removeClass ( "checked" ) , t . _checked = e , t . aria ( "checked" , e ) , t ) : t . _checked } , value : function ( e ) { return this . checked ( e ) } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . classPrefix ; return '<div id="' + t + '" class="' + e . classes ( ) + '" unselectable="on" aria-labelledby="' + t + '-al" tabindex="-1"><i class="' + n + "ico " + n + 'i-checkbox"></i><span id="' + t + '-al" class="' + n + 'label">' + e . encode ( e . _text ) + "</span></div>" } } ) } ) , r ( Rt , [ Nt , G , Y ] , function ( e , t , n ) { return e . extend ( { init : function ( e ) { var t = this ; t . _super ( e ) , t . addClass ( "combobox" ) , t . subinput = ! 0 , t . ariaTarget = "inp" , e = t . settings , e . menu = e . menu || e . values , e . menu && ( e . icon = "caret" ) , t . on ( "click" , function ( n ) { for ( var r = n . target , i = t . getEl ( ) ; r && r != i ; ) r . id && - 1 != r . id . indexOf ( "-open" ) && ( t . fire ( "action" ) , e . menu && ( t . showMenu ( ) , n . aria && t . menu . items ( ) [ 0 ] . focus ( ) ) ) , r = r . parentNode } ) , t . on ( "keydown" , function ( e ) { "INPUT" == e . target . nodeName && 13 == e . keyCode && t . parents ( ) . reverse ( ) . each ( function ( n ) { return e . preventDefault ( ) , t . fire ( "change" ) , n . hasEventListeners ( "submit" ) && n . toJSON ? ( n . fire ( "submit" , { data : n . toJSON ( ) } ) , ! 1 ) : void 0 } ) } ) , e . placeholder && ( t . addClass ( "placeholder" ) , t . on ( "focusin" , function ( ) { t . _hasOnChange || ( n . on ( t . getEl ( "inp" ) , "change" , function ( ) { t . fire ( "change" ) } ) , t . _hasOnChange = ! 0 ) , t . hasClass ( "placeholder" ) && ( t . getEl ( "inp" ) . value = "" , t . removeClass ( "placeholder" ) ) } ) , t . on ( "focusout" , function ( ) { 0 === t . value ( ) . length && ( t . getEl ( "inp" ) . value = e . placeholder , t . addClass ( "placeholder" ) ) } ) ) } , showMenu : function ( ) { var e = this , n = e . settings , r ; e . menu || ( r = n . menu || [ ] , r . length ? r = { type : "menu" , items : r } : r . type = r . type || "menu" , e . menu = t . create ( r ) . parent ( e ) . renderTo ( e . getContainerElm ( ) ) , e . fire ( "createmenu" ) , e . menu . reflow ( ) , e . menu . on ( "cancel" , function ( t ) { t . control === e . menu && e . focus ( ) } ) , e . menu . on ( "show hide" , function ( t ) { t . control . items ( ) . each ( function ( t ) { t . active ( t . value ( ) == e . value ( ) ) } ) } ) . fire ( "show" ) , e . menu . on ( "select" , function ( t ) { e . value ( t . control . value ( ) ) } ) , e . on ( "focusin" , function ( t ) { "INPUT" == t . target . tagName . toUpperCase ( ) && e . menu . hide ( ) } ) , e . aria ( "expanded" , ! 0 ) ) , e . menu . show ( ) , e . menu . layoutRect ( { w : e . layoutRect ( ) . w } ) , e . menu . moveRel ( e . getEl ( ) , e . isRtl ( ) ? [ "br-tr" , "tr-br" ] : [ "bl-tl" , "tl-bl" ] ) } , value : function ( e ) { var t = this ; return "undefined" != typeof e ? ( t . _value = e , t . removeClass ( "placeholder" ) , t . _rendered && ( t . getEl ( "inp" ) . value = e ) , t ) : t . _rendered ? ( e = t . getEl ( "inp" ) . value , e != t . settings . placeholder ? e : "" ) : t . _value } , disabled : function ( e ) { var t = this ; return t . _rendered && "undefined" != typeof e && ( t . getEl ( "inp" ) . disabled = e ) , t . _super ( e ) } , focus : function ( ) { this . getEl ( "inp" ) . focus ( ) } , repaint : function ( ) { var e = this , t = e . getEl ( ) , r = e . getEl ( "open" ) , i = e . layoutRect ( ) , o , a ; o = r ? i . w - n . getSize ( r ) . width - 10 : i . w - 10 ; var s = document ; return s . all && ( ! s . documentMode || s . documentMode <= 8 ) && ( a = e . layoutRect ( ) . h - 2 + "px" ) , n . css ( t . firstChild , { width : o , lineHeight : a } ) , e . _super ( ) , e } , postRender : function ( ) { var e = this ; return n . on ( this . getEl ( "inp" ) , "change" , function ( ) { e . fire ( "change" ) } ) , e . _super ( ) } , remove : function ( ) { n . off ( this . getEl ( "inp" ) ) , this . _super ( ) } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . settings , r = e . classPrefix , i = n . value || n . placeholder || "" , o , a , s = "" , l = "" ; return "spellcheck" in n && ( l += ' spellcheck="' + n . spellcheck + '"' ) , n . maxLength && ( l += ' maxlength="' + n . maxLength + '"' ) , n . size && ( l += ' size="' + n . size + '"' ) , n . subtype && ( l += ' type="' + n . subtype + '"' ) , e . disabled ( ) && ( l += ' disabled="disabled"' ) , o = n . icon , o && "caret" != o && ( o = r + "ico " + r + "i-" + n . icon ) , a = e . _text , ( o || a ) && ( s = '<div id="' + t + '-open" class="' + r + "btn " + r + ' open " tabInde
t . hasPopup = ! 0 , t . _super ( e ) , e = t . settings , t . addClass ( "menu-item" ) , e . menu && t . addClass ( "menu-item-expand" ) , e . preview && t . addClass ( "menu-item-preview" ) , ( "-" === t . _text || "|" === t . _text ) && ( t . addClass ( "menu-item-sep" ) , t . aria ( "role" , "separator" ) , t . _text = "-" ) , e . selectable && ( t . aria ( "role" , "menuitemcheckbox" ) , t . addClass ( "menu-item-checkbox" ) , e . icon = "selected" ) , e . preview || e . selectable || t . addClass ( "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 ( ) . each ( function ( e ) { e . active ( e . settings . selected ) } ) } ) . fire ( "show" ) , r . on ( "hide" , function ( t ) { t . control === r && e . removeClass ( "selected" ) } ) , r . submenu = ! 0 ) , r . _parentMenu = i , r . addClass ( "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 . removeClass ( r . _lastRel ) , r . addClass ( o ) , r . _lastRel = o , e . addClass ( "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 ( ) { var e = this , t = e . _id , r = e . settings , i = e . classPrefix , o = e . encode ( e . _text ) , a = e . settings . icon , s = "" , l = r . shortcut ; return a && e . parent ( ) . addClass ( "menu-has-icons" ) , r . image && ( a = "none" , s = " style=\"background-image: url('" + r . image + "')\"" ) , l && n . mac && ( l = l . replace ( /ctrl\+alt\+/i , "⌥⌘" ) , l = l . replace ( /ctrl\+/i , "⌘" ) , l = l . replace ( /alt\+/i , "⌥" ) , l = l . replace ( /shift\+/i , "⇧" ) ) , a = i + "ico " + i + "i-" + ( e . settings . icon || "none" ) , '<div id="' + t + '" class="' + e . classes ( ) + '" tabindex="-1">' + ( "-" !== o ? '<i class="' + a + '"' + s + "></i>\xa0" : "" ) + ( "-" !== o ? '<span id="' + t + '-text" class="' + i + 'text">' + o + "</span>" : "" ) + ( l ? '<div id="' + t + '-shortcut" class="' + i + 'menu-shortcut">' + l + "</div>" : "" ) + ( r . menu ? '<div class="' + i + 'caret"></div>' : "" ) + "</div>" } , postRender : function ( ) { var e = this , t = e . settings , n = t . textStyle ; if ( "function" == typeof n && ( n = n . call ( this ) ) , n ) { var r = e . getEl ( "text" ) ; r && r . 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" ) , e . parent ( ) . hideAll ( ) ) ) } ) , e . _super ( ) , 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 ( Zt , [ rt , Qt , u ] , function ( e , t , n ) { var r = 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 , e . itemDefaults ) for ( var r = e . items , i = r . length ; i -- ; ) r [ i ] = n . extend ( { } , e . itemDefaults , r [ i ] ) ; t . _super ( e ) , t . addClass ( "menu" ) } , repaint : function ( ) { return this . toggleClass ( "menu-align" , ! 0 ) , this . _super ( ) , this . getEl ( ) . style . height = "" , this . getEl ( "body" ) . style . height = "" , this } , cancel : function ( ) { var e = this ; e . hideAll ( ) , e . fire ( "select" ) } , hideAll : function ( ) { var e = this ; return this . find ( "menuitem" ) . exec ( "hideMenu" ) , e . _super ( ) } , preRender : function ( ) { var e = this ; return e . items ( ) . each ( function ( t ) { var n = t . settings ; return n . icon || n . selectable ? ( e . _hasIcons = ! 0 , ! 1 ) : void 0 } ) , e . _super ( ) } } ) ; return r } ) , r ( en , [ Tt ] , function ( e ) { return e . extend ( { Defaults : { classes : "radio" , role : "radio" } } ) } ) , r ( tn , [ Nt , Q ] , function ( e , t ) { return e . extend ( { renderHtml : function ( ) { var e = this , t = e . classPrefix ; return e . addClass ( "resizehandle" ) , "both" == e . settings . direction && e . addClass ( "resizehandle-both" ) , e . canFocus = ! 1 , '<div id="' + e . _id + '" class="' + e . classes ( ) + '"><i class="' + t + "ico " + t + 'i-resize"></i></div>' } , postRender : function ( ) { var e = this ; e . _super ( ) , e . resizeDragHelper = new t ( this . _id , { start : function ( ) { e . fire ( " Resi