diff --git a/CHANGELOG.textile b/CHANGELOG.textile index add94d9..c50db56 100644 --- a/CHANGELOG.textile +++ b/CHANGELOG.textile @@ -1,3 +1,7 @@ +*wysihtml5x 0.5.0-beta5* (February 17, 2015) +* Fixes IE and webkit erroneous handling +* Corrects bower.json usage + *wysihtml5x 0.5.0-beta4* (January 29, 2015) * Adds sub- and superscript commands * Fixes errors mainly with IE8 and 9 diff --git a/bower.json b/bower.json index b3831fb..e56e8f5 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "wysihtml", - "version": "0.5.0-beta4", + "version": "0.5.0-beta5", "main": "dist/wysihtml-toolbar.js", "dependencies": { }, diff --git a/dist/wysihtml-toolbar.js b/dist/wysihtml-toolbar.js index f3a7016..c4d01c8 100644 --- a/dist/wysihtml-toolbar.js +++ b/dist/wysihtml-toolbar.js @@ -1,418 +1,368 @@ -// TODO: in future try to replace most inline compability checks with polyfills for code readability +/** + * @license wysihtml5x v0.5.0-beta5 + * https://github.com/Edicy/wysihtml5 + * + * Author: Christopher Blum (https://github.com/tiff) + * Secondary author of extended features: Oliver Pulges (https://github.com/pulges) + * + * Copyright (C) 2012 XING AG + * Licensed under the MIT license (MIT) + * + */ +var wysihtml5 = { + version: "0.5.0-beta5", -// IE8 SUPPORT BLOCK -// You can compile without all this if IE8 is not needed + // namespaces + commands: {}, + dom: {}, + quirks: {}, + toolbar: {}, + lang: {}, + selection: {}, + views: {}, + + INVISIBLE_SPACE: "\uFEFF", + INVISIBLE_SPACE_REG_EXP: /\uFEFF/g, + + EMPTY_FUNCTION: function() {}, -// String trim for ie8 -if (!String.prototype.trim) { + ELEMENT_NODE: 1, + TEXT_NODE: 3, + + BACKSPACE_KEY: 8, + ENTER_KEY: 13, + ESCAPE_KEY: 27, + SPACE_KEY: 32, + TAB_KEY: 9, + DELETE_KEY: 46 +}; +;wysihtml5.polyfills = function(win, doc) { + + // TODO: in future try to replace most inline compability checks with polyfills for code readability + + // IE8 SUPPORT BLOCK + // You can compile without all this if IE8 is not needed + + // String trim for ie8 + if (!String.prototype.trim) { + (function() { + // Make sure we trim BOM and NBSP + var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + String.prototype.trim = function() { + return this.replace(rtrim, ''); + }; + })(); + } + + // addEventListener, removeEventListener (function() { - // Make sure we trim BOM and NBSP - var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - String.prototype.trim = function() { - return this.replace(rtrim, ''); + var s_add = 'addEventListener', + s_rem = 'removeEventListener'; + if( doc[s_add] ) return; + win.Element.prototype[ s_add ] = win[ s_add ] = doc[ s_add ] = function( on, fn, self ) { + return (self = this).attachEvent( 'on' + on, function(e){ + var e = e || win.event; + e.target = e.target || e.srcElement; + e.preventDefault = e.preventDefault || function(){e.returnValue = false}; + e.stopPropagation = e.stopPropagation || function(){e.cancelBubble = true}; + e.which = e.button ? ( e.button === 2 ? 3 : e.button === 4 ? 2 : e.button ) : e.keyCode; + fn.call(self, e); + }); }; - })(); -} - -// addEventListener, removeEventListener -// TODO: make usage of wysihtml5.dom.observe obsolete -(function() { - if (!Event.prototype.preventDefault) { - Event.prototype.preventDefault=function() { - this.returnValue=false; + win.Element.prototype[ s_rem ] = win[ s_rem ] = doc[ s_rem ] = function( on, fn ) { + return this.detachEvent( 'on' + on, fn ); }; + })(); + + // element.textContent polyfill. + if (Object.defineProperty && Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(win.Element.prototype, "textContent") && !Object.getOwnPropertyDescriptor(win.Element.prototype, "textContent").get) { + (function() { + var innerText = Object.getOwnPropertyDescriptor(win.Element.prototype, "innerText"); + Object.defineProperty(win.Element.prototype, "textContent", + { + get: function() { + return innerText.get.call(this); + }, + set: function(s) { + return innerText.set.call(this, s); + } + } + ); + })(); } - if (!Event.prototype.stopPropagation) { - Event.prototype.stopPropagation=function() { - this.cancelBubble=true; + + // isArray polyfill for ie8 + if(!Array.isArray) { + Array.isArray = function(arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; }; } - if (!Element.prototype.addEventListener) { - var eventListeners=[]; - - var addEventListener=function(type,listener /*, useCapture (will be ignored) */) { - var self=this; - var wrapper=function(e) { - e.target=e.srcElement; - e.currentTarget=self; - if (listener.handleEvent) { - listener.handleEvent(e); - } else { - listener.call(self,e); - } - }; - if (type=="DOMContentLoaded") { - var wrapper2=function(e) { - if (document.readyState=="complete") { - wrapper(e); - } - }; - document.attachEvent("onreadystatechange",wrapper2); - eventListeners.push({object:this,type:type,listener:listener,wrapper:wrapper2}); - - if (document.readyState=="complete") { - var e=new Event(); - e.srcElement=window; - wrapper2(e); - } - } else { - this.attachEvent("on"+type,wrapper); - eventListeners.push({object:this,type:type,listener:listener,wrapper:wrapper}); - } + + // Array indexOf for ie8 + if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(a,f) { + for(var c=this.length,r=-1,d=f>>>0; ~(c-d); r=this[--c]===a?c:r); + return r; }; - var removeEventListener=function(type,listener /*, useCapture (will be ignored) */) { - var counter=0; - while (counter>>0; ~(c-d); r=this[--c]===a?c:r); - return r; - }; -} - -// Function.prototype.bind() -// TODO: clean the code from variable 'that' as it can be confusing -if (!Function.prototype.bind) { - Function.prototype.bind = function(oThis) { - if (typeof this !== 'function') { - // closest thing possible to the ECMAScript 5 - // internal IsCallable function - throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable'); - } - - var aArgs = Array.prototype.slice.call(arguments, 1), - fToBind = this, - fNOP = function() {}, - fBound = function() { - return fToBind.apply(this instanceof fNOP && oThis - ? this - : oThis, - aArgs.concat(Array.prototype.slice.call(arguments))); - }; + // Element.matches Adds ie8 support and unifies nonstandard function names in other browsers + win.Element && function(ElementPrototype) { + ElementPrototype.matches = ElementPrototype.matches || + ElementPrototype.matchesSelector || + ElementPrototype.mozMatchesSelector || + ElementPrototype.msMatchesSelector || + ElementPrototype.oMatchesSelector || + ElementPrototype.webkitMatchesSelector || + function (selector) { + var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1; + while (nodes[++i] && nodes[i] != node); + return !!nodes[i]; + }; + }(win.Element.prototype); - fNOP.prototype = this.prototype; - fBound.prototype = new fNOP(); - - return fBound; - }; -} - -// Element.matches Adds ie8 support and unifies nonstandard function names in other browsers -this.Element && function(ElementPrototype) { - ElementPrototype.matches = ElementPrototype.matches || - ElementPrototype.matchesSelector || - ElementPrototype.mozMatchesSelector || - ElementPrototype.msMatchesSelector || - ElementPrototype.oMatchesSelector || - ElementPrototype.webkitMatchesSelector || - function (selector) { - var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1; - while (nodes[++i] && nodes[i] != node); - return !!nodes[i]; - }; -}(Element.prototype); - -// Element.classList for ie8-9 (toggle all IE) -// source http://purl.eligrey.com/github/classList.js/blob/master/classList.js - -if ("document" in self) { - // Full polyfill for browsers with no classList support - if (!("classList" in document.createElement("_"))) { - (function(view) { - "use strict"; - if (!('Element' in view)) return; - - var - classListProp = "classList", - protoProp = "prototype", - elemCtrProto = view.Element[protoProp], - objCtr = Object, - strTrim = String[protoProp].trim || function() { - return this.replace(/^\s+|\s+$/g, ""); - }, - arrIndexOf = Array[protoProp].indexOf || function(item) { + // Element.classList for ie8-9 (toggle all IE) + // source http://purl.eligrey.com/github/classList.js/blob/master/classList.js + + if ("document" in win) { + // Full polyfill for browsers with no classList support + if (!("classList" in doc.createElement("_"))) { + (function(view) { + "use strict"; + if (!('Element' in view)) return; + + var + classListProp = "classList", + protoProp = "prototype", + elemCtrProto = view.Element[protoProp], + objCtr = Object, + strTrim = String[protoProp].trim || function() { + return this.replace(/^\s+|\s+$/g, ""); + }, + arrIndexOf = Array[protoProp].indexOf || function(item) { + var + i = 0, + len = this.length; + for (; i < len; i++) { + if (i in this && this[i] === item) { + return i; + } + } + return -1; + }, // Vendors: please allow content code to instantiate DOMExceptions + DOMEx = function(type, message) { + this.name = type; + this.code = DOMException[type]; + this.message = message; + }, + checkTokenAndGetIndex = function(classList, token) { + if (token === "") { + throw new DOMEx( + "SYNTAX_ERR", "An invalid or illegal string was specified" + ); + } + if (/\s/.test(token)) { + throw new DOMEx( + "INVALID_CHARACTER_ERR", "String contains an invalid character" + ); + } + return arrIndexOf.call(classList, token); + }, + ClassList = function(elem) { + var + trimmedClasses = strTrim.call(elem.getAttribute("class") || ""), + classes = trimmedClasses ? trimmedClasses.split(/\s+/) : [], + i = 0, + len = classes.length; + for (; i < len; i++) { + this.push(classes[i]); + } + this._updateClassName = function() { + elem.setAttribute("class", this.toString()); + }; + }, + classListProto = ClassList[protoProp] = [], + classListGetter = function() { + return new ClassList(this); + }; + // Most DOMException implementations don't allow calling DOMException's toString() + // on non-DOMExceptions. Error's toString() is sufficient here. + DOMEx[protoProp] = Error[protoProp]; + classListProto.item = function(i) { + return this[i] || null; + }; + classListProto.contains = function(token) { + token += ""; + return checkTokenAndGetIndex(this, token) !== -1; + }; + classListProto.add = function() { var + tokens = arguments, i = 0, - len = this.length; - for (; i < len; i++) { - if (i in this && this[i] === item) { - return i; + l = tokens.length, + token, updated = false; + do { + token = tokens[i] + ""; + if (checkTokenAndGetIndex(this, token) === -1) { + this.push(token); + updated = true; } } - return -1; - }, // Vendors: please allow content code to instantiate DOMExceptions - DOMEx = function(type, message) { - this.name = type; - this.code = DOMException[type]; - this.message = message; - }, - checkTokenAndGetIndex = function(classList, token) { - if (token === "") { - throw new DOMEx( - "SYNTAX_ERR", "An invalid or illegal string was specified" - ); - } - if (/\s/.test(token)) { - throw new DOMEx( - "INVALID_CHARACTER_ERR", "String contains an invalid character" - ); + while (++i < l); + + if (updated) { + this._updateClassName(); } - return arrIndexOf.call(classList, token); - }, - ClassList = function(elem) { + }; + classListProto.remove = function() { var - trimmedClasses = strTrim.call(elem.getAttribute("class") || ""), - classes = trimmedClasses ? trimmedClasses.split(/\s+/) : [], + tokens = arguments, i = 0, - len = classes.length; - for (; i < len; i++) { - this.push(classes[i]); - } - this._updateClassName = function() { - elem.setAttribute("class", this.toString()); - }; - }, - classListProto = ClassList[protoProp] = [], - classListGetter = function() { - return new ClassList(this); - }; - // Most DOMException implementations don't allow calling DOMException's toString() - // on non-DOMExceptions. Error's toString() is sufficient here. - DOMEx[protoProp] = Error[protoProp]; - classListProto.item = function(i) { - return this[i] || null; - }; - classListProto.contains = function(token) { - token += ""; - return checkTokenAndGetIndex(this, token) !== -1; - }; - classListProto.add = function() { - var - tokens = arguments, - i = 0, - l = tokens.length, - token, updated = false; - do { - token = tokens[i] + ""; - if (checkTokenAndGetIndex(this, token) === -1) { - this.push(token); - updated = true; - } - } - while (++i < l); - - if (updated) { - this._updateClassName(); - } - }; - classListProto.remove = function() { - var - tokens = arguments, - i = 0, - l = tokens.length, - token, updated = false, - index; - do { - token = tokens[i] + ""; - index = checkTokenAndGetIndex(this, token); - while (index !== -1) { - this.splice(index, 1); - updated = true; + l = tokens.length, + token, updated = false, + index; + do { + token = tokens[i] + ""; index = checkTokenAndGetIndex(this, token); + while (index !== -1) { + this.splice(index, 1); + updated = true; + index = checkTokenAndGetIndex(this, token); + } } - } - while (++i < l); - - if (updated) { - this._updateClassName(); - } - }; - classListProto.toggle = function(token, force) { - token += ""; + while (++i < l); - var - result = this.contains(token), - method = result ? - force !== true && "remove" : - force !== false && "add"; + if (updated) { + this._updateClassName(); + } + }; + classListProto.toggle = function(token, force) { + token += ""; - if (method) { - this[method](token); - } + var + result = this.contains(token), + method = result ? + force !== true && "remove" : + force !== false && "add"; - if (force === true || force === false) { - return force; - } else { - return !result; - } - }; - classListProto.toString = function() { - return this.join(" "); - }; + if (method) { + this[method](token); + } - if (objCtr.defineProperty) { - var classListPropDesc = { - get: classListGetter, - enumerable: true, - configurable: true + if (force === true || force === false) { + return force; + } else { + return !result; + } }; - try { - objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc); - } catch (ex) { // IE 8 doesn't support enumerable:true - if (ex.number === -0x7FF5EC54) { - classListPropDesc.enumerable = false; + classListProto.toString = function() { + return this.join(" "); + }; + + if (objCtr.defineProperty) { + var classListPropDesc = { + get: classListGetter, + enumerable: true, + configurable: true + }; + try { objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc); + } catch (ex) { // IE 8 doesn't support enumerable:true + if (ex.number === -0x7FF5EC54) { + classListPropDesc.enumerable = false; + objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc); + } } + } else if (objCtr[protoProp].__defineGetter__) { + elemCtrProto.__defineGetter__(classListProp, classListGetter); } - } else if (objCtr[protoProp].__defineGetter__) { - elemCtrProto.__defineGetter__(classListProp, classListGetter); - } - }(self)); + }(win)); - } else if ("DOMTokenList" in window) { - // There is full or partial native classList support, so just check if we need - // to normalize the add/remove and toggle APIs. - // DOMTokenList is expected to exist (removes conflicts with multiple polyfills present on site) + } else if ("DOMTokenList" in win) { + // There is full or partial native classList support, so just check if we need + // to normalize the add/remove and toggle APIs. + // DOMTokenList is expected to exist (removes conflicts with multiple polyfills present on site) - (function() { - "use strict"; + (function() { + "use strict"; - var testElement = document.createElement("_"); + var testElement = doc.createElement("_"); - testElement.classList.add("c1", "c2"); + testElement.classList.add("c1", "c2"); - // Polyfill for IE 10/11 and Firefox <26, where classList.add and - // classList.remove exist but support only one argument at a time. - if (!testElement.classList.contains("c2")) { - var createMethod = function(method) { - var original = DOMTokenList.prototype[method]; + // Polyfill for IE 10/11 and Firefox <26, where classList.add and + // classList.remove exist but support only one argument at a time. + if (!testElement.classList.contains("c2")) { + var createMethod = function(method) { + var original = win.DOMTokenList.prototype[method]; - DOMTokenList.prototype[method] = function(token) { - var i, len = arguments.length; + win.DOMTokenList.prototype[method] = function(token) { + var i, len = arguments.length; - for (i = 0; i < len; i++) { - token = arguments[i]; - original.call(this, token); - } + for (i = 0; i < len; i++) { + token = arguments[i]; + original.call(this, token); + } + }; }; - }; - createMethod('add'); - createMethod('remove'); - } - - testElement.classList.toggle("c3", false); - - // Polyfill for IE 10 and Firefox <24, where classList.toggle does not - // support the second argument. - if (testElement.classList.contains("c3")) { - var _toggle = DOMTokenList.prototype.toggle; - - DOMTokenList.prototype.toggle = function(token, force) { - if (1 in arguments && !this.contains(token) === !force) { - return force; - } else { - return _toggle.call(this, token); - } - }; - - } + createMethod('add'); + createMethod('remove'); + } - testElement = null; - }()); + testElement.classList.toggle("c3", false); - } + // Polyfill for IE 10 and Firefox <24, where classList.toggle does not + // support the second argument. + if (testElement.classList.contains("c3")) { + var _toggle = win.DOMTokenList.prototype.toggle; -} -;/** - * @license wysihtml5x v0.5.0-beta4 - * https://github.com/Edicy/wysihtml5 - * - * Author: Christopher Blum (https://github.com/tiff) - * Secondary author of extended features: Oliver Pulges (https://github.com/pulges) - * - * Copyright (C) 2012 XING AG - * Licensed under the MIT license (MIT) - * - */ -var wysihtml5 = { - version: "0.5.0-beta4", - - // namespaces - commands: {}, - dom: {}, - quirks: {}, - toolbar: {}, - lang: {}, - selection: {}, - views: {}, + win.DOMTokenList.prototype.toggle = function(token, force) { + if (1 in arguments && !this.contains(token) === !force) { + return force; + } else { + return _toggle.call(this, token); + } + }; - INVISIBLE_SPACE: "\uFEFF", - INVISIBLE_SPACE_REG_EXP: /\uFEFF/g, + } - EMPTY_FUNCTION: function() {}, + testElement = null; + }()); - ELEMENT_NODE: 1, - TEXT_NODE: 3, + } - BACKSPACE_KEY: 8, - ENTER_KEY: 13, - ESCAPE_KEY: 27, - SPACE_KEY: 32, - TAB_KEY: 9, - DELETE_KEY: 46 + } }; + +wysihtml5.polyfills(window, document); ;/** * Rangy, a cross-browser JavaScript range and selection library * https://github.com/timdown/rangy @@ -7510,6 +7460,10 @@ wysihtml5.dom.replaceWithChildNodes = function(node) { this._unset(iframeDocument, "cookie", "", true); } + if (wysihtml5.polyfills) { + wysihtml5.polyfills(iframeWindow, iframeDocument); + } + this.loaded = true; // Trigger the callback @@ -7692,7 +7646,7 @@ wysihtml5.dom.replaceWithChildNodes = function(node) { dom.removeClass(view.element, CLASS_NAME); }, set = function() { - if (view.isEmpty()) { + if (view.isEmpty() && !view.placeholderSet) { view.placeholderSet = true; view.setValue(placeholderText); dom.addClass(view.element, CLASS_NAME); @@ -9401,7 +9355,7 @@ wysihtml5.quirks.ensureProperClearing = (function() { this.createTemporaryCaretSpaceAfter(node); } } - }, + }.bind(this), sel; range.setStartAfter(node); @@ -14036,12 +13990,6 @@ wysihtml5.views.View = Base.extend( this.parent.fire("unset_placeholder"); }).bind(this), false); - // --------- IE 8+9 focus the editor when the iframe is clicked (without actually firing the 'focus' event on the ) --------- - if (!this.config.contentEditableMode && browser.hasIframeFocusIssue()) { - container.addEventListener("focus", handleIframeFocus.bind(this), false); - container.addEventListener("blur", handleIframeBlur.bind(this), false); - } - }; })(wysihtml5); ;/** diff --git a/dist/wysihtml-toolbar.min.js b/dist/wysihtml-toolbar.min.js index 96be335..96aec16 100644 --- a/dist/wysihtml-toolbar.min.js +++ b/dist/wysihtml-toolbar.min.js @@ -1,10 +1,10 @@ -/*! wysihtml - v0.5.0-beta4 (2015-01-29) */ +/*! wysihtml - v0.5.0-beta5 (2015-02-17) */ -String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var a=[],b=function(b,c){var d=this,e=function(a){a.target=a.srcElement,a.currentTarget=d,c.handleEvent?c.handleEvent(a):c.call(d,a)};if("DOMContentLoaded"==b){var f=function(a){"complete"==document.readyState&&e(a)};if(document.attachEvent("onreadystatechange",f),a.push({object:this,type:b,listener:c,wrapper:f}),"complete"==document.readyState){var g=new Event;g.srcElement=window,f(g)}}else this.attachEvent("on"+b,e),a.push({object:this,type:b,listener:c,wrapper:e})},c=function(b,c){for(var d=0;d>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),this.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(Element.prototype),"document"in self&&("classList"in document.createElement("_")?"DOMTokenList"in window&&!function(){"use strict";var a=document.createElement("_");if(a.classList.add("c1","c2"),!a.classList.contains("c2")){var b=function(a){var b=DOMTokenList.prototype[a];DOMTokenList.prototype[a]=function(a){var c,d=arguments.length;for(c=0;d>c;c++)a=arguments[c],b.call(this,a)}};b("add"),b("remove")}if(a.classList.toggle("c3",!1),a.classList.contains("c3")){var c=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:c.call(this,a)}}a=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++co;++o)try{H[o](E)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a){a=a||window,l();for(var b=0,c=I.length;c>b;++b)I[b](a)}function n(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function o(a,b,c){var d=new n(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(E,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return B[a]=d,d}function p(){}function q(){}var r="object",s="function",t="undefined",u=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],v=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],w=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],x=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],y=d(a),z=d(b),A=d(c),B={},C=typeof window!=t&&typeof document!=t,D={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:y,areHostObjects:z,areHostProperties:A,isTextRange:e,getBody:f},E={version:"1.3.0-alpha.20140921",initialized:!1,isBrowser:C,supported:!0,util:D,features:{},modules:B,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==t?!0:rangyAutoInitialize}};E.fail=i,E.warn=j;var F;({}).hasOwnProperty?(D.extend=F=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&F(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},D.createOptions=function(a,b){var c={};return F(c,b),a&&F(c,a),c}):i("hasOwnProperty not supported"),C||i("Rangy can only run in a browser"),function(){var a;if(C){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),D.toArray=a}();var G;C&&(a(document,"addEventListener")?G=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?G=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),D.addListener=G);var H=[];E.init=l,E.addInitListener=function(a){E.initialized?a(E):H.push(a)};var I=[];E.addShimListener=function(a){I.push(a)},C&&(E.shim=E.createMissingNativeApi=m),n.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=B[b],!(a&&a instanceof n))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=o(a,c,b);E.initialized&&E.supported&&d.init()},E.createCoreModule=function(a,b,c){o(a,b,c)},E.RangePrototype=p,E.rangePrototype=new p,E.selectionPrototype=new q,E.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),E.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(O(a,b.startContainer)||O(a,b.endContainer))}function c(a){return a.document||P(a.startContainer)}function d(a){return new K(a.parentNode,N(a))}function e(a){return new K(a.parentNode,N(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return M(b)?c==b.length?I.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:R(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(y(a),y(b),c(b)!=c(a))throw new L("WRONG_DOCUMENT_ERR");var e=Q(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=Q(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach()),10==d.nodeType)throw new L("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(),c.stop)return}else for(d=I.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach()):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach()):a.remove(),10==b.nodeType)throw new L("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!M(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&M(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+I.inspectNode(a.startContainer)+":"+a.startOffset+", "+I.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&M(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||M(this.sc)?S(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||M(this.ec)?S(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,U(a,d))return e;e=e.parentNode}return null}}function p(a,b){if(cb(a,b))throw new L("INVALID_NODE_TYPE_ERR")}function q(a,b){if(!U(b,a.nodeType))throw new L("INVALID_NODE_TYPE_ERR")}function r(a,b){if(0>b||b>(M(a)?a.length:a.childNodes.length))throw new L("INDEX_SIZE_ERR")}function s(a,b){if(ab(a,!0)!==ab(b,!0))throw new L("WRONG_DOCUMENT_ERR")}function t(a){if(bb(a,!0))throw new L("NO_MODIFICATION_ALLOWED_ERR")}function u(a,b){if(!a)throw new L(b)}function v(a){return W&&I.isBrokenNode(a)||!U(Y,a.nodeType)&&!ab(a,!0)}function w(a,b){return b<=(M(a)?a.length:a.childNodes.length)}function x(a){return!!a.startContainer&&!!a.endContainer&&!v(a.startContainer)&&!v(a.endContainer)&&w(a.startContainer,a.startOffset)&&w(a.endContainer,a.endOffset)}function y(a){if(!x(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function z(a,b){y(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;M(e)&&f>0&&f0&&d=N(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function A(a){y(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function B(a){a.START_TO_START=ib,a.START_TO_END=jb,a.END_TO_END=kb,a.END_TO_START=lb,a.NODE_BEFORE=mb,a.NODE_AFTER=nb,a.NODE_BEFORE_AND_AFTER=ob,a.NODE_INSIDE=pb}function C(a){B(a),B(a.prototype)}function D(a,b){return function(){y(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=S(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,t),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function E(c,f){function g(a,b){return function(c){q(c,X),q(V(c),Y);var f=(a?d:e)(c);(b?h:i)(this,f.node,f.offset)}}function h(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((V(b)!=V(d)||1==Q(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function i(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((V(b)!=V(d)||-1==Q(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var l=function(){};l.prototype=a.rangePrototype,c.prototype=new l,J.extend(c.prototype,{setStart:function(a,b){p(a,!0),r(a,b),h(this,a,b)},setEnd:function(a,b){p(a,!0),r(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:g(!0,!0),setStartAfter:g(!1,!0),setEndBefore:g(!0,!1),setEndAfter:g(!1,!1),collapse:function(a){y(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){p(a,!0),f(this,a,0,a,T(a))},selectNode:function(a){p(a,!1),q(a,X);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:D(k,f),deleteContents:D(j,f),canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},splitBoundaries:function(){z(this)},splitBoundariesPreservingPositions:function(a){z(this,a)},normalizeBoundaries:function(){y(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=N(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(M(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&M(i)&&e(i)}h=!this.collapsed}if(h){if(M(a))0==b&&g(a);else if(bx",eb=3==db.firstChild.nodeType}catch(fb){}a.features.htmlParsingConforms=eb;var gb=eb?function(a){var b=this.startContainer,c=P(b);if(!b)throw new L("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:M(b)&&(d=I.parentElement(b)),d=null===d||"HTML"==d.nodeName&&I.isHtmlNamespace(P(d).documentElement)&&I.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,I.fragmentFromNodeChildren(d)}:function(a){var b=c(this),d=b.createElement("body");return d.innerHTML=a,I.fragmentFromNodeChildren(d)},hb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ib=0,jb=1,kb=2,lb=3,mb=0,nb=1,ob=2,pb=3;J.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){y(this),s(this.startContainer,b.startContainer);var c,d,e,f,g=a==lb||a==ib?"start":"end",h=a==jb||a==ib?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],Q(c,d,e,f)},insertNode:function(a){if(y(this),q(a,$),t(this.startContainer),O(a,this.startContainer))throw new L("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){y(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&M(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(q(a,_),!this.canSurroundContents())throw new L("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){y(this);for(var a,b=new H(c(this)),d=hb.length;d--;)a=hb[d],b[a]=this[a];return b},toString:function(){y(this);var a=this.startContainer;if(a===this.endContainer&&M(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){y(this);var b=a.parentNode,c=N(a);if(!b)throw new L("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?ob:mb:e>0?nb:pb},comparePoint:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)<0?-1:Q(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:gb,toHtml:function(){return A(this)},intersectsNode:function(a,b){if(y(this),u(a,"NOT_FOUND_ERR"),P(a)!==c(this))return!1;var d=a.parentNode,e=N(a);u(d,"NOT_FOUND_ERR");var f=Q(d,e,this.endContainer,this.endOffset),g=Q(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)>=0&&Q(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=Q(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=Q(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==Q(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==Q(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new L("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==pb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,T(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return y(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||I.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return H.rangesEqual(this,a)},isValid:function(){return x(this)},inspect:function(){return m(this)},detach:function(){}}),E(H,G),J.extend(H,{rangeProperties:hb,RangeIterator:n,copyComparisonConstants:C,createPrototypeRange:E,inspect:m,toHtml:A,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=H}),E.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this) -},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),k.compareBoundaryPoints=-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=bb.length;e--;)if(c=bb[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(bb.splice(e,1),!0):d;return"deleteAll"==b&&(bb.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);Q?(y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b}):O?(y=e,a.isSelectionValid=function(){return!0}):b.fail("Neither document.selection or window.getSelection() detected."),a.getNativeSelection=y;var R=y(),S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=M(document),j=i.appendChild(document.createElement("div"));j.contentEditable="false";var k=j.appendChild(document.createTextNode("   ")),l=document.createRange();if(l.setStart(k,1),l.collapse(!0),b.addRange(l),Y=1==b.rangeCount,b.removeAllRanges(),!d){var m=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(m&&parseInt(m[1])>=36)X=!1;else{var n=l.cloneRange();l.setStart(k,0),n.setEnd(k,3),n.setStart(k,2),b.addRange(l),b.addRange(n),X=2==b.rangeCount}}for(i.removeChild(j),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var ab;E(R,"getRangeAt")?ab=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(ab=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var bb=[],cb=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),bb.push({win:a,selection:b})),b};a.getSelection=cb,a.getIframeSelection=function(c){return b.deprecationNotice("getIframeSelection()","getSelection(iframeEl)"),a.getSelection(C.getIframeWindow(c))};var db=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){db.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var eb=function(a,b){Z(a.nativeSelection,b),a.refresh()};db.addRange=W?function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)eb(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=ab(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,hb(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:function(a,b){c(b)&&V?eb(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},db.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;db.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},db.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},db.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}db.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fb;if(Q)fb=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fb=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],hb(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fb=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=ab(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}db.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fb(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var gb=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};db.removeRange=_&&P?function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else gb(this,a)}:function(a){gb(this,a)};var hb;!Q&&U&&J.implementsDomRange?(hb=g,db.isBackward=function(){return hb(this)}):hb=db.isBackward=function(){return!1},db.isBackwards=db.isBackward,db.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},db.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},db.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},db.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},db.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},db.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),a.parentNode.removeChild(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},db.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},db.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},db.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},db.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b))}),c},db.setStart=w(!0),db.setEnd=w(!1),a.rangePrototype.select=function(a){cb(this.getDocument()).setSingleRange(this,a)},db.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},db.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},db.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},db.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},db.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(db.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),db.getName=function(){return"WrappedSelection"},db.inspect=function(){return x(this)},db.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=db,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return cb(a)}),a=null})});var J=!1,K=function(){J||(J=!0,!E.initialized&&E.config.autoInitialize&&l())};return C&&("complete"==document.readyState?K():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",K,!1),G(window,"load",K))),E},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(p)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),g.parentNode.removeChild(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString();return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:c,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(i.parentNode.removeChild(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),i.parentNode.removeChild(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[];b=b.slice(0),b.sort(f);for(var j=0,k=b.length;k>j;++j)i[j]=g(b[j],d);for(j=k-1;j>=0;--j)e=b[j],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[j].markerId,h)):(e.setEndBefore(c(i[j].endMarkerId,h)),e.setStartAfter(c(i[j].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],"backward"):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&d.parentNode.removeChild(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p="";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})})},this);var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;aa:">"===b?a>d:"<="===b?d>=a:">="===b?a>=d:void 0:a===d:!0}var d=navigator.userAgent,e=document.createElement("div"),f=-1!==d.indexOf("Gecko")&&-1===d.indexOf("KHTML"),g=-1!==d.indexOf("AppleWebKit/"),h=-1!==d.indexOf("Chrome/"),i=-1!==d.indexOf("Opera/");return{USER_AGENT:d,supported:function(){var c=this.USER_AGENT.toLowerCase(),d="contentEditable"in e,f=document.execCommand&&document.queryCommandSupported&&document.queryCommandState,g=document.querySelector&&document.querySelectorAll,h=this.isIos()&&a(c)<5||this.isAndroid()&&b(c)<4||-1!==c.indexOf("opera mobi")||-1!==c.indexOf("hpwos/");return d&&f&&g&&!h},isTouchDevice:function(){return this.supportsEvent("touchmove")},isIos:function(){return/ipad|iphone|ipod/i.test(this.USER_AGENT)},isAndroid:function(){return-1!==this.USER_AGENT.indexOf("Android")},supportsSandboxedIframes:function(){return c()},throwsMixedContentWarningWhenIframeSrcIsEmpty:function(){return!("querySelector"in document)},displaysCaretInEmptyContentEditableCorrectly:function(){return c()},hasCurrentStyleProperty:function(){return"currentStyle"in e},insertsLineBreaksOnReturn:function(){return f},supportsPlaceholderAttributeOn:function(a){return"placeholder"in a},supportsEvent:function(a){return"on"+a in e||function(){return e.setAttribute("on"+a,"return;"),"function"==typeof e["on"+a]}()},supportsEventsInIframeCorrectly:function(){return!i},supportsHTML5Tags:function(a){var b=a.createElement("div"),c="
foo
";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:c(10,"<="),insertUnorderedList:c(),insertOrderedList:c()},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return c()},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||c()||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=e.cloneNode(!1);return c.innerHTML="

",b=c.innerHTML.toLowerCase(),a="

"===b||"

"===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=d.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return c(9)&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return c()},hasProblemsSettingCaretAfterImg:function(){return c()},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return c()},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window},supportsModenPaste:function(){return!("clipboardData"in window)},fixStyleKey:function(a){return"cssFloat"===a?"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat":a}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":"  "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi,"  ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b); -for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){return b.nodeType!==wysihtml5.ELEMENT_NODE&&(b=b.parentNode),a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE],d=function(b){return b.nodeType===a.TEXT_NODE&&/^\s*$/g.test(b.data)};return{prev:function(e){var f=b.previousSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).prev(e):f:null},next:function(e){var f=b.nextSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).next(e):f:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim()){f=!0;break}}if(!f)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(){var c=b.ownerDocument,e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&!d(e)&&a.dom.insert(c.createElement("br")).after(b),f&&!d(f)&&a.dom.insert(c.createElement("br")).before(b)},remove:function(){var d=a.dom.domNode(b).next({ignoreBlankTexts:!0}),e=a.dom.domNode(b).prev({ignoreBlankTexts:!0});d&&c(d)&&d.parentNode.removeChild(d),e&&c(e)&&e.parentNode.removeChild(e)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||"

"===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=v[c];return f&&(b||"alt"===a&&"IMG"==d)&&(e=f(b),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b){return b?b.replace(a,""):""}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode&&a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l=a.ownerDocument,m=l.createDocumentFragment(),n=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0});if(e)for(!n||b(n)||c(n)||d(m);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild;f=k.firstChild;)h=f===g,i=h&&!b(f)&&!c(f),m.appendChild(f),i&&d(m);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)m.appendChild(f);else{for(j=l.createElement("p");f=k.firstChild;)j.appendChild(f);m.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(m,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className="wysihtml5-sandbox",a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView||this.element.ownerDocument.parentWindow},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.element=d?this._bindElement(d):this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className="wysihtml5-sandbox",this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!==a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d){var e="placeholder",f=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,e)},g=function(){c.isEmpty()&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,e))};b.on("set_placeholder",g).on("unset_placeholder",f).on("focus:composer",f).on("paste:composer",f).on("blur:composer",g),g()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode(" ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan") -}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^$/i.test(d.trim())&&(d=!1),b(d),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("

 

"==b||"

 

 

"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"}),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{query:"table"}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(a){var b=wysihtml5.dom.getParentElement(a.target,{query:"td, th"});b&&d(b)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(){var b;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(b=c.lastChild,a.dom.unwrap(c),this.setAfter(b)):c.parentNode.removeChild(c))}.bind(this),f=function(){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c,d){var e,f=rangy.createRange(this.doc),g=function(){if(!e)if(c){var d=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(d,b.nextSibling),this.selectNode(d),setTimeout(function(){d&&d.parentNode&&d.parentNode.removeChild(d)},0)}else this.createTemporaryCaretSpaceAfter(b)};if(f.setStartAfter(b),f.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(f),g(),d&&d(e);else{var h=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(h),setTimeout(function(){e=this.setSelection(f),g(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{query:"li"},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},caretIsBeforeUneditable:function(){var b,c,d,e=this.getSelection(),f=e.anchorNode,g=e.anchorOffset,h=[];if(f)if(0===g){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode(this.unselectableClass?{leafClasses:[this.unselectableClass]}:!1):null;if(j)for(var k=this.getOwnUneditables(),l=0,m=k.length;m>l;l++)if(j===k[l])return k[l]}else{if(b=e.getRangeAt(0),b.setStart(b.startContainer,b.startOffset-1),b){c=b.getNodes([1,3]);for(var n=0,o=c.length;o>n;n++)c[n].parentNode&&c[n].parentNode===f&&h.push(c[n])}if(d=h.length>0?h[h.length-1]:null,d&&1===d.nodeType&&a.dom.hasClass(d,this.unselectableClass))return d}return!1},executeAndRestoreRangy:function(a){var b=rangy.saveSelection(this.win);if(b)try{a()}catch(c){setTimeout(function(){throw c},0)}else a();rangy.restoreSelection(b)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(a,b){var c,d,e,f,g=this.getSelection();g.rangeCount>0&&(c=g.getRangeAt(0).cloneRange(),c.setEndAfter(a),d=c.extractContents(),a.parentNode.insertBefore(d,a.nextSibling),e=b.firstChild,f=b.lastChild,a.parentNode.insertBefore(b,a.nextSibling),e&&f&&(c.setStartBefore(e),c.setEndAfter(f),this.setSelection(c)))},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.win.getSelection();a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),function(a){a.commands.bold={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"b")},state:function(b,c){return a.commands.formatInline.state(b,c,"b")}}}(wysihtml5),function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(d,e,f){var g=this.state(d,e);if(g){if((!f||!f.href)&&null!==g.length&&void 0!==g.length&&g.length>0){for(var h=0;hh;h++)d=b[h],e=c.getParentElement(d,{query:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.uneditableContainerClassname),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.win);for(var o in m)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.win),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.win),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var p=g.length;p--;)n=n.concat(i(g[p],e,j(g[p].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b);h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c=b.selection.getSelectedNode();return c&&c.nodeName&&"PRE"==c.nodeName&&c.firstChild&&c.firstChild.nodeName&&"CODE"==c.firstChild.nodeName?c:a.dom.getParentElement(c,{query:"pre code"})}}}(wysihtml5),function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange(),l=a.selection.getOwnRanges();return l&&0!=l.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(l),void(i?j||a.cleanUp():(k.setStart(l[0].startContainer,l[0].startOffset),k.setEnd(l[l.length-1].endContainer,l[l.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l,m=b.doc,n=d[f]||f;return a.dom.hasElementWithTagName(m,f)||a.dom.hasElementWithTagName(m,n)?g&&!a.dom.hasElementWithClassName(m,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?(l=c(f,g,h,i,j,b.element).isAppliedToRange(k),l&&l.elements?l.elements:!1):!1):!1}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"}),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){var h=f(g,d);if(h.length)for(var i=h.length;i--;)a.dom.renameElement(h[i],c.toLowerCase());else{e=f(["OL","UL"],d);for(var j=e.length;j--;)a.dom.resolveList(e[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.uneditableContainerClassname),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),function(a){a.commands.italic={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"i")},state:function(b,c){return a.commands.formatInline.state(b,c,"i")}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}}}(wysihtml5),function(a){a.commands.underline={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"u")},state:function(b,c){return a.commands.formatInline.state(b,c,"u")}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}}}(wysihtml5),function(a){a.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"
",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b){if(b.tableSelection){var c=b.tableSelection.start,d=b.tableSelection.end;if(c&&d&&c==d&&(a.dom.getAttribute(c,"colspan")&&parseInt(a.dom.getAttribute(c,"colspan"),10)>1||a.dom.getAttribute(c,"rowspan")&&parseInt(a.dom.getAttribute(c,"rowspan"),10)>1))return[c]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){a.commands.subscript={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"sub")},state:function(b,c){return a.commands.formatInline.state(b,c,"sub")}}}(wysihtml5),function(a){a.commands.superscript={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"sup")},state:function(b,c){return a.commands.formatInline.state(b,c,"sup")}}}(wysihtml5),function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e) -},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.win)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getScrollPos:function(){if(this.doc&&this.win){var a={};return a.y="undefined"!=typeof this.win.pageYOffset?this.win.pageYOffset:(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,a.x="undefined"!=typeof this.win.pageXOffset?this.win.pageXOffset:(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>|

|<\/p>)*$/i.test(a)||""===a||"
"===a||"

"===a||"


"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.win=this.sandbox.getWindow(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.uneditableContainerClassname])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(b,c){{var d=c.selection;c.element}if(d.isCollapsed())if(d.caretIsInTheBeginnig("li"))b.preventDefault(),c.commands.exec("outdentList");else if(d.caretIsInTheBeginnig())b.preventDefault();else{if(d.caretIsFirstInSelection()&&d.getPreviousNode()&&d.getPreviousNode().nodeName&&/^H\d$/gi.test(d.getPreviousNode().nodeName)){var e=d.getPreviousNode();if(/^\s*$/.test(e.textContent||e.innerText))b.preventDefault(),e.parentNode.removeChild(e);else if(e.lastChild){var f=e.lastChild,g=a.dom.getParentElement(d.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,c.element);if(e)if(g){for(b.preventDefault();g.firstChild;)e.appendChild(g.firstChild);d.setAfter(f)}else 3===d.getSelectedNode().nodeType&&(b.preventDefault(),e.appendChild(d.getSelectedNode()),d.setAfter(f))}}var h=d.caretIsBeforeUneditable();if(h){b.preventDefault();try{var i=new CustomEvent("wysihtml5:uneditable:delete");h.dispatchEvent(i)}catch(j){}h.parentNode.removeChild(h)}}else d.containsUneditable()&&(b.preventDefault(),d.deleteContents())},h=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},i=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},j=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},k=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},l=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},m=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},n=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},o=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},p=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.uneditableContainerClassname+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},q=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},r=function(b){if(this.config.uneditableContainerClassname){var c=a.dom.getParentElement(b.target,{query:"."+this.config.uneditableContainerClassname},!1,this.element);c&&this.selection.setAfter(c)}},s=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},t=function(b){var c,e,f=b.keyCode,i=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&i&&(this.commands.exec(i),b.preventDefault()),f===a.BACKSPACE_KEY&&g(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),h(this,this.element))},u=function(){setTimeout(function(){this.doc.querySelector(":focus")!==this.element&&this.focus()}.bind(this),0)},v=function(){setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],i.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||i.call(this)},250)),this.config.handleTables&&w.call(this),e(d,["drop","paste","mouseup","focus","keyup"],j.bind(this)),d.addEventListener("focus",k.bind(this),!1),d.addEventListener("blur",l.bind(this),!1),e(this.element,["drop","paste","beforepaste"],m.bind(this),!1),this.element.addEventListener("copy",n.bind(this),!1),this.element.addEventListener("mousedown",p.bind(this),!1),this.element.addEventListener("mouseover",q.bind(this),!1),this.element.addEventListener("click",r.bind(this),!1),this.element.addEventListener("drop",s.bind(this),!1),this.element.addEventListener("keyup",o.bind(this),!1),this.element.addEventListener("keydown",t.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1),!this.config.contentEditableMode&&c.hasIframeFocusIssue()&&(a.addEventListener("focus",u.bind(this),!1),a.addEventListener("blur",v.bind(this),!1))}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container",copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.uneditableContainerClassname,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b;a.browser.supportsModenPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.uneditableContainerClassname});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5),function(a){var b=a.dom,c="wysihtml5-command-dialog-opened",d="input, select, textarea",e="[data-wysihtml5-dialog-field]",f="data-wysihtml5-dialog-field";a.toolbar.Dialog=a.lang.Dispatcher.extend({constructor:function(a,b){this.link=a,this.container=b},_observe:function(){if(!this._observed){var e=this,f=function(a){var b=e._serialize();e.fire("save",b),e.hide(),a.preventDefault(),a.stopPropagation()};b.observe(e.link,"click",function(){b.hasClass(e.link,c)&&setTimeout(function(){e.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&f(b),c===a.ESCAPE_KEY&&(e.fire("cancel"),e.hide())}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",f),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){e.fire("cancel"),e.hide(),a.preventDefault(),a.stopPropagation()});for(var g=this.container.querySelectorAll(d),h=0,i=g.length,j=function(){clearInterval(e.interval)};i>h;h++)b.observe(g[h],"change",j);this._observed=!0}},_serialize:function(){for(var a={},b=this.container.querySelectorAll(e),c=b.length,d=0;c>d;d++)a[b[d].getAttribute(f)]=b[d].value;return a},_interpolate:function(a){for(var b,c,d,g=document.querySelector(":focus"),h=this.container.querySelectorAll(e),i=h.length,j=0;i>j;j++)b=h[j],b!==g&&(a&&"hidden"===b.type||(c=b.getAttribute(f),d=this.elementToChange&&"boolean"!=typeof this.elementToChange?this.elementToChange.getAttribute(c)||"":b.defaultValue,b.value=d))},show:function(a){if(!b.hasClass(this.link,c)){var e=this,f=this.container.querySelector(d);if(this.elementToChange=a,this._observe(),this._interpolate(),a&&(this.interval=setInterval(function(){e._interpolate(!0)},500)),b.addClass(this.link,c),this.container.style.display="",this.fire("show"),f&&!a)try{f.focus()}catch(g){}}},hide:function(){clearInterval(this.interval),this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.fire("hide")}})}(wysihtml5),function(a){var b=a.dom,c={position:"relative"},d={left:0,margin:0,opacity:0,overflow:"hidden",padding:0,position:"absolute",top:0,zIndex:1},e={cursor:"inherit",fontSize:"50px",height:"50px",marginTop:"-25px",outline:0,padding:0,position:"absolute",right:"-4px",top:"50%"},f={"x-webkit-speech":"",speech:""};a.toolbar.Speech=function(g,h){var i=document.createElement("input");if(!a.browser.supportsSpeechApiOn(i))return void(h.style.display="none");var j=g.editor.textarea.element.getAttribute("lang");j&&(f.lang=j);var k=document.createElement("div");a.lang.object(d).merge({width:h.offsetWidth+"px",height:h.offsetHeight+"px"}),b.insert(i).into(k),b.insert(k).into(h),b.setStyles(e).on(i),b.setAttributes(f).on(i),b.setStyles(d).on(k),b.setStyles(c).on(h);var l="onwebkitspeechchange"in i?"webkitspeechchange":"speechchange";b.observe(i,l,function(){g.execCommand("insertText",i.value),i.value=""}),b.observe(i,"click",function(a){b.hasClass(h,"wysihtml5-command-disabled")&&a.preventDefault(),a.stopPropagation()})}}(wysihtml5),function(a){var b="wysihtml5-command-disabled",c="wysihtml5-commands-disabled",d="wysihtml5-command-active",e="wysihtml5-action-active",f=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(f,g,h){this.editor=f,this.container="string"==typeof g?document.getElementById(g):g,this.composer=f.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=f.config.classNameCommandDisabled&&(b=f.config.classNameCommandDisabled),null!=f.config.classNameCommandsDisabled&&(c=f.config.classNameCommandsDisabled),null!=f.config.classNameCommandActive&&(d=f.config.classNameCommandActive),null!=f.config.classNameActionActive&&(e=f.config.classNameActionActive);for(var i=this.container.querySelectorAll("[data-wysihtml5-command=insertSpeech]"),j=i.length,k=0;j>k;k++)new a.toolbar.Speech(this,i[k])},_getLinks:function(b){for(var c,d,e,f,g,h,i=this[b+"Links"]=a.lang.array(this.container.querySelectorAll("[data-wysihtml5-"+b+"]")).get(),j=i.length,k=0,l=this[b+"Mapping"]={};j>k;k++)c=i[k],e=c.getAttribute("data-wysihtml5-"+b),f=c.getAttribute("data-wysihtml5-"+b+"-value"),h=c.getAttribute("data-wysihtml5-"+b+"-blank-value"),d=this.container.querySelector("[data-wysihtml5-"+b+"-group='"+e+"']"),g=this._getDialog(c,e),l[e+":"+f]={link:c,group:d,name:e,value:f,tracksBlankValue:h,dialog:g,state:!1}},_getDialog:function(b,c){var d,e,f=this,g=this.container.querySelector("[data-wysihtml5-dialog='"+c+"']");return g&&(d=a.toolbar["Dialog_"+c]?new a.toolbar["Dialog_"+c](b,g):new a.toolbar.Dialog(b,g),d.on("show",function(){e=f.composer.selection.getBookmark(),f.editor.fire("show:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("save",function(a){e&&f.composer.selection.setBookmark(e),f._execCommand(c,a),f.editor.fire("save:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("cancel",function(){f.editor.focus(!1),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b})})),d},execCommand:function(a,b){if(!this.commandsDisabled){var c=this.commandMapping[a+":"+b];c&&c.dialog&&!c.state?c.dialog.show():this._execCommand(a,b)}},_execCommand:function(a,b){this.editor.focus(!1),this.composer.commands.exec(a,b),this._updateLinkStates()},execAction:function(a){var b=this.editor;"change_view"===a&&b.textarea&&(b.currentView===b.textarea?b.fire("change_view","composer"):b.fire("change_view","textarea")),"showSource"==a&&b.fire("showSource")},_observe:function(){for(var a=this,b=this.editor,d=this.container,e=this.commandLinks.concat(this.actionLinks),g=e.length,h=0;g>h;h++)"A"===e[h].nodeName?f.setAttributes({href:"javascript:;",unselectable:"on"}).on(e[h]):f.setAttributes({unselectable:"on"}).on(e[h]);f.delegate(d,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),f.delegate(d,"[data-wysihtml5-command]","click",function(b){var c=this,d=c.getAttribute("data-wysihtml5-command"),e=c.getAttribute("data-wysihtml5-command-value");a.execCommand(d,e),b.preventDefault()}),f.delegate(d,"[data-wysihtml5-action]","click",function(b){var c=this.getAttribute("data-wysihtml5-action");a.execAction(c),b.preventDefault()}),b.on("interaction:composer",function(){a._updateLinkStates()}),b.on("focus:composer",function(){a.bookmark=null}),this.editor.config.handleTables&&(b.on("tableselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),b.on("tableunselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),b.on("change_view",function(e){b.textarea&&setTimeout(function(){a.commandsDisabled="composer"!==e,a._updateLinkStates(),a.commandsDisabled?f.addClass(d,c):f.removeClass(d,c)},0)})},_updateLinkStates:function(){var c,g,h,i,j=this.commandMapping,k=(this.commandblankMapping,this.actionMapping);for(c in j)i=j[c],this.commandsDisabled?(g=!1,f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()):(g=this.composer.commands.state(i.name,i.value),f.removeClass(i.link,b),i.group&&f.removeClass(i.group,b)),(i.state!==g||i.tracksBlankValue)&&(i.state=g,g?i.tracksBlankValue?f.removeClass(i.link,d):(f.addClass(i.link,d),i.group&&f.addClass(i.group,d),i.dialog&&("object"==typeof g||a.lang.object(g).isArray()?(!i.dialog.multiselect&&a.lang.object(g).isArray()&&(g=1===g.length?g[0]:!0,i.state=g),i.dialog.show(g)):i.dialog.hide())):i.tracksBlankValue?f.addClass(i.link,d):(f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide())); -for(c in k)h=k[c],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea,h.state?f.addClass(h.link,e):f.removeClass(h.link,e))},show:function(){this.container.style.display=""},hide:function(){this.container.style.display="none"}})}(wysihtml5),function(a){a.toolbar.Dialog_createTable=a.toolbar.Dialog.extend({show:function(a){this.base(a)}})}(wysihtml5),function(a){var b=(a.dom,"[data-wysihtml5-dialog-field]"),c="data-wysihtml5-dialog-field";a.toolbar.Dialog_foreColorStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){for(var a={},d=this.container.querySelectorAll(b),e=d.length,f=0;e>f;f++)a[d[f].getAttribute(c)]=d[f].value;return a},_interpolate:function(d){for(var e,f=document.querySelector(":focus"),g=this.container.querySelectorAll(b),h=g.length,i=0,j=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,k=j?j.getAttribute("style"):null,l=k?a.quirks.styleParser.parseColor(k,"color"):null;h>i;i++)e=g[i],e!==f&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(e.value=l?l[3]&&1!=l[3]?"rgba("+l[0]+","+l[1]+","+l[2]+","+l[3]+");":"rgb("+l[0]+","+l[1]+","+l[2]+");":"rgb(0,0,0);"))}})}(wysihtml5),function(a){a.dom;a.toolbar.Dialog_fontSizeStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){return{size:this.container.querySelector('[data-wysihtml5-dialog-field="size"]').value}},_interpolate:function(){var b=document.querySelector(":focus"),c=this.container.querySelector("[data-wysihtml5-dialog-field='size']"),d=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,e=d?d.getAttribute("style"):null,f=e?a.quirks.styleParser.parseFontSize(e):null;c&&c!==b&&f&&!/^\s*$/.test(f)&&(c.value=f)}})}(wysihtml5); +var wysihtml5={version:"0.5.0-beta5",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++co;++o)try{H[o](E)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a){a=a||window,l();for(var b=0,c=I.length;c>b;++b)I[b](a)}function n(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function o(a,b,c){var d=new n(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(E,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return B[a]=d,d}function p(){}function q(){}var r="object",s="function",t="undefined",u=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],v=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],w=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],x=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],y=d(a),z=d(b),A=d(c),B={},C=typeof window!=t&&typeof document!=t,D={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:y,areHostObjects:z,areHostProperties:A,isTextRange:e,getBody:f},E={version:"1.3.0-alpha.20140921",initialized:!1,isBrowser:C,supported:!0,util:D,features:{},modules:B,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==t?!0:rangyAutoInitialize}};E.fail=i,E.warn=j;var F;({}).hasOwnProperty?(D.extend=F=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&F(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},D.createOptions=function(a,b){var c={};return F(c,b),a&&F(c,a),c}):i("hasOwnProperty not supported"),C||i("Rangy can only run in a browser"),function(){var a;if(C){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),D.toArray=a}();var G;C&&(a(document,"addEventListener")?G=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?G=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),D.addListener=G);var H=[];E.init=l,E.addInitListener=function(a){E.initialized?a(E):H.push(a)};var I=[];E.addShimListener=function(a){I.push(a)},C&&(E.shim=E.createMissingNativeApi=m),n.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=B[b],!(a&&a instanceof n))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=o(a,c,b);E.initialized&&E.supported&&d.init()},E.createCoreModule=function(a,b,c){o(a,b,c)},E.RangePrototype=p,E.rangePrototype=new p,E.selectionPrototype=new q,E.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),E.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(O(a,b.startContainer)||O(a,b.endContainer))}function c(a){return a.document||P(a.startContainer)}function d(a){return new K(a.parentNode,N(a))}function e(a){return new K(a.parentNode,N(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return M(b)?c==b.length?I.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:R(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(y(a),y(b),c(b)!=c(a))throw new L("WRONG_DOCUMENT_ERR");var e=Q(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=Q(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach()),10==d.nodeType)throw new L("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(),c.stop)return}else for(d=I.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach()):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach()):a.remove(),10==b.nodeType)throw new L("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!M(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&M(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+I.inspectNode(a.startContainer)+":"+a.startOffset+", "+I.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&M(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||M(this.sc)?S(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||M(this.ec)?S(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,U(a,d))return e;e=e.parentNode}return null}}function p(a,b){if(cb(a,b))throw new L("INVALID_NODE_TYPE_ERR")}function q(a,b){if(!U(b,a.nodeType))throw new L("INVALID_NODE_TYPE_ERR")}function r(a,b){if(0>b||b>(M(a)?a.length:a.childNodes.length))throw new L("INDEX_SIZE_ERR")}function s(a,b){if(ab(a,!0)!==ab(b,!0))throw new L("WRONG_DOCUMENT_ERR")}function t(a){if(bb(a,!0))throw new L("NO_MODIFICATION_ALLOWED_ERR")}function u(a,b){if(!a)throw new L(b)}function v(a){return W&&I.isBrokenNode(a)||!U(Y,a.nodeType)&&!ab(a,!0)}function w(a,b){return b<=(M(a)?a.length:a.childNodes.length)}function x(a){return!!a.startContainer&&!!a.endContainer&&!v(a.startContainer)&&!v(a.endContainer)&&w(a.startContainer,a.startOffset)&&w(a.endContainer,a.endOffset)}function y(a){if(!x(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function z(a,b){y(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;M(e)&&f>0&&f0&&d=N(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function A(a){y(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function B(a){a.START_TO_START=ib,a.START_TO_END=jb,a.END_TO_END=kb,a.END_TO_START=lb,a.NODE_BEFORE=mb,a.NODE_AFTER=nb,a.NODE_BEFORE_AND_AFTER=ob,a.NODE_INSIDE=pb}function C(a){B(a),B(a.prototype)}function D(a,b){return function(){y(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=S(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,t),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function E(c,f){function g(a,b){return function(c){q(c,X),q(V(c),Y);var f=(a?d:e)(c);(b?h:i)(this,f.node,f.offset)}}function h(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((V(b)!=V(d)||1==Q(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function i(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((V(b)!=V(d)||-1==Q(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var l=function(){};l.prototype=a.rangePrototype,c.prototype=new l,J.extend(c.prototype,{setStart:function(a,b){p(a,!0),r(a,b),h(this,a,b)},setEnd:function(a,b){p(a,!0),r(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:g(!0,!0),setStartAfter:g(!1,!0),setEndBefore:g(!0,!1),setEndAfter:g(!1,!1),collapse:function(a){y(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){p(a,!0),f(this,a,0,a,T(a))},selectNode:function(a){p(a,!1),q(a,X);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:D(k,f),deleteContents:D(j,f),canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},splitBoundaries:function(){z(this)},splitBoundariesPreservingPositions:function(a){z(this,a)},normalizeBoundaries:function(){y(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=N(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(M(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&M(i)&&e(i)}h=!this.collapsed}if(h){if(M(a))0==b&&g(a);else if(bx",eb=3==db.firstChild.nodeType}catch(fb){}a.features.htmlParsingConforms=eb;var gb=eb?function(a){var b=this.startContainer,c=P(b);if(!b)throw new L("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:M(b)&&(d=I.parentElement(b)),d=null===d||"HTML"==d.nodeName&&I.isHtmlNamespace(P(d).documentElement)&&I.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,I.fragmentFromNodeChildren(d)}:function(a){var b=c(this),d=b.createElement("body");return d.innerHTML=a,I.fragmentFromNodeChildren(d)},hb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ib=0,jb=1,kb=2,lb=3,mb=0,nb=1,ob=2,pb=3;J.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){y(this),s(this.startContainer,b.startContainer);var c,d,e,f,g=a==lb||a==ib?"start":"end",h=a==jb||a==ib?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],Q(c,d,e,f)},insertNode:function(a){if(y(this),q(a,$),t(this.startContainer),O(a,this.startContainer))throw new L("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){y(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&M(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(q(a,_),!this.canSurroundContents())throw new L("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){y(this);for(var a,b=new H(c(this)),d=hb.length;d--;)a=hb[d],b[a]=this[a];return b},toString:function(){y(this);var a=this.startContainer;if(a===this.endContainer&&M(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){y(this);var b=a.parentNode,c=N(a);if(!b)throw new L("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?ob:mb:e>0?nb:pb},comparePoint:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)<0?-1:Q(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:gb,toHtml:function(){return A(this)},intersectsNode:function(a,b){if(y(this),u(a,"NOT_FOUND_ERR"),P(a)!==c(this))return!1;var d=a.parentNode,e=N(a);u(d,"NOT_FOUND_ERR");var f=Q(d,e,this.endContainer,this.endOffset),g=Q(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)>=0&&Q(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=Q(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=Q(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==Q(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==Q(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new L("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==pb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,T(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return y(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||I.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return H.rangesEqual(this,a)},isValid:function(){return x(this)},inspect:function(){return m(this)},detach:function(){}}),E(H,G),J.extend(H,{rangeProperties:hb,RangeIterator:n,copyComparisonConstants:C,createPrototypeRange:E,inspect:m,toHtml:A,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=H}),E.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b) +}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),k.compareBoundaryPoints=-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=bb.length;e--;)if(c=bb[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(bb.splice(e,1),!0):d;return"deleteAll"==b&&(bb.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);Q?(y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b}):O?(y=e,a.isSelectionValid=function(){return!0}):b.fail("Neither document.selection or window.getSelection() detected."),a.getNativeSelection=y;var R=y(),S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=M(document),j=i.appendChild(document.createElement("div"));j.contentEditable="false";var k=j.appendChild(document.createTextNode("   ")),l=document.createRange();if(l.setStart(k,1),l.collapse(!0),b.addRange(l),Y=1==b.rangeCount,b.removeAllRanges(),!d){var m=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(m&&parseInt(m[1])>=36)X=!1;else{var n=l.cloneRange();l.setStart(k,0),n.setEnd(k,3),n.setStart(k,2),b.addRange(l),b.addRange(n),X=2==b.rangeCount}}for(i.removeChild(j),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var ab;E(R,"getRangeAt")?ab=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(ab=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var bb=[],cb=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),bb.push({win:a,selection:b})),b};a.getSelection=cb,a.getIframeSelection=function(c){return b.deprecationNotice("getIframeSelection()","getSelection(iframeEl)"),a.getSelection(C.getIframeWindow(c))};var db=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){db.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var eb=function(a,b){Z(a.nativeSelection,b),a.refresh()};db.addRange=W?function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)eb(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=ab(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,hb(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:function(a,b){c(b)&&V?eb(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},db.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;db.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},db.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},db.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}db.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fb;if(Q)fb=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fb=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],hb(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fb=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=ab(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}db.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fb(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var gb=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};db.removeRange=_&&P?function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else gb(this,a)}:function(a){gb(this,a)};var hb;!Q&&U&&J.implementsDomRange?(hb=g,db.isBackward=function(){return hb(this)}):hb=db.isBackward=function(){return!1},db.isBackwards=db.isBackward,db.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},db.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},db.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},db.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},db.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},db.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),a.parentNode.removeChild(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},db.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},db.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},db.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},db.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b))}),c},db.setStart=w(!0),db.setEnd=w(!1),a.rangePrototype.select=function(a){cb(this.getDocument()).setSingleRange(this,a)},db.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},db.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},db.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},db.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},db.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(db.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),db.getName=function(){return"WrappedSelection"},db.inspect=function(){return x(this)},db.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=db,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return cb(a)}),a=null})});var J=!1,K=function(){J||(J=!0,!E.initialized&&E.config.autoInitialize&&l())};return C&&("complete"==document.readyState?K():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",K,!1),G(window,"load",K))),E},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(p)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),g.parentNode.removeChild(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString();return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:c,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(i.parentNode.removeChild(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),i.parentNode.removeChild(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[];b=b.slice(0),b.sort(f);for(var j=0,k=b.length;k>j;++j)i[j]=g(b[j],d);for(j=k-1;j>=0;--j)e=b[j],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[j].markerId,h)):(e.setEndBefore(c(i[j].endMarkerId,h)),e.setStartAfter(c(i[j].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],"backward"):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&d.parentNode.removeChild(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p="";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})})},this);var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;aa:">"===b?a>d:"<="===b?d>=a:">="===b?a>=d:void 0:a===d:!0}var d=navigator.userAgent,e=document.createElement("div"),f=-1!==d.indexOf("Gecko")&&-1===d.indexOf("KHTML"),g=-1!==d.indexOf("AppleWebKit/"),h=-1!==d.indexOf("Chrome/"),i=-1!==d.indexOf("Opera/");return{USER_AGENT:d,supported:function(){var c=this.USER_AGENT.toLowerCase(),d="contentEditable"in e,f=document.execCommand&&document.queryCommandSupported&&document.queryCommandState,g=document.querySelector&&document.querySelectorAll,h=this.isIos()&&a(c)<5||this.isAndroid()&&b(c)<4||-1!==c.indexOf("opera mobi")||-1!==c.indexOf("hpwos/");return d&&f&&g&&!h},isTouchDevice:function(){return this.supportsEvent("touchmove")},isIos:function(){return/ipad|iphone|ipod/i.test(this.USER_AGENT)},isAndroid:function(){return-1!==this.USER_AGENT.indexOf("Android")},supportsSandboxedIframes:function(){return c()},throwsMixedContentWarningWhenIframeSrcIsEmpty:function(){return!("querySelector"in document)},displaysCaretInEmptyContentEditableCorrectly:function(){return c()},hasCurrentStyleProperty:function(){return"currentStyle"in e},insertsLineBreaksOnReturn:function(){return f},supportsPlaceholderAttributeOn:function(a){return"placeholder"in a},supportsEvent:function(a){return"on"+a in e||function(){return e.setAttribute("on"+a,"return;"),"function"==typeof e["on"+a]}()},supportsEventsInIframeCorrectly:function(){return!i},supportsHTML5Tags:function(a){var b=a.createElement("div"),c="
foo
";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:c(10,"<="),insertUnorderedList:c(),insertOrderedList:c()},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return c()},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||c()||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=e.cloneNode(!1);return c.innerHTML="

",b=c.innerHTML.toLowerCase(),a="

"===b||"

"===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=d.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return c(9)&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return c()},hasProblemsSettingCaretAfterImg:function(){return c()},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return c()},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window},supportsModenPaste:function(){return!("clipboardData"in window)},fixStyleKey:function(a){return"cssFloat"===a?"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat":a}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":"  "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi,"  ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b);for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList; +if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){return b.nodeType!==wysihtml5.ELEMENT_NODE&&(b=b.parentNode),a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE],d=function(b){return b.nodeType===a.TEXT_NODE&&/^\s*$/g.test(b.data)};return{prev:function(e){var f=b.previousSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).prev(e):f:null},next:function(e){var f=b.nextSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).next(e):f:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim()){f=!0;break}}if(!f)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(){var c=b.ownerDocument,e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&!d(e)&&a.dom.insert(c.createElement("br")).after(b),f&&!d(f)&&a.dom.insert(c.createElement("br")).before(b)},remove:function(){var d=a.dom.domNode(b).next({ignoreBlankTexts:!0}),e=a.dom.domNode(b).prev({ignoreBlankTexts:!0});d&&c(d)&&d.parentNode.removeChild(d),e&&c(e)&&e.parentNode.removeChild(e)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||"

"===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=v[c];return f&&(b||"alt"===a&&"IMG"==d)&&(e=f(b),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b){return b?b.replace(a,""):""}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode&&a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l=a.ownerDocument,m=l.createDocumentFragment(),n=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0});if(e)for(!n||b(n)||c(n)||d(m);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild;f=k.firstChild;)h=f===g,i=h&&!b(f)&&!c(f),m.appendChild(f),i&&d(m);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)m.appendChild(f);else{for(j=l.createElement("p");f=k.firstChild;)j.appendChild(f);m.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(m,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className="wysihtml5-sandbox",a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}a.polyfills&&a.polyfills(h,i),this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView||this.element.ownerDocument.parentWindow},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.element=d?this._bindElement(d):this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className="wysihtml5-sandbox",this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!==a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d){var e="placeholder",f=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,e)},g=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,e))};b.on("set_placeholder",g).on("unset_placeholder",f).on("focus:composer",f).on("paste:composer",f).on("blur:composer",g),g()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode(" ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0) +},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^$/i.test(d.trim())&&(d=!1),b(d),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("

 

"==b||"

 

 

"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"}),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{query:"table"}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(a){var b=wysihtml5.dom.getParentElement(a.target,{query:"td, th"});b&&d(b)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(){var b;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(b=c.lastChild,a.dom.unwrap(c),this.setAfter(b)):c.parentNode.removeChild(c))}.bind(this),f=function(){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c,d){var e,f=rangy.createRange(this.doc),g=function(){if(!e)if(c){var d=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(d,b.nextSibling),this.selectNode(d),setTimeout(function(){d&&d.parentNode&&d.parentNode.removeChild(d)},0)}else this.createTemporaryCaretSpaceAfter(b)}.bind(this);if(f.setStartAfter(b),f.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(f),g(),d&&d(e);else{var h=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(h),setTimeout(function(){e=this.setSelection(f),g(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{query:"li"},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},caretIsBeforeUneditable:function(){var b,c,d,e=this.getSelection(),f=e.anchorNode,g=e.anchorOffset,h=[];if(f)if(0===g){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode(this.unselectableClass?{leafClasses:[this.unselectableClass]}:!1):null;if(j)for(var k=this.getOwnUneditables(),l=0,m=k.length;m>l;l++)if(j===k[l])return k[l]}else{if(b=e.getRangeAt(0),b.setStart(b.startContainer,b.startOffset-1),b){c=b.getNodes([1,3]);for(var n=0,o=c.length;o>n;n++)c[n].parentNode&&c[n].parentNode===f&&h.push(c[n])}if(d=h.length>0?h[h.length-1]:null,d&&1===d.nodeType&&a.dom.hasClass(d,this.unselectableClass))return d}return!1},executeAndRestoreRangy:function(a){var b=rangy.saveSelection(this.win);if(b)try{a()}catch(c){setTimeout(function(){throw c},0)}else a();rangy.restoreSelection(b)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(a,b){var c,d,e,f,g=this.getSelection();g.rangeCount>0&&(c=g.getRangeAt(0).cloneRange(),c.setEndAfter(a),d=c.extractContents(),a.parentNode.insertBefore(d,a.nextSibling),e=b.firstChild,f=b.lastChild,a.parentNode.insertBefore(b,a.nextSibling),e&&f&&(c.setStartBefore(e),c.setEndAfter(f),this.setSelection(c)))},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.win.getSelection();a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length; +return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),function(a){a.commands.bold={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"b")},state:function(b,c){return a.commands.formatInline.state(b,c,"b")}}}(wysihtml5),function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(d,e,f){var g=this.state(d,e);if(g){if((!f||!f.href)&&null!==g.length&&void 0!==g.length&&g.length>0){for(var h=0;hh;h++)d=b[h],e=c.getParentElement(d,{query:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.uneditableContainerClassname),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.win);for(var o in m)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.win),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.win),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var p=g.length;p--;)n=n.concat(i(g[p],e,j(g[p].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b);h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c=b.selection.getSelectedNode();return c&&c.nodeName&&"PRE"==c.nodeName&&c.firstChild&&c.firstChild.nodeName&&"CODE"==c.firstChild.nodeName?c:a.dom.getParentElement(c,{query:"pre code"})}}}(wysihtml5),function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange(),l=a.selection.getOwnRanges();return l&&0!=l.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(l),void(i?j||a.cleanUp():(k.setStart(l[0].startContainer,l[0].startOffset),k.setEnd(l[l.length-1].endContainer,l[l.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l,m=b.doc,n=d[f]||f;return a.dom.hasElementWithTagName(m,f)||a.dom.hasElementWithTagName(m,n)?g&&!a.dom.hasElementWithClassName(m,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?(l=c(f,g,h,i,j,b.element).isAppliedToRange(k),l&&l.elements?l.elements:!1):!1):!1}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"}),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){var h=f(g,d);if(h.length)for(var i=h.length;i--;)a.dom.renameElement(h[i],c.toLowerCase());else{e=f(["OL","UL"],d);for(var j=e.length;j--;)a.dom.resolveList(e[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.uneditableContainerClassname),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),function(a){a.commands.italic={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"i")},state:function(b,c){return a.commands.formatInline.state(b,c,"i")}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}}}(wysihtml5),function(a){a.commands.underline={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"u")},state:function(b,c){return a.commands.formatInline.state(b,c,"u")}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}}}(wysihtml5),function(a){a.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"
",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b){if(b.tableSelection){var c=b.tableSelection.start,d=b.tableSelection.end;if(c&&d&&c==d&&(a.dom.getAttribute(c,"colspan")&&parseInt(a.dom.getAttribute(c,"colspan"),10)>1||a.dom.getAttribute(c,"rowspan")&&parseInt(a.dom.getAttribute(c,"rowspan"),10)>1))return[c]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){a.commands.subscript={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"sub")},state:function(b,c){return a.commands.formatInline.state(b,c,"sub")}}}(wysihtml5),function(a){a.commands.superscript={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"sup")},state:function(b,c){return a.commands.formatInline.state(b,c,"sup")}}}(wysihtml5),function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this; +this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.win)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getScrollPos:function(){if(this.doc&&this.win){var a={};return a.y="undefined"!=typeof this.win.pageYOffset?this.win.pageYOffset:(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,a.x="undefined"!=typeof this.win.pageXOffset?this.win.pageXOffset:(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>|

|<\/p>)*$/i.test(a)||""===a||"
"===a||"

"===a||"


"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.win=this.sandbox.getWindow(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.uneditableContainerClassname])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(b,c){{var d=c.selection;c.element}if(d.isCollapsed())if(d.caretIsInTheBeginnig("li"))b.preventDefault(),c.commands.exec("outdentList");else if(d.caretIsInTheBeginnig())b.preventDefault();else{if(d.caretIsFirstInSelection()&&d.getPreviousNode()&&d.getPreviousNode().nodeName&&/^H\d$/gi.test(d.getPreviousNode().nodeName)){var e=d.getPreviousNode();if(/^\s*$/.test(e.textContent||e.innerText))b.preventDefault(),e.parentNode.removeChild(e);else if(e.lastChild){var f=e.lastChild,g=a.dom.getParentElement(d.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,c.element);if(e)if(g){for(b.preventDefault();g.firstChild;)e.appendChild(g.firstChild);d.setAfter(f)}else 3===d.getSelectedNode().nodeType&&(b.preventDefault(),e.appendChild(d.getSelectedNode()),d.setAfter(f))}}var h=d.caretIsBeforeUneditable();if(h){b.preventDefault();try{var i=new CustomEvent("wysihtml5:uneditable:delete");h.dispatchEvent(i)}catch(j){}h.parentNode.removeChild(h)}}else d.containsUneditable()&&(b.preventDefault(),d.deleteContents())},h=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},i=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},j=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},k=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},l=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},m=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},n=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},o=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},p=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.uneditableContainerClassname+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},q=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},r=function(b){if(this.config.uneditableContainerClassname){var c=a.dom.getParentElement(b.target,{query:"."+this.config.uneditableContainerClassname},!1,this.element);c&&this.selection.setAfter(c)}},s=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},t=function(b){var c,e,f=b.keyCode,i=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&i&&(this.commands.exec(i),b.preventDefault()),f===a.BACKSPACE_KEY&&g(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),h(this,this.element))},u=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],i.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||i.call(this)},250)),this.config.handleTables&&u.call(this),e(d,["drop","paste","mouseup","focus","keyup"],j.bind(this)),d.addEventListener("focus",k.bind(this),!1),d.addEventListener("blur",l.bind(this),!1),e(this.element,["drop","paste","beforepaste"],m.bind(this),!1),this.element.addEventListener("copy",n.bind(this),!1),this.element.addEventListener("mousedown",p.bind(this),!1),this.element.addEventListener("mouseover",q.bind(this),!1),this.element.addEventListener("click",r.bind(this),!1),this.element.addEventListener("drop",s.bind(this),!1),this.element.addEventListener("keyup",o.bind(this),!1),this.element.addEventListener("keydown",t.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1)}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container",copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.uneditableContainerClassname,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b;a.browser.supportsModenPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.uneditableContainerClassname});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5),function(a){var b=a.dom,c="wysihtml5-command-dialog-opened",d="input, select, textarea",e="[data-wysihtml5-dialog-field]",f="data-wysihtml5-dialog-field";a.toolbar.Dialog=a.lang.Dispatcher.extend({constructor:function(a,b){this.link=a,this.container=b},_observe:function(){if(!this._observed){var e=this,f=function(a){var b=e._serialize();e.fire("save",b),e.hide(),a.preventDefault(),a.stopPropagation()};b.observe(e.link,"click",function(){b.hasClass(e.link,c)&&setTimeout(function(){e.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&f(b),c===a.ESCAPE_KEY&&(e.fire("cancel"),e.hide())}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",f),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){e.fire("cancel"),e.hide(),a.preventDefault(),a.stopPropagation()});for(var g=this.container.querySelectorAll(d),h=0,i=g.length,j=function(){clearInterval(e.interval)};i>h;h++)b.observe(g[h],"change",j);this._observed=!0}},_serialize:function(){for(var a={},b=this.container.querySelectorAll(e),c=b.length,d=0;c>d;d++)a[b[d].getAttribute(f)]=b[d].value;return a},_interpolate:function(a){for(var b,c,d,g=document.querySelector(":focus"),h=this.container.querySelectorAll(e),i=h.length,j=0;i>j;j++)b=h[j],b!==g&&(a&&"hidden"===b.type||(c=b.getAttribute(f),d=this.elementToChange&&"boolean"!=typeof this.elementToChange?this.elementToChange.getAttribute(c)||"":b.defaultValue,b.value=d))},show:function(a){if(!b.hasClass(this.link,c)){var e=this,f=this.container.querySelector(d);if(this.elementToChange=a,this._observe(),this._interpolate(),a&&(this.interval=setInterval(function(){e._interpolate(!0)},500)),b.addClass(this.link,c),this.container.style.display="",this.fire("show"),f&&!a)try{f.focus()}catch(g){}}},hide:function(){clearInterval(this.interval),this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.fire("hide")}})}(wysihtml5),function(a){var b=a.dom,c={position:"relative"},d={left:0,margin:0,opacity:0,overflow:"hidden",padding:0,position:"absolute",top:0,zIndex:1},e={cursor:"inherit",fontSize:"50px",height:"50px",marginTop:"-25px",outline:0,padding:0,position:"absolute",right:"-4px",top:"50%"},f={"x-webkit-speech":"",speech:""};a.toolbar.Speech=function(g,h){var i=document.createElement("input");if(!a.browser.supportsSpeechApiOn(i))return void(h.style.display="none");var j=g.editor.textarea.element.getAttribute("lang");j&&(f.lang=j);var k=document.createElement("div");a.lang.object(d).merge({width:h.offsetWidth+"px",height:h.offsetHeight+"px"}),b.insert(i).into(k),b.insert(k).into(h),b.setStyles(e).on(i),b.setAttributes(f).on(i),b.setStyles(d).on(k),b.setStyles(c).on(h);var l="onwebkitspeechchange"in i?"webkitspeechchange":"speechchange";b.observe(i,l,function(){g.execCommand("insertText",i.value),i.value=""}),b.observe(i,"click",function(a){b.hasClass(h,"wysihtml5-command-disabled")&&a.preventDefault(),a.stopPropagation()})}}(wysihtml5),function(a){var b="wysihtml5-command-disabled",c="wysihtml5-commands-disabled",d="wysihtml5-command-active",e="wysihtml5-action-active",f=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(f,g,h){this.editor=f,this.container="string"==typeof g?document.getElementById(g):g,this.composer=f.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=f.config.classNameCommandDisabled&&(b=f.config.classNameCommandDisabled),null!=f.config.classNameCommandsDisabled&&(c=f.config.classNameCommandsDisabled),null!=f.config.classNameCommandActive&&(d=f.config.classNameCommandActive),null!=f.config.classNameActionActive&&(e=f.config.classNameActionActive);for(var i=this.container.querySelectorAll("[data-wysihtml5-command=insertSpeech]"),j=i.length,k=0;j>k;k++)new a.toolbar.Speech(this,i[k])},_getLinks:function(b){for(var c,d,e,f,g,h,i=this[b+"Links"]=a.lang.array(this.container.querySelectorAll("[data-wysihtml5-"+b+"]")).get(),j=i.length,k=0,l=this[b+"Mapping"]={};j>k;k++)c=i[k],e=c.getAttribute("data-wysihtml5-"+b),f=c.getAttribute("data-wysihtml5-"+b+"-value"),h=c.getAttribute("data-wysihtml5-"+b+"-blank-value"),d=this.container.querySelector("[data-wysihtml5-"+b+"-group='"+e+"']"),g=this._getDialog(c,e),l[e+":"+f]={link:c,group:d,name:e,value:f,tracksBlankValue:h,dialog:g,state:!1}},_getDialog:function(b,c){var d,e,f=this,g=this.container.querySelector("[data-wysihtml5-dialog='"+c+"']");return g&&(d=a.toolbar["Dialog_"+c]?new a.toolbar["Dialog_"+c](b,g):new a.toolbar.Dialog(b,g),d.on("show",function(){e=f.composer.selection.getBookmark(),f.editor.fire("show:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("save",function(a){e&&f.composer.selection.setBookmark(e),f._execCommand(c,a),f.editor.fire("save:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("cancel",function(){f.editor.focus(!1),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b})})),d},execCommand:function(a,b){if(!this.commandsDisabled){var c=this.commandMapping[a+":"+b];c&&c.dialog&&!c.state?c.dialog.show():this._execCommand(a,b)}},_execCommand:function(a,b){this.editor.focus(!1),this.composer.commands.exec(a,b),this._updateLinkStates()},execAction:function(a){var b=this.editor;"change_view"===a&&b.textarea&&(b.currentView===b.textarea?b.fire("change_view","composer"):b.fire("change_view","textarea")),"showSource"==a&&b.fire("showSource")},_observe:function(){for(var a=this,b=this.editor,d=this.container,e=this.commandLinks.concat(this.actionLinks),g=e.length,h=0;g>h;h++)"A"===e[h].nodeName?f.setAttributes({href:"javascript:;",unselectable:"on"}).on(e[h]):f.setAttributes({unselectable:"on"}).on(e[h]);f.delegate(d,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),f.delegate(d,"[data-wysihtml5-command]","click",function(b){var c=this,d=c.getAttribute("data-wysihtml5-command"),e=c.getAttribute("data-wysihtml5-command-value");a.execCommand(d,e),b.preventDefault()}),f.delegate(d,"[data-wysihtml5-action]","click",function(b){var c=this.getAttribute("data-wysihtml5-action");a.execAction(c),b.preventDefault()}),b.on("interaction:composer",function(){a._updateLinkStates()}),b.on("focus:composer",function(){a.bookmark=null}),this.editor.config.handleTables&&(b.on("tableselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),b.on("tableunselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),b.on("change_view",function(e){b.textarea&&setTimeout(function(){a.commandsDisabled="composer"!==e,a._updateLinkStates(),a.commandsDisabled?f.addClass(d,c):f.removeClass(d,c)},0)})},_updateLinkStates:function(){var c,g,h,i,j=this.commandMapping,k=(this.commandblankMapping,this.actionMapping);for(c in j)i=j[c],this.commandsDisabled?(g=!1,f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()):(g=this.composer.commands.state(i.name,i.value),f.removeClass(i.link,b),i.group&&f.removeClass(i.group,b)),(i.state!==g||i.tracksBlankValue)&&(i.state=g,g?i.tracksBlankValue?f.removeClass(i.link,d):(f.addClass(i.link,d),i.group&&f.addClass(i.group,d),i.dialog&&("object"==typeof g||a.lang.object(g).isArray()?(!i.dialog.multiselect&&a.lang.object(g).isArray()&&(g=1===g.length?g[0]:!0,i.state=g),i.dialog.show(g)):i.dialog.hide())):i.tracksBlankValue?f.addClass(i.link,d):(f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()));for(c in k)h=k[c],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea,h.state?f.addClass(h.link,e):f.removeClass(h.link,e))},show:function(){this.container.style.display=""},hide:function(){this.container.style.display="none"}})}(wysihtml5),function(a){a.toolbar.Dialog_createTable=a.toolbar.Dialog.extend({show:function(a){this.base(a)}})}(wysihtml5),function(a){var b=(a.dom,"[data-wysihtml5-dialog-field]"),c="data-wysihtml5-dialog-field"; +a.toolbar.Dialog_foreColorStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){for(var a={},d=this.container.querySelectorAll(b),e=d.length,f=0;e>f;f++)a[d[f].getAttribute(c)]=d[f].value;return a},_interpolate:function(d){for(var e,f=document.querySelector(":focus"),g=this.container.querySelectorAll(b),h=g.length,i=0,j=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,k=j?j.getAttribute("style"):null,l=k?a.quirks.styleParser.parseColor(k,"color"):null;h>i;i++)e=g[i],e!==f&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(e.value=l?l[3]&&1!=l[3]?"rgba("+l[0]+","+l[1]+","+l[2]+","+l[3]+");":"rgb("+l[0]+","+l[1]+","+l[2]+");":"rgb(0,0,0);"))}})}(wysihtml5),function(a){a.dom;a.toolbar.Dialog_fontSizeStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){return{size:this.container.querySelector('[data-wysihtml5-dialog-field="size"]').value}},_interpolate:function(){var b=document.querySelector(":focus"),c=this.container.querySelector("[data-wysihtml5-dialog-field='size']"),d=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,e=d?d.getAttribute("style"):null,f=e?a.quirks.styleParser.parseFontSize(e):null;c&&c!==b&&f&&!/^\s*$/.test(f)&&(c.value=f)}})}(wysihtml5); //# sourceMappingURL=wysihtml-toolbar.min.map \ No newline at end of file diff --git a/dist/wysihtml-toolbar.min.map b/dist/wysihtml-toolbar.min.map index 3eaaac8..3f369a0 100644 --- a/dist/wysihtml-toolbar.min.map +++ b/dist/wysihtml-toolbar.min.map @@ -1 +1 @@ -{"version":3,"file":"wysihtml-toolbar.min.js","sources":["wysihtml-toolbar.js"],"names":["String","prototype","trim","rtrim","this","replace","Event","preventDefault","returnValue","stopPropagation","cancelBubble","Element","addEventListener","eventListeners","type","listener","self","wrapper","e","target","srcElement","currentTarget","handleEvent","call","wrapper2","document","readyState","attachEvent","push","object","window","removeEventListener","counter","length","eventListener","detachEvent","splice","HTMLDocument","Window","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","createRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","shim","win","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","util","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","toArray","el","appendChild","childNodes","nodeType","arrayLike","arr","addListener","eventType","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","deprecationNotice","deprecated","replacement","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","previous","toSource","hidden","key","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","isPlainObject","isFunction","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","html","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","event","domNode","defaultNodeTypes","_isBlankText","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","ingoreEmpty","all","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","attributeValue","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","getAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","innerHtml","simulatePlaceholder","editor","placeholderText","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","unparseColor","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","which","ctrlKey","metaKey","minWidth","zIndex","notVisual","fixWebkitSelection","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","contentNodes","lastNode","prevLeaf","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","uneditableContainerClassname","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","styleRegExp","identifier","htmlApplier","strong","em","b","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertBlockQuote","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","innerLists","otherLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","handleDeleteKeyPress","selNode","curNode","beforeUneditable","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","handleIframeFocus","handleIframeBlur","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","formElements","_clearInterval","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","firstField","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","dialog","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","commandValue","commandsDisabled","commandObj","commandMapping","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","actionMapping","commandblankMapping","multiselect","Dialog_createTable","Dialog_foreColorStyle","firstElement","Dialog_fontSizeStyle"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"wysihtml-toolbar.min.js","sources":["wysihtml-toolbar.js"],"names":["wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","document","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","window","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","body","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","createRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","util","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","toArray","el","appendChild","childNodes","nodeType","arrayLike","arr","addListener","eventType","listener","addEventListener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","deprecationNotice","deprecated","replacement","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","readyState","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","isPlainObject","isFunction","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","html","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","removeEventListener","domNode","defaultNodeTypes","_isBlankText","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","ingoreEmpty","all","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","attributeValue","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","getAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","innerHtml","simulatePlaceholder","editor","placeholderText","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","unparseColor","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","ctrlKey","metaKey","minWidth","zIndex","notVisual","fixWebkitSelection","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","contentNodes","lastNode","prevLeaf","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","uneditableContainerClassname","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","wrapper","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","styleRegExp","identifier","htmlApplier","strong","em","b","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertBlockQuote","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","innerLists","otherLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","handleDeleteKeyPress","selNode","curNode","beforeUneditable","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","formElements","_clearInterval","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","firstField","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","dialog","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","commandValue","commandsDisabled","commandObj","commandMapping","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","actionMapping","commandblankMapping","multiselect","Dialog_createTable","Dialog_foreColorStyle","firstElement","Dialog_fontSizeStyle"],"mappings":"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"} \ No newline at end of file diff --git a/dist/wysihtml.js b/dist/wysihtml.js index 3b76a14..cc24f0e 100644 --- a/dist/wysihtml.js +++ b/dist/wysihtml.js @@ -1,418 +1,368 @@ -// TODO: in future try to replace most inline compability checks with polyfills for code readability +/** + * @license wysihtml5x v0.5.0-beta5 + * https://github.com/Edicy/wysihtml5 + * + * Author: Christopher Blum (https://github.com/tiff) + * Secondary author of extended features: Oliver Pulges (https://github.com/pulges) + * + * Copyright (C) 2012 XING AG + * Licensed under the MIT license (MIT) + * + */ +var wysihtml5 = { + version: "0.5.0-beta5", + + // namespaces + commands: {}, + dom: {}, + quirks: {}, + toolbar: {}, + lang: {}, + selection: {}, + views: {}, + + INVISIBLE_SPACE: "\uFEFF", + INVISIBLE_SPACE_REG_EXP: /\uFEFF/g, + + EMPTY_FUNCTION: function() {}, + + ELEMENT_NODE: 1, + TEXT_NODE: 3, -// IE8 SUPPORT BLOCK -// You can compile without all this if IE8 is not needed + BACKSPACE_KEY: 8, + ENTER_KEY: 13, + ESCAPE_KEY: 27, + SPACE_KEY: 32, + TAB_KEY: 9, + DELETE_KEY: 46 +}; +;wysihtml5.polyfills = function(win, doc) { + + // TODO: in future try to replace most inline compability checks with polyfills for code readability -// String trim for ie8 -if (!String.prototype.trim) { + // IE8 SUPPORT BLOCK + // You can compile without all this if IE8 is not needed + + // String trim for ie8 + if (!String.prototype.trim) { + (function() { + // Make sure we trim BOM and NBSP + var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + String.prototype.trim = function() { + return this.replace(rtrim, ''); + }; + })(); + } + + // addEventListener, removeEventListener (function() { - // Make sure we trim BOM and NBSP - var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - String.prototype.trim = function() { - return this.replace(rtrim, ''); + var s_add = 'addEventListener', + s_rem = 'removeEventListener'; + if( doc[s_add] ) return; + win.Element.prototype[ s_add ] = win[ s_add ] = doc[ s_add ] = function( on, fn, self ) { + return (self = this).attachEvent( 'on' + on, function(e){ + var e = e || win.event; + e.target = e.target || e.srcElement; + e.preventDefault = e.preventDefault || function(){e.returnValue = false}; + e.stopPropagation = e.stopPropagation || function(){e.cancelBubble = true}; + e.which = e.button ? ( e.button === 2 ? 3 : e.button === 4 ? 2 : e.button ) : e.keyCode; + fn.call(self, e); + }); }; - })(); -} - -// addEventListener, removeEventListener -// TODO: make usage of wysihtml5.dom.observe obsolete -(function() { - if (!Event.prototype.preventDefault) { - Event.prototype.preventDefault=function() { - this.returnValue=false; + win.Element.prototype[ s_rem ] = win[ s_rem ] = doc[ s_rem ] = function( on, fn ) { + return this.detachEvent( 'on' + on, fn ); }; + })(); + + // element.textContent polyfill. + if (Object.defineProperty && Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(win.Element.prototype, "textContent") && !Object.getOwnPropertyDescriptor(win.Element.prototype, "textContent").get) { + (function() { + var innerText = Object.getOwnPropertyDescriptor(win.Element.prototype, "innerText"); + Object.defineProperty(win.Element.prototype, "textContent", + { + get: function() { + return innerText.get.call(this); + }, + set: function(s) { + return innerText.set.call(this, s); + } + } + ); + })(); } - if (!Event.prototype.stopPropagation) { - Event.prototype.stopPropagation=function() { - this.cancelBubble=true; + + // isArray polyfill for ie8 + if(!Array.isArray) { + Array.isArray = function(arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; }; } - if (!Element.prototype.addEventListener) { - var eventListeners=[]; - - var addEventListener=function(type,listener /*, useCapture (will be ignored) */) { - var self=this; - var wrapper=function(e) { - e.target=e.srcElement; - e.currentTarget=self; - if (listener.handleEvent) { - listener.handleEvent(e); - } else { - listener.call(self,e); - } - }; - if (type=="DOMContentLoaded") { - var wrapper2=function(e) { - if (document.readyState=="complete") { - wrapper(e); - } - }; - document.attachEvent("onreadystatechange",wrapper2); - eventListeners.push({object:this,type:type,listener:listener,wrapper:wrapper2}); - - if (document.readyState=="complete") { - var e=new Event(); - e.srcElement=window; - wrapper2(e); - } - } else { - this.attachEvent("on"+type,wrapper); - eventListeners.push({object:this,type:type,listener:listener,wrapper:wrapper}); - } + + // Array indexOf for ie8 + if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(a,f) { + for(var c=this.length,r=-1,d=f>>>0; ~(c-d); r=this[--c]===a?c:r); + return r; }; - var removeEventListener=function(type,listener /*, useCapture (will be ignored) */) { - var counter=0; - while (counter>>0; ~(c-d); r=this[--c]===a?c:r); - return r; - }; -} - -// Function.prototype.bind() -// TODO: clean the code from variable 'that' as it can be confusing -if (!Function.prototype.bind) { - Function.prototype.bind = function(oThis) { - if (typeof this !== 'function') { - // closest thing possible to the ECMAScript 5 - // internal IsCallable function - throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable'); - } - - var aArgs = Array.prototype.slice.call(arguments, 1), - fToBind = this, - fNOP = function() {}, - fBound = function() { - return fToBind.apply(this instanceof fNOP && oThis - ? this - : oThis, - aArgs.concat(Array.prototype.slice.call(arguments))); - }; + // Element.classList for ie8-9 (toggle all IE) + // source http://purl.eligrey.com/github/classList.js/blob/master/classList.js - fNOP.prototype = this.prototype; - fBound.prototype = new fNOP(); + if ("document" in win) { + // Full polyfill for browsers with no classList support + if (!("classList" in doc.createElement("_"))) { + (function(view) { + "use strict"; + if (!('Element' in view)) return; - return fBound; - }; -} - -// Element.matches Adds ie8 support and unifies nonstandard function names in other browsers -this.Element && function(ElementPrototype) { - ElementPrototype.matches = ElementPrototype.matches || - ElementPrototype.matchesSelector || - ElementPrototype.mozMatchesSelector || - ElementPrototype.msMatchesSelector || - ElementPrototype.oMatchesSelector || - ElementPrototype.webkitMatchesSelector || - function (selector) { - var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1; - while (nodes[++i] && nodes[i] != node); - return !!nodes[i]; - }; -}(Element.prototype); - -// Element.classList for ie8-9 (toggle all IE) -// source http://purl.eligrey.com/github/classList.js/blob/master/classList.js - -if ("document" in self) { - // Full polyfill for browsers with no classList support - if (!("classList" in document.createElement("_"))) { - (function(view) { - "use strict"; - if (!('Element' in view)) return; - - var - classListProp = "classList", - protoProp = "prototype", - elemCtrProto = view.Element[protoProp], - objCtr = Object, - strTrim = String[protoProp].trim || function() { - return this.replace(/^\s+|\s+$/g, ""); - }, - arrIndexOf = Array[protoProp].indexOf || function(item) { + var + classListProp = "classList", + protoProp = "prototype", + elemCtrProto = view.Element[protoProp], + objCtr = Object, + strTrim = String[protoProp].trim || function() { + return this.replace(/^\s+|\s+$/g, ""); + }, + arrIndexOf = Array[protoProp].indexOf || function(item) { + var + i = 0, + len = this.length; + for (; i < len; i++) { + if (i in this && this[i] === item) { + return i; + } + } + return -1; + }, // Vendors: please allow content code to instantiate DOMExceptions + DOMEx = function(type, message) { + this.name = type; + this.code = DOMException[type]; + this.message = message; + }, + checkTokenAndGetIndex = function(classList, token) { + if (token === "") { + throw new DOMEx( + "SYNTAX_ERR", "An invalid or illegal string was specified" + ); + } + if (/\s/.test(token)) { + throw new DOMEx( + "INVALID_CHARACTER_ERR", "String contains an invalid character" + ); + } + return arrIndexOf.call(classList, token); + }, + ClassList = function(elem) { + var + trimmedClasses = strTrim.call(elem.getAttribute("class") || ""), + classes = trimmedClasses ? trimmedClasses.split(/\s+/) : [], + i = 0, + len = classes.length; + for (; i < len; i++) { + this.push(classes[i]); + } + this._updateClassName = function() { + elem.setAttribute("class", this.toString()); + }; + }, + classListProto = ClassList[protoProp] = [], + classListGetter = function() { + return new ClassList(this); + }; + // Most DOMException implementations don't allow calling DOMException's toString() + // on non-DOMExceptions. Error's toString() is sufficient here. + DOMEx[protoProp] = Error[protoProp]; + classListProto.item = function(i) { + return this[i] || null; + }; + classListProto.contains = function(token) { + token += ""; + return checkTokenAndGetIndex(this, token) !== -1; + }; + classListProto.add = function() { var + tokens = arguments, i = 0, - len = this.length; - for (; i < len; i++) { - if (i in this && this[i] === item) { - return i; + l = tokens.length, + token, updated = false; + do { + token = tokens[i] + ""; + if (checkTokenAndGetIndex(this, token) === -1) { + this.push(token); + updated = true; } } - return -1; - }, // Vendors: please allow content code to instantiate DOMExceptions - DOMEx = function(type, message) { - this.name = type; - this.code = DOMException[type]; - this.message = message; - }, - checkTokenAndGetIndex = function(classList, token) { - if (token === "") { - throw new DOMEx( - "SYNTAX_ERR", "An invalid or illegal string was specified" - ); - } - if (/\s/.test(token)) { - throw new DOMEx( - "INVALID_CHARACTER_ERR", "String contains an invalid character" - ); + while (++i < l); + + if (updated) { + this._updateClassName(); } - return arrIndexOf.call(classList, token); - }, - ClassList = function(elem) { + }; + classListProto.remove = function() { var - trimmedClasses = strTrim.call(elem.getAttribute("class") || ""), - classes = trimmedClasses ? trimmedClasses.split(/\s+/) : [], + tokens = arguments, i = 0, - len = classes.length; - for (; i < len; i++) { - this.push(classes[i]); - } - this._updateClassName = function() { - elem.setAttribute("class", this.toString()); - }; - }, - classListProto = ClassList[protoProp] = [], - classListGetter = function() { - return new ClassList(this); - }; - // Most DOMException implementations don't allow calling DOMException's toString() - // on non-DOMExceptions. Error's toString() is sufficient here. - DOMEx[protoProp] = Error[protoProp]; - classListProto.item = function(i) { - return this[i] || null; - }; - classListProto.contains = function(token) { - token += ""; - return checkTokenAndGetIndex(this, token) !== -1; - }; - classListProto.add = function() { - var - tokens = arguments, - i = 0, - l = tokens.length, - token, updated = false; - do { - token = tokens[i] + ""; - if (checkTokenAndGetIndex(this, token) === -1) { - this.push(token); - updated = true; - } - } - while (++i < l); - - if (updated) { - this._updateClassName(); - } - }; - classListProto.remove = function() { - var - tokens = arguments, - i = 0, - l = tokens.length, - token, updated = false, - index; - do { - token = tokens[i] + ""; - index = checkTokenAndGetIndex(this, token); - while (index !== -1) { - this.splice(index, 1); - updated = true; + l = tokens.length, + token, updated = false, + index; + do { + token = tokens[i] + ""; index = checkTokenAndGetIndex(this, token); + while (index !== -1) { + this.splice(index, 1); + updated = true; + index = checkTokenAndGetIndex(this, token); + } } - } - while (++i < l); - - if (updated) { - this._updateClassName(); - } - }; - classListProto.toggle = function(token, force) { - token += ""; + while (++i < l); - var - result = this.contains(token), - method = result ? - force !== true && "remove" : - force !== false && "add"; + if (updated) { + this._updateClassName(); + } + }; + classListProto.toggle = function(token, force) { + token += ""; - if (method) { - this[method](token); - } + var + result = this.contains(token), + method = result ? + force !== true && "remove" : + force !== false && "add"; - if (force === true || force === false) { - return force; - } else { - return !result; - } - }; - classListProto.toString = function() { - return this.join(" "); - }; + if (method) { + this[method](token); + } - if (objCtr.defineProperty) { - var classListPropDesc = { - get: classListGetter, - enumerable: true, - configurable: true + if (force === true || force === false) { + return force; + } else { + return !result; + } }; - try { - objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc); - } catch (ex) { // IE 8 doesn't support enumerable:true - if (ex.number === -0x7FF5EC54) { - classListPropDesc.enumerable = false; + classListProto.toString = function() { + return this.join(" "); + }; + + if (objCtr.defineProperty) { + var classListPropDesc = { + get: classListGetter, + enumerable: true, + configurable: true + }; + try { objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc); + } catch (ex) { // IE 8 doesn't support enumerable:true + if (ex.number === -0x7FF5EC54) { + classListPropDesc.enumerable = false; + objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc); + } } + } else if (objCtr[protoProp].__defineGetter__) { + elemCtrProto.__defineGetter__(classListProp, classListGetter); } - } else if (objCtr[protoProp].__defineGetter__) { - elemCtrProto.__defineGetter__(classListProp, classListGetter); - } - }(self)); + }(win)); - } else if ("DOMTokenList" in window) { - // There is full or partial native classList support, so just check if we need - // to normalize the add/remove and toggle APIs. - // DOMTokenList is expected to exist (removes conflicts with multiple polyfills present on site) + } else if ("DOMTokenList" in win) { + // There is full or partial native classList support, so just check if we need + // to normalize the add/remove and toggle APIs. + // DOMTokenList is expected to exist (removes conflicts with multiple polyfills present on site) - (function() { - "use strict"; + (function() { + "use strict"; - var testElement = document.createElement("_"); + var testElement = doc.createElement("_"); - testElement.classList.add("c1", "c2"); + testElement.classList.add("c1", "c2"); - // Polyfill for IE 10/11 and Firefox <26, where classList.add and - // classList.remove exist but support only one argument at a time. - if (!testElement.classList.contains("c2")) { - var createMethod = function(method) { - var original = DOMTokenList.prototype[method]; + // Polyfill for IE 10/11 and Firefox <26, where classList.add and + // classList.remove exist but support only one argument at a time. + if (!testElement.classList.contains("c2")) { + var createMethod = function(method) { + var original = win.DOMTokenList.prototype[method]; - DOMTokenList.prototype[method] = function(token) { - var i, len = arguments.length; + win.DOMTokenList.prototype[method] = function(token) { + var i, len = arguments.length; - for (i = 0; i < len; i++) { - token = arguments[i]; - original.call(this, token); - } + for (i = 0; i < len; i++) { + token = arguments[i]; + original.call(this, token); + } + }; }; - }; - createMethod('add'); - createMethod('remove'); - } - - testElement.classList.toggle("c3", false); - - // Polyfill for IE 10 and Firefox <24, where classList.toggle does not - // support the second argument. - if (testElement.classList.contains("c3")) { - var _toggle = DOMTokenList.prototype.toggle; - - DOMTokenList.prototype.toggle = function(token, force) { - if (1 in arguments && !this.contains(token) === !force) { - return force; - } else { - return _toggle.call(this, token); - } - }; - - } + createMethod('add'); + createMethod('remove'); + } - testElement = null; - }()); + testElement.classList.toggle("c3", false); - } + // Polyfill for IE 10 and Firefox <24, where classList.toggle does not + // support the second argument. + if (testElement.classList.contains("c3")) { + var _toggle = win.DOMTokenList.prototype.toggle; -} -;/** - * @license wysihtml5x v0.5.0-beta4 - * https://github.com/Edicy/wysihtml5 - * - * Author: Christopher Blum (https://github.com/tiff) - * Secondary author of extended features: Oliver Pulges (https://github.com/pulges) - * - * Copyright (C) 2012 XING AG - * Licensed under the MIT license (MIT) - * - */ -var wysihtml5 = { - version: "0.5.0-beta4", - - // namespaces - commands: {}, - dom: {}, - quirks: {}, - toolbar: {}, - lang: {}, - selection: {}, - views: {}, + win.DOMTokenList.prototype.toggle = function(token, force) { + if (1 in arguments && !this.contains(token) === !force) { + return force; + } else { + return _toggle.call(this, token); + } + }; - INVISIBLE_SPACE: "\uFEFF", - INVISIBLE_SPACE_REG_EXP: /\uFEFF/g, + } - EMPTY_FUNCTION: function() {}, + testElement = null; + }()); - ELEMENT_NODE: 1, - TEXT_NODE: 3, + } - BACKSPACE_KEY: 8, - ENTER_KEY: 13, - ESCAPE_KEY: 27, - SPACE_KEY: 32, - TAB_KEY: 9, - DELETE_KEY: 46 + } }; + +wysihtml5.polyfills(window, document); ;/** * Rangy, a cross-browser JavaScript range and selection library * https://github.com/timdown/rangy @@ -7510,6 +7460,10 @@ wysihtml5.dom.replaceWithChildNodes = function(node) { this._unset(iframeDocument, "cookie", "", true); } + if (wysihtml5.polyfills) { + wysihtml5.polyfills(iframeWindow, iframeDocument); + } + this.loaded = true; // Trigger the callback @@ -7692,7 +7646,7 @@ wysihtml5.dom.replaceWithChildNodes = function(node) { dom.removeClass(view.element, CLASS_NAME); }, set = function() { - if (view.isEmpty()) { + if (view.isEmpty() && !view.placeholderSet) { view.placeholderSet = true; view.setValue(placeholderText); dom.addClass(view.element, CLASS_NAME); @@ -9401,7 +9355,7 @@ wysihtml5.quirks.ensureProperClearing = (function() { this.createTemporaryCaretSpaceAfter(node); } } - }, + }.bind(this), sel; range.setStartAfter(node); @@ -14036,12 +13990,6 @@ wysihtml5.views.View = Base.extend( this.parent.fire("unset_placeholder"); }).bind(this), false); - // --------- IE 8+9 focus the editor when the iframe is clicked (without actually firing the 'focus' event on the ) --------- - if (!this.config.contentEditableMode && browser.hasIframeFocusIssue()) { - container.addEventListener("focus", handleIframeFocus.bind(this), false); - container.addEventListener("blur", handleIframeBlur.bind(this), false); - } - }; })(wysihtml5); ;/** diff --git a/dist/wysihtml.min.js b/dist/wysihtml.min.js index 6b2693a..ebb3e61 100644 --- a/dist/wysihtml.min.js +++ b/dist/wysihtml.min.js @@ -1,9 +1,9 @@ -/*! wysihtml - v0.5.0-beta4 (2015-01-29) */ +/*! wysihtml - v0.5.0-beta5 (2015-02-17) */ -String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var a=[],b=function(b,c){var d=this,e=function(a){a.target=a.srcElement,a.currentTarget=d,c.handleEvent?c.handleEvent(a):c.call(d,a)};if("DOMContentLoaded"==b){var f=function(a){"complete"==document.readyState&&e(a)};if(document.attachEvent("onreadystatechange",f),a.push({object:this,type:b,listener:c,wrapper:f}),"complete"==document.readyState){var g=new Event;g.srcElement=window,f(g)}}else this.attachEvent("on"+b,e),a.push({object:this,type:b,listener:c,wrapper:e})},c=function(b,c){for(var d=0;d>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),this.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(Element.prototype),"document"in self&&("classList"in document.createElement("_")?"DOMTokenList"in window&&!function(){"use strict";var a=document.createElement("_");if(a.classList.add("c1","c2"),!a.classList.contains("c2")){var b=function(a){var b=DOMTokenList.prototype[a];DOMTokenList.prototype[a]=function(a){var c,d=arguments.length;for(c=0;d>c;c++)a=arguments[c],b.call(this,a)}};b("add"),b("remove")}if(a.classList.toggle("c3",!1),a.classList.contains("c3")){var c=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:c.call(this,a)}}a=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++co;++o)try{H[o](E)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a){a=a||window,l();for(var b=0,c=I.length;c>b;++b)I[b](a)}function n(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function o(a,b,c){var d=new n(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(E,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return B[a]=d,d}function p(){}function q(){}var r="object",s="function",t="undefined",u=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],v=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],w=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],x=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],y=d(a),z=d(b),A=d(c),B={},C=typeof window!=t&&typeof document!=t,D={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:y,areHostObjects:z,areHostProperties:A,isTextRange:e,getBody:f},E={version:"1.3.0-alpha.20140921",initialized:!1,isBrowser:C,supported:!0,util:D,features:{},modules:B,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==t?!0:rangyAutoInitialize}};E.fail=i,E.warn=j;var F;({}).hasOwnProperty?(D.extend=F=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&F(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},D.createOptions=function(a,b){var c={};return F(c,b),a&&F(c,a),c}):i("hasOwnProperty not supported"),C||i("Rangy can only run in a browser"),function(){var a;if(C){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),D.toArray=a}();var G;C&&(a(document,"addEventListener")?G=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?G=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),D.addListener=G);var H=[];E.init=l,E.addInitListener=function(a){E.initialized?a(E):H.push(a)};var I=[];E.addShimListener=function(a){I.push(a)},C&&(E.shim=E.createMissingNativeApi=m),n.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=B[b],!(a&&a instanceof n))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=o(a,c,b);E.initialized&&E.supported&&d.init()},E.createCoreModule=function(a,b,c){o(a,b,c)},E.RangePrototype=p,E.rangePrototype=new p,E.selectionPrototype=new q,E.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),E.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(O(a,b.startContainer)||O(a,b.endContainer))}function c(a){return a.document||P(a.startContainer)}function d(a){return new K(a.parentNode,N(a))}function e(a){return new K(a.parentNode,N(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return M(b)?c==b.length?I.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:R(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(y(a),y(b),c(b)!=c(a))throw new L("WRONG_DOCUMENT_ERR");var e=Q(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=Q(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach()),10==d.nodeType)throw new L("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(),c.stop)return}else for(d=I.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach()):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach()):a.remove(),10==b.nodeType)throw new L("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!M(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&M(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+I.inspectNode(a.startContainer)+":"+a.startOffset+", "+I.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&M(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||M(this.sc)?S(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||M(this.ec)?S(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,U(a,d))return e;e=e.parentNode}return null}}function p(a,b){if(cb(a,b))throw new L("INVALID_NODE_TYPE_ERR")}function q(a,b){if(!U(b,a.nodeType))throw new L("INVALID_NODE_TYPE_ERR")}function r(a,b){if(0>b||b>(M(a)?a.length:a.childNodes.length))throw new L("INDEX_SIZE_ERR")}function s(a,b){if(ab(a,!0)!==ab(b,!0))throw new L("WRONG_DOCUMENT_ERR")}function t(a){if(bb(a,!0))throw new L("NO_MODIFICATION_ALLOWED_ERR")}function u(a,b){if(!a)throw new L(b)}function v(a){return W&&I.isBrokenNode(a)||!U(Y,a.nodeType)&&!ab(a,!0)}function w(a,b){return b<=(M(a)?a.length:a.childNodes.length)}function x(a){return!!a.startContainer&&!!a.endContainer&&!v(a.startContainer)&&!v(a.endContainer)&&w(a.startContainer,a.startOffset)&&w(a.endContainer,a.endOffset)}function y(a){if(!x(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function z(a,b){y(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;M(e)&&f>0&&f0&&d=N(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function A(a){y(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function B(a){a.START_TO_START=ib,a.START_TO_END=jb,a.END_TO_END=kb,a.END_TO_START=lb,a.NODE_BEFORE=mb,a.NODE_AFTER=nb,a.NODE_BEFORE_AND_AFTER=ob,a.NODE_INSIDE=pb}function C(a){B(a),B(a.prototype)}function D(a,b){return function(){y(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=S(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,t),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function E(c,f){function g(a,b){return function(c){q(c,X),q(V(c),Y);var f=(a?d:e)(c);(b?h:i)(this,f.node,f.offset)}}function h(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((V(b)!=V(d)||1==Q(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function i(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((V(b)!=V(d)||-1==Q(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var l=function(){};l.prototype=a.rangePrototype,c.prototype=new l,J.extend(c.prototype,{setStart:function(a,b){p(a,!0),r(a,b),h(this,a,b)},setEnd:function(a,b){p(a,!0),r(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:g(!0,!0),setStartAfter:g(!1,!0),setEndBefore:g(!0,!1),setEndAfter:g(!1,!1),collapse:function(a){y(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){p(a,!0),f(this,a,0,a,T(a))},selectNode:function(a){p(a,!1),q(a,X);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:D(k,f),deleteContents:D(j,f),canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},splitBoundaries:function(){z(this)},splitBoundariesPreservingPositions:function(a){z(this,a)},normalizeBoundaries:function(){y(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=N(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(M(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&M(i)&&e(i)}h=!this.collapsed}if(h){if(M(a))0==b&&g(a);else if(bx",eb=3==db.firstChild.nodeType}catch(fb){}a.features.htmlParsingConforms=eb;var gb=eb?function(a){var b=this.startContainer,c=P(b);if(!b)throw new L("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:M(b)&&(d=I.parentElement(b)),d=null===d||"HTML"==d.nodeName&&I.isHtmlNamespace(P(d).documentElement)&&I.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,I.fragmentFromNodeChildren(d)}:function(a){var b=c(this),d=b.createElement("body");return d.innerHTML=a,I.fragmentFromNodeChildren(d)},hb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ib=0,jb=1,kb=2,lb=3,mb=0,nb=1,ob=2,pb=3;J.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){y(this),s(this.startContainer,b.startContainer);var c,d,e,f,g=a==lb||a==ib?"start":"end",h=a==jb||a==ib?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],Q(c,d,e,f)},insertNode:function(a){if(y(this),q(a,$),t(this.startContainer),O(a,this.startContainer))throw new L("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){y(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&M(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(q(a,_),!this.canSurroundContents())throw new L("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){y(this);for(var a,b=new H(c(this)),d=hb.length;d--;)a=hb[d],b[a]=this[a];return b},toString:function(){y(this);var a=this.startContainer;if(a===this.endContainer&&M(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){y(this);var b=a.parentNode,c=N(a);if(!b)throw new L("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?ob:mb:e>0?nb:pb},comparePoint:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)<0?-1:Q(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:gb,toHtml:function(){return A(this)},intersectsNode:function(a,b){if(y(this),u(a,"NOT_FOUND_ERR"),P(a)!==c(this))return!1;var d=a.parentNode,e=N(a);u(d,"NOT_FOUND_ERR");var f=Q(d,e,this.endContainer,this.endOffset),g=Q(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)>=0&&Q(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=Q(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=Q(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==Q(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==Q(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new L("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==pb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,T(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return y(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||I.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return H.rangesEqual(this,a)},isValid:function(){return x(this)},inspect:function(){return m(this)},detach:function(){}}),E(H,G),J.extend(H,{rangeProperties:hb,RangeIterator:n,copyComparisonConstants:C,createPrototypeRange:E,inspect:m,toHtml:A,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=H}),E.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this) -},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),k.compareBoundaryPoints=-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=bb.length;e--;)if(c=bb[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(bb.splice(e,1),!0):d;return"deleteAll"==b&&(bb.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);Q?(y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b}):O?(y=e,a.isSelectionValid=function(){return!0}):b.fail("Neither document.selection or window.getSelection() detected."),a.getNativeSelection=y;var R=y(),S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=M(document),j=i.appendChild(document.createElement("div"));j.contentEditable="false";var k=j.appendChild(document.createTextNode("   ")),l=document.createRange();if(l.setStart(k,1),l.collapse(!0),b.addRange(l),Y=1==b.rangeCount,b.removeAllRanges(),!d){var m=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(m&&parseInt(m[1])>=36)X=!1;else{var n=l.cloneRange();l.setStart(k,0),n.setEnd(k,3),n.setStart(k,2),b.addRange(l),b.addRange(n),X=2==b.rangeCount}}for(i.removeChild(j),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var ab;E(R,"getRangeAt")?ab=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(ab=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var bb=[],cb=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),bb.push({win:a,selection:b})),b};a.getSelection=cb,a.getIframeSelection=function(c){return b.deprecationNotice("getIframeSelection()","getSelection(iframeEl)"),a.getSelection(C.getIframeWindow(c))};var db=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){db.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var eb=function(a,b){Z(a.nativeSelection,b),a.refresh()};db.addRange=W?function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)eb(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=ab(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,hb(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:function(a,b){c(b)&&V?eb(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},db.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;db.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},db.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},db.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}db.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fb;if(Q)fb=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fb=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],hb(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fb=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=ab(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}db.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fb(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var gb=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};db.removeRange=_&&P?function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else gb(this,a)}:function(a){gb(this,a)};var hb;!Q&&U&&J.implementsDomRange?(hb=g,db.isBackward=function(){return hb(this)}):hb=db.isBackward=function(){return!1},db.isBackwards=db.isBackward,db.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},db.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},db.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},db.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},db.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},db.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),a.parentNode.removeChild(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},db.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},db.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},db.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},db.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b))}),c},db.setStart=w(!0),db.setEnd=w(!1),a.rangePrototype.select=function(a){cb(this.getDocument()).setSingleRange(this,a)},db.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},db.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},db.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},db.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},db.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(db.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),db.getName=function(){return"WrappedSelection"},db.inspect=function(){return x(this)},db.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=db,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return cb(a)}),a=null})});var J=!1,K=function(){J||(J=!0,!E.initialized&&E.config.autoInitialize&&l())};return C&&("complete"==document.readyState?K():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",K,!1),G(window,"load",K))),E},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(p)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),g.parentNode.removeChild(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString();return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:c,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(i.parentNode.removeChild(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),i.parentNode.removeChild(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[];b=b.slice(0),b.sort(f);for(var j=0,k=b.length;k>j;++j)i[j]=g(b[j],d);for(j=k-1;j>=0;--j)e=b[j],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[j].markerId,h)):(e.setEndBefore(c(i[j].endMarkerId,h)),e.setStartAfter(c(i[j].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],"backward"):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&d.parentNode.removeChild(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p="";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})})},this);var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;aa:">"===b?a>d:"<="===b?d>=a:">="===b?a>=d:void 0:a===d:!0}var d=navigator.userAgent,e=document.createElement("div"),f=-1!==d.indexOf("Gecko")&&-1===d.indexOf("KHTML"),g=-1!==d.indexOf("AppleWebKit/"),h=-1!==d.indexOf("Chrome/"),i=-1!==d.indexOf("Opera/");return{USER_AGENT:d,supported:function(){var c=this.USER_AGENT.toLowerCase(),d="contentEditable"in e,f=document.execCommand&&document.queryCommandSupported&&document.queryCommandState,g=document.querySelector&&document.querySelectorAll,h=this.isIos()&&a(c)<5||this.isAndroid()&&b(c)<4||-1!==c.indexOf("opera mobi")||-1!==c.indexOf("hpwos/");return d&&f&&g&&!h},isTouchDevice:function(){return this.supportsEvent("touchmove")},isIos:function(){return/ipad|iphone|ipod/i.test(this.USER_AGENT)},isAndroid:function(){return-1!==this.USER_AGENT.indexOf("Android")},supportsSandboxedIframes:function(){return c()},throwsMixedContentWarningWhenIframeSrcIsEmpty:function(){return!("querySelector"in document)},displaysCaretInEmptyContentEditableCorrectly:function(){return c()},hasCurrentStyleProperty:function(){return"currentStyle"in e},insertsLineBreaksOnReturn:function(){return f},supportsPlaceholderAttributeOn:function(a){return"placeholder"in a},supportsEvent:function(a){return"on"+a in e||function(){return e.setAttribute("on"+a,"return;"),"function"==typeof e["on"+a]}()},supportsEventsInIframeCorrectly:function(){return!i},supportsHTML5Tags:function(a){var b=a.createElement("div"),c="
foo
";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:c(10,"<="),insertUnorderedList:c(),insertOrderedList:c()},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return c()},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||c()||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=e.cloneNode(!1);return c.innerHTML="

",b=c.innerHTML.toLowerCase(),a="

"===b||"

"===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=d.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return c(9)&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return c()},hasProblemsSettingCaretAfterImg:function(){return c()},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return c()},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window},supportsModenPaste:function(){return!("clipboardData"in window)},fixStyleKey:function(a){return"cssFloat"===a?"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat":a}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":"  "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi,"  ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b); -for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){return b.nodeType!==wysihtml5.ELEMENT_NODE&&(b=b.parentNode),a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE],d=function(b){return b.nodeType===a.TEXT_NODE&&/^\s*$/g.test(b.data)};return{prev:function(e){var f=b.previousSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).prev(e):f:null},next:function(e){var f=b.nextSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).next(e):f:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim()){f=!0;break}}if(!f)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(){var c=b.ownerDocument,e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&!d(e)&&a.dom.insert(c.createElement("br")).after(b),f&&!d(f)&&a.dom.insert(c.createElement("br")).before(b)},remove:function(){var d=a.dom.domNode(b).next({ignoreBlankTexts:!0}),e=a.dom.domNode(b).prev({ignoreBlankTexts:!0});d&&c(d)&&d.parentNode.removeChild(d),e&&c(e)&&e.parentNode.removeChild(e)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||"

"===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=v[c];return f&&(b||"alt"===a&&"IMG"==d)&&(e=f(b),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b){return b?b.replace(a,""):""}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode&&a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l=a.ownerDocument,m=l.createDocumentFragment(),n=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0});if(e)for(!n||b(n)||c(n)||d(m);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild;f=k.firstChild;)h=f===g,i=h&&!b(f)&&!c(f),m.appendChild(f),i&&d(m);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)m.appendChild(f);else{for(j=l.createElement("p");f=k.firstChild;)j.appendChild(f);m.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(m,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className="wysihtml5-sandbox",a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView||this.element.ownerDocument.parentWindow},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.element=d?this._bindElement(d):this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className="wysihtml5-sandbox",this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!==a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d){var e="placeholder",f=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,e)},g=function(){c.isEmpty()&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,e))};b.on("set_placeholder",g).on("unset_placeholder",f).on("focus:composer",f).on("paste:composer",f).on("blur:composer",g),g()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode(" ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan") -}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^$/i.test(d.trim())&&(d=!1),b(d),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("

 

"==b||"

 

 

"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"}),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{query:"table"}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(a){var b=wysihtml5.dom.getParentElement(a.target,{query:"td, th"});b&&d(b)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(){var b;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(b=c.lastChild,a.dom.unwrap(c),this.setAfter(b)):c.parentNode.removeChild(c))}.bind(this),f=function(){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c,d){var e,f=rangy.createRange(this.doc),g=function(){if(!e)if(c){var d=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(d,b.nextSibling),this.selectNode(d),setTimeout(function(){d&&d.parentNode&&d.parentNode.removeChild(d)},0)}else this.createTemporaryCaretSpaceAfter(b)};if(f.setStartAfter(b),f.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(f),g(),d&&d(e);else{var h=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(h),setTimeout(function(){e=this.setSelection(f),g(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{query:"li"},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},caretIsBeforeUneditable:function(){var b,c,d,e=this.getSelection(),f=e.anchorNode,g=e.anchorOffset,h=[];if(f)if(0===g){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode(this.unselectableClass?{leafClasses:[this.unselectableClass]}:!1):null;if(j)for(var k=this.getOwnUneditables(),l=0,m=k.length;m>l;l++)if(j===k[l])return k[l]}else{if(b=e.getRangeAt(0),b.setStart(b.startContainer,b.startOffset-1),b){c=b.getNodes([1,3]);for(var n=0,o=c.length;o>n;n++)c[n].parentNode&&c[n].parentNode===f&&h.push(c[n])}if(d=h.length>0?h[h.length-1]:null,d&&1===d.nodeType&&a.dom.hasClass(d,this.unselectableClass))return d}return!1},executeAndRestoreRangy:function(a){var b=rangy.saveSelection(this.win);if(b)try{a()}catch(c){setTimeout(function(){throw c},0)}else a();rangy.restoreSelection(b)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(a,b){var c,d,e,f,g=this.getSelection();g.rangeCount>0&&(c=g.getRangeAt(0).cloneRange(),c.setEndAfter(a),d=c.extractContents(),a.parentNode.insertBefore(d,a.nextSibling),e=b.firstChild,f=b.lastChild,a.parentNode.insertBefore(b,a.nextSibling),e&&f&&(c.setStartBefore(e),c.setEndAfter(f),this.setSelection(c)))},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.win.getSelection();a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),function(a){a.commands.bold={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"b")},state:function(b,c){return a.commands.formatInline.state(b,c,"b")}}}(wysihtml5),function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(d,e,f){var g=this.state(d,e);if(g){if((!f||!f.href)&&null!==g.length&&void 0!==g.length&&g.length>0){for(var h=0;hh;h++)d=b[h],e=c.getParentElement(d,{query:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.uneditableContainerClassname),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.win);for(var o in m)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.win),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.win),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var p=g.length;p--;)n=n.concat(i(g[p],e,j(g[p].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b);h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c=b.selection.getSelectedNode();return c&&c.nodeName&&"PRE"==c.nodeName&&c.firstChild&&c.firstChild.nodeName&&"CODE"==c.firstChild.nodeName?c:a.dom.getParentElement(c,{query:"pre code"})}}}(wysihtml5),function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange(),l=a.selection.getOwnRanges();return l&&0!=l.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(l),void(i?j||a.cleanUp():(k.setStart(l[0].startContainer,l[0].startOffset),k.setEnd(l[l.length-1].endContainer,l[l.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l,m=b.doc,n=d[f]||f;return a.dom.hasElementWithTagName(m,f)||a.dom.hasElementWithTagName(m,n)?g&&!a.dom.hasElementWithClassName(m,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?(l=c(f,g,h,i,j,b.element).isAppliedToRange(k),l&&l.elements?l.elements:!1):!1):!1}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"}),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){var h=f(g,d);if(h.length)for(var i=h.length;i--;)a.dom.renameElement(h[i],c.toLowerCase());else{e=f(["OL","UL"],d);for(var j=e.length;j--;)a.dom.resolveList(e[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.uneditableContainerClassname),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),function(a){a.commands.italic={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"i")},state:function(b,c){return a.commands.formatInline.state(b,c,"i")}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}}}(wysihtml5),function(a){a.commands.underline={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"u")},state:function(b,c){return a.commands.formatInline.state(b,c,"u")}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}}}(wysihtml5),function(a){a.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"
",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b){if(b.tableSelection){var c=b.tableSelection.start,d=b.tableSelection.end;if(c&&d&&c==d&&(a.dom.getAttribute(c,"colspan")&&parseInt(a.dom.getAttribute(c,"colspan"),10)>1||a.dom.getAttribute(c,"rowspan")&&parseInt(a.dom.getAttribute(c,"rowspan"),10)>1))return[c]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){a.commands.subscript={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"sub")},state:function(b,c){return a.commands.formatInline.state(b,c,"sub")}}}(wysihtml5),function(a){a.commands.superscript={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"sup")},state:function(b,c){return a.commands.formatInline.state(b,c,"sup")}}}(wysihtml5),function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e) -},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.win)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getScrollPos:function(){if(this.doc&&this.win){var a={};return a.y="undefined"!=typeof this.win.pageYOffset?this.win.pageYOffset:(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,a.x="undefined"!=typeof this.win.pageXOffset?this.win.pageXOffset:(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>|

|<\/p>)*$/i.test(a)||""===a||"
"===a||"

"===a||"


"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.win=this.sandbox.getWindow(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.uneditableContainerClassname])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(b,c){{var d=c.selection;c.element}if(d.isCollapsed())if(d.caretIsInTheBeginnig("li"))b.preventDefault(),c.commands.exec("outdentList");else if(d.caretIsInTheBeginnig())b.preventDefault();else{if(d.caretIsFirstInSelection()&&d.getPreviousNode()&&d.getPreviousNode().nodeName&&/^H\d$/gi.test(d.getPreviousNode().nodeName)){var e=d.getPreviousNode();if(/^\s*$/.test(e.textContent||e.innerText))b.preventDefault(),e.parentNode.removeChild(e);else if(e.lastChild){var f=e.lastChild,g=a.dom.getParentElement(d.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,c.element);if(e)if(g){for(b.preventDefault();g.firstChild;)e.appendChild(g.firstChild);d.setAfter(f)}else 3===d.getSelectedNode().nodeType&&(b.preventDefault(),e.appendChild(d.getSelectedNode()),d.setAfter(f))}}var h=d.caretIsBeforeUneditable();if(h){b.preventDefault();try{var i=new CustomEvent("wysihtml5:uneditable:delete");h.dispatchEvent(i)}catch(j){}h.parentNode.removeChild(h)}}else d.containsUneditable()&&(b.preventDefault(),d.deleteContents())},h=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},i=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},j=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},k=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},l=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},m=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},n=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},o=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},p=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.uneditableContainerClassname+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},q=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},r=function(b){if(this.config.uneditableContainerClassname){var c=a.dom.getParentElement(b.target,{query:"."+this.config.uneditableContainerClassname},!1,this.element);c&&this.selection.setAfter(c)}},s=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},t=function(b){var c,e,f=b.keyCode,i=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&i&&(this.commands.exec(i),b.preventDefault()),f===a.BACKSPACE_KEY&&g(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),h(this,this.element))},u=function(){setTimeout(function(){this.doc.querySelector(":focus")!==this.element&&this.focus()}.bind(this),0)},v=function(){setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],i.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||i.call(this)},250)),this.config.handleTables&&w.call(this),e(d,["drop","paste","mouseup","focus","keyup"],j.bind(this)),d.addEventListener("focus",k.bind(this),!1),d.addEventListener("blur",l.bind(this),!1),e(this.element,["drop","paste","beforepaste"],m.bind(this),!1),this.element.addEventListener("copy",n.bind(this),!1),this.element.addEventListener("mousedown",p.bind(this),!1),this.element.addEventListener("mouseover",q.bind(this),!1),this.element.addEventListener("click",r.bind(this),!1),this.element.addEventListener("drop",s.bind(this),!1),this.element.addEventListener("keyup",o.bind(this),!1),this.element.addEventListener("keydown",t.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1),!this.config.contentEditableMode&&c.hasIframeFocusIssue()&&(a.addEventListener("focus",u.bind(this),!1),a.addEventListener("blur",v.bind(this),!1))}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container",copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.uneditableContainerClassname,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b;a.browser.supportsModenPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.uneditableContainerClassname});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5); +var wysihtml5={version:"0.5.0-beta5",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++co;++o)try{H[o](E)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a){a=a||window,l();for(var b=0,c=I.length;c>b;++b)I[b](a)}function n(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function o(a,b,c){var d=new n(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(E,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return B[a]=d,d}function p(){}function q(){}var r="object",s="function",t="undefined",u=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],v=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],w=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],x=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],y=d(a),z=d(b),A=d(c),B={},C=typeof window!=t&&typeof document!=t,D={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:y,areHostObjects:z,areHostProperties:A,isTextRange:e,getBody:f},E={version:"1.3.0-alpha.20140921",initialized:!1,isBrowser:C,supported:!0,util:D,features:{},modules:B,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==t?!0:rangyAutoInitialize}};E.fail=i,E.warn=j;var F;({}).hasOwnProperty?(D.extend=F=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&F(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},D.createOptions=function(a,b){var c={};return F(c,b),a&&F(c,a),c}):i("hasOwnProperty not supported"),C||i("Rangy can only run in a browser"),function(){var a;if(C){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),D.toArray=a}();var G;C&&(a(document,"addEventListener")?G=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?G=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),D.addListener=G);var H=[];E.init=l,E.addInitListener=function(a){E.initialized?a(E):H.push(a)};var I=[];E.addShimListener=function(a){I.push(a)},C&&(E.shim=E.createMissingNativeApi=m),n.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=B[b],!(a&&a instanceof n))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=o(a,c,b);E.initialized&&E.supported&&d.init()},E.createCoreModule=function(a,b,c){o(a,b,c)},E.RangePrototype=p,E.rangePrototype=new p,E.selectionPrototype=new q,E.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),E.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(O(a,b.startContainer)||O(a,b.endContainer))}function c(a){return a.document||P(a.startContainer)}function d(a){return new K(a.parentNode,N(a))}function e(a){return new K(a.parentNode,N(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return M(b)?c==b.length?I.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:R(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(y(a),y(b),c(b)!=c(a))throw new L("WRONG_DOCUMENT_ERR");var e=Q(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=Q(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach()),10==d.nodeType)throw new L("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(),c.stop)return}else for(d=I.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach()):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach()):a.remove(),10==b.nodeType)throw new L("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!M(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&M(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+I.inspectNode(a.startContainer)+":"+a.startOffset+", "+I.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&M(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||M(this.sc)?S(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||M(this.ec)?S(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,U(a,d))return e;e=e.parentNode}return null}}function p(a,b){if(cb(a,b))throw new L("INVALID_NODE_TYPE_ERR")}function q(a,b){if(!U(b,a.nodeType))throw new L("INVALID_NODE_TYPE_ERR")}function r(a,b){if(0>b||b>(M(a)?a.length:a.childNodes.length))throw new L("INDEX_SIZE_ERR")}function s(a,b){if(ab(a,!0)!==ab(b,!0))throw new L("WRONG_DOCUMENT_ERR")}function t(a){if(bb(a,!0))throw new L("NO_MODIFICATION_ALLOWED_ERR")}function u(a,b){if(!a)throw new L(b)}function v(a){return W&&I.isBrokenNode(a)||!U(Y,a.nodeType)&&!ab(a,!0)}function w(a,b){return b<=(M(a)?a.length:a.childNodes.length)}function x(a){return!!a.startContainer&&!!a.endContainer&&!v(a.startContainer)&&!v(a.endContainer)&&w(a.startContainer,a.startOffset)&&w(a.endContainer,a.endOffset)}function y(a){if(!x(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function z(a,b){y(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;M(e)&&f>0&&f0&&d=N(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function A(a){y(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function B(a){a.START_TO_START=ib,a.START_TO_END=jb,a.END_TO_END=kb,a.END_TO_START=lb,a.NODE_BEFORE=mb,a.NODE_AFTER=nb,a.NODE_BEFORE_AND_AFTER=ob,a.NODE_INSIDE=pb}function C(a){B(a),B(a.prototype)}function D(a,b){return function(){y(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=S(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,t),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function E(c,f){function g(a,b){return function(c){q(c,X),q(V(c),Y);var f=(a?d:e)(c);(b?h:i)(this,f.node,f.offset)}}function h(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((V(b)!=V(d)||1==Q(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function i(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((V(b)!=V(d)||-1==Q(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var l=function(){};l.prototype=a.rangePrototype,c.prototype=new l,J.extend(c.prototype,{setStart:function(a,b){p(a,!0),r(a,b),h(this,a,b)},setEnd:function(a,b){p(a,!0),r(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:g(!0,!0),setStartAfter:g(!1,!0),setEndBefore:g(!0,!1),setEndAfter:g(!1,!1),collapse:function(a){y(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){p(a,!0),f(this,a,0,a,T(a))},selectNode:function(a){p(a,!1),q(a,X);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:D(k,f),deleteContents:D(j,f),canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},splitBoundaries:function(){z(this)},splitBoundariesPreservingPositions:function(a){z(this,a)},normalizeBoundaries:function(){y(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=N(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(M(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&M(i)&&e(i)}h=!this.collapsed}if(h){if(M(a))0==b&&g(a);else if(bx",eb=3==db.firstChild.nodeType}catch(fb){}a.features.htmlParsingConforms=eb;var gb=eb?function(a){var b=this.startContainer,c=P(b);if(!b)throw new L("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:M(b)&&(d=I.parentElement(b)),d=null===d||"HTML"==d.nodeName&&I.isHtmlNamespace(P(d).documentElement)&&I.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,I.fragmentFromNodeChildren(d)}:function(a){var b=c(this),d=b.createElement("body");return d.innerHTML=a,I.fragmentFromNodeChildren(d)},hb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ib=0,jb=1,kb=2,lb=3,mb=0,nb=1,ob=2,pb=3;J.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){y(this),s(this.startContainer,b.startContainer);var c,d,e,f,g=a==lb||a==ib?"start":"end",h=a==jb||a==ib?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],Q(c,d,e,f)},insertNode:function(a){if(y(this),q(a,$),t(this.startContainer),O(a,this.startContainer))throw new L("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){y(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&M(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){y(this),t(this.startContainer),t(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(q(a,_),!this.canSurroundContents())throw new L("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){y(this);for(var a,b=new H(c(this)),d=hb.length;d--;)a=hb[d],b[a]=this[a];return b},toString:function(){y(this);var a=this.startContainer;if(a===this.endContainer&&M(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){y(this);var b=a.parentNode,c=N(a);if(!b)throw new L("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?ob:mb:e>0?nb:pb},comparePoint:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)<0?-1:Q(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:gb,toHtml:function(){return A(this)},intersectsNode:function(a,b){if(y(this),u(a,"NOT_FOUND_ERR"),P(a)!==c(this))return!1;var d=a.parentNode,e=N(a);u(d,"NOT_FOUND_ERR");var f=Q(d,e,this.endContainer,this.endOffset),g=Q(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return y(this),u(a,"HIERARCHY_REQUEST_ERR"),s(a,this.startContainer),Q(a,b,this.startContainer,this.startOffset)>=0&&Q(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=Q(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=Q(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==Q(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==Q(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new L("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==pb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,T(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return y(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||I.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return H.rangesEqual(this,a)},isValid:function(){return x(this)},inspect:function(){return m(this)},detach:function(){}}),E(H,G),J.extend(H,{rangeProperties:hb,RangeIterator:n,copyComparisonConstants:C,createPrototypeRange:E,inspect:m,toHtml:A,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=H}),E.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b) +}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),k.compareBoundaryPoints=-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=bb.length;e--;)if(c=bb[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(bb.splice(e,1),!0):d;return"deleteAll"==b&&(bb.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);Q?(y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b}):O?(y=e,a.isSelectionValid=function(){return!0}):b.fail("Neither document.selection or window.getSelection() detected."),a.getNativeSelection=y;var R=y(),S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=M(document),j=i.appendChild(document.createElement("div"));j.contentEditable="false";var k=j.appendChild(document.createTextNode("   ")),l=document.createRange();if(l.setStart(k,1),l.collapse(!0),b.addRange(l),Y=1==b.rangeCount,b.removeAllRanges(),!d){var m=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(m&&parseInt(m[1])>=36)X=!1;else{var n=l.cloneRange();l.setStart(k,0),n.setEnd(k,3),n.setStart(k,2),b.addRange(l),b.addRange(n),X=2==b.rangeCount}}for(i.removeChild(j),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var ab;E(R,"getRangeAt")?ab=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(ab=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var bb=[],cb=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),bb.push({win:a,selection:b})),b};a.getSelection=cb,a.getIframeSelection=function(c){return b.deprecationNotice("getIframeSelection()","getSelection(iframeEl)"),a.getSelection(C.getIframeWindow(c))};var db=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){db.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var eb=function(a,b){Z(a.nativeSelection,b),a.refresh()};db.addRange=W?function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)eb(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=ab(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,hb(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:function(a,b){c(b)&&V?eb(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},db.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;db.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},db.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},db.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}db.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fb;if(Q)fb=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fb=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],hb(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fb=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=ab(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}db.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fb(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var gb=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};db.removeRange=_&&P?function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else gb(this,a)}:function(a){gb(this,a)};var hb;!Q&&U&&J.implementsDomRange?(hb=g,db.isBackward=function(){return hb(this)}):hb=db.isBackward=function(){return!1},db.isBackwards=db.isBackward,db.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},db.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},db.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},db.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},db.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},db.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),a.parentNode.removeChild(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},db.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},db.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},db.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},db.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b))}),c},db.setStart=w(!0),db.setEnd=w(!1),a.rangePrototype.select=function(a){cb(this.getDocument()).setSingleRange(this,a)},db.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},db.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},db.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},db.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},db.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(db.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),db.getName=function(){return"WrappedSelection"},db.inspect=function(){return x(this)},db.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=db,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return cb(a)}),a=null})});var J=!1,K=function(){J||(J=!0,!E.initialized&&E.config.autoInitialize&&l())};return C&&("complete"==document.readyState?K():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",K,!1),G(window,"load",K))),E},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(p)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),g.parentNode.removeChild(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString();return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:c,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(i.parentNode.removeChild(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),i.parentNode.removeChild(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[];b=b.slice(0),b.sort(f);for(var j=0,k=b.length;k>j;++j)i[j]=g(b[j],d);for(j=k-1;j>=0;--j)e=b[j],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[j].markerId,h)):(e.setEndBefore(c(i[j].endMarkerId,h)),e.setStartAfter(c(i[j].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],"backward"):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&d.parentNode.removeChild(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p="";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})})},this);var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;aa:">"===b?a>d:"<="===b?d>=a:">="===b?a>=d:void 0:a===d:!0}var d=navigator.userAgent,e=document.createElement("div"),f=-1!==d.indexOf("Gecko")&&-1===d.indexOf("KHTML"),g=-1!==d.indexOf("AppleWebKit/"),h=-1!==d.indexOf("Chrome/"),i=-1!==d.indexOf("Opera/");return{USER_AGENT:d,supported:function(){var c=this.USER_AGENT.toLowerCase(),d="contentEditable"in e,f=document.execCommand&&document.queryCommandSupported&&document.queryCommandState,g=document.querySelector&&document.querySelectorAll,h=this.isIos()&&a(c)<5||this.isAndroid()&&b(c)<4||-1!==c.indexOf("opera mobi")||-1!==c.indexOf("hpwos/");return d&&f&&g&&!h},isTouchDevice:function(){return this.supportsEvent("touchmove")},isIos:function(){return/ipad|iphone|ipod/i.test(this.USER_AGENT)},isAndroid:function(){return-1!==this.USER_AGENT.indexOf("Android")},supportsSandboxedIframes:function(){return c()},throwsMixedContentWarningWhenIframeSrcIsEmpty:function(){return!("querySelector"in document)},displaysCaretInEmptyContentEditableCorrectly:function(){return c()},hasCurrentStyleProperty:function(){return"currentStyle"in e},insertsLineBreaksOnReturn:function(){return f},supportsPlaceholderAttributeOn:function(a){return"placeholder"in a},supportsEvent:function(a){return"on"+a in e||function(){return e.setAttribute("on"+a,"return;"),"function"==typeof e["on"+a]}()},supportsEventsInIframeCorrectly:function(){return!i},supportsHTML5Tags:function(a){var b=a.createElement("div"),c="
foo
";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:c(10,"<="),insertUnorderedList:c(),insertOrderedList:c()},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return c()},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||c()||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=e.cloneNode(!1);return c.innerHTML="

",b=c.innerHTML.toLowerCase(),a="

"===b||"

"===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=d.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return c(9)&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return c()},hasProblemsSettingCaretAfterImg:function(){return c()},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return c()},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window},supportsModenPaste:function(){return!("clipboardData"in window)},fixStyleKey:function(a){return"cssFloat"===a?"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat":a}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":"  "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi,"  ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b);for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList; +if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){return b.nodeType!==wysihtml5.ELEMENT_NODE&&(b=b.parentNode),a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE],d=function(b){return b.nodeType===a.TEXT_NODE&&/^\s*$/g.test(b.data)};return{prev:function(e){var f=b.previousSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).prev(e):f:null},next:function(e){var f=b.nextSibling,g=e&&e.nodeTypes?e.nodeTypes:c;return f?!a.lang.array(g).contains(f.nodeType)||e&&e.ignoreBlankTexts&&d(f)?a.dom.domNode(f).next(e):f:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim()){f=!0;break}}if(!f)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(){var c=b.ownerDocument,e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&!d(e)&&a.dom.insert(c.createElement("br")).after(b),f&&!d(f)&&a.dom.insert(c.createElement("br")).before(b)},remove:function(){var d=a.dom.domNode(b).next({ignoreBlankTexts:!0}),e=a.dom.domNode(b).prev({ignoreBlankTexts:!0});d&&c(d)&&d.parentNode.removeChild(d),e&&c(e)&&e.parentNode.removeChild(e)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||"

"===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=v[c];return f&&(b||"alt"===a&&"IMG"==d)&&(e=f(b),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b){return b?b.replace(a,""):""}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode&&a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l=a.ownerDocument,m=l.createDocumentFragment(),n=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0});if(e)for(!n||b(n)||c(n)||d(m);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild;f=k.firstChild;)h=f===g,i=h&&!b(f)&&!c(f),m.appendChild(f),i&&d(m);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)m.appendChild(f);else{for(j=l.createElement("p");f=k.firstChild;)j.appendChild(f);m.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(m,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className="wysihtml5-sandbox",a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}a.polyfills&&a.polyfills(h,i),this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView||this.element.ownerDocument.parentWindow},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.element=d?this._bindElement(d):this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className="wysihtml5-sandbox",this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!==a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d){var e="placeholder",f=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,e)},g=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,e))};b.on("set_placeholder",g).on("unset_placeholder",f).on("focus:composer",f).on("paste:composer",f).on("blur:composer",g),g()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode(" ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0) +},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^$/i.test(d.trim())&&(d=!1),b(d),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("

 

"==b||"

 

 

"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"}),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{query:"table"}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(a){var b=wysihtml5.dom.getParentElement(a.target,{query:"td, th"});b&&d(b)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(){var b;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(b=c.lastChild,a.dom.unwrap(c),this.setAfter(b)):c.parentNode.removeChild(c))}.bind(this),f=function(){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c,d){var e,f=rangy.createRange(this.doc),g=function(){if(!e)if(c){var d=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(d,b.nextSibling),this.selectNode(d),setTimeout(function(){d&&d.parentNode&&d.parentNode.removeChild(d)},0)}else this.createTemporaryCaretSpaceAfter(b)}.bind(this);if(f.setStartAfter(b),f.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(f),g(),d&&d(e);else{var h=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(h),setTimeout(function(){e=this.setSelection(f),g(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{query:"li"},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},caretIsBeforeUneditable:function(){var b,c,d,e=this.getSelection(),f=e.anchorNode,g=e.anchorOffset,h=[];if(f)if(0===g){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode(this.unselectableClass?{leafClasses:[this.unselectableClass]}:!1):null;if(j)for(var k=this.getOwnUneditables(),l=0,m=k.length;m>l;l++)if(j===k[l])return k[l]}else{if(b=e.getRangeAt(0),b.setStart(b.startContainer,b.startOffset-1),b){c=b.getNodes([1,3]);for(var n=0,o=c.length;o>n;n++)c[n].parentNode&&c[n].parentNode===f&&h.push(c[n])}if(d=h.length>0?h[h.length-1]:null,d&&1===d.nodeType&&a.dom.hasClass(d,this.unselectableClass))return d}return!1},executeAndRestoreRangy:function(a){var b=rangy.saveSelection(this.win);if(b)try{a()}catch(c){setTimeout(function(){throw c},0)}else a();rangy.restoreSelection(b)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(a,b){var c,d,e,f,g=this.getSelection();g.rangeCount>0&&(c=g.getRangeAt(0).cloneRange(),c.setEndAfter(a),d=c.extractContents(),a.parentNode.insertBefore(d,a.nextSibling),e=b.firstChild,f=b.lastChild,a.parentNode.insertBefore(b,a.nextSibling),e&&f&&(c.setStartBefore(e),c.setEndAfter(f),this.setSelection(c)))},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.win.getSelection();a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length; +return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),function(a){a.commands.bold={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"b")},state:function(b,c){return a.commands.formatInline.state(b,c,"b")}}}(wysihtml5),function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(d,e,f){var g=this.state(d,e);if(g){if((!f||!f.href)&&null!==g.length&&void 0!==g.length&&g.length>0){for(var h=0;hh;h++)d=b[h],e=c.getParentElement(d,{query:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.uneditableContainerClassname),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.win);for(var o in m)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.win),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.win),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var p=g.length;p--;)n=n.concat(i(g[p],e,j(g[p].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b);h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c=b.selection.getSelectedNode();return c&&c.nodeName&&"PRE"==c.nodeName&&c.firstChild&&c.firstChild.nodeName&&"CODE"==c.firstChild.nodeName?c:a.dom.getParentElement(c,{query:"pre code"})}}}(wysihtml5),function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange(),l=a.selection.getOwnRanges();return l&&0!=l.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(l),void(i?j||a.cleanUp():(k.setStart(l[0].startContainer,l[0].startOffset),k.setEnd(l[l.length-1].endContainer,l[l.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l,m=b.doc,n=d[f]||f;return a.dom.hasElementWithTagName(m,f)||a.dom.hasElementWithTagName(m,n)?g&&!a.dom.hasElementWithClassName(m,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?(l=c(f,g,h,i,j,b.element).isAppliedToRange(k),l&&l.elements?l.elements:!1):!1):!1}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"}),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){var h=f(g,d);if(h.length)for(var i=h.length;i--;)a.dom.renameElement(h[i],c.toLowerCase());else{e=f(["OL","UL"],d);for(var j=e.length;j--;)a.dom.resolveList(e[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestore(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.uneditableContainerClassname),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),function(a){a.commands.italic={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"i")},state:function(b,c){return a.commands.formatInline.state(b,c,"i")}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}}}(wysihtml5),function(a){a.commands.underline={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"u")},state:function(b,c){return a.commands.formatInline.state(b,c,"u")}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}}}(wysihtml5),function(a){a.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"
",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b){if(b.tableSelection){var c=b.tableSelection.start,d=b.tableSelection.end;if(c&&d&&c==d&&(a.dom.getAttribute(c,"colspan")&&parseInt(a.dom.getAttribute(c,"colspan"),10)>1||a.dom.getAttribute(c,"rowspan")&&parseInt(a.dom.getAttribute(c,"rowspan"),10)>1))return[c]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(){return!1}}}(wysihtml5),function(a){a.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){a.commands.subscript={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"sub")},state:function(b,c){return a.commands.formatInline.state(b,c,"sub")}}}(wysihtml5),function(a){a.commands.superscript={exec:function(b,c){a.commands.formatInline.execWithToggle(b,c,"sup")},state:function(b,c){return a.commands.formatInline.state(b,c,"sup")}}}(wysihtml5),function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this; +this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.win)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getScrollPos:function(){if(this.doc&&this.win){var a={};return a.y="undefined"!=typeof this.win.pageYOffset?this.win.pageYOffset:(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,a.x="undefined"!=typeof this.win.pageXOffset?this.win.pageXOffset:(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>|

|<\/p>)*$/i.test(a)||""===a||"
"===a||"

"===a||"


"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.win=this.sandbox.getWindow(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.uneditableContainerClassname])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(b,c){{var d=c.selection;c.element}if(d.isCollapsed())if(d.caretIsInTheBeginnig("li"))b.preventDefault(),c.commands.exec("outdentList");else if(d.caretIsInTheBeginnig())b.preventDefault();else{if(d.caretIsFirstInSelection()&&d.getPreviousNode()&&d.getPreviousNode().nodeName&&/^H\d$/gi.test(d.getPreviousNode().nodeName)){var e=d.getPreviousNode();if(/^\s*$/.test(e.textContent||e.innerText))b.preventDefault(),e.parentNode.removeChild(e);else if(e.lastChild){var f=e.lastChild,g=a.dom.getParentElement(d.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,c.element);if(e)if(g){for(b.preventDefault();g.firstChild;)e.appendChild(g.firstChild);d.setAfter(f)}else 3===d.getSelectedNode().nodeType&&(b.preventDefault(),e.appendChild(d.getSelectedNode()),d.setAfter(f))}}var h=d.caretIsBeforeUneditable();if(h){b.preventDefault();try{var i=new CustomEvent("wysihtml5:uneditable:delete");h.dispatchEvent(i)}catch(j){}h.parentNode.removeChild(h)}}else d.containsUneditable()&&(b.preventDefault(),d.deleteContents())},h=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},i=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},j=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},k=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},l=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},m=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},n=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},o=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},p=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.uneditableContainerClassname+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},q=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},r=function(b){if(this.config.uneditableContainerClassname){var c=a.dom.getParentElement(b.target,{query:"."+this.config.uneditableContainerClassname},!1,this.element);c&&this.selection.setAfter(c)}},s=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},t=function(b){var c,e,f=b.keyCode,i=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&i&&(this.commands.exec(i),b.preventDefault()),f===a.BACKSPACE_KEY&&g(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),h(this,this.element))},u=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],i.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||i.call(this)},250)),this.config.handleTables&&u.call(this),e(d,["drop","paste","mouseup","focus","keyup"],j.bind(this)),d.addEventListener("focus",k.bind(this),!1),d.addEventListener("blur",l.bind(this),!1),e(this.element,["drop","paste","beforepaste"],m.bind(this),!1),this.element.addEventListener("copy",n.bind(this),!1),this.element.addEventListener("mousedown",p.bind(this),!1),this.element.addEventListener("mouseover",q.bind(this),!1),this.element.addEventListener("click",r.bind(this),!1),this.element.addEventListener("drop",s.bind(this),!1),this.element.addEventListener("keyup",o.bind(this),!1),this.element.addEventListener("keydown",t.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1)}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container",copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.uneditableContainerClassname,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b;a.browser.supportsModenPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.uneditableContainerClassname});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5); //# sourceMappingURL=wysihtml.min.map \ No newline at end of file diff --git a/dist/wysihtml.min.map b/dist/wysihtml.min.map index 9b6b149..f596ef8 100644 --- a/dist/wysihtml.min.map +++ b/dist/wysihtml.min.map @@ -1 +1 @@ -{"version":3,"file":"wysihtml.min.js","sources":["wysihtml.js"],"names":["String","prototype","trim","rtrim","this","replace","Event","preventDefault","returnValue","stopPropagation","cancelBubble","Element","addEventListener","eventListeners","type","listener","self","wrapper","e","target","srcElement","currentTarget","handleEvent","call","wrapper2","document","readyState","attachEvent","push","object","window","removeEventListener","counter","length","eventListener","detachEvent","splice","HTMLDocument","Window","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","createRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","shim","win","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","util","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","toArray","el","appendChild","childNodes","nodeType","arrayLike","arr","addListener","eventType","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","deprecationNotice","deprecated","replacement","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","previous","toSource","hidden","key","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","isPlainObject","isFunction","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","html","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","event","domNode","defaultNodeTypes","_isBlankText","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","ingoreEmpty","all","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","attributeValue","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","getAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","innerHtml","simulatePlaceholder","editor","placeholderText","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","unparseColor","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","which","ctrlKey","metaKey","minWidth","zIndex","notVisual","fixWebkitSelection","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","contentNodes","lastNode","prevLeaf","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","uneditableContainerClassname","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","styleRegExp","identifier","htmlApplier","strong","em","b","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertBlockQuote","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","innerLists","otherLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","handleDeleteKeyPress","selNode","curNode","beforeUneditable","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","handleIframeFocus","handleIframeBlur","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml"],"mappings":";;AAMKA,OAAOC,UAAUC,OACpB,WAEE,GAAIC,GAAQ,oCACZH,QAAOC,UAAUC,KAAO,WACtB,MAAOE,MAAKC,QAAQF,EAAO,QAOjC,WAWE,GAVKG,MAAML,UAAUM,iBACnBD,MAAML,UAAUM,eAAe,WAC7BH,KAAKI,aAAY,IAGhBF,MAAML,UAAUQ,kBACnBH,MAAML,UAAUQ,gBAAgB,WAC9BL,KAAKM,cAAa,KAGjBC,QAAQV,UAAUW,iBAAkB,CACvC,GAAIC,MAEAD,EAAiB,SAASE,EAAKC,GACjC,GAAIC,GAAKZ,KACLa,EAAQ,SAASC,GACnBA,EAAEC,OAAOD,EAAEE,WACXF,EAAEG,cAAcL,EACZD,EAASO,YACXP,EAASO,YAAYJ,GAErBH,EAASQ,KAAKP,EAAKE,GAGvB,IAAU,oBAANJ,EAA0B,CAC5B,GAAIU,GAAS,SAASN,GACK,YAArBO,SAASC,YACXT,EAAQC,GAMZ,IAHAO,SAASE,YAAY,qBAAqBH,GAC1CX,EAAee,MAAMC,OAAOzB,KAAKU,KAAKA,EAAKC,SAASA,EAASE,QAAQO,IAE5C,YAArBC,SAASC,WAAwB,CACnC,GAAIR,GAAE,GAAIZ,MACVY,GAAEE,WAAWU,OACbN,EAASN,QAGXd,MAAKuB,YAAY,KAAKb,EAAKG,GAC3BJ,EAAee,MAAMC,OAAOzB,KAAKU,KAAKA,EAAKC,SAASA,EAASE,QAAQA,KAGrEc,EAAoB,SAASjB,EAAKC,GAEpC,IADA,GAAIiB,GAAQ,EACLA,EAAQnB,EAAeoB,QAAQ,CACpC,GAAIC,GAAcrB,EAAemB,EACjC,IAAIE,EAAcL,QAAQzB,MAAQ8B,EAAcpB,MAAMA,GAAQoB,EAAcnB,UAAUA,EAAU,CACpF,oBAAND,EACFV,KAAK+B,YAAY,qBAAqBD,EAAcjB,SAEpDb,KAAK+B,YAAY,KAAKrB,EAAKoB,EAAcjB,SAE3CJ,EAAeuB,OAAOJ,EAAS,EAC/B,SAEAA,GAGNrB,SAAQV,UAAUW,iBAAiBA,EACnCD,QAAQV,UAAU8B,oBAAoBA,EAClCM,eACFA,aAAapC,UAAUW,iBAAiBA,EACxCyB,aAAapC,UAAU8B,oBAAoBA,GAEzCO,SACFA,OAAOrC,UAAUW,iBAAiBA,EAClC0B,OAAOrC,UAAU8B,oBAAoBA,OAMvCQ,OAAOC,gBAAkBD,OAAOE,0BAA4BF,OAAOE,yBAAyB9B,QAAQV,UAAW,iBAAmBsC,OAAOE,yBAAyB9B,QAAQV,UAAW,eAAeyC,MACvM,WACC,GAAIC,GAAYJ,OAAOE,yBAAyB9B,QAAQV,UAAW,YACnEsC,QAAOC,eAAe7B,QAAQV,UAAW,eAEvCyC,IAAK,WACJ,MAAOC,GAAUD,IAAInB,KAAKnB,OAE3BwC,IAAK,SAASC,GACb,MAAOF,GAAUC,IAAIrB,KAAKnB,KAAMyC,SAQjCC,MAAMC,UACRD,MAAMC,QAAU,SAASC,GACvB,MAA+C,mBAAxCT,OAAOtC,UAAUgD,SAAS1B,KAAKyB,KAKrCF,MAAM7C,UAAUiD,UACnBJ,MAAM7C,UAAUiD,QAAU,SAASC,EAAEC,GACnC,IAAI,GAAIC,GAAEjD,KAAK6B,OAAOqB,EAAE,GAAGC,EAAEH,IAAI,IAAKC,EAAEE,GAAID,EAAElD,OAAOiD,KAAKF,EAAEE,EAAEC,GAC9D,MAAOA,KAMNE,SAASvD,UAAUwD,OACtBD,SAASvD,UAAUwD,KAAO,SAASC,GACjC,GAAoB,kBAATtD,MAGT,KAAM,IAAIuD,WAAU,uEAGtB,IAAIC,GAAUd,MAAM7C,UAAU4D,MAAMtC,KAAKuC,UAAW,GAChDC,EAAU3D,KACV4D,EAAU,aACVC,EAAU,WACR,MAAOF,GAAQG,MAAM9D,eAAgB4D,IAAQN,EACpCtD,KACAsD,EACFE,EAAMO,OAAOrB,MAAM7C,UAAU4D,MAAMtC,KAAKuC,aAMrD,OAHAE,GAAK/D,UAAYG,KAAKH,UACtBgE,EAAOhE,UAAY,GAAI+D,GAEhBC,IAKX7D,KAAKO,SAAW,SAASyD,GACvBA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,oBACjBH,EAAiBI,mBACjBJ,EAAiBK,kBACjBL,EAAiBM,uBACjB,SAAUC,GAER,IADA,GAAIC,GAAOxE,KAAMyE,GAASD,EAAKE,YAAcF,EAAKnD,UAAUsD,iBAAiBJ,GAAWK,EAAI,GACrFH,IAAQG,IAAMH,EAAMG,IAAMJ,IACjC,QAASC,EAAMG,KAEjBrE,QAAQV,WAKN,YAAce,QAEV,aAAeS,UAASwD,cAAc,KAyJjC,gBAAkBnD,UAK1B,WACC,YAEA,IAAIoD,GAAczD,SAASwD,cAAc,IAMzC,IAJAC,EAAYC,UAAUC,IAAI,KAAM,OAI3BF,EAAYC,UAAUE,SAAS,MAAO,CACzC,GAAIC,GAAe,SAASC,GAC1B,GAAIC,GAAWC,aAAaxF,UAAUsF,EAEtCE,cAAaxF,UAAUsF,GAAU,SAASG,GACxC,GAAIV,GAAGW,EAAM7B,UAAU7B,MAEvB,KAAK+C,EAAI,EAAOW,EAAJX,EAASA,IACnBU,EAAQ5B,UAAUkB,GAClBQ,EAASjE,KAAKnB,KAAMsF,IAI1BJ,GAAa,OACbA,EAAa,UAOf,GAJAJ,EAAYC,UAAUS,OAAO,MAAM,GAI/BV,EAAYC,UAAUE,SAAS,MAAO,CACxC,GAAIQ,GAAUJ,aAAaxF,UAAU2F,MAErCH,cAAaxF,UAAU2F,OAAS,SAASF,EAAOI,GAC9C,MAAI,KAAKhC,aAAc1D,KAAKiF,SAASK,KAAYI,EACxCA,EAEAD,EAAQtE,KAAKnB,KAAMsF,IAMhCR,EAAc,SAxMf,SAASa,GACR,YACA,IAAM,WAAaA,GAAnB,CAEA,GACEC,GAAgB,YAChBC,EAAY,YACZC,EAAeH,EAAKpF,QAAQsF,GAC5BE,EAAS5D,OACT6D,EAAUpG,OAAOiG,GAAW/F,MAAQ,WAClC,MAAOE,MAAKC,QAAQ,aAAc,KAEpCgG,EAAavD,MAAMmD,GAAW/C,SAAW,SAASoD,GAIhD,IAHA,GACEtB,GAAI,EACJW,EAAMvF,KAAK6B,OACF0D,EAAJX,EAASA,IACd,GAAIA,IAAK5E,OAAQA,KAAK4E,KAAOsB,EAC3B,MAAOtB,EAGX,OAAO,IAETuB,EAAQ,SAASzF,EAAM0F,GACrBpG,KAAKqG,KAAO3F,EACZV,KAAKsG,KAAOC,aAAa7F,GACzBV,KAAKoG,QAAUA,GAEjBI,EAAwB,SAASzB,EAAWO,GAC1C,GAAc,KAAVA,EACF,KAAM,IAAIa,GACR,aAAc,6CAGlB,IAAI,KAAKM,KAAKnB,GACZ,KAAM,IAAIa,GACR,wBAAyB,uCAG7B,OAAOF,GAAW9E,KAAK4D,EAAWO,IAEpCoB,EAAY,SAASC,GAMnB,IALA,GACEC,GAAiBZ,EAAQ7E,KAAKwF,EAAKE,aAAa,UAAY,IAC5DC,EAAUF,EAAiBA,EAAeG,MAAM,UAChDnC,EAAI,EACJW,EAAMuB,EAAQjF,OACL0D,EAAJX,EAASA,IACd5E,KAAKwB,KAAKsF,EAAQlC,GAEpB5E,MAAKgH,iBAAmB,WACtBL,EAAKM,aAAa,QAASjH,KAAK6C,cAGpCqE,EAAiBR,EAAUb,MAC3BsB,EAAkB,WAChB,MAAO,IAAIT,GAAU1G,MA4EzB,IAxEAmG,EAAMN,GAAauB,MAAMvB,GACzBqB,EAAehB,KAAO,SAAStB,GAC7B,MAAO5E,MAAK4E,IAAM,MAEpBsC,EAAejC,SAAW,SAASK,GAEjC,MADAA,IAAS,GACqC,KAAvCkB,EAAsBxG,KAAMsF,IAErC4B,EAAelC,IAAM,WACnB,GAIEM,GAHA+B,EAAS3D,UACTkB,EAAI,EACJ0C,EAAID,EAAOxF,OACJ0F,GAAU,CACnB,GACEjC,GAAQ+B,EAAOzC,GAAK,GACuB,KAAvC4B,EAAsBxG,KAAMsF,KAC9BtF,KAAKwB,KAAK8D,GACViC,GAAU,WAGL3C,EAAI0C,EAETC,IACFvH,KAAKgH,oBAGTE,EAAeM,OAAS,WACtB,GAIElC,GACAmC,EAJAJ,EAAS3D,UACTkB,EAAI,EACJ0C,EAAID,EAAOxF,OACJ0F,GAAU,CAEnB,GAGE,KAFAjC,EAAQ+B,EAAOzC,GAAK,GACpB6C,EAAQjB,EAAsBxG,KAAMsF,GACnB,KAAVmC,GACLzH,KAAKgC,OAAOyF,EAAO,GACnBF,GAAU,EACVE,EAAQjB,EAAsBxG,KAAMsF,WAG/BV,EAAI0C,EAETC,IACFvH,KAAKgH,oBAGTE,EAAe1B,OAAS,SAASF,EAAOI,GACtCJ,GAAS,EAET,IACEoC,GAAS1H,KAAKiF,SAASK,GACvBH,EAASuC,EACThC,KAAU,GAAQ,SAClBA,KAAU,GAAS,KAMrB,OAJIP,IACFnF,KAAKmF,GAAQG,GAGXI,KAAU,GAAQA,KAAU,EACvBA,GAECgC,GAGZR,EAAerE,SAAW,WACxB,MAAO7C,MAAK2H,KAAK,MAGf5B,EAAO3D,eAAgB,CACzB,GAAIwF,IACFtF,IAAK6E,EACLU,YAAY,EACZC,cAAc,EAEhB,KACE/B,EAAO3D,eAAe0D,EAAcF,EAAegC,GACnD,MAAOG,GACW,cAAdA,EAAGC,SACLJ,EAAkBC,YAAa,EAC/B9B,EAAO3D,eAAe0D,EAAcF,EAAegC,SAG9C7B,GAAOF,GAAWoC,kBAC3BnC,EAAamC,iBAAiBrC,EAAeuB,KAG/CvG,MAmEN,IAAIsH,YACFC,QAAS,cAGTC,YACAC,OACAC,UACAC,WACAC,QACAC,aACAC,SAEAC,gBAAiB,IACjBC,wBAAyB,UAEzBC,eAAgB,aAEhBC,aAAc,EACdC,UAAc,EAEdC,cAAgB,EAChBC,UAAgB,GAChBC,WAAgB,GAChBC,UAAgB,GAChBC,QAAgB,EAChBC,WAAgB,KAYlB,SAAUC,EAASC,GACM,kBAAVC,SAAwBA,OAAOC,IAEtCD,OAAOF,GACiB,mBAAVI,SAA2C,gBAAXC,SAE9CD,OAAOC,QAAUL,IAGjBC,EAAKK,MAAQN,KAElB,WAwBC,QAASO,GAAaC,EAAGC,GACrB,GAAIC,SAAWF,GAAEC,EACjB,OAAOC,IAAKC,KAAgBD,GAAKE,IAAUJ,EAAEC,KAAa,WAALC,EAGzD,QAASG,GAAaL,EAAGC,GACrB,cAAiBD,GAAEC,IAAMG,IAAUJ,EAAEC,IAGzC,QAASK,GAAeN,EAAGC,GACvB,aAAcD,GAAEC,IAAMM,EAI1B,QAASC,GAA2BC,GAChC,MAAO,UAAST,EAAGU,GAEf,IADA,GAAI5F,GAAI4F,EAAM3I,OACP+C,KACH,IAAK2F,EAAST,EAAGU,EAAM5F,IACnB,OAAO,CAGf,QAAO,GASf,QAAS6F,GAAYC,GACjB,MAAOA,IAASC,EAAeD,EAAOE,IAAqBC,EAAkBH,EAAOI,GAGxF,QAASC,GAAQC,GACb,MAAOb,GAAaa,EAAK,QAAUA,EAAIC,KAAOD,EAAIE,qBAAqB,QAAQ,GAkCnF,QAASC,GAAWC,SACLC,UAAWhB,GAAaR,EAAawB,QAAS,QACrDA,QAAQC,IAAIF,GAIpB,QAASG,GAAWH,EAAKI,GACjBC,GAAaD,EACbE,MAAMN,GAEND,EAAWC,GAInB,QAASO,GAAKC,GACVC,EAAIC,aAAc,EAClBD,EAAIE,WAAY,EAChBR,EAAW,uDAAyDK,EAAQC,EAAIG,OAAOC,aAK3F,QAASC,GAAKd,GACVG,EAAW,kBAAoBH,EAAKS,EAAIG,OAAOG,aA+FnD,QAASC,GAAarE,GAClB,MAAOA,GAAG3B,SAAW2B,EAAGsE,aAAezM,OAAOmI,GAIlD,QAASuE,KACL,GAAKb,IAAaI,EAAIC,YAAtB,CAGA,GAAIS,GACAC,GAAqB,EAAOC,GAAsB,CAIlD5C,GAAaxI,SAAU,iBACvBkL,EAAYlL,SAASqL,cACjB/B,EAAe4B,EAAWI,IAAoB9B,EAAkB0B,EAAWK,KAC3EJ,GAAqB,GAI7B,IAAIvB,GAAOF,EAAQ1J,SACnB,KAAK4J,GAAuC,QAA/BA,EAAK4B,SAASC,cAEvB,WADAnB,GAAK,wBAWT,IAPIV,GAAQpB,EAAaoB,EAAM,qBAC3BsB,EAAYtB,EAAK8B,kBACbtC,EAAY8B,KACZE,GAAsB,KAIzBD,IAAuBC,EAExB,WADAd,GAAK,4CAITE,GAAIC,aAAc,EAClBD,EAAImB,UACAR,mBAAoBA,EACpBC,oBAAqBA,EAIzB,IAAI/C,GAAQuD,CACZ,KAAK,GAAIC,KAAcC,IACbzD,EAASyD,EAAQD,aAAwBE,IAC3C1D,EAAO4C,KAAK5C,EAAQmC,EAK5B,KAAK,GAAIjH,GAAI,EAAGW,EAAM8H,EAAcxL,OAAY0D,EAAJX,IAAWA,EACnD,IACIyI,EAAczI,GAAGiH,GACnB,MAAO9D,GACLkF,EAAe,+DAAiEb,EAAarE,GAC7FoD,EAAW8B,KAuBvB,QAASK,GAAKC,GACVA,EAAMA,GAAO7L,OACb4K,GAGA,KAAK,GAAI1H,GAAI,EAAGW,EAAMiI,EAAc3L,OAAY0D,EAAJX,IAAWA,EACnD4I,EAAc5I,GAAG2I,GAQzB,QAASH,GAAO/G,EAAMoH,EAAcC,GAChC1N,KAAKqG,KAAOA,EACZrG,KAAKyN,aAAeA,EACpBzN,KAAK8L,aAAc,EACnB9L,KAAK+L,WAAY,EACjB/L,KAAK0N,YAAcA,EA6CvB,QAASC,GAAatH,EAAMoH,EAAcG,GACtC,GAAIC,GAAY,GAAIT,GAAO/G,EAAMoH,EAAc,SAAS/D,GACpD,IAAKA,EAAOoC,YAAa,CACrBpC,EAAOoC,aAAc,CACrB,KACI8B,EAAS/B,EAAKnC,GACdA,EAAOqC,WAAY,EACrB,MAAOhE,GACL,GAAIkF,GAAe,WAAa5G,EAAO,qBAAuB+F,EAAarE,EAC3EoD,GAAW8B,GACPlF,EAAG+F,OACH3C,EAAWpD,EAAG+F,UAM9B,OADAX,GAAQ9G,GAAQwH,EACTA,EA8BX,QAASE,MAIT,QAASC,MAvZT,GAAI9D,GAAS,SAAUD,EAAW,WAAYI,EAAY,YAItDuC,GAAsB,iBAAkB,cAAe,eAAgB,YAAa,YACpF,2BAGAD,GAAmB,WAAY,iBAAkB,gBAAiB,SAAU,eAC5E,cAAe,WAAY,aAAc,qBAAsB,wBAAyB,iBACxF,kBAAmB,gBAAiB,aAAc,mBAAoB,aAAc,WAAY,UAEhG7B,GAAuB,iBAAkB,eAAgB,cAAe,gBAAiB,WAAY,QAGrGF,GAAoB,WAAY,mBAAoB,YAAa,oBAAqB,gBAAiB,SACvG,cAAe,yBAiCfD,EAAiBL,EAA2BT,GAC5CoE,EAAiB3D,EAA2BH,GAC5CU,EAAoBP,EAA2BF,GAU/C+C,KAEA1B,QAAoB/J,SAAU2I,SAAoBhJ,WAAYgJ,EAE9D6D,GACArE,aAAcA,EACdM,aAAcA,EACdC,eAAgBA,EAChBO,eAAgBA,EAChBsD,eAAgBA,EAChBpD,kBAAmBA,EACnBJ,YAAaA,EACbM,QAASA,GAGTc,GACA1D,QAAS,uBACT2D,aAAa,EACbL,UAAWA,EACXM,WAAW,EACXmC,KAAMA,EACNlB,YACAG,QAASA,EACTnB,QACIC,aAAa,EACbE,aAAa,EACbgC,iBAAiB,EACjBC,qBAAwBC,sBAAuBhE,GAAa,EAAOgE,qBAwB3ExC,GAAIF,KAAOA,EAMXE,EAAIK,KAAOA,CAGX,IAAIoC,QACGC,gBACHL,EAAKI,OAASA,EAAS,SAASE,EAAKhE,EAAOiE,GACxC,GAAI3E,GAAGC,CACP,KAAK,GAAInF,KAAK4F,GACNA,EAAM+D,eAAe3J,KACrBkF,EAAI0E,EAAI5J,GACRmF,EAAIS,EAAM5F,GACN6J,GAAc,OAAN3E,GAA0B,gBAALA,IAAuB,OAANC,GAA0B,gBAALA,IACnEuE,EAAOxE,EAAGC,GAAG,GAEjByE,EAAI5J,GAAKmF,EAOjB,OAHIS,GAAM+D,eAAe,cACrBC,EAAI3L,SAAW2H,EAAM3H,UAElB2L,GAGXN,EAAKQ,cAAgB,SAASC,EAAcC,GACxC,GAAIC,KAKJ,OAJAP,GAAOO,EAASD,GACZD,GACAL,EAAOO,EAASF,GAEbE,IAGXlD,EAAK,gCAIJF,GACDE,EAAK,mCAIT,WACI,GAAImD,EAEJ,IAAIrD,EAAW,CACX,GAAIsD,GAAK1N,SAASwD,cAAc,MAChCkK,GAAGC,YAAY3N,SAASwD,cAAc,QACtC,IAAIpB,MAAWA,KACf,KACoD,GAA5CA,EAAMtC,KAAK4N,EAAGE,WAAY,GAAG,GAAGC,WAChCJ,EAAU,SAASK,GACf,MAAO1L,GAAMtC,KAAKgO,EAAW,KAGvC,MAAOrO,KAGRgO,IACDA,EAAU,SAASK,GAEf,IAAK,GADDC,MACKxK,EAAI,EAAGW,EAAM4J,EAAUtN,OAAY0D,EAAJX,IAAWA,EAC/CwK,EAAIxK,GAAKuK,EAAUvK,EAEvB,OAAOwK,KAIflB,EAAKY,QAAUA,IAKnB,IAAIO,EACA5D,KACI5B,EAAaxI,SAAU,oBACvBgO,EAAc,SAASb,EAAKc,EAAW3O,GACnC6N,EAAIhO,iBAAiB8O,EAAW3O,GAAU,IAEvCkJ,EAAaxI,SAAU,eAC9BgO,EAAc,SAASb,EAAKc,EAAW3O,GACnC6N,EAAIjN,YAAY,KAAO+N,EAAW3O,IAGtCgL,EAAK,0EAGTuC,EAAKmB,YAAcA,EAGvB,IAAIhC,KAmEJxB,GAAIS,KAAOA,EAGXT,EAAI0D,gBAAkB,SAAS5O,GACvBkL,EAAIC,YACJnL,EAASkL,GAETwB,EAAc7L,KAAKb,GAI3B,IAAI6M,KAEJ3B,GAAI2D,gBAAkB,SAAS7O,GAC3B6M,EAAchM,KAAKb,IAanB8K,IACAI,EAAIyB,KAAOzB,EAAI4D,uBAAyBnC,GAW5CF,EAAOvN,WACHyM,KAAM,WAEF,IAAK,GAA6CoD,GAAgBxC,EAD9DyC,EAAsB3P,KAAKyN,iBACtB7I,EAAI,EAAGW,EAAMoK,EAAoB9N,OAAwC0D,EAAJX,IAAWA,EAAG,CAIxF,GAHAsI,EAAayC,EAAoB/K,GAEjC8K,EAAiBvC,EAAQD,KACpBwC,GAAoBA,YAA0BtC,IAC/C,KAAM,IAAIhG,OAAM,oBAAsB8F,EAAa,cAKvD,IAFAwC,EAAepD,QAEVoD,EAAe3D,UAChB,KAAM,IAAI3E,OAAM,oBAAsB8F,EAAa,mBAK3DlN,KAAK0N,YAAY1N,OAGrB2L,KAAM,SAASC,GAGX,KAFA5L,MAAK8L,aAAc,EACnB9L,KAAK+L,WAAY,EACX,GAAI3E,OAAM,WAAapH,KAAKqG,KAAO,qBAAuBuF,IAGpEM,KAAM,SAASd,GACXS,EAAIK,KAAK,UAAYlM,KAAKqG,KAAO,KAAO+E,IAG5CwE,kBAAmB,SAASC,EAAYC,GACpCjE,EAAIK,KAAK,eAAiB2D,EAAa,cAAgB7P,KAAKqG,KAAO,6BAC/DyJ,EAAc,aAGtBC,YAAa,SAAS3E,GAClB,MAAO,IAAIhE,OAAM,kBAAoBpH,KAAKqG,KAAO,YAAc+E,KAwBvES,EAAI8B,aAAe,SAAStH,GAExB,GAAIuH,GAAUH,CACU,IAApB/J,UAAU7B,QACV+L,EAAWlK,UAAU,GACrB+J,OAEAG,EAAWlK,UAAU,GACrB+J,EAAe/J,UAAU,GAG7B,IAAIgG,GAASiE,EAAatH,EAAMoH,EAAcG,EAG1C/B,GAAIC,aAAeD,EAAIE,WACvBrC,EAAO4C,QAIfT,EAAImE,iBAAmB,SAAS3J,EAAMoH,EAAcG,GAChDD,EAAatH,EAAMoH,EAAcG,IAQrC/B,EAAIkC,eAAiBA,EACrBlC,EAAIoE,eAAiB,GAAIlC,GAGzBlC,EAAIqE,mBAAqB,GAAIlC,GAK7BnC,EAAImE,iBAAiB,aAAe,SAASnE,EAAKnC,GAoD9C,QAASyG,GAAgB3L,GACrB,GAAI4L,EACJ,cAAc5L,GAAK6L,cAAgBC,GAAuC,QAA5BF,EAAK5L,EAAK6L,eAAgC,gCAAND,EAGtF,QAASG,GAAc/L,GACnB,GAAIgM,GAAShM,EAAKE,UAClB,OAA2B,IAAnB8L,EAAOtB,SAAiBsB,EAAS,KAG7C,QAASC,GAAajM,GAElB,IADA,GAAII,GAAI,EACAJ,EAAOA,EAAKkM,mBACd9L,CAEN,OAAOA,GAGX,QAAS+L,GAAcnM,GACnB,OAAQA,EAAK0K,UACT,IAAK,GACL,IAAK,IACD,MAAO,EACX,KAAK,GACL,IAAK,GACD,MAAO1K,GAAK3C,MAChB,SACI,MAAO2C,GAAKyK,WAAWpN,QAInC,QAAS+O,GAAkBC,EAAOC,GAC9B,GAAoBC,GAAhBC,IACJ,KAAKD,EAAIF,EAAOE,EAAGA,EAAIA,EAAErM,WACrBsM,EAAUxP,KAAKuP,EAGnB,KAAKA,EAAID,EAAOC,EAAGA,EAAIA,EAAErM,WACrB,GAAIuM,EAAcD,EAAWD,GACzB,MAAOA,EAIf,OAAO,MAGX,QAASG,GAAaC,EAAUC,EAAYC,GAExC,IADA,GAAIN,GAAIM,EAAiBD,EAAaA,EAAW1M,WAC1CqM,GAAG,CACN,GAAIA,IAAMI,EACN,OAAO,CAEPJ,GAAIA,EAAErM,WAGd,OAAO,EAGX,QAAS4M,GAAiBH,EAAUC,GAChC,MAAOF,GAAaC,EAAUC,GAAY,GAG9C,QAASG,GAAqB/M,EAAM2M,EAAUE,GAE1C,IADA,GAAItH,GAAGgH,EAAIM,EAAiB7M,EAAOA,EAAKE,WACjCqM,GAAG,CAEN,GADAhH,EAAIgH,EAAErM,WACFqF,IAAMoH,EACN,MAAOJ,EAEXA,GAAIhH,EAER,MAAO,MAGX,QAASyH,GAAoBhN,GACzB,GAAIwF,GAAIxF,EAAK0K,QACb,OAAY,IAALlF,GAAe,GAALA,GAAe,GAALA,EAG/B,QAASyH,GAAoBjN,GACzB,IAAKA,EACD,OAAO,CAEX,IAAIwF,GAAIxF,EAAK0K,QACb,OAAY,IAALlF,GAAe,GAALA,EAGrB,QAAS0H,GAAYlN,EAAMmN,GACvB,GAAIC,GAAWD,EAAcE,YAAarB,EAASmB,EAAcjN,UAMjE,OALIkN,GACApB,EAAOsB,aAAatN,EAAMoN,GAE1BpB,EAAOxB,YAAYxK,GAEhBA,EAIX,QAASuN,GAAcvN,EAAMiD,EAAOuK,GAChC,GAAIC,GAAUzN,EAAK0N,WAAU,EAM7B,IALAD,EAAQE,WAAW,EAAG1K,GACtBjD,EAAK2N,WAAW1K,EAAOjD,EAAK3C,OAAS4F,GACrCiK,EAAYO,EAASzN,GAGjBwN,EACA,IAAK,GAAWI,GAAPxN,EAAI,EAAawN,EAAWJ,EAAoBpN,MAEjDwN,EAAS5N,MAAQA,GAAQ4N,EAASC,OAAS5K,GAC3C2K,EAAS5N,KAAOyN,EAChBG,EAASC,QAAU5K,GAGd2K,EAAS5N,MAAQA,EAAKE,YAAc0N,EAASC,OAAS5B,EAAajM,MACtE4N,EAASC,MAIvB,OAAOJ,GAGX,QAASK,GAAY9N,GACjB,GAAqB,GAAjBA,EAAK0K,SACL,MAAO1K,EACJ,UAAWA,GAAK+N,eAAiBjC,EACpC,MAAO9L,GAAK+N,aACT,UAAW/N,GAAKnD,UAAYiP,EAC/B,MAAO9L,GAAKnD,QACT,IAAImD,EAAKE,WACZ,MAAO4N,GAAY9N,EAAKE,WAExB,MAAMgF,GAAOqG,YAAY,2CAIjC,QAASyC,GAAUhO,GACf,GAAIwG,GAAMsH,EAAY9N,EACtB,UAAWwG,GAAIyH,aAAenC,EAC1B,MAAOtF,GAAIyH,WACR,UAAWzH,GAAI0H,cAAgBpC,EAClC,MAAOtF,GAAI0H,YAEX,MAAMhJ,GAAOqG,YAAY,uCAIjC,QAAS4C,GAAkBC,GACvB,SAAWA,GAASC,iBAAmBvC,EACnC,MAAOsC,GAASC,eACb,UAAWD,GAASE,eAAiBxC,EACxC,MAAOsC,GAASE,cAAczR,QAE9B,MAAMqI,GAAOqG,YAAY,kEAIjC,QAASgD,GAAgBH,GACrB,SAAWA,GAASE,eAAiBxC,EACjC,MAAOsC,GAASE,aACb,UAAWF,GAASC,iBAAmBvC,EAC1C,MAAOsC,GAASC,gBAAgBJ,WAEhC,MAAM/I,GAAOqG,YAAY,8DAKjC,QAASiD,GAASxE,GACd,MAAOA,IAAON,EAAKrE,aAAa2E,EAAK,eAAiBN,EAAK/D,aAAaqE,EAAK,YAGjF,QAASyE,GAAmBzE,EAAK9E,EAAQwJ,GACrC,GAAIlI,EAiBJ,IAfKwD,EAKIN,EAAK9D,eAAeoE,EAAK,YAC9BxD,EAAuB,GAAhBwD,EAAIU,UAA8C,UAA7BV,EAAI2E,QAAQrG,cACpC6F,EAAkBnE,GAAO8D,EAAY9D,GAIpCwE,EAASxE,KACdxD,EAAMwD,EAAInN,UAXV2J,EAAM3J,UAcL2J,EACD,KAAMtB,GAAOqG,YAAYmD,EAAa,oDAG1C,OAAOlI,GAGX,QAASoI,GAAiB5O,GAEtB,IADA,GAAIgM,GACKA,EAAShM,EAAKE,YACnBF,EAAOgM,CAEX,OAAOhM,GAGX,QAAS6O,GAAcC,EAAOC,EAASC,EAAOC,GAE1C,GAAIC,GAAOnK,EAAMoK,EAAQC,EAAQ7C,CACjC,IAAIuC,GAASE,EAET,MAAOD,KAAYE,EAAU,EAAeA,EAAVF,EAAqB,GAAK,CACzD,IAAMG,EAAQnC,EAAqBiC,EAAOF,GAAO,GAEpD,MAAOC,IAAW9C,EAAaiD,GAAS,GAAK,CAC1C,IAAMA,EAAQnC,EAAqB+B,EAAOE,GAAO,GAEpD,MAAO/C,GAAaiD,GAASD,EAAW,GAAK,CAG7C,IADAlK,EAAOqH,EAAkB0C,EAAOE,IAC3BjK,EACD,KAAM,IAAInC,OAAM,qDAOpB,IAHAuM,EAAUL,IAAU/J,EAAQA,EAAOgI,EAAqB+B,EAAO/J,GAAM,GACrEqK,EAAUJ,IAAUjK,EAAQA,EAAOgI,EAAqBiC,EAAOjK,GAAM,GAEjEoK,IAAWC,EAEX,KAAMlK,GAAOqG,YAAY,kEAGzB,KADAgB,EAAIxH,EAAKsK,WACF9C,GAAG,CACN,GAAIA,IAAM4C,EACN,MAAO,EACJ,IAAI5C,IAAM6C,EACb,MAAO,EAEX7C,GAAIA,EAAEc,aAWtB,QAASiC,GAAatP,GAClB,GAAIuM,EACJ,KAEI,MADAA,GAAIvM,EAAKE,YACF,EACT,MAAO5D,GACL,OAAO,GAgBf,QAASiT,GAAYvP,GACjB,IAAKA,EACD,MAAO,WAEX,IAAIwP,GAAmBF,EAAatP,GAChC,MAAO,eAEX,IAAIgN,EAAoBhN,GACpB,MAAO,IAAMA,EAAKyP,KAAO,GAE7B,IAAqB,GAAjBzP,EAAK0K,SAAe,CACpB,GAAIgF,GAAS1P,EAAK2P,GAAK,QAAU3P,EAAK2P,GAAK,IAAM,EACjD,OAAO,IAAM3P,EAAKqI,SAAWqH,EAAS,WAAazD,EAAajM,GAAQ,WAAaA,EAAKyK,WAAWpN,OAAS,MAAQ2C,EAAK4P,WAAa,6BAA6B3Q,MAAM,EAAG,IAAM,IAExL,MAAOe,GAAKqI,SAGhB,QAASwH,GAAyB7P,GAE9B,IADA,GAA2D8P,GAAvDC,EAAWjC,EAAY9N,GAAMgQ,yBACxBF,EAAQ9P,EAAKqP,YAClBU,EAASvF,YAAYsF,EAEzB,OAAOC,GAgBX,QAASE,GAAalL,GAClBvJ,KAAKuJ,KAAOA,EACZvJ,KAAK0U,MAAQnL,EAiCjB,QAASoL,GAAepL,GACpB,MAAO,IAAIkL,GAAalL,GAG5B,QAASqL,GAAYpQ,EAAM6N,GACvBrS,KAAKwE,KAAOA,EACZxE,KAAKqS,OAASA,EAiBlB,QAAS9L,GAAasO,GAClB7U,KAAKsG,KAAOtG,KAAK6U,GACjB7U,KAAK6U,SAAWA,EAChB7U,KAAKoG,QAAU,iBAAmBpG,KAAK6U,SApa3C,GAAIvE,GAAQ,YACRpC,EAAOrC,EAAIqC,IAGVA,GAAKvD,eAAetJ,UAAW,yBAA0B,gBAAiB,oBAC3EqI,EAAOiC,KAAK,2CAGXuC,EAAKrE,aAAaxI,SAAU,yBAC7BqI,EAAOiC,KAAK,+CAGhB,IAAIoD,GAAK1N,SAASwD,cAAc,MAC3BqJ,GAAKvD,eAAeoE,GAAK,eAAgB,cAAe,eACpDb,EAAKD,eAAec,GAAK,kBAAmB,cAAe,aAAc,iBAC9ErF,EAAOiC,KAAK,qCAIXuC,EAAK9D,eAAe2E,EAAI,cACzBrF,EAAOiC,KAAK,wCAGhB,IAAImJ,GAAWzT,SAAS0T,eAAe,OAClC7G,GAAKvD,eAAemK,GAAW,YAAa,aAAc,aAAc,aAAc,eAClF5G,EAAKD,eAAec,GAAK,kBAAmB,cAAe,aAAc,iBACzEb,EAAKrD,kBAAkBiK,GAAW,WACvCpL,EAAOiC,KAAK,sCAQhB,IAAIsF,GAKA,SAAS7B,EAAK4F,GAEV,IADA,GAAIpQ,GAAIwK,EAAIvN,OACL+C,KACH,GAAIwK,EAAIxK,KAAOoQ,EACX,OAAO,CAGf,QAAO,GA0PXhB,GAAkB,GAYtB,WACI,GAAIjF,GAAK1N,SAASwD,cAAc,IAChCkK,GAAGqF,UAAY,GACf,IAAIU,GAAW/F,EAAG8E,UAClB9E,GAAGqF,UAAY,OACfJ,EAAkBF,EAAagB,GAE/BjJ,EAAImB,SAASgH,gBAAkBA,IA8BnC,IAAIiB,SACOvT,QAAOwT,kBAAoB5E,EAClC2E,EAA2B,SAASlG,EAAIoG,GACpC,MAAO3C,GAAUzD,GAAImG,iBAAiBnG,EAAI,MAAMoG,UAEtC9T,UAAS+T,gBAAgBC,cAAgB/E,EACvD2E,EAA2B,SAASlG,EAAIoG,GACpC,MAAOpG,GAAGsG,aAAaF,IAG3BzL,EAAOiC,KAAK,yDAQhB8I,EAAa5U,WACTyV,SAAU,KAEVC,QAAS,WACL,QAASvV,KAAK0U,OAGlBc,KAAM,WACF,GACIlB,GAAOkB,EADPzE,EAAI/Q,KAAKsV,SAAWtV,KAAK0U,KAE7B,IAAI1U,KAAKsV,SAEL,GADAhB,EAAQvD,EAAE8C,WAEN7T,KAAK0U,MAAQJ,MACV,CAEH,IADAkB,EAAO,KACCzE,IAAM/Q,KAAKuJ,QAAWiM,EAAOzE,EAAEc,cACnCd,EAAIA,EAAErM,UAEV1E,MAAK0U,MAAQc,EAGrB,MAAOxV,MAAKsV,UAGhBG,OAAQ,WACJzV,KAAKsV,SAAWtV,KAAK0U,MAAQ1U,KAAKuJ,KAAO,OAajDqL,EAAY/U,WACR6V,OAAQ,SAASC,GACb,QAASA,GAAO3V,KAAKwE,OAASmR,EAAInR,MAAQxE,KAAKqS,QAAUsD,EAAItD,QAGjEuD,QAAS,WACL,MAAO,gBAAkB7B,EAAY/T,KAAKwE,MAAQ,IAAMxE,KAAKqS,OAAS,MAG1ExP,SAAU,WACN,MAAO7C,MAAK4V,YAUpBrP,EAAa1G,WACTgW,eAAgB,EAChBC,sBAAuB,EACvBC,mBAAoB,EACpBC,4BAA6B,EAC7BC,cAAe,EACfC,kBAAmB,EACnBC,kBAAmB,GACnBC,sBAAuB,IAG3B7P,EAAa1G,UAAUgD,SAAW,WAC9B,MAAO7C,MAAKoG,SAGhByF,EAAIxD,KACA4I,cAAeA,EACfd,gBAAiBA,EACjBI,cAAeA,EACfE,aAAcA,EACdE,cAAeA,EACfC,kBAAmBA,EACnBM,aAAcA,EACdI,iBAAkBA,EAClBC,qBAAsBA,EACtBC,oBAAqBA,EACrBC,oBAAqBA,EACrBC,YAAaA,EACbK,cAAeA,EACfO,YAAaA,EACbE,UAAWA,EACXO,gBAAiBA,EACjBJ,kBAAmBA,EACnB5H,QAASmD,EAAKnD,QACdiI,SAAUA,EACVC,mBAAoBA,EACpBG,iBAAkBA,EAClBC,cAAeA,EACfS,aAAcA,EACdC,YAAaA,EACbkB,yBAA0BA,EAC1BZ,yBAA0BA,EAC1BM,eAAgBA,EAChBC,YAAaA,GAGjB/I,EAAItF,aAAeA,IAMvBsF,EAAImE,iBAAiB,YAAa,WAAY,SAASnE,GAsBnD,QAASwK,GAA2B7R,EAAMkG,GACtC,MAAyB,IAAjBlG,EAAK0K,WACLoC,EAAiB9M,EAAMkG,EAAM4L,iBAAmBhF,EAAiB9M,EAAMkG,EAAM6L,eAGzF,QAASC,GAAiB9L,GACtB,MAAOA,GAAMrJ,UAAYiR,EAAY5H,EAAM4L,gBAG/C,QAASG,GAAsBjS,GAC3B,MAAO,IAAIoQ,GAAYpQ,EAAKE,WAAY+L,EAAajM,IAGzD,QAASkS,GAAqBlS,GAC1B,MAAO,IAAIoQ,GAAYpQ,EAAKE,WAAY+L,EAAajM,GAAQ,GAGjE,QAASmS,GAAqBnS,EAAMuM,EAAGjH,GACnC,GAAI8M,GAAqC,IAAjBpS,EAAK0K,SAAiB1K,EAAKqP,WAAarP,CAYhE,OAXIgN,GAAoBT,GAChBjH,GAAKiH,EAAElP,OACPwG,EAAIqJ,YAAYlN,EAAMuM,GAEtBA,EAAErM,WAAWoN,aAAatN,EAAW,GAALsF,EAASiH,EAAIgB,EAAchB,EAAGjH,IAE3DA,GAAKiH,EAAE9B,WAAWpN,OACzBkP,EAAE/B,YAAYxK,GAEduM,EAAEe,aAAatN,EAAMuM,EAAE9B,WAAWnF,IAE/B8M,EAGX,QAASC,GAAgBC,EAAQC,EAAQC,GAIrC,GAHAC,EAAiBH,GACjBG,EAAiBF,GAEbP,EAAiBO,IAAWP,EAAiBM,GAC7C,KAAM,IAAIvQ,GAAa,qBAG3B,IAAI2Q,GAAkB7D,EAAcyD,EAAOR,eAAgBQ,EAAOK,YAAaJ,EAAOR,aAAcQ,EAAOK,WACvGC,EAAgBhE,EAAcyD,EAAOP,aAAcO,EAAOM,UAAWL,EAAOT,eAAgBS,EAAOI,YAEvG,OAAOH,GAA4C,GAAnBE,GAAwBG,GAAiB,EAAsB,EAAlBH,GAAuBG,EAAgB,EAGxH,QAASC,GAAaC,GAElB,IAAK,GADDC,GACKhT,EAAwEiT,EAAlEC,EAAOlB,EAAiBe,EAAS7M,OAAO8J,yBAAuChQ,EAAO+S,EAAS/B,QAAU,CASpH,GARAgC,EAAoBD,EAASI,6BAC7BnT,EAAOA,EAAK0N,WAAWsF,GACnBA,IACAC,EAAcF,EAASK,qBACvBpT,EAAKwK,YAAYsI,EAAaG,IAC9BA,EAAYhC,UAGK,IAAjBjR,EAAK0K,SACL,KAAM,IAAI3I,GAAa,wBAE3BmR,GAAK1I,YAAYxK,GAErB,MAAOkT,GAGX,QAASG,GAAeC,EAAeC,EAAMC,GACzC,GAAIC,GAAIlH,CACRiH,GAAgBA,IAAmBE,MAAM,EACzC,KAAK,GAAI1T,GAAM2T,EAAkB3T,EAAOsT,EAActC,QAClD,GAAIsC,EAAcH,6BAA8B,CAC5C,GAAII,EAAKvT,MAAU,EAEf,YADAwT,EAAcE,MAAO,EAQrB,IAHAC,EAAmBL,EAAcF,qBACjCC,EAAeM,EAAkBJ,EAAMC,GACvCG,EAAiB1C,SACbuC,EAAcE,KACd,WAOR,KADAD,EAAK5P,EAAIsM,eAAenQ,GACfuM,EAAIkH,EAAGzC,QACZ,GAAIuC,EAAKhH,MAAO,EAEZ,YADAiH,EAAcE,MAAO,GAQzC,QAASE,GAAcb,GAEnB,IADA,GAAIE,GACGF,EAAS/B,QACR+B,EAASI,8BACTF,EAAcF,EAASK,qBACvBQ,EAAcX,GACdA,EAAYhC,UAEZ8B,EAAS/P,SAKrB,QAAS6Q,GAAed,GACpB,IAAK,GAAI/S,GAAwEiT,EAAlEC,EAAOlB,EAAiBe,EAAS7M,OAAO8J,yBAAuChQ,EAAO+S,EAAS/B,QAAU,CAUpH,GARI+B,EAASI,8BACTnT,EAAOA,EAAK0N,WAAU,GACtBuF,EAAcF,EAASK,qBACvBpT,EAAKwK,YAAYqJ,EAAeZ,IAChCA,EAAYhC,UAEZ8B,EAAS/P,SAEQ,IAAjBhD,EAAK0K,SACL,KAAM,IAAI3I,GAAa,wBAE3BmR,GAAK1I,YAAYxK,GAErB,MAAOkT,GAGX,QAASY,GAAgB5N,EAAO6N,EAAWC,GACvC,GAAyDC,GAArDC,KAAqBH,IAAaA,EAAU1W,QAC5C8W,IAAiBH,CACjBE,KACAD,EAAQ,GAAIG,QAAO,KAAOL,EAAU5Q,KAAK,KAAO,MAGpD,IAAIlD,KAsBJ,OArBAoT,GAAe,GAAIgB,GAAcnO,GAAO,GAAQ,SAASlG,GACrD,KAAIkU,IAAoBD,EAAMhS,KAAKjC,EAAK0K,WAGpCyJ,IAAiBH,EAAOhU,IAA5B,CAKA,GAAIsU,GAAKpO,EAAM4L,cACf,IAAI9R,GAAQsU,IAAMtH,EAAoBsH,IAAOpO,EAAMyM,aAAe2B,EAAGjX,OAArE,CAIA,GAAIkX,GAAKrO,EAAM6L,YACX/R,IAAQuU,GAAMvH,EAAoBuH,IAA0B,GAAnBrO,EAAM0M,WAInD3S,EAAMjD,KAAKgD,OAERC,EAGX,QAASmR,GAAQlL,GACb,GAAIrE,GAAgC,mBAAjBqE,GAAMsO,QAA0B,QAAUtO,EAAMsO,SACnE,OAAO,IAAM3S,EAAO,IAAMgC,EAAI0L,YAAYrJ,EAAM4L,gBAAkB,IAAM5L,EAAMyM,YAAc,KACpF9O,EAAI0L,YAAYrJ,EAAM6L,cAAgB,IAAM7L,EAAM0M,UAAY,KAO1E,QAASyB,GAAcnO,EAAOuO,GAK1B,GAJAjZ,KAAK0K,MAAQA,EACb1K,KAAKiZ,gCAAkCA,GAGlCvO,EAAMwO,UAAW,CAClBlZ,KAAK8Y,GAAKpO,EAAM4L,eAChBtW,KAAKmZ,GAAKzO,EAAMyM,YAChBnX,KAAK+Y,GAAKrO,EAAM6L,aAChBvW,KAAKoZ,GAAK1O,EAAM0M,SAChB,IAAI7N,GAAOmB,EAAM2O,uBAEbrZ,MAAK8Y,KAAO9Y,KAAK+Y,IAAMvH,EAAoBxR,KAAK8Y,KAChD9Y,KAAKsZ,2BAA4B,EACjCtZ,KAAKuZ,OAASvZ,KAAKwZ,MAAQxZ,KAAK0U,MAAQ1U,KAAK8Y,KAE7C9Y,KAAKuZ,OAASvZ,KAAK0U,MAAS1U,KAAK8Y,KAAOvP,GAASiI,EAAoBxR,KAAK8Y,IACxCvH,EAAqBvR,KAAK8Y,GAAIvP,GAAM,GAAlEvJ,KAAK8Y,GAAG7J,WAAWjP,KAAKmZ,IAC5BnZ,KAAKwZ,MAASxZ,KAAK+Y,KAAOxP,GAASiI,EAAoBxR,KAAK+Y,IACtBxH,EAAqBvR,KAAK+Y,GAAIxP,GAAM,GAAtEvJ,KAAK+Y,GAAG9J,WAAWjP,KAAKoZ,GAAK,KAqG7C,QAASK,GAAqBlB,GAC1B,MAAO,UAAS/T,EAAM6M,GAElB,IADA,GAAIrH,GAAG+G,EAAIM,EAAiB7M,EAAOA,EAAKE,WACjCqM,GAAG,CAEN,GADA/G,EAAI+G,EAAE7B,SACF+B,EAAcsH,EAAWvO,GACzB,MAAO+G,EAEXA,GAAIA,EAAErM,WAEV,MAAO,OAQf,QAASgV,GAAsClV,EAAMmV,GACjD,GAAIC,GAAiCpV,EAAMmV,GACvC,KAAM,IAAIpT,GAAa,yBAI/B,QAASsT,GAAoBrV,EAAMsV,GAC/B,IAAK7I,EAAc6I,EAActV,EAAK0K,UAClC,KAAM,IAAI3I,GAAa,yBAI/B,QAASwT,GAAkBvV,EAAM6N,GAC7B,GAAa,EAATA,GAAcA,GAAUb,EAAoBhN,GAAQA,EAAK3C,OAAS2C,EAAKyK,WAAWpN,QAClF,KAAM,IAAI0E,GAAa,kBAI/B,QAASyT,GAA6BnJ,EAAOC,GACzC,GAAImJ,GAA+BpJ,GAAO,KAAUoJ,GAA+BnJ,GAAO,GACtF,KAAM,IAAIvK,GAAa,sBAI/B,QAAS2T,GAAsB1V,GAC3B,GAAI2V,GAAoB3V,GAAM,GAC1B,KAAM,IAAI+B,GAAa,+BAI/B,QAAS6T,GAAW5V,EAAMqQ,GACtB,IAAKrQ,EACD,KAAM,IAAI+B,GAAasO,GAI/B,QAASwF,GAAS7V,GACd,MAAQwP,IAAmB3L,EAAIyL,aAAatP,KACvCyM,EAAcqJ,EAAwB9V,EAAK0K,YAAc+K,GAA+BzV,GAAM,GAGvG,QAAS+V,GAAc/V,EAAM6N,GACzB,MAAOA,KAAWb,EAAoBhN,GAAQA,EAAK3C,OAAS2C,EAAKyK,WAAWpN,QAGhF,QAAS2Y,GAAa9P,GAClB,QAAUA,EAAM4L,kBAAoB5L,EAAM6L,eACjC8D,EAAS3P,EAAM4L,kBACf+D,EAAS3P,EAAM6L,eAChBgE,EAAc7P,EAAM4L,eAAgB5L,EAAMyM,cAC1CoD,EAAc7P,EAAM6L,aAAc7L,EAAM0M,WAGpD,QAASH,GAAiBvM,GACtB,IAAK8P,EAAa9P,GACd,KAAM,IAAItD,OAAM,6DAA+DsD,EAAMkL,UAAY,KAyFzG,QAAS6E,GAAqB/P,EAAOsH,GACjCiF,EAAiBvM,EAEjB,IAAIoO,GAAKpO,EAAM4L,eAAgB6C,EAAKzO,EAAMyM,YAAa4B,EAAKrO,EAAM6L,aAAc6C,EAAK1O,EAAM0M,UACvFsD,EAAgB5B,IAAOC,CAEvBvH,GAAoBuH,IAAOK,EAAK,GAAKA,EAAKL,EAAGlX,QAC7CkQ,EAAcgH,EAAIK,EAAIpH,GAGtBR,EAAoBsH,IAAOK,EAAK,GAAKA,EAAKL,EAAGjX,SAC7CiX,EAAK/G,EAAc+G,EAAIK,EAAInH,GACvB0I,GACAtB,GAAMD,EACNJ,EAAKD,GACEC,GAAMD,EAAGpU,YAAc0U,GAAM3I,EAAaqI,IACjDM,IAEJD,EAAK,GAETzO,EAAMiQ,eAAe7B,EAAIK,EAAIJ,EAAIK,GAGrC,QAASwB,GAAYlQ,GACjBuM,EAAiBvM,EACjB,IAAImQ,GAAYnQ,EAAM2O,wBAAwB3U,WAAWwN,WAAU,EAEnE,OADA2I,GAAU7L,YAAatE,EAAMoQ,iBACtBD,EAAUzG,UA8WrB,QAAS2G,GAAgCvM,GACrCA,EAAIwM,eAAiBC,GACrBzM,EAAI0M,aAAeC,GACnB3M,EAAI4M,WAAaC,GACjB7M,EAAI8M,aAAeC,GAEnB/M,EAAIgN,YAAcC,GAClBjN,EAAIkN,WAAaC,GACjBnN,EAAIoN,sBAAwBC,GAC5BrN,EAAIsN,YAAcC,GAGtB,QAASC,GAAwBC,GAC7BlB,EAAgCkB,GAChClB,EAAgCkB,EAAYpc,WAGhD,QAASqc,GAA0BC,EAASC,GACxC,MAAO,YACHnF,EAAiBjX,KAEjB,IAKIwE,GAAM6X,EALNvD,EAAK9Y,KAAKsW,eAAgB6C,EAAKnZ,KAAKmX,YAAa5N,EAAOvJ,KAAKqZ,wBAE7D9B,EAAW,GAAIsB,GAAc7Y,MAAM,EAInC8Y,KAAOvP,IACP/E,EAAO+M,EAAqBuH,EAAIvP,GAAM,GACtC8S,EAAW3F,EAAqBlS,GAChCsU,EAAKuD,EAAS7X,KACd2U,EAAKkD,EAAShK,QAIlBwF,EAAeN,EAAU2C,GAEzB3C,EAAS+E,OAGT,IAAIlc,GAAc+b,EAAQ5E,EAM1B,OALAA,GAAS9B,SAGT2G,EAAgBpc,KAAM8Y,EAAIK,EAAIL,EAAIK,GAE3B/Y,GAIf,QAASmc,GAAqBN,EAAaG,GACvC,QAASI,GAA4BC,EAAUC,GAC3C,MAAO,UAASlY,GACZqV,EAAoBrV,EAAMmY,GAC1B9C,EAAoBzG,EAAiB5O,GAAO8V,EAE5C,IAAI+B,IAAYI,EAAWhG,EAAwBC,GAAsBlS,IACxEkY,EAAUE,EAAgBC,GAAa7c,KAAMqc,EAAS7X,KAAM6X,EAAShK,SAI9E,QAASuK,GAAclS,EAAOlG,EAAM6N,GAChC,GAAI0G,GAAKrO,EAAM6L,aAAc6C,EAAK1O,EAAM0M,WACpC5S,IAASkG,EAAM4L,gBAAkBjE,IAAW3H,EAAMyM,gBAG9C/D,EAAiB5O,IAAS4O,EAAiB2F,IAA8C,GAAvC1F,EAAc7O,EAAM6N,EAAQ0G,EAAIK,MAClFL,EAAKvU,EACL4U,EAAK/G,GAET+J,EAAgB1R,EAAOlG,EAAM6N,EAAQ0G,EAAIK,IAIjD,QAASyD,GAAYnS,EAAOlG,EAAM6N,GAC9B,GAAIyG,GAAKpO,EAAM4L,eAAgB6C,EAAKzO,EAAMyM,aACtC3S,IAASkG,EAAM6L,cAAgBlE,IAAW3H,EAAM0M,cAG5ChE,EAAiB5O,IAAS4O,EAAiB0F,IAA8C,IAAvCzF,EAAc7O,EAAM6N,EAAQyG,EAAIK,MAClFL,EAAKtU,EACL2U,EAAK9G,GAET+J,EAAgB1R,EAAOoO,EAAIK,EAAI3U,EAAM6N,IAK7C,GAAIyK,GAAI,YACRA,GAAEjd,UAAYgM,EAAIoE,eAClBgM,EAAYpc,UAAY,GAAIid,GAE5B5O,EAAKI,OAAO2N,EAAYpc,WACpBkd,SAAU,SAASvY,EAAM6N,GACrBqH,EAAsClV,GAAM,GAC5CuV,EAAkBvV,EAAM6N,GAExBuK,EAAc5c,KAAMwE,EAAM6N,IAG9B2K,OAAQ,SAASxY,EAAM6N,GACnBqH,EAAsClV,GAAM,GAC5CuV,EAAkBvV,EAAM6N,GAExBwK,EAAY7c,KAAMwE,EAAM6N,IAW5BsI,eAAgB,WACZ,GAAIsC,GAAOvZ,UACPoV,EAAKmE,EAAK,GAAI9D,EAAK8D,EAAK,GAAIlE,EAAKD,EAAIM,EAAKD,CAE9C,QAAQ8D,EAAKpb,QACT,IAAK,GACDuX,EAAK6D,EAAK,EACV,MACJ,KAAK,GACDlE,EAAKkE,EAAK,GACV7D,EAAK6D,EAAK,GAIlBb,EAAgBpc,KAAM8Y,EAAIK,EAAIJ,EAAIK,IAGtC8D,YAAa,SAAS1Y,EAAM6N,EAAQqK,GAChC1c,KAAK,OAAS0c,EAAU,QAAU,QAAQlY,EAAM6N,IAGpD8K,eAAgBX,GAA4B,GAAM,GAClDY,cAAeZ,GAA4B,GAAO,GAClDa,aAAcb,GAA4B,GAAM,GAChDc,YAAad,GAA4B,GAAO,GAEhDe,SAAU,SAASb,GACfzF,EAAiBjX,MACb0c,EACAN,EAAgBpc,KAAMA,KAAKsW,eAAgBtW,KAAKmX,YAAanX,KAAKsW,eAAgBtW,KAAKmX,aAEvFiF,EAAgBpc,KAAMA,KAAKuW,aAAcvW,KAAKoX,UAAWpX,KAAKuW,aAAcvW,KAAKoX,YAIzFoG,mBAAoB,SAAShZ,GACzBkV,EAAsClV,GAAM,GAE5C4X,EAAgBpc,KAAMwE,EAAM,EAAGA,EAAMmM,EAAcnM,KAGvDiZ,WAAY,SAASjZ,GACjBkV,EAAsClV,GAAM,GAC5CqV,EAAoBrV,EAAMmY,EAE1B,IAAIe,GAAQjH,EAAsBjS,GAAOmZ,EAAMjH,EAAqBlS,EACpE4X,GAAgBpc,KAAM0d,EAAMlZ,KAAMkZ,EAAMrL,OAAQsL,EAAInZ,KAAMmZ,EAAItL,SAGlEuL,gBAAiB1B,EAA0B7D,EAAgB+D,GAE3DyB,eAAgB3B,EAA0B9D,EAAegE,GAEzD0B,oBAAqB,WACjB7G,EAAiBjX,MACjBka,EAAsBla,KAAKsW,gBAC3B4D,EAAsBla,KAAKuW,aAI3B,IAAIgB,GAAW,GAAIsB,GAAc7Y,MAAM,GACnC+d,EAAqBxG,EAASgC,QAAUlD,EAA2BkB,EAASgC,OAAQvZ,OAC/EuX,EAASiC,OAASnD,EAA2BkB,EAASiC,MAAOxZ,KAEtE,OADAuX,GAAS9B,UACDsI,GAGZC,gBAAiB,WACbvD,EAAqBza,OAGzBie,mCAAoC,SAASjM,GACzCyI,EAAqBza,KAAMgS,IAG/BkM,oBAAqB,WACjBjH,EAAiBjX,KAEjB,IAAI8Y,GAAK9Y,KAAKsW,eAAgB6C,EAAKnZ,KAAKmX,YAAa4B,EAAK/Y,KAAKuW,aAAc6C,EAAKpZ,KAAKoX,UAEnF+G,EAAe,SAAS3Z,GACxB,GAAI4Z,GAAU5Z,EAAKqN,WACfuM,IAAWA,EAAQlP,UAAY1K,EAAK0K,WACpC6J,EAAKvU,EACL4U,EAAK5U,EAAK3C,OACV2C,EAAK6Z,WAAWD,EAAQnK,MACxBmK,EAAQ1Z,WAAW4Z,YAAYF,KAInCG,EAAgB,SAAS/Z,GACzB,GAAI4Z,GAAU5Z,EAAKkM,eACnB,IAAI0N,GAAWA,EAAQlP,UAAY1K,EAAK0K,SAAU,CAC9C4J,EAAKtU,CACL,IAAIga,GAAaha,EAAK3C,MAItB,IAHAsX,EAAKiF,EAAQvc,OACb2C,EAAKia,WAAW,EAAGL,EAAQnK,MAC3BmK,EAAQ1Z,WAAW4Z,YAAYF,GAC3BtF,GAAMC,EACNK,GAAMD,EACNJ,EAAKD,MACF,IAAIC,GAAMvU,EAAKE,WAAY,CAC9B,GAAIga,GAAYjO,EAAajM,EACzB4U,IAAMsF,GACN3F,EAAKvU,EACL4U,EAAKoF,GACEpF,EAAKsF,GACZtF,OAMZuF,GAAiB,CAErB,IAAInN,EAAoBuH,GAChBA,EAAGlX,QAAUuX,GACb+E,EAAapF,OAEd,CACH,GAAIK,EAAK,EAAG,CACR,GAAIwF,GAAU7F,EAAG9J,WAAWmK,EAAK,EAC7BwF,IAAWpN,EAAoBoN,IAC/BT,EAAaS,GAGrBD,GAAkB3e,KAAKkZ,UAG3B,GAAIyF,GACA,GAAInN,EAAoBsH,GACV,GAANK,GACAoF,EAAczF,OAGlB,IAAIK,EAAKL,EAAG7J,WAAWpN,OAAQ,CAC3B,GAAIgd,GAAY/F,EAAG7J,WAAWkK,EAC1B0F,IAAarN,EAAoBqN,IACjCN,EAAcM,QAK1B/F,GAAKC,EACLI,EAAKC,CAGTgD,GAAgBpc,KAAM8Y,EAAIK,EAAIJ,EAAIK,IAGtC0F,gBAAiB,SAASta,EAAM6N,GAC5BqH,EAAsClV,GAAM,GAC5CuV,EAAkBvV,EAAM6N,GACxBrS,KAAK2a,eAAenW,EAAM6N,MAIlC2J,EAAwBC,GAM5B,QAAS8C,GAAiCrU,GACtCA,EAAMwO,UAAaxO,EAAM4L,iBAAmB5L,EAAM6L,cAAgB7L,EAAMyM,cAAgBzM,EAAM0M,UAC9F1M,EAAM2O,wBAA0B3O,EAAMwO,UAClCxO,EAAM4L,eAAiBjO,EAAIuI,kBAAkBlG,EAAM4L,eAAgB5L,EAAM6L,cAGjF,QAASyI,GAAiBtU,EAAO4L,EAAgBa,EAAaZ,EAAca,GACxE1M,EAAM4L,eAAiBA,EACvB5L,EAAMyM,YAAcA,EACpBzM,EAAM6L,aAAeA,EACrB7L,EAAM0M,UAAYA,EAClB1M,EAAMrJ,SAAWgH,EAAIiK,YAAYgE,GAEjCyI,EAAiCrU,GAGrC,QAASuU,GAAMjU,GACXhL,KAAKsW,eAAiBtL,EACtBhL,KAAKmX,YAAc,EACnBnX,KAAKuW,aAAevL,EACpBhL,KAAKoX,UAAY,EACjBpX,KAAKqB,SAAW2J,EAChB+T,EAAiC/e,MAhpCrC,GAAIqI,GAAMwD,EAAIxD,IACV6F,EAAOrC,EAAIqC,KACX0G,EAAcvM,EAAIuM,YAClBrO,EAAesF,EAAItF,aAEnBiL,EAAsBnJ,EAAImJ,oBAC1Bf,EAAepI,EAAIoI,aACnBa,EAAmBjJ,EAAIiJ,iBACvBgB,EAAcjK,EAAIiK,YAClBe,EAAgBhL,EAAIgL,cACpBtB,EAAgB1J,EAAI0J,cACpBR,EAAuBlJ,EAAIkJ,qBAC3BZ,EAAgBtI,EAAIsI,cACpBM,EAAgB5I,EAAI4I,cACpBmC,EAAmB/K,EAAI+K,iBACvBY,EAAkBnI,EAAImB,SAASgH,eA0MnC6E,GAAchZ,WACVyV,SAAU,KACVZ,MAAO,KACP6E,OAAQ,KACRC,MAAO,KACPF,2BAA2B,EAE3BgD,MAAO,WACHtc,KAAKsV,SAAW,KAChBtV,KAAK0U,MAAQ1U,KAAKuZ,QAGtBhE,QAAS,WACL,QAASvV,KAAK0U,OAGlBc,KAAM,WAEF,GAAI0J,GAAUlf,KAAKsV,SAAWtV,KAAK0U,KAenC,OAdIwK,KACAlf,KAAK0U,MAASwK,IAAYlf,KAAKwZ,MAAS0F,EAAQrN,YAAc,KAG1DL,EAAoB0N,IAAYlf,KAAKiZ,kCACjCiG,IAAYlf,KAAK+Y,KAChBmG,EAAUA,EAAQhN,WAAU,IAAOC,WAAWnS,KAAKoZ,GAAI8F,EAAQrd,OAAS7B,KAAKoZ,IAE9EpZ,KAAKsV,WAAatV,KAAK8Y,KACtBoG,EAAUA,EAAQhN,WAAU,IAAOC,WAAW,EAAGnS,KAAKmZ,MAK5D+F,GAGX1X,OAAQ,WACJ,GAA6BkW,GAAOC,EAAhCuB,EAAUlf,KAAKsV,UAEf9D,EAAoB0N,IAAaA,IAAYlf,KAAK8Y,IAAMoG,IAAYlf,KAAK+Y,GAOrEmG,EAAQxa,YACRwa,EAAQxa,WAAW4Z,YAAYY,IAPnCxB,EAASwB,IAAYlf,KAAK8Y,GAAM9Y,KAAKmZ,GAAK,EAC1CwE,EAAOuB,IAAYlf,KAAK+Y,GAAM/Y,KAAKoZ,GAAK8F,EAAQrd,OAC5C6b,GAASC,GACTuB,EAAQ/M,WAAWuL,EAAOC,EAAMD,KAW5C/F,2BAA4B,WACxB,GAAIuH,GAAUlf,KAAKsV,QACnB,OAAOe,GAA2B6I,EAASlf,KAAK0K,QAGpDkN,mBAAoB,WAChB,GAAIuH,EACJ,IAAInf,KAAKsZ,0BACL6F,EAAWnf,KAAK0K,MAAM0U,aACtBD,EAAS5B,UAAS,OACf,CACH4B,EAAW,GAAIF,GAAMzI,EAAiBxW,KAAK0K,OAC3C,IAAIwU,GAAUlf,KAAKsV,SACfgB,EAAiB4I,EAAS/H,EAAc,EAAGZ,EAAe2I,EAAS9H,EAAYzG,EAAcuO,EAE7F5N,GAAiB4N,EAASlf,KAAK8Y,MAC/BxC,EAAiBtW,KAAK8Y,GACtB3B,EAAcnX,KAAKmZ,IAEnB7H,EAAiB4N,EAASlf,KAAK+Y,MAC/BxC,EAAevW,KAAK+Y,GACpB3B,EAAYpX,KAAKoZ,IAGrB4F,EAAiBG,EAAU7I,EAAgBa,EAAaZ,EAAca,GAE1E,MAAO,IAAIyB,GAAcsG,EAAUnf,KAAKiZ,kCAG5CxD,OAAQ,WACJzV,KAAK0K,MAAQ1K,KAAKsV,SAAWtV,KAAK0U,MAAQ1U,KAAKuZ,OAASvZ,KAAKwZ,MAAQxZ,KAAK8Y,GAAK9Y,KAAKmZ,GAAKnZ,KAAK+Y,GAAK/Y,KAAKoZ,GAAK,MAMrH,IAAIuD,IAAwB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC1CrC,GAA0B,EAAG,EAAG,IAChC+E,GAAqB,EAAG,EAAG,GAAI,IAC/BC,GAAuB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7CC,GAAqB,EAAG,EAAG,EAAG,EAAG,EAAG,GAgBpCtF,GAAiCR,GAAuB,EAAG,KAC3DU,GAAsBV,EAAqB4F,GAC3CzF,GAAmCH,GAAuB,EAAG,GAAI,KAgEjE+F,GAAUne,SAASwD,cAAc,SACjC4a,IAAsB,CAC1B,KACID,GAAQpL,UAAY,WACpBqL,GAAsD,GAA/BD,GAAQ3L,WAAW3E,SAC5C,MAAOpO,KAIT+K,EAAImB,SAASyS,oBAAsBA,EAEnC,IAAIC,IAA2BD,GAM3B,SAASE,GAEL,GAAInb,GAAOxE,KAAKsW,eACZtL,EAAMsH,EAAY9N,EAItB,KAAKA,EACD,KAAM,IAAI+B,GAAa,oBAK3B,IAAIwI,GAAK,IAuCT,OApCqB,IAAjBvK,EAAK0K,SACLH,EAAKvK,EAGEgN,EAAoBhN,KAC3BuK,EAAK1G,EAAIkI,cAAc/L,IAcvBuK,EARO,OAAPA,GACe,QAAfA,EAAGlC,UACHxE,EAAI8H,gBAAgBmC,EAAYvD,GAAIqG,kBACpC/M,EAAI8H,gBAAgBpB,GAKf/D,EAAInG,cAAc,QAElBkK,EAAGmD,WAAU,GAOtBnD,EAAGqF,UAAYuL,EAQRtX,EAAIgM,yBAAyBtF,IAKxC,SAAS4Q,GACL,GAAI3U,GAAMwL,EAAiBxW,MACvB+O,EAAK/D,EAAInG,cAAc,OAG3B,OAFAkK,GAAGqF,UAAYuL,EAERtX,EAAIgM,yBAAyBtF,IAmCxC6Q,IAAmB,iBAAkB,cAAe,eAAgB,YAAa,YACjF,2BAEA3E,GAAM,EAAGE,GAAM,EAAGE,GAAM,EAAGE,GAAM,EACjCE,GAAM,EAAGE,GAAM,EAAGE,GAAQ,EAAGE,GAAM,CAEvC7N,GAAKI,OAAOzC,EAAIoE,gBACZ4P,sBAAuB,SAASC,EAAKpV,GACjCuM,EAAiBjX,MACjBga,EAA6Bha,KAAKsW,eAAgB5L,EAAM4L,eAExD,IAAIhD,GAAOC,EAASC,EAAOC,EACvBsM,EAAWD,GAAOvE,IAAOuE,GAAO7E,GAAO,QAAU,MACjD+E,EAAWF,GAAO3E,IAAO2E,GAAO7E,GAAO,QAAU,KAKrD,OAJA3H,GAAQtT,KAAK+f,EAAU,aACvBxM,EAAUvT,KAAK+f,EAAU,UACzBvM,EAAQ9I,EAAMsV,EAAU,aACxBvM,EAAU/I,EAAMsV,EAAU,UACnB3M,EAAcC,EAAOC,EAASC,EAAOC,IAGhDwM,WAAY,SAASzb,GAKjB,GAJAyS,EAAiBjX,MACjB6Z,EAAoBrV,EAAM8a,GAC1BpF,EAAsBla,KAAKsW,gBAEvBhF,EAAiB9M,EAAMxE,KAAKsW,gBAC5B,KAAM,IAAI/P,GAAa,wBAO3B,IAAIqQ,GAAoBD,EAAqBnS,EAAMxE,KAAKsW,eAAgBtW,KAAKmX,YAC7EnX,MAAKmd,eAAevG,IAGxBkE,cAAe,WACX7D,EAAiBjX,KAEjB,IAAIkgB,GAAOxI,CACX,IAAI1X,KAAKkZ,UACL,MAAO1C,GAAiBxW,MAAMwU,wBAE9B,IAAIxU,KAAKsW,iBAAmBtW,KAAKuW,cAAgB/E,EAAoBxR,KAAKsW,gBAKtE,MAJA4J,GAAQlgB,KAAKsW,eAAepE,WAAU,GACtCgO,EAAMjM,KAAOiM,EAAMjM,KAAKxQ,MAAMzD,KAAKmX,YAAanX,KAAKoX,WACrDM,EAAOlB,EAAiBxW,MAAMwU,yBAC9BkD,EAAK1I,YAAYkR,GACVxI,CAEP,IAAIH,GAAW,GAAIsB,GAAc7Y,MAAM,EAI3C,OAHIkgB,GAAQ5I,EAAaC,GACrBA,EAAS9B,SAENyK,GAIfpC,oBAAqB,WACjB7G,EAAiBjX,MACjBka,EAAsBla,KAAKsW,gBAC3B4D,EAAsBla,KAAKuW,aAI3B,IAAIgB,GAAW,GAAIsB,GAAc7Y,MAAM,GACnC+d,EAAqBxG,EAASgC,QAAWlD,EAA2BkB,EAASgC,OAAQvZ,OAChFuX,EAASiC,OAASnD,EAA2BkB,EAASiC,MAAOxZ,KAEtE,OADAuX,GAAS9B,UACDsI,GAGZoC,iBAAkB,SAAS3b,GAGvB,GAFAqV,EAAoBrV,EAAM+a,IAErBvf,KAAK8d,sBACN,KAAM,IAAIvX,GAAa,oBAI3B,IAAI6Z,GAAUpgB,KAAK4d,iBAGnB,IAAIpZ,EAAK6b,gBACL,KAAO7b,EAAK8b,WACR9b,EAAK8Z,YAAY9Z,EAAK8b,UAK9B3J,GAAqBnS,EAAMxE,KAAKsW,eAAgBtW,KAAKmX,aACrD3S,EAAKwK,YAAYoR,GAEjBpgB,KAAKyd,WAAWjZ,IAGpB4a,WAAY,WACRnI,EAAiBjX,KAGjB,KAFA,GACgCugB,GAD5B7V,EAAQ,GAAIuU,GAAMzI,EAAiBxW,OACnC4E,EAAIgb,GAAgB/d,OACjB+C,KACH2b,EAAOX,GAAgBhb,GACvB8F,EAAM6V,GAAQvgB,KAAKugB,EAEvB,OAAO7V,IAGX7H,SAAU,WACNoU,EAAiBjX,KACjB,IAAI8Y,GAAK9Y,KAAKsW,cACd,IAAIwC,IAAO9Y,KAAKuW,cAAgB/E,EAAoBsH,GAChD,MAAuB,IAAfA,EAAG5J,UAAgC,GAAf4J,EAAG5J,SAAiB4J,EAAG7E,KAAKxQ,MAAMzD,KAAKmX,YAAanX,KAAKoX,WAAa,EAElG,IAAIoJ,MAAgBjJ,EAAW,GAAIsB,GAAc7Y,MAAM,EAQvD,OAPA6X,GAAeN,EAAU,SAAS/S,IAET,GAAjBA,EAAK0K,UAAkC,GAAjB1K,EAAK0K,WAC3BsR,EAAUhf,KAAKgD,EAAKyP,QAG5BsD,EAAS9B,SACF+K,EAAU7Y,KAAK,KAO9B8Y,YAAa,SAASjc,GAClByS,EAAiBjX,KAEjB,IAAIwQ,GAAShM,EAAKE,WACdga,EAAYjO,EAAajM,EAE7B,KAAKgM,EACD,KAAM,IAAIjK,GAAa,gBAG3B,IAAI2Q,GAAkBlX,KAAK0gB,aAAalQ,EAAQkO,GAC5CrH,EAAgBrX,KAAK0gB,aAAalQ,EAAQkO,EAAY,EAE1D,OAAsB,GAAlBxH,EACQG,EAAgB,EAAKwE,GAAQJ,GAE7BpE,EAAgB,EAAKsE,GAAMI,IAI3C2E,aAAc,SAASlc,EAAM6N,GAKzB,MAJA4E,GAAiBjX,MACjBoa,EAAW5V,EAAM,yBACjBwV,EAA6BxV,EAAMxE,KAAKsW,gBAEpCjD,EAAc7O,EAAM6N,EAAQrS,KAAKsW,eAAgBtW,KAAKmX,aAAe,EAC9D,GACA9D,EAAc7O,EAAM6N,EAAQrS,KAAKuW,aAAcvW,KAAKoX,WAAa,EACjE,EAEJ,GAGXsI,yBAA0BA,GAE1BiB,OAAQ,WACJ,MAAO/F,GAAY5a,OAKvB4gB,eAAgB,SAASpc,EAAMwS,GAG3B,GAFAC,EAAiBjX,MACjBoa,EAAW5V,EAAM,iBACb8N,EAAY9N,KAAUgS,EAAiBxW,MACvC,OAAO,CAGX,IAAIwQ,GAAShM,EAAKE,WAAY2N,EAAS5B,EAAajM,EACpD4V,GAAW5J,EAAQ,gBAEnB,IAAI0G,GAAkB7D,EAAc7C,EAAQ6B,EAAQrS,KAAKuW,aAAcvW,KAAKoX,WACxEC,EAAgBhE,EAAc7C,EAAQ6B,EAAS,EAAGrS,KAAKsW,eAAgBtW,KAAKmX,YAEhF,OAAOH,GAA4C,GAAnBE,GAAwBG,GAAiB,EAAsB,EAAlBH,GAAuBG,EAAgB,GAGxHwJ,eAAgB,SAASrc,EAAM6N,GAK3B,MAJA4E,GAAiBjX,MACjBoa,EAAW5V,EAAM,yBACjBwV,EAA6BxV,EAAMxE,KAAKsW,gBAEhCjD,EAAc7O,EAAM6N,EAAQrS,KAAKsW,eAAgBtW,KAAKmX,cAAgB,GACtE9D,EAAc7O,EAAM6N,EAAQrS,KAAKuW,aAAcvW,KAAKoX,YAAc,GAM9E0J,gBAAiB,SAASpW,GACtB,MAAOmM,GAAgB7W,KAAM0K,GAAO,IAIxCqW,yBAA0B,SAASrW,GAC/B,MAAOmM,GAAgB7W,KAAM0K,GAAO,IAGxCsW,aAAc,SAAStW,GACnB,GAAI1K,KAAK8gB,gBAAgBpW,GAAQ,CAC7B,GAAIwM,GAAkB7D,EAAcrT,KAAKsW,eAAgBtW,KAAKmX,YAAazM,EAAM4L,eAAgB5L,EAAMyM,aACnGE,EAAgBhE,EAAcrT,KAAKuW,aAAcvW,KAAKoX,UAAW1M,EAAM6L,aAAc7L,EAAM0M,WAE3F6J,EAAoBjhB,KAAKof,YAO7B,OANuB,IAAnBlI,GACA+J,EAAkBlE,SAASrS,EAAM4L,eAAgB5L,EAAMyM,aAEtC,GAAjBE,GACA4J,EAAkBjE,OAAOtS,EAAM6L,aAAc7L,EAAM0M,WAEhD6J,EAEX,MAAO,OAGXC,MAAO,SAASxW,GACZ,GAAI1K,KAAK+gB,yBAAyBrW,GAAQ,CACtC,GAAIyW,GAAanhB,KAAKof,YAOtB,OANqG,IAAjG/L,EAAc3I,EAAM4L,eAAgB5L,EAAMyM,YAAanX,KAAKsW,eAAgBtW,KAAKmX,cACjFgK,EAAWpE,SAASrS,EAAM4L,eAAgB5L,EAAMyM,aAEyC,GAAzF9D,EAAc3I,EAAM6L,aAAc7L,EAAM0M,UAAWpX,KAAKuW,aAAcvW,KAAKoX,YAC3E+J,EAAWnE,OAAOtS,EAAM6L,aAAc7L,EAAM0M,WAEzC+J,EAEP,KAAM,IAAI5a,GAAa,4BAI/B6a,aAAc,SAAS5c,EAAM6c,GACzB,MAAIA,GACOrhB,KAAK4gB,eAAepc,GAAM,GAE1BxE,KAAKygB,YAAYjc,IAASuX,IAIzCuF,qBAAsB,SAAS9c,GAC3B,MAAOxE,MAAK0gB,aAAalc,EAAM,IAAM,GAAKxE,KAAK0gB,aAAalc,EAAMmM,EAAcnM,KAAU,GAG9F+c,cAAe,SAAS7W,GACpB,GAAIsW,GAAehhB,KAAKghB,aAAatW,EACrC,OAAwB,QAAjBsW,GAAyBtW,EAAMgL,OAAOsL,IAGjDQ,iBAAkB,SAAShd,GACvB,GAAIid,GAAYzhB,KAAKof,YACrBqC,GAAUhE,WAAWjZ,EACrB,IAAIkd,GAAYD,EAAUE,UAAU,GACpC,IAAID,EAAU7f,OAAS,EAAG,CACtB4f,EAAU1E,SAAS2E,EAAU,GAAI,EACjC,IAAIE,GAAeF,EAAUG,KAE7B,OADAJ,GAAUzE,OAAO4E,EAAcA,EAAa/f,QACrC7B,KAAKuhB,cAAcE,GAE1B,MAAOzhB,MAAKshB,qBAAqB9c,IAIzCmd,SAAU,SAASpJ,EAAWC,GAE1B,MADAvB,GAAiBjX,MACVsY,EAAgBtY,KAAMuY,EAAWC,IAG5ClG,YAAa,WACT,MAAOkE,GAAiBxW,OAG5B8hB,eAAgB,SAAStd,GACrBxE,KAAKqd,aAAa7Y,GAClBxE,KAAKud,UAAS,IAGlBwE,cAAe,SAASvd,GACpBxE,KAAKod,cAAc5Y,GACnBxE,KAAKud,UAAS,IAGlByE,YAAa,SAASC,GAClB,GAAIjX,GAAMwL,EAAiBxW,MACvBkiB,EAAoBrW,EAAIa,YAAY1B,EACxCiX,GAAgBA,GAAiB5Z,EAAI0C,QAAQC,GAC7CkX,EAAkB1E,mBAAmByE,EACrC,IAAIvX,GAAQ1K,KAAKghB,aAAakB,GAC1BxE,EAAQ,EAAGC,EAAM,CAOrB,OANIjT,KACAwX,EAAkBlF,OAAOtS,EAAM4L,eAAgB5L,EAAMyM,aACrDuG,EAAQwE,EAAkBrf,WAAWhB,OACrC8b,EAAMD,EAAQhT,EAAM7H,WAAWhB,SAI/B6b,MAAOA,EACPC,IAAKA,EACLsE,cAAeA,IAIvBE,eAAgB,SAASC,GACrB,GAAIH,GAAgBG,EAASH,cACzBI,EAAY,CAChBriB,MAAK+c,SAASkF,EAAe,GAC7BjiB,KAAKud,UAAS,EAId,KAHA,GAAiC/Y,GAC7B8d,EAAe1d,EAAGqK,EADlBsT,GAAaN,GAAsBO,GAAa,EAAOtK,GAAO,GAG1DA,IAAS1T,EAAO+d,EAAUV,QAC9B,GAAqB,GAAjBrd,EAAK0K,SACLoT,EAAgBD,EAAY7d,EAAK3C,QAC5B2gB,GAAcJ,EAAS1E,OAAS2E,GAAaD,EAAS1E,OAAS4E,IAChEtiB,KAAK+c,SAASvY,EAAM4d,EAAS1E,MAAQ2E,GACrCG,GAAa,GAEbA,GAAcJ,EAASzE,KAAO0E,GAAaD,EAASzE,KAAO2E,IAC3DtiB,KAAKgd,OAAOxY,EAAM4d,EAASzE,IAAM0E,GACjCnK,GAAO,GAEXmK,EAAYC,MAIZ,KAFArT,EAAazK,EAAKyK,WAClBrK,EAAIqK,EAAWpN,OACR+C,KACH2d,EAAU/gB,KAAKyN,EAAWrK,KAM1CoU,QAAS,WACL,MAAO,YAGXtD,OAAQ,SAAShL,GACb,MAAOuU,GAAMwD,YAAYziB,KAAM0K,IAGnCgY,QAAS,WACL,MAAOlI,GAAaxa,OAGxB4V,QAAS,WACL,MAAOA,GAAQ5V,OAGnByV,OAAQ,eAoTZ8G,EAAqB0C,EAAOD,GAE5B9Q,EAAKI,OAAO2Q,GACRW,gBAAiBA,GACjB/G,cAAeA,EACfmD,wBAAyBA,EACzBO,qBAAsBA,EACtB3G,QAASA,EACT+K,OAAQ/F,EACRpE,iBAAkBA,EAClBiM,YAAa,SAASE,EAAIC,GACtB,MAAOD,GAAGrM,iBAAmBsM,EAAGtM,gBAC5BqM,EAAGxL,cAAgByL,EAAGzL,aACtBwL,EAAGpM,eAAiBqM,EAAGrM,cACvBoM,EAAGvL,YAAcwL,EAAGxL,aAIhCvL,EAAIgX,SAAW5D,IAMnBpT,EAAImE,iBAAiB,gBAAiB,YAAa,SAASnE,EAAKnC,GAC7D,GAAIoZ,GAAcC,EACd1a,EAAMwD,EAAIxD,IACV6F,EAAOrC,EAAIqC,KACX0G,EAAcvM,EAAIuM,YAClBiO,EAAWhX,EAAIgX,SACf9X,EAAU1C,EAAI0C,QACdkI,EAAqB5K,EAAI4K,mBACzBzB,EAAsBnJ,EAAImJ,mBAkQ9B,IA7PI3F,EAAImB,SAASR,qBAKb,WAII,QAASwW,GAAsBtY,GAE3B,IADA,GAAgC6V,GAA5B3b,EAAIgb,EAAgB/d,OACjB+C,KACH2b,EAAOX,EAAgBhb,GACvB8F,EAAM6V,GAAQ7V,EAAMuY,YAAY1C,EAGpC7V,GAAMwO,UAAaxO,EAAM4L,iBAAmB5L,EAAM6L,cAAgB7L,EAAMyM,cAAgBzM,EAAM0M,UAGlG,QAAS8L,GAAkBxY,EAAO4L,EAAgBa,EAAaZ,EAAca,GACzE,GAAI+L,GAAczY,EAAM4L,iBAAmBA,GAAkB5L,EAAMyM,aAAeA,EAC9EiM,EAAY1Y,EAAM6L,eAAiBA,GAAgB7L,EAAM0M,WAAaA,EACtEiM,GAAwB3Y,EAAMgL,OAAOhL,EAAMuY,cAG3CE,GAAcC,GAAYC,KAC1B3Y,EAAMsS,OAAOzG,EAAca,GAC3B1M,EAAMqS,SAASzG,EAAgBa,IArBvC,GAAImM,GAyBA9G,EAxBAoD,EAAkBiD,EAASjD,eA0B/BkD,GAAe,SAASpY,GACpB,IAAKA,EACD,KAAMhB,GAAOqG,YAAY,wCAE7B/P,MAAKijB,YAAcvY,EACnBsY,EAAsBhjB,OAG1B6iB,EAAStG,qBAAqBuG,EAAcI,GAE5CI,EAAaR,EAAajjB,UAE1ByjB,EAAW7F,WAAa,SAASjZ,GAC7BxE,KAAKijB,YAAYxF,WAAWjZ,GAC5Bwe,EAAsBhjB,OAG1BsjB,EAAWxI,cAAgB,WACvB,MAAO9a,MAAKijB,YAAYnI,iBAM5BwI,EAAWnD,iBAAmB,SAAS3b,GACnCxE,KAAKijB,YAAY9C,iBAAiB3b,GAClCwe,EAAsBhjB;EAG1BsjB,EAAW/F,SAAW,SAASb,GAC3B1c,KAAKijB,YAAY1F,SAASb,GAC1BsG,EAAsBhjB,OAG1BsjB,EAAWlE,WAAa,WACpB,MAAO,IAAI0D,GAAa9iB,KAAKijB,YAAY7D,eAG7CkE,EAAWC,QAAU,WACjBP,EAAsBhjB,OAG1BsjB,EAAWzgB,SAAW,WAClB,MAAO7C,MAAKijB,YAAYpgB,WAK5B,IAAI2gB,GAAeniB,SAAS0T,eAAe,OAC3ChK,GAAQ1J,UAAU2N,YAAYwU,EAC9B,IAAI9Y,GAAQrJ,SAASqL,aAOrBhC,GAAMqS,SAASyG,EAAc,GAC7B9Y,EAAMsS,OAAOwG,EAAc,EAE3B,KACI9Y,EAAMqS,SAASyG,EAAc,GAE7BF,EAAWvG,SAAW,SAASvY,EAAM6N,GACjCrS,KAAKijB,YAAYlG,SAASvY,EAAM6N,GAChC2Q,EAAsBhjB,OAG1BsjB,EAAWtG,OAAS,SAASxY,EAAM6N,GAC/BrS,KAAKijB,YAAYjG,OAAOxY,EAAM6N,GAC9B2Q,EAAsBhjB,OAG1Bwc,EAA8B,SAASnW,GACnC,MAAO,UAAS7B,GACZxE,KAAKijB,YAAY5c,GAAM7B,GACvBwe,EAAsBhjB,QAIhC,MAAM+H,GAEJub,EAAWvG,SAAW,SAASvY,EAAM6N,GACjC,IACIrS,KAAKijB,YAAYlG,SAASvY,EAAM6N,GAClC,MAAOtK,GACL/H,KAAKijB,YAAYjG,OAAOxY,EAAM6N,GAC9BrS,KAAKijB,YAAYlG,SAASvY,EAAM6N,GAEpC2Q,EAAsBhjB,OAG1BsjB,EAAWtG,OAAS,SAASxY,EAAM6N,GAC/B,IACIrS,KAAKijB,YAAYjG,OAAOxY,EAAM6N,GAChC,MAAOtK,GACL/H,KAAKijB,YAAYlG,SAASvY,EAAM6N,GAChCrS,KAAKijB,YAAYjG,OAAOxY,EAAM6N,GAElC2Q,EAAsBhjB,OAG1Bwc,EAA8B,SAASnW,EAAMod,GACzC,MAAO,UAASjf,GACZ,IACIxE,KAAKijB,YAAY5c,GAAM7B,GACzB,MAAOuD,GACL/H,KAAKijB,YAAYQ,GAAcjf,GAC/BxE,KAAKijB,YAAY5c,GAAM7B,GAE3Bwe,EAAsBhjB,QAKlCsjB,EAAWnG,eAAiBX,EAA4B,iBAAkB,gBAC1E8G,EAAWlG,cAAgBZ,EAA4B,gBAAiB,eACxE8G,EAAWjG,aAAeb,EAA4B,eAAgB,kBACtE8G,EAAWhG,YAAcd,EAA4B,cAAe,iBAMpE8G,EAAW9F,mBAAqB,SAAShZ,GACrCxE,KAAK2a,eAAenW,EAAM,EAAG6D,EAAIsI,cAAcnM,KAQnDkG,EAAM8S,mBAAmBgG,GACzB9Y,EAAMsS,OAAOwG,EAAc,EAE3B,IAAIE,GAASriB,SAASqL,aACtBgX,GAAOlG,mBAAmBgG,GAC1BE,EAAO1G,OAAOwG,EAAc,GAC5BE,EAAO3G,SAASyG,EAAc,GAM1BF,EAAWzD,sBAJgD,IAA3DnV,EAAMmV,sBAAsBnV,EAAMwQ,aAAcwI,IACe,GAA3DhZ,EAAMmV,sBAAsBnV,EAAM4Q,aAAcoI,GAGjB,SAAShjB,EAAMgK,GAO9C,MANAA,GAAQA,EAAMuY,aAAevY,EACzBhK,GAAQgK,EAAMwQ,aACdxa,EAAOgK,EAAM4Q,aACN5a,GAAQgK,EAAM4Q,eACrB5a,EAAOgK,EAAMwQ,cAEVlb,KAAKijB,YAAYpD,sBAAsBnf,EAAMgK,IAGrB,SAAShK,EAAMgK,GAC9C,MAAO1K,MAAKijB,YAAYpD,sBAAsBnf,EAAMgK,EAAMuY,aAAevY,GAQjF,IAAIqE,GAAK1N,SAASwD,cAAc,MAChCkK,GAAGqF,UAAY,KACf,IAAIU,GAAW/F,EAAG8E,WACd5I,EAAOF,EAAQ1J,SACnB4J,GAAK+D,YAAYD,GAEjBrE,EAAMqS,SAASjI,EAAU,GACzBpK,EAAMsS,OAAOlI,EAAU,GACvBpK,EAAMmT,iBAEe,MAAjB/I,EAASb,OAGTqP,EAAWzF,eAAiB,WACxB7d,KAAKijB,YAAYpF,iBACjBmF,EAAsBhjB,OAG1BsjB,EAAW1F,gBAAkB,WACzB,GAAIlG,GAAO1X,KAAKijB,YAAYrF,iBAE5B,OADAoF,GAAsBhjB,MACf0X,IAKfzM,EAAKqT,YAAYvP,GACjB9D,EAAO,KAKHiD,EAAKrE,aAAaa,EAAO,8BACzB4Y,EAAW5D,yBAA2B,SAASC,GAC3C,MAAO3f,MAAKijB,YAAYvD,yBAAyBC,KAOzD5U,EAAQ1J,UAAUid,YAAYkF,GAE9BF,EAAWtK,QAAU,WACjB,MAAO,gBAGXnN,EAAIiX,aAAeA,EAEnBjX,EAAI8X,kBAAoB,SAAS3Y,GAE7B,MADAA,GAAMiI,EAAmBjI,EAAKtB,EAAQ,qBAC/BsB,EAAI0B,kBAKnBb,EAAImB,SAASP,oBAAqB,CAelC,GAAImX,GAA+B,SAASC,GACxC,GAAIC,GAAWD,EAAUtT,gBACrB7F,EAAQmZ,EAAUE,WACtBrZ,GAAM6S,UAAS,EACf,IAAIyG,GAAUtZ,EAAM6F,eACpB7F,GAAQmZ,EAAUE,YAClBrZ,EAAM6S,UAAS,EACf,IAAI0G,GAAQvZ,EAAM6F,gBACd2T,EAAqBF,GAAWC,EAASD,EAAU3b,EAAIuI,kBAAkBoT,EAASC,EAEtF,OAAOC,IAAqBJ,EAAWI,EAAoB7b,EAAIuI,kBAAkBkT,EAAUI,IAG3FC,EAAuB,SAASN,GAChC,MAA8D,IAAvDA,EAAUO,iBAAiB,aAAcP,IAOhDQ,EAA+B,SAASR,EAAWS,EAA4B5H,EAAS6H,EAAaC,GACrG,GAAIC,GAAeZ,EAAUE,WAC7BU,GAAalH,SAASb,EACtB,IAAIgI,GAAmBD,EAAalU,eAWpC,IAPKlI,EAAIiJ,iBAAiBgT,EAA4BI,KAClDA,EAAmBJ,IAMlBI,EAAiBC,YAAa,CAC/B,GAAIhP,GAAM,GAAIf,GAAY8P,EAAiBhgB,WAAY2D,EAAIoI,aAAaiU,GACxE,QACIE,iBAAkBjP,EAClBkP,UACInG,UAAW/I,EAAItD,OACfqS,iBAAkB/O,EAAInR,OAKlC,GAAIsgB,GAAczc,EAAIiK,YAAYoS,GAAkB7f,cAAc,OAI9DigB,GAAYpgB,YACZogB,EAAYpgB,WAAW4Z,YAAYwG,EAavC,KAVA,GAAIC,GACAC,EAAcpT,EAAUgT,EAAkBK,EAD9BC,EAAwBxI,EAAU,eAAiB,aAE/DgB,EAAS8G,GAAaA,EAAUE,kBAAoBA,EAAoBF,EAAU9F,UAAY,EAC9FyG,EAAiBT,EAAiBzV,WAAWpN,OAC7C8b,EAAMwH,EAINzG,EAAYf,IAEH,CAQT,GAPIe,GAAayG,EACbT,EAAiB1V,YAAY8V,GAE7BJ,EAAiB5S,aAAagT,EAAaJ,EAAiBzV,WAAWyP,IAE3E+F,EAAaW,kBAAkBN,GAC/BC,EAAaN,EAAaL,iBAAiBc,EAAuBrB,GAChD,GAAdkB,GAAmBrH,GAASC,EAC5B,KACG,IAAkB,IAAdoH,EAAkB,CACzB,GAAIpH,GAAOD,EAAQ,EAEf,KAEAA,GAAQgB,MAGZf,GAAOA,GAAOD,EAAQ,EAAKA,EAAQgB,CAEvCA,GAAY2G,KAAKC,OAAO5H,EAAQC,GAAO,GACvC+G,EAAiBpG,YAAYwG,GAQjC,GAFAG,EAAeH,EAAYjT,YAET,IAAdkT,GAAoBE,GAAgBzT,EAAoByT,GAAe,CAIvER,EAAac,YAAY7I,EAAU,aAAe,WAAYmH,EAE9D,IAAIxR,EAEJ,IAAI,SAAS5L,KAAKwe,EAAahR,MAAO,CA+BlC,GAAIuR,GAAYf,EAAaV,YACzB0B,EAAcD,EAAUE,KAAKzlB,QAAQ,QAAS,MAAM4B,MAGxD,KADAwQ,EAASmT,EAAUG,UAAU,YAAaF,GACoC,KAArEV,EAAaS,EAAUpB,iBAAiB,aAAcoB,KAC3DnT,IACAmT,EAAUG,UAAU,YAAa,OAGrCtT,GAASoS,EAAaiB,KAAK7jB,MAE/B+iB,GAAmB,GAAIhQ,GAAYqQ,EAAc5S,OAKjD2S,IAAgBT,IAAgB7H,IAAYoI,EAAYpU,gBACxDkB,GAAY2S,GAAe7H,IAAYoI,EAAYjT,YAE/C+S,EADAhT,GAAYJ,EAAoBI,GACb,GAAIgD,GAAYhD,EAAU,GACtCoT,GAAgBxT,EAAoBwT,GACxB,GAAIpQ,GAAYoQ,EAAcA,EAAa/Q,KAAKpS,QAEhD,GAAI+S,GAAY8P,EAAkBrc,EAAIoI,aAAaqU,GAO9E,OAFAA,GAAYpgB,WAAW4Z,YAAYwG,IAG/BF,iBAAkBA,EAClBC,UACInG,UAAWA,EACXgG,iBAAkBA,KAQ1BkB,EAA0B,SAAShB,EAAkBlI,GACrD,GAAIuI,GAAcY,EAEdf,EAAa7V,EAFiB6W,EAAiBlB,EAAiBvS,OAChErH,EAAM3C,EAAIiK,YAAYsS,EAAiBpgB,MACdigB,EAAe1Z,EAAQC,GAAK+B,kBACrDgZ,EAAiBvU,EAAoBoT,EAAiBpgB,KAqC1D,OAnCIuhB,IACAd,EAAeL,EAAiBpgB,KAChCqhB,EAAiBZ,EAAavgB,aAE9BuK,EAAa2V,EAAiBpgB,KAAKyK,WACnCgW,EAAgBa,EAAiB7W,EAAWpN,OAAUoN,EAAW6W,GAAkB,KACnFD,EAAiBjB,EAAiBpgB,MAItCsgB,EAAc9Z,EAAInG,cAAc,QAIhCigB,EAAY1Q,UAAY,UAIpB6Q,EACAY,EAAe/T,aAAagT,EAAaG,GAEzCY,EAAe7W,YAAY8V,GAG/BL,EAAaW,kBAAkBN,GAC/BL,EAAalH,UAAUb,GAGvBmJ,EAAevH,YAAYwG,GAGvBiB,GACAtB,EAAa/H,EAAU,YAAc,WAAW,YAAaoJ,GAG1DrB,EAQX1B,GAAmB,SAASc,GACxB7jB,KAAK6jB,UAAYA,EACjB7jB,KAAKujB,WAGTR,EAAiBljB,UAAY,GAAIgjB,GAASxhB,UAE1C0hB,EAAiBljB,UAAU0jB,QAAU,WACjC,GAAI7F,GAAOC,EAAKqI,EAGZC,EAAwBrC,EAA6B5jB,KAAK6jB,UAE1DM,GAAqBnkB,KAAK6jB,WAC1BlG,EAAMD,EAAQ2G,EAA6BrkB,KAAK6jB,UAAWoC,GAAuB,GAC9E,GAAMrB,kBAEVoB,EAAgB3B,EAA6BrkB,KAAK6jB,UAAWoC,GAAuB,GAAM,GAC1FvI,EAAQsI,EAAcpB,iBAKtBjH,EAAM0G,EAA6BrkB,KAAK6jB,UAAWoC,GAAuB,GAAO,EAC7ED,EAAcnB,UAAUD,kBAGhC5kB,KAAK+c,SAASW,EAAMlZ,KAAMkZ,EAAMrL,QAChCrS,KAAKgd,OAAOW,EAAInZ,KAAMmZ,EAAItL,SAG9B0Q,EAAiBljB,UAAUmZ,QAAU,WACjC,MAAO,oBAGX6J,EAAS7G,wBAAwB+G,EAEjC,IAAImD,GAAmB,SAASxb,GAC5B,GAAIA,EAAMwO,UACN,MAAO0M,GAAwB,GAAIhR,GAAYlK,EAAM4L,eAAgB5L,EAAMyM,cAAc,EAEzF,IAAIgP,GAAaP,EAAwB,GAAIhR,GAAYlK,EAAM4L,eAAgB5L,EAAMyM,cAAc,GAC/FiP,EAAWR,EAAwB,GAAIhR,GAAYlK,EAAM6L,aAAc7L,EAAM0M,YAAY,GACzFyM,EAAY9Y,EAAS8X,EAASrM,iBAAiB9L,IAASqC,iBAG5D,OAFA8W,GAAU0B,YAAY,eAAgBY,GACtCtC,EAAU0B,YAAY,WAAYa,GAC3BvC,EAcf,IAVAd,EAAiBmD,iBAAmBA,EAEpCnD,EAAiBljB,UAAUwmB,YAAc,WACrC,MAAOH,GAAiBlmB,OAG5B6L,EAAIkX,iBAAmBA,GAIlBlX,EAAImB,SAASR,oBAAsBX,EAAIG,OAAOmC,gBAAiB,CAEhE,GAAImY,GAAY,SAAUtjB,GAAK,MAAOA,GAAE,mBAAsBI,SAChC,oBAAnBkjB,GAAUrH,QACjBqH,EAAUrH,MAAQ8D,GAGtBlX,EAAI8X,kBAAoB,SAAS3Y,GAE7B,MADAA,GAAMiI,EAAmBjI,EAAKtB,EAAQ,qBAC/BqB,EAAQC,GAAK+B,mBAGxBlB,EAAIiX,aAAeC,GAI3BlX,EAAIa,YAAc,SAAS1B,GAEvB,MADAA,GAAMiI,EAAmBjI,EAAKtB,EAAQ,eAC/B,GAAImC,GAAIiX,aAAajX,EAAI8X,kBAAkB3Y,KAGtDa,EAAI0a,iBAAmB,SAASvb,GAE5B,MADAA,GAAMiI,EAAmBjI,EAAKtB,EAAQ,oBAC/B,GAAImZ,GAAS7X,IAGxBa,EAAI2a,kBAAoB,SAAS5T,GAE7B,MADAlJ,GAAOkG,kBAAkB,sBAAuB,yBACzC/D,EAAIa,YAAYkG,IAG3B/G,EAAI4a,uBAAyB,SAAS7T,GAElC,MADAlJ,GAAOkG,kBAAkB,2BAA4B,8BAC9C/D,EAAI0a,iBAAiB3T,IAGhC/G,EAAI2D,gBAAgB,SAASjC,GACzB,GAAIvC,GAAMuC,EAAIlM,QACgB,oBAAnB2J,GAAI0B,cACX1B,EAAI0B,YAAc,WACd,MAAOb,GAAIa,YAAY1B,KAG/BA,EAAMuC,EAAM,SAQpB1B,EAAImE,iBAAiB,oBAAqB,WAAY,gBAAiB,SAASnE,EAAKnC,GAuBjF,QAASgd,GAAoBC,GACzB,MAAsB,gBAAPA,GAAmB,kBAAkBlgB,KAAKkgB,KAASA,EAGtE,QAASnU,GAAUjF,EAAK2F,GACpB,GAAK3F,EAEE,CAAA,GAAIlF,EAAI2K,SAASzF,GACpB,MAAOA,EACJ,IAAIA,YAAeqZ,GACtB,MAAOrZ,GAAIA,GAEX,IAAIvC,GAAM3C,EAAI4K,mBAAmB1F,EAAK7D,EAAQwJ,EAC9C,OAAO7K,GAAImK,UAAUxH,GAPrB,MAAOtJ,QAWf,QAASmlB,GAAgBC,GACrB,MAAOtU,GAAUsU,EAAU,mBAAmBC,eAGlD,QAASC,GAAgBF,GACrB,MAAOtU,GAAUsU,EAAU,mBAAmBzlB,SAASoH,UAG3D,QAASwe,GAAuBC,GAC5B,GAAIC,IAAW,CAIf,OAHID,GAAIE,aACJD,EAAmG,GAAvF9e,EAAIgL,cAAc6T,EAAIE,WAAYF,EAAIG,aAAcH,EAAII,UAAWJ,EAAIK,cAEhFJ,EAqKX,QAASK,GAA8BN,EAAKxc,EAAOyc,GAC/C,GAAIM,GAAeN,EAAW,MAAQ,QAASO,EAAcP,EAAW,QAAU,KAClFD,GAAIE,WAAa1c,EAAM+c,EAAe,aACtCP,EAAIG,aAAe3c,EAAM+c,EAAe,UACxCP,EAAII,UAAY5c,EAAMgd,EAAc,aACpCR,EAAIK,YAAc7c,EAAMgd,EAAc,UAG1C,QAASC,GAAwCT,GAC7C,GAAIU,GAAYV,EAAIW,eACpBX,GAAIE,WAAaQ,EAAUR,WAC3BF,EAAIG,aAAeO,EAAUP,aAC7BH,EAAII,UAAYM,EAAUN,UAC1BJ,EAAIK,YAAcK,EAAUL,YAGhC,QAASO,GAAqBZ,GAC1BA,EAAIE,WAAaF,EAAII,UAAY,KACjCJ,EAAIG,aAAeH,EAAIK,YAAc,EACrCL,EAAIa,WAAa,EACjBb,EAAI3C,aAAc,EAClB2C,EAAIc,QAAQnmB,OAAS,EAGzB,QAASomB,GAAevd,GACpB,GAAIuY,EAUJ,OATIvY,aAAiBmY,IACjBI,EAAcpX,EAAI8X,kBAAkBjZ,EAAM4H,eAC1C2Q,EAAYjG,OAAOtS,EAAM6L,aAAc7L,EAAM0M,WAC7C6L,EAAYlG,SAASrS,EAAM4L,eAAgB5L,EAAMyM,cAC1CzM,YAAiBoY,GACxBG,EAAcvY,EAAMuY,YACbjW,EAASR,oBAAuB9B,YAAiBrC,GAAImK,UAAU9H,EAAM4L,gBAAgB2I,QAC5FgE,EAAcvY,GAEXuY,EAGX,QAASiF,GAA2BC,GAChC,IAAKA,EAAWtmB,QAAoC,GAA1BsmB,EAAW,GAAGjZ,SACpC,OAAO,CAEX,KAAK,GAAItK,GAAI,EAAGW,EAAM4iB,EAAWtmB,OAAY0D,EAAJX,IAAWA,EAChD,IAAKyD,EAAI6I,aAAaiX,EAAW,GAAIA,EAAWvjB,IAC5C,OAAO,CAGf,QAAO,EAGX,QAASwjB,GAA0B1d,GAC/B,GAAIjG,GAAQiG,EAAMiX,UAClB,KAAKuG,EAA2BzjB,GAC5B,KAAMiF,GAAOqG,YAAY,oCAAsCrF,EAAMkL,UAAY,uCAErF,OAAOnR,GAAM,GAIjB,QAASgG,GAAYC,GACjB,QAASA,GAA8B,mBAAdA,GAAMgb,KAGnC,QAAS2C,GAAoBnB,EAAKxc,GAE9B,GAAI4d,GAAe,GAAIxF,GAAapY,EACpCwc,GAAIc,SAAWM,GAEfd,EAA8BN,EAAKoB,GAAc,GACjDpB,EAAIa,WAAa,EACjBb,EAAI3C,YAAc+D,EAAapP,UAGnC,QAASqP,GAAuBrB,GAG5B,GADAA,EAAIc,QAAQnmB,OAAS,EACQ,QAAzBqlB,EAAIsB,aAAa9nB,KACjBonB,EAAqBZ,OAClB,CACH,GAAIuB,GAAevB,EAAIsB,aAAa9b,aACpC,IAAIjC,EAAYge,GAIZJ,EAAoBnB,EAAKuB,OACtB,CACHvB,EAAIa,WAAaU,EAAa5mB,MAE9B,KAAK,GADD6I,GAAOM,EAAMsH,EAAYmW,EAAaviB,KAAK,IACtCtB,EAAI,EAAGA,EAAIsiB,EAAIa,aAAcnjB,EAClC8F,EAAQmB,EAAIa,YAAY1B,GACxBN,EAAM+S,WAAWgL,EAAaviB,KAAKtB,IACnCsiB,EAAIc,QAAQxmB,KAAKkJ,EAErBwc,GAAI3C,YAAgC,GAAlB2C,EAAIa,YAAmBb,EAAIc,QAAQ,GAAG9O,UACxDsO,EAA8BN,EAAKA,EAAIc,QAAQd,EAAIa,WAAa,IAAI,KAKhF,QAASW,GAA2BxB,EAAKxc,GAQrC,IAAK,GAPD+d,GAAevB,EAAIsB,aAAa9b,cAChCic,EAAeP,EAA0B1d,GAIzCM,EAAMsH,EAAYmW,EAAaviB,KAAK,IACpC0iB,EAAkB7d,EAAQC,GAAK6d,qBAC1BjkB,EAAI,EAAGW,EAAMkjB,EAAa5mB,OAAY0D,EAAJX,IAAWA,EAClDgkB,EAAgB5jB,IAAIyjB,EAAaviB,KAAKtB,GAE1C,KACIgkB,EAAgB5jB,IAAI2jB,GACtB,MAAO5gB,GACL,KAAM2B,GAAOqG,YAAY,iHAE7B6Y,EAAgBE,SAGhBP,EAAuBrB,GAgC3B,QAASN,GAAiBne,EAAW+f,EAAcjb,GAC/CvN,KAAK6nB,gBAAkBpf,EACvBzI,KAAKwoB,aAAeA,EACpBxoB,KAAKgoB,WACLhoB,KAAKuN,IAAMA,EACXvN,KAAKujB,UAKT,QAASwF,GAAiB7B,GACtBA,EAAI3Z,IAAM2Z,EAAIE,WAAaF,EAAII,UAAYJ,EAAIc,QAAU,KACzDd,EAAIa,WAAab,EAAIG,aAAeH,EAAIK,YAAc,EACtDL,EAAI8B,UAAW,EAKnB,QAASC,GAAqB1b,EAAK2b,GAE/B,IADA,GAAsCC,GAAQjC,EAA1CtiB,EAAIwkB,GAAsBvnB,OACvB+C,KAGH,GAFAukB,EAASC,GAAsBxkB,GAC/BsiB,EAAMiC,EAAO1gB,UACC,aAAVygB,EACAH,EAAiB7B,OACd,IAAIiC,EAAO5b,KAAOA,EACrB,MAAc,UAAV2b,GACAE,GAAsBpnB,OAAO4C,EAAG,IACzB,GAEAsiB,CAOnB,OAHc,aAAVgC,IACAE,GAAsBvnB,OAAS,GAE5B,KAkCX,QAASwnB,GAAuBnC,EAAKoC,GAIjC,IAAK,GAAWva,GAFZ/D,EAAMsH,EAAYgX,EAAO,GAAGhT,gBAC5BmS,EAAe1d,EAAQC,GAAK6d,qBACvBjkB,EAAI,EAAOW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EAAG,CACnDmK,EAAKqZ,EAA0BkB,EAAO1kB,GACtC,KACI6jB,EAAazjB,IAAI+J,GACnB,MAAOhH,GACL,KAAM2B,GAAOqG,YAAY,2HAGjC0Y,EAAaK,SAGbP,EAAuBrB,GAqT3B,QAASqC,GAAyBrC,EAAK1iB,GACnC,GAAI0iB,EAAI3Z,IAAIlM,UAAYiR,EAAY9N,GAChC,KAAM,IAAI+B,GAAa,sBA+F/B,QAASijB,GAAuB9M,GAC5B,MAAO,UAASlY,EAAM6N,GAClB,GAAI3H,EACA1K,MAAK+nB,YACLrd,EAAQ1K,KAAKypB,WAAW,GACxB/e,EAAM,OAASgS,EAAU,QAAU,QAAQlY,EAAM6N,KAEjD3H,EAAQmB,EAAIa,YAAY1M,KAAKuN,IAAIlM,UACjCqJ,EAAMiQ,eAAenW,EAAM6N,IAE/BrS,KAAK0pB,eAAehf,EAAO1K,KAAK2pB,eAkFxC,QAAS/T,GAAQsR,GACb,GAAI0C,MACAC,EAAS,GAAIjV,GAAYsS,EAAIE,WAAYF,EAAIG,cAC7CyC,EAAQ,GAAIlV,GAAYsS,EAAII,UAAWJ,EAAIK,aAC3ClhB,EAA8B,kBAAf6gB,GAAIlO,QAAyBkO,EAAIlO,UAAY,WAEhE,IAA6B,mBAAlBkO,GAAIa,WACX,IAAK,GAAInjB,GAAI,EAAGW,EAAM2hB,EAAIa,WAAgBxiB,EAAJX,IAAWA,EAC7CglB,EAAchlB,GAAKie,EAASjN,QAAQsR,EAAIuC,WAAW7kB,GAG3D,OAAO,IAAMyB,EAAO,YAAcujB,EAAcjiB,KAAK,MAC7C,aAAekiB,EAAOjU,UAAY,YAAckU,EAAMlU,UAAY,IAn8B9E/J,EAAIG,OAAO+d,sBAAuB,CAElC,IASIC,GACAC,EAVAC,EAAU,UACVC,EAAS,SACT9hB,EAAMwD,EAAIxD,IACV6F,EAAOrC,EAAIqC,KACXrE,EAAeqE,EAAKrE,aACpBgZ,EAAWhX,EAAIgX,SACfC,EAAejX,EAAIiX,aACnBvc,EAAesF,EAAItF,aACnBqO,EAAcvM,EAAIuM,YAGlB5H,EAAWnB,EAAImB,SACfod,EAAU,UACV9X,EAAcjK,EAAIiK,YAClBvH,EAAU1C,EAAI0C,QACd0X,EAAcI,EAASJ,YAwCvB4H,EAA4BxgB,EAAanI,OAAQ,gBACjD4oB,EAAyBpc,EAAK/D,aAAa9I,SAAU,YAEzD2L,GAASqd,0BAA4BA,EACrCrd,EAASsd,uBAAyBA,CAElC,IAAIC,GAAuBD,KAA4BD,GAA6Bxe,EAAIG,OAAOmC,gBAE3Foc,IACAP,EAAqBhD,EACrBnb,EAAI2e,iBAAmB,SAAS1D,GAC5B,GAAI9b,GAAMwH,EAAUsU,EAAU,oBAAoBzlB,SAAUumB,EAAY5c,EAAIvC,SAG5E,OAA0B,QAAlBmf,EAAUlnB,MAAkB4R,EAAYsV,EAAUlb,cAAc6D,kBAAoBvF,IAEzFqf,GACPL,EAAqBnD,EACrBhb,EAAI2e,iBAAmB,WACnB,OAAO,IAGX9gB,EAAOiC,KAAK,iEAGhBE,EAAIme,mBAAqBA,CAEzB,IAAIS,GAAgBT,IAChBzd,EAAYV,EAAI8X,kBAAkBtiB,UAClC4J,EAAOF,EAAQ1J,UAGfqpB,EAA6Bxc,EAAKrD,kBAAkB4f,GACnD,aAAc,YAAa,eAAgB,eAEhDzd,GAAS0d,2BAA6BA,CAGtC,IAAIC,GAAqB9gB,EAAa4gB,EAAe,SACrDzd,GAAS2d,mBAAqBA,CAG9B,IAAIC,SAAiCH,GAAc1C,YAAcoC,CACjEnd,GAAS4d,uBAAyBA,CAElC,IAAIC,IAAkC,EAClCC,GAA0C,EAE1CC,EAA2BJ,EAC3B,SAAS9C,EAAiBnd,GACtB,GAAIM,GAAM6X,EAASrM,iBAAiB9L,GAChC0b,EAAWva,EAAIa,YAAY1B,EAC/Bob,GAAStH,gBAAgBpU,EAAM6L,aAAc7L,EAAM0M,WACnDyQ,EAAgBmD,SAAS/C,EAAe7B,IACxCyB,EAAgBvZ,OAAO5D,EAAM4L,eAAgB5L,EAAMyM,cACnD,IAEJjJ,GAAKvD,eAAe8f,GAAgB,WAAY,aAAc,2BACnDA,GAAc1C,YAAcoC,GAAUnd,EAASR,qBAE1D,WAQI,GAAI0a,GAAMxlB,OAAOqlB,cACjB,IAAIG,EAAK,CAML,IAAK,GAJD+D,GAA8B/D,EAAIa,WAClCmD,EAA8BD,EAA8B,EAC5DE,KACAC,EAA4BnE,EAAuBC,GAC9CtiB,EAAI,EAAOqmB,EAAJrmB,IAAmCA,EAC/CumB,EAAwBvmB,GAAKsiB,EAAIuC,WAAW7kB,EAIhD,IAAIqG,GAAOF,EAAQ1J,UACfgqB,EAASpgB,EAAK+D,YAAa3N,SAASwD,cAAc,OACtDwmB,GAAOC,gBAAkB,OACzB,IAAIxW,GAAWuW,EAAOrc,YAAa3N,SAAS0T,eAAe,QAGvD4N,EAAKthB,SAASqL,aASlB,IAPAiW,EAAG5F,SAASjI,EAAU,GACtB6N,EAAGpF,UAAS,GACZ2J,EAAI8D,SAASrI,GACbmI,EAA6D,GAAlB5D,EAAIa,WAC/Cb,EAAIqE,mBAGCL,EAA4B,CAM7B,GAAIM,GAAc9pB,OAAO+pB,UAAUC,WAAWC,MAAM,iBACpD,IAAIH,GAAeI,SAASJ,EAAY,KAAO,GAC3CX,GAAkC,MAC/B,CACH,GAAIjI,GAAKD,EAAGvD,YACZuD,GAAG5F,SAASjI,EAAU,GACtB8N,EAAG5F,OAAOlI,EAAU,GACpB8N,EAAG7F,SAASjI,EAAU,GACtBoS,EAAI8D,SAASrI,GACbuE,EAAI8D,SAASpI,GACbiI,EAAqD,GAAlB3D,EAAIa,YAQ/C,IAHA9c,EAAKqT,YAAY+M,GACjBnE,EAAIqE,kBAEC3mB,EAAI,EAAOqmB,EAAJrmB,IAAmCA,EAClC,GAALA,GAAUwmB,EACNL,EACAA,EAAyB7D,EAAKiE,EAAwBvmB,KAEtDiH,EAAIK,KAAK,yJACTgb,EAAI8D,SAASG,EAAwBvmB,KAGzCsiB,EAAI8D,SAASG,EAAwBvmB,QAOzDoI,EAAS6d,gCAAkCA,EAC3C7d,EAAS8d,wCAA0CA,CAGnD,IAAoCe,GAAhCC,GAAyB,CAEzB7gB,IAAQpB,EAAaoB,EAAM,wBAC3B4gB,EAAmB5gB,EAAK4d,qBACpB3a,EAAKrD,kBAAkBghB,GAAmB,OAAQ,UAClDC,GAAyB,IAGjC9e,EAAS8e,uBAAyBA,EAI9B7B,EADAS,EACuB,SAASxD,GAC5B,MAAOA,GAAIE,aAAeF,EAAII,WAAaJ,EAAIG,eAAiBH,EAAIK,aAGjD,SAASL,GAC5B,MAAOA,GAAIa,WAAab,EAAIuC,WAAWvC,EAAIa,WAAa,GAAG7O,WAAY,EA6H/E,IAAI6S,GAEAliB,GAAa4gB,EAAe,cAI5BsB,GAAsB,SAAS7E,EAAKzf,GAChC,IACI,MAAOyf,GAAIuC,WAAWhiB,GACxB,MAAOM,GACL,MAAO,QAGR2iB,IACPqB,GAAsB,SAAS7E,GAC3B,GAAIlc,GAAMsH,EAAY4U,EAAIE,YACtB1c,EAAQmB,EAAIa,YAAY1B,EAS5B,OARAN,GAAMiQ,eAAeuM,EAAIE,WAAYF,EAAIG,aAAcH,EAAII,UAAWJ,EAAIK,aAItE7c,EAAMwO,YAAclZ,KAAKukB,aACzB7Z,EAAMiQ,eAAeuM,EAAII,UAAWJ,EAAIK,YAAaL,EAAIE,WAAYF,EAAIG,cAGtE3c,IAYfkc,EAAiB/mB,UAAYgM,EAAIqE,kBAQjC,IAAIkZ,OAwBArC,GAAe,SAASxZ,GAExB,GAAIA,GAAOA,YAAeqZ,GAEtB,MADArZ,GAAIgW,UACGhW,CAGXA,GAAMiF,EAAUjF,EAAK,qBAErB,IAAI2Z,GAAM+B,EAAqB1b,GAC3Bqa,EAAYoC,EAAmBzc,GAAMye,EAAS1B,EAAyBtD,EAAgBzZ,GAAO,IASlG,OARI2Z,IACAA,EAAIW,gBAAkBD,EACtBV,EAAIsB,aAAewD,EACnB9E,EAAI3D,YAEJ2D,EAAM,GAAIN,GAAiBgB,EAAWoE,EAAQze,GAC9C6b,GAAsB5nB,MAAQ+L,IAAKA,EAAK9E,UAAWye,KAEhDA,EAGXrb,GAAIkb,aAAeA,GAEnBlb,EAAIogB,mBAAqB,SAASrZ,GAE9B,MADAlJ,GAAOkG,kBAAkB,uBAAwB,0BAC1C/D,EAAIkb,aAAa1e,EAAI0K,gBAAgBH,IAGhD,IAAIsZ,IAAWtF,EAAiB/mB,SAqBhC,KAAK0qB,GAAwBG,GAA8Bxc,EAAKvD,eAAe8f,GAAgB,kBAAmB,aAAc,CAC5HyB,GAASX,gBAAkB,WACvBvrB,KAAK6nB,gBAAgB0D,kBACrBzD,EAAqB9nB,MAGzB,IAAImsB,IAAmB,SAASjF,EAAKxc,GACjCqgB,EAAyB7D,EAAIW,gBAAiBnd,GAC9Cwc,EAAI3D,UAIJ2I,IAASlB,SADTJ,EACoB,SAASlgB,EAAO0hB,GAChC,GAAIN,GAA0BxB,GAA0BtqB,KAAKwoB,aAAa9nB,MAAQ0pB,EAC9E1B,EAA2B1oB,KAAM0K,OAEjC,IAAIgc,EAAoB0F,IAAczB,EAClCwB,GAAiBnsB,KAAM0K,OACpB,CACH,GAAI2hB,EACAxB,GACAwB,EAAqBrsB,KAAK+nB,YAE1B/nB,KAAKurB,kBACLc,EAAqB,EAKzB,IAAIC,GAAoBrE,EAAevd,GAAO0U,YAC9C,KACIpf,KAAK6nB,gBAAgBmD,SAASsB,GAChC,MAAOvkB,IAMT,GAFA/H,KAAK+nB,WAAa/nB,KAAK6nB,gBAAgBE,WAEnC/nB,KAAK+nB,YAAcsE,EAAqB,EAAG,CAK3C,GAAIxgB,EAAIG,OAAO+d,qBAAsB,CACjC,GAAI9G,GAAc8I,GAAoB/rB,KAAK6nB,gBAAiB7nB,KAAK+nB,WAAa,EAC1E9E,KAAgBR,EAAYQ,EAAavY,KAEzCA,EAAQ,GAAIoY,GAAaG,IAGjCjjB,KAAKgoB,QAAQhoB,KAAK+nB,WAAa,GAAKrd,EACpC8c,EAA8BxnB,KAAM0K,EAAO6hB,GAAoBvsB,KAAK6nB,kBACpE7nB,KAAKukB,YAAc0F,EAAqBjqB,UAGxCA,MAAKujB,YAMD,SAAS7Y,EAAO0hB,GAC5B1F,EAAoB0F,IAAczB,EAClCwB,GAAiBnsB,KAAM0K,IAEvB1K,KAAK6nB,gBAAgBmD,SAAS/C,EAAevd,IAC7C1K,KAAKujB,YAKjB2I,GAASM,UAAY,SAASlD,GAC1B,GAAIwC,GAA0BxB,GAA0BhB,EAAOznB,OAAS,EACpEwnB,EAAuBrpB,KAAMspB,OAC1B,CACHtpB,KAAKurB,iBACL,KAAK,GAAI3mB,GAAI,EAAGW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EAC5C5E,KAAKgrB,SAAS1B,EAAO1kB,UAI9B,CAAA,KAAIiF,EAAa4gB,EAAe,UAAY5gB,EAAa0C,EAAW,WAChEuf,GAA0BvB,GAqDjC,MADA7gB,GAAOiC,KAAK,yDACL,CAnDPugB,IAASX,gBAAkB,WAEvB,IAII,GAHAvrB,KAAKwoB,aAAaiE,QAGY,QAA1BzsB,KAAKwoB,aAAa9nB,KAAgB,CAGlC,GAAIsK,EACJ,IAAIhL,KAAKonB,WACLpc,EAAMsH,EAAYtS,KAAKonB,gBACpB,IAAIpnB,KAAKwoB,aAAa9nB,MAAQ0pB,EAAS,CAC1C,GAAI3B,GAAezoB,KAAKwoB,aAAa9b,aACjC+b,GAAa5mB,SACbmJ,EAAMsH,EAAamW,EAAaviB,KAAK,KAG7C,GAAI8E,EAAK,CACL,GAAI6Y,GAAY9Y,EAAQC,GAAK+B,iBAC7B8W,GAAUiF,SACV9oB,KAAKwoB,aAAaiE,UAG5B,MAAM1kB,IACR+f,EAAqB9nB,OAGzBksB,GAASlB,SAAW,SAAStgB,GACrB1K,KAAKwoB,aAAa9nB,MAAQ0pB,EAC1B1B,EAA2B1oB,KAAM0K,IAEjCmB,EAAIkX,iBAAiBmD,iBAAiBxb,GAAOoe,SAC7C9oB,KAAKgoB,QAAQ,GAAKtd,EAClB1K,KAAK+nB,WAAa,EAClB/nB,KAAKukB,YAAcvkB,KAAKgoB,QAAQ,GAAG9O,UACnCsO,EAA8BxnB,KAAM0K,GAAO,KAInDwhB,GAASM,UAAY,SAASlD,GAC1BtpB,KAAKurB,iBACL,IAAIxD,GAAauB,EAAOznB,MACpBkmB,GAAa,EACbsB,EAAuBrpB,KAAMspB,GACtBvB,GACP/nB,KAAKgrB,SAAS1B,EAAO,KAQjC4C,GAASzC,WAAa,SAAShiB,GAC3B,GAAY,EAARA,GAAaA,GAASzH,KAAK+nB,WAC3B,KAAM,IAAIxhB,GAAa,iBAGvB,OAAOvG,MAAKgoB,QAAQvgB,GAAO2X,aAInC,IAAIsN,GAEJ,IAAInC,EACAmC,GAAmB,SAASxF,GACxB,GAAIxc,EACAmB,GAAI2e,iBAAiBtD,EAAI3Z,KACzB7C,EAAQwc,EAAIsB,aAAa9b,eAEzBhC,EAAQK,EAAQmc,EAAI3Z,IAAIlM,UAAU0L,kBAClCrC,EAAM6S,UAAS,IAGf2J,EAAIsB,aAAa9nB,MAAQ0pB,EACzB7B,EAAuBrB,GAChBzc,EAAYC,GACnB2d,EAAoBnB,EAAKxc,GAEzBod,EAAqBZ,QAG1B,IAAIrd,EAAa4gB,EAAe,qBAAwBA,GAAc1C,YAAcoC,EACvFuC,GAAmB,SAASxF,GACxB,GAAI4E,GAA0BxB,GAA0BpD,EAAIsB,aAAa9nB,MAAQ0pB,EAC7E7B,EAAuBrB,OAGvB,IADAA,EAAIc,QAAQnmB,OAASqlB,EAAIa,WAAab,EAAIW,gBAAgBE,WACtDb,EAAIa,WAAY,CAChB,IAAK,GAAInjB,GAAI,EAAGW,EAAM2hB,EAAIa,WAAgBxiB,EAAJX,IAAWA,EAC7CsiB,EAAIc,QAAQpjB,GAAK,GAAIiH,GAAIiX,aAAaoE,EAAIW,gBAAgB4B,WAAW7kB,GAEzE4iB,GAA8BN,EAAKA,EAAIc,QAAQd,EAAIa,WAAa,GAAIwE,GAAoBrF,EAAIW,kBAC5FX,EAAI3C,YAAc0F,EAAqB/C,OAEvCY,GAAqBZ,QAI9B,CAAA,IAAIwD,SAAqCD,GAAclG,aAAe2F,SAAkB3d,GAAU2M,WAAagR,IAAWld,EAASR,mBAetI,MADA9C,GAAOiC,KAAK,mFACL,CAdP+gB,IAAmB,SAASxF,GACxB,GAAIxc,GAAOkd,EAAYV,EAAIW,eACvBD,GAAUR,YACV1c,EAAQqhB,GAAoBnE,EAAW,GACvCV,EAAIc,SAAWtd,GACfwc,EAAIa,WAAa,EACjBJ,EAAwCT,GACxCA,EAAI3C,YAAc0F,EAAqB/C,IAEvCY,EAAqBZ,IAQjCgF,GAAS3I,QAAU,SAASoJ,GACxB,GAAIC,GAAYD,EAAkB3sB,KAAKgoB,QAAQvkB,MAAM,GAAK,KACtDopB,EAAgB7sB,KAAKonB,WAAY0F,EAAkB9sB,KAAKqnB,YAG5D,IADAqF,GAAiB1sB,MACb2sB,EAAiB,CAEjB,GAAI/nB,GAAIgoB,EAAU/qB,MAClB,IAAI+C,GAAK5E,KAAKgoB,QAAQnmB,OAClB,OAAO,CAKX,IAAI7B,KAAKonB,YAAcyF,GAAiB7sB,KAAKqnB,cAAgByF,EACzD,OAAO,CAIX,MAAOloB,KACH,IAAK6d,EAAYmK,EAAUhoB,GAAI5E,KAAKgoB,QAAQpjB,IACxC,OAAO,CAGf,QAAO,GAKf,IAAImoB,IAAsB,SAAS7F,EAAKxc,GACpC,GAAI4e,GAASpC,EAAI8F,cACjB9F,GAAIqE,iBACJ,KAAK,GAAI3mB,GAAI,EAAGW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EACvC6d,EAAY/X,EAAO4e,EAAO1kB,KAC3BsiB,EAAI8D,SAAS1B,EAAO1kB,GAGvBsiB,GAAIa,YACLD,EAAqBZ,GAKzBgF,IAASe,YADTnB,GAA0BxB,EACH,SAAS5f,GAC5B,GAAI1K,KAAKwoB,aAAa9nB,MAAQ0pB,EAAS,CASnC,IAAK,GADDrb,GAPA0Z,EAAezoB,KAAKwoB,aAAa9b,cACjCic,EAAeP,EAA0B1d,GAIzCM,EAAMsH,EAAYmW,EAAaviB,KAAK,IACpC0iB,EAAkB7d,EAAQC,GAAK6d,qBAC3BqE,GAAU,EACTtoB,EAAI,EAAGW,EAAMkjB,EAAa5mB,OAAY0D,EAAJX,IAAWA,EAClDmK,EAAK0Z,EAAaviB,KAAKtB,GACnBmK,IAAO4Z,GAAgBuE,EACvBtE,EAAgB5jB,IAAIyjB,EAAaviB,KAAKtB,IAEtCsoB,GAAU,CAGlBtE,GAAgBE,SAGhBP,EAAuBvoB,UAEvB+sB,IAAoB/sB,KAAM0K,IAIX,SAASA,GAC5BqiB,GAAoB/sB,KAAM0K,GAKlC,IAAI6hB,KACChC,GAAwBG,GAA8B1d,EAASR,oBAChE+f,GAAsBtF,EAEtBiF,GAASvC,WAAa,WAClB,MAAO4C,IAAoBvsB,QAG/BusB,GAAsBL,GAASvC,WAAa,WACxC,OAAO,GAKfuC,GAASiB,YAAcjB,GAASvC,WAKhCuC,GAASrpB,SAAW,WAEhB,IAAK,GADDuqB,MACKxoB,EAAI,EAAGW,EAAMvF,KAAK+nB,WAAgBxiB,EAAJX,IAAWA,EAC9CwoB,EAAWxoB,GAAK,GAAK5E,KAAKgoB,QAAQpjB,EAEtC,OAAOwoB,GAAWzlB,KAAK,KAU3BukB,GAAS3O,SAAW,SAAS/Y,EAAM6N,GAC/BkX,EAAyBvpB,KAAMwE,EAC/B,IAAIkG,GAAQmB,EAAIa,YAAYlI,EAC5BkG,GAAMoU,gBAAgBta,EAAM6N,GAC5BrS,KAAK0pB,eAAehf,GACpB1K,KAAKukB,aAAc,GAGvB2H,GAASmB,gBAAkB,WACvB,IAAIrtB,KAAK+nB,WAIL,KAAM,IAAIxhB,GAAa,oBAHvB,IAAImE,GAAQ1K,KAAKgoB,QAAQ,EACzBhoB,MAAKud,SAAS7S,EAAM4L,eAAgB5L,EAAMyM,cAMlD+U,GAASoB,cAAgB,WACrB,IAAIttB,KAAK+nB,WAIL,KAAM,IAAIxhB,GAAa,oBAHvB,IAAImE,GAAQ1K,KAAKgoB,QAAQhoB,KAAK+nB,WAAa,EAC3C/nB,MAAKud,SAAS7S,EAAM6L,aAAc7L,EAAM0M,YAQhD8U,GAASqB,kBAAoB,SAAS/oB,GAClC+kB,EAAyBvpB,KAAMwE,EAC/B,IAAIkG,GAAQmB,EAAIa,YAAYlI,EAC5BkG,GAAM8S,mBAAmBhZ,GACzBxE,KAAK0pB,eAAehf,IAGxBwhB,GAASsB,mBAAqB,WAE1B,GAAI1B,GAA0BxB,GAA0BtqB,KAAKwoB,aAAa9nB,MAAQ0pB,EAAS,CAGvF,IAFA,GACIqD,GADAhF,EAAezoB,KAAKwoB,aAAa9b,cAE9B+b,EAAa5mB,QAChB4rB,EAAUhF,EAAaviB,KAAK,GAC5BuiB,EAAajhB,OAAOimB,GACpBA,EAAQ/oB,WAAW4Z,YAAYmP,EAEnCztB,MAAKujB,cACF,IAAIvjB,KAAK+nB,WAAY,CACxB,GAAIuB,GAAStpB,KAAKgtB,cAClB,IAAI1D,EAAOznB,OAAQ,CACf7B,KAAKurB,iBACL,KAAK,GAAI3mB,GAAI,EAAGW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EAC5C0kB,EAAO1kB,GAAGiZ,gBAId7d,MAAKgrB,SAAS1B,EAAO/jB,EAAM,OAMvC2mB,GAASwB,UAAY,SAAS3V,EAAM3X,GAChC,IAAK,GAAIwE,GAAI,EAAGW,EAAMvF,KAAKgoB,QAAQnmB,OAAY0D,EAAJX,IAAWA,EAClD,GAAKmT,EAAM/X,KAAKypB,WAAW7kB,IACvB,MAAOxE,IAKnB8rB,GAASc,aAAe,WACpB,GAAI1D,KAIJ,OAHAtpB,MAAK0tB,UAAU,SAAShjB,GACpB4e,EAAO9nB,KAAKkJ,KAET4e,GAGX4C,GAASxC,eAAiB,SAAShf,EAAO0hB,GACtCpsB,KAAKurB,kBACLvrB,KAAKgrB,SAAStgB,EAAO0hB,IAGzBF,GAASyB,sBAAwB,SAASza,EAAY0a,GAClD,GAAIC,KAIJ,OAHA7tB,MAAK0tB,UAAW,SAAShjB,GACrBmjB,EAAQrsB,KAAMkJ,EAAMwI,GAAYpP,MAAM4G,EAAOkjB,MAE1CC,GAiBX3B,GAASnP,SAAWyM,GAAuB,GAC3C0C,GAASlP,OAASwM,GAAuB,GAGzC3d,EAAIoE,eAAe6Y,OAAS,SAASsD,GACjCrF,GAAc/mB,KAAKsS,eAAgBoX,eAAe1pB,KAAMosB,IAG5DF,GAAS4B,gBAAkB,SAAS/V,GAChC,GAAIuR,MACAnC,EAAWnnB,KAAK2pB,YAEpB3pB,MAAK0tB,UAAU,SAAShjB,GACpBqN,EAAKrN,GACL4e,EAAO9nB,KAAKkJ,KAGhB1K,KAAKurB,kBACDpE,GAA6B,GAAjBmC,EAAOznB,OACnB7B,KAAKgrB,SAAS1B,EAAO,GAAI,YAEzBtpB,KAAKwsB,UAAUlD,IAIvB4C,GAAS9K,aAAe,SAAS5c,EAAM6c,GACnC,MAAOrhB,MAAK0tB,UAAW,SAAShjB,GAC5B,MAAOA,GAAM0W,aAAa5c,EAAM6c,KACjC,KAAU,GAGjB6K,GAASlK,YAAc,SAASC,GAC5B,OACIkF,SAAUnnB,KAAK2pB,aACfoE,eAAgB/tB,KAAK2tB,sBAAsB,eAAgB1L,MAInEiK,GAAS/J,eAAiB,SAASC,GAE/B,IAAK,GAAW4L,GAAetjB,EAD3BujB,KACKrpB,EAAI,EAAyBopB,EAAgB5L,EAAS2L,eAAenpB,MAC1E8F,EAAQmB,EAAIa,YAAY1M,KAAKuN,KAC7B7C,EAAMyX,eAAe6L,GACrBC,EAAUzsB,KAAKkJ,EAEf0X,GAAS+E,SACTnnB,KAAK0pB,eAAeuE,EAAU,GAAI,YAElCjuB,KAAKwsB,UAAUyB,IAIvB/B,GAASvL,OAAS,WACd,GAAIuN,KAIJ,OAHAluB,MAAK0tB,UAAU,SAAShjB,GACpBwjB,EAAW1sB,KAAMqhB,EAASlC,OAAOjW,MAE9BwjB,EAAWvmB,KAAK,KAGvBqF,EAASP,sBACTyf,GAASiC,mBAAqB,WAC1B,GAAIjH,EACJ,IAAMA,EAAMlnB,KAAKwoB,aAAgB,CAC7B,GAAI9d,GAAQwc,EAAIxa,aAChB,IAAIjC,EAAYC,GACZ,MAAOA,EAEP,MAAMhB,GAAOqG,YAAY,wDAE1B,GAAI/P,KAAK+nB,WAAa,EACzB,MAAOlc,GAAIkX,iBAAiBmD,iBAAkBlmB,KAAKypB,WAAW,GAE9D,MAAM/f,GAAOqG,YAAY,qDAoBrCmc,GAASlT,QAAU,WACf,MAAO,oBAGXkT,GAAStW,QAAU,WACf,MAAOA,GAAQ5V,OAGnBksB,GAASzW,OAAS,WACdwT,EAAqBjpB,KAAKuN,IAAK,UAC/Bwb,EAAiB/oB,OAGrB4mB,EAAiBwH,UAAY,WACzBnF,EAAqB,KAAM,cAG/BrC,EAAiBhR,QAAUA,EAC3BgR,EAAiBF,oBAAsBA,EAEvC7a,EAAIwiB,UAAYzH,EAEhB/a,EAAIqE,mBAAqBgc,GAEzBrgB,EAAI2D,gBAAgB,SAASjC,GACM,mBAApBA,GAAIwZ,eACXxZ,EAAIwZ,aAAe,WACf,MAAOA,IAAaxZ,KAG5BA,EAAM,QAQd,IAAI+gB,IAAW,EAEXC,EAAc,WACTD,IACDA,GAAW,GACNziB,EAAIC,aAAeD,EAAIG,OAAOoC,gBAC/B9B,KAmBZ,OAdIb,KAE2B,YAAvBpK,SAASC,WACTitB,KAEI1kB,EAAaxI,SAAU,qBACvBA,SAASb,iBAAiB,mBAAoB+tB,GAAa,GAI/Dlf,EAAY3N,OAAQ,OAAQ6sB,KAI7B1iB,GACR7L,MAcH,SAAUsJ,EAASC,GACM,kBAAVC,SAAwBA,OAAOC,IAEtCD,QAAQ,gBAAiBF,GACD,mBAAVI,SAA2C,gBAAXC,SAE9CD,OAAOC,QAAUL,EAASklB,QAAQ,UAGlCllB,EAAQC,EAAKK,QAElB,SAASA,GACRA,EAAM+D,aAAa,eAAgB,gBAAiB,SAAS9B,EAAKnC,GAK9D,QAAS+kB,GAAKta,EAAInJ,GACd,OAAQA,GAAO3J,UAAUqtB,eAAeva,GAG5C,QAASwa,GAA0BjkB,EAAOkkB,GACtC,GACIC,GADAC,EAAW,uBAAyB,GAAIC,MAAU,KAAO,GAAK1J,KAAK2J,UAAUvrB,MAAM,GAEnFuH,EAAM3C,EAAIiK,YAAY5H,EAAM4L,gBAG5B2Y,EAAgBvkB,EAAM0U,YAY1B,OAXA6P,GAAc1R,SAASqR,GAGvBC,EAAW7jB,EAAInG,cAAc,QAC7BgqB,EAAS1a,GAAK2a,EACdD,EAASK,MAAMC,WAAa,IAC5BN,EAASK,MAAME,QAAU,OACzBP,EAASQ,UAAY,yBACrBR,EAAS7f,YAAYhE,EAAI+J,eAAeua,IAExCL,EAAchP,WAAW4O,GAClBA,EAGX,QAASU,GAAiBvkB,EAAKN,EAAOokB,EAAUF,GAC5C,GAAIC,GAAWJ,EAAKK,EAAU9jB,EAC1B6jB,IACAnkB,EAAMkkB,EAAU,iBAAmB,gBAAgBC,GACnDA,EAASnqB,WAAW4Z,YAAYuQ,IAEhCnlB,EAAOwC,KAAK,8DAIpB,QAASsjB,GAAc7M,EAAIC,GACvB,MAAOA,GAAG/C,sBAAsB8C,EAAG3H,eAAgB2H,GAGvD,QAAS8M,GAAU/kB,EAAOyc,GACtB,GAAInD,GAASC,EAAOjZ,EAAMa,EAAIgX,SAASrM,iBAAiB9L,GAAQgb,EAAOhb,EAAM7H,UAE7E,OAAI6H,GAAMwO,WACN+K,EAAQ0K,EAA0BjkB,GAAO,IAErCrJ,SAAU2J,EACV8jB,SAAU7K,EAAM9P,GAChB+E,WAAW,KAGf+K,EAAQ0K,EAA0BjkB,GAAO,GACzCsZ,EAAU2K,EAA0BjkB,GAAO,IAGvCrJ,SAAU2J,EACV0kB,cAAe1L,EAAQ7P,GACvBwb,YAAa1L,EAAM9P,GACnB+E,WAAW,EACXiO,SAAUA,EACVtkB,SAAU,WACN,MAAO,mBAAqB6iB,EAAO,iBAAmBhb,EAAM7H,WAAa,OAMzF,QAAS+sB,GAAaC,EAAWC,GAC7B,GAAI9kB,GAAM6kB,EAAUxuB,QACI,oBAAbyuB,KACPA,GAAY,EAEhB,IAAIplB,GAAQmB,EAAIa,YAAY1B,EAC5B,IAAI6kB,EAAU3W,UAAW,CACrB,GAAI2V,GAAWJ,EAAKoB,EAAUf,SAAU9jB,EACxC,IAAI6jB,EAAU,CACVA,EAASK,MAAME,QAAU,QACzB,IAAIpK,GAAe6J,EAASne,eAGxBsU,IAAyC,GAAzBA,EAAa9V,UAC7B2f,EAASnqB,WAAW4Z,YAAYuQ,GAChCnkB,EAAMoU,gBAAgBkG,EAAcA,EAAanjB,UAEjD6I,EAAMoX,eAAe+M,GACrBA,EAASnqB,WAAW4Z,YAAYuQ,QAGpCnlB,GAAOwC,KAAK,kEAGhBqjB,GAAiBvkB,EAAKN,EAAOmlB,EAAUH,eAAe,GACtDH,EAAiBvkB,EAAKN,EAAOmlB,EAAUF,aAAa,EAOxD,OAJIG,IACAplB,EAAMwT,sBAGHxT,EAGX,QAASqlB,GAAWzG,EAAQnC,GACxB,GAAqBzc,GAAOM,EAAxBglB,IAGJ1G,GAASA,EAAO7lB,MAAM,GACtB6lB,EAAO2G,KAAKT,EAEZ,KAAK,GAAI5qB,GAAI,EAAGW,EAAM+jB,EAAOznB,OAAY0D,EAAJX,IAAWA,EAC5CorB,EAAWprB,GAAK6qB,EAAUnG,EAAO1kB,GAAIuiB,EAKzC,KAAKviB,EAAIW,EAAM,EAAGX,GAAK,IAAKA,EACxB8F,EAAQ4e,EAAO1kB,GACfoG,EAAMa,EAAIgX,SAASrM,iBAAiB9L,GAChCA,EAAMwO,UACNxO,EAAMqX,cAAc0M,EAAKuB,EAAWprB,GAAGkqB,SAAU9jB,KAEjDN,EAAM2S,aAAaoR,EAAKuB,EAAWprB,GAAG+qB,YAAa3kB,IACnDN,EAAM0S,cAAcqR,EAAKuB,EAAWprB,GAAG8qB,cAAe1kB,IAI9D,OAAOglB,GAGX,QAASE,GAAc3iB,GACnB,IAAK1B,EAAI2e,iBAAiBjd,GAEtB,MADA7D,GAAOwC,KAAK,0HACL,IAEX,IAAIgb,GAAMrb,EAAIkb,aAAaxZ,GACvB+b,EAASpC,EAAI8F,eACb7F,EAA6B,GAAjBmC,EAAOznB,QAAeqlB,EAAIyC,aAEtCqG,EAAaD,EAAWzG,EAAQnC,EASpC,OANIA,GACAD,EAAIwC,eAAeJ,EAAO,GAAI,YAE9BpC,EAAIsF,UAAUlD,IAId/b,IAAKA,EACLyiB,WAAYA,EACZG,UAAU,GAIlB,QAASC,GAAcJ,GAOnB,IAAK,GAND1G,MAIAvB,EAAaiI,EAAWnuB,OAEnB+C,EAAImjB,EAAa,EAAGnjB,GAAK,EAAGA,IACjC0kB,EAAO1kB,GAAKgrB,EAAaI,EAAWprB,IAAI,EAG5C,OAAO0kB,GAGX,QAAS+G,GAAiBC,EAAgBC,GACtC,IAAKD,EAAeH,SAAU,CAC1B,GAAIH,GAAaM,EAAeN,WAC5B9I,EAAMrb,EAAIkb,aAAauJ,EAAe/iB,KACtC+b,EAAS8G,EAAcJ,GAAajI,EAAaiI,EAAWnuB,MAE9C,IAAdkmB,GAAmBwI,GAAqB1kB,EAAImB,SAAS2d,oBAAsBqF,EAAW,GAAG7I,UACzFD,EAAIqE,kBACJrE,EAAI8D,SAAS1B,EAAO,IAAI,IAExBpC,EAAIsF,UAAUlD,GAGlBgH,EAAeH,UAAW,GAIlC,QAASK,GAAoBxlB,EAAK8jB,GAC9B,GAAID,GAAWJ,EAAKK,EAAU9jB,EAC1B6jB,IACAA,EAASnqB,WAAW4Z,YAAYuQ,GAIxC,QAAS4B,GAAcH,GAEnB,IAAK,GAAoCT,GADrCG,EAAaM,EAAeN,WACvBprB,EAAI,EAAGW,EAAMyqB,EAAWnuB,OAAuB0D,EAAJX,IAAWA,EAC3DirB,EAAYG,EAAWprB,GACnBirB,EAAU3W,UACVsX,EAAoBF,EAAetlB,IAAK6kB,EAAUf,WAElD0B,EAAoBF,EAAetlB,IAAK6kB,EAAUH,eAClDc,EAAoBF,EAAetlB,IAAK6kB,EAAUF,cA3M9D,GAAItnB,GAAMwD,EAAIxD,IAEVinB,EAAiB,GA8MrBzjB,GAAIqC,KAAKI,OAAOzC,GACZ4jB,UAAWA,EACXG,aAAcA,EACdG,WAAYA,EACZK,cAAeA,EACfF,cAAeA,EACfG,iBAAkBA,EAClBG,oBAAqBA,EACrBC,cAAeA,OAIxBzwB,KAMH,IAAI0wB,MAAO,YAIXA,MAAKpiB,OAAS,SAASqiB,EAAWC,GACjC,GAAItiB,GAASoiB,KAAK7wB,UAAUyO,MAG5BoiB,MAAKG,cAAe,CACpB,IAAIC,GAAQ,GAAI9wB,KAChBsO,GAAOnN,KAAK2vB,EAAOH,GAClBG,EAAMC,KAAO,mBAGPL,MAAKG,YAIZ,IAAI5U,GAAc6U,EAAM7U,YACpB+U,EAAQF,EAAM7U,YAAc,WAC/B,IAAKyU,KAAKG,aACT,GAAI7wB,KAAKixB,eAAiBjxB,KAAKic,aAAe+U,EAC7ChxB,KAAKixB,eAAgB,EACrBhV,EAAYnY,MAAM9D,KAAM0D,iBACjB1D,MAAKixB,kBACN,IAAoB,MAAhBvtB,UAAU,GACpB,OAAQA,UAAU,GAAG4K,QAAUA,GAAQnN,KAAKuC,UAAU,GAAIotB,GAmB7D,OAbAE,GAAM7f,SAAWnR,KACjBgxB,EAAM1iB,OAAStO,KAAKsO,OACpB0iB,EAAME,QAAUlxB,KAAKkxB,QACrBF,EAAMG,UAAYnxB,KAAKmxB,UACvBH,EAAMnxB,UAAYixB,EAClBE,EAAMnuB,SAAW7C,KAAK6C,SACtBmuB,EAAMI,QAAU,SAAS1wB,GAExB,MAAgB,UAARA,EAAoBswB,EAAQ/U,EAAYmV,WAEjD9iB,EAAOnN,KAAK6vB,EAAOJ,GAEM,kBAAdI,GAAM1kB,MAAoB0kB,EAAM1kB,OACpC0kB,GAGRN,KAAK7wB,WACJyO,OAAQ,SAAS+iB,EAAQC,GACxB,GAAI5tB,UAAU7B,OAAS,EAAG,CACzB,GAAIsP,GAAWnR,KAAKqxB,EACpB,IAAIlgB,GAA6B,kBAATmgB,MAErBngB,EAASigB,SAAWjgB,EAASigB,WAAaE,EAAMF,YAClD,WAAW3qB,KAAK6qB,GAAQ,CAExB,GAAInsB,GAASmsB,EAAMF,SAEnBE,GAAQ,WACP,GAAIC,GAAWvxB,KAAK+wB,MAAQL,KAAK7wB,UAAUkxB,IAC3C/wB,MAAK+wB,KAAO5f,CACZ,IAAI/Q,GAAc+E,EAAOrB,MAAM9D,KAAM0D,UAErC,OADA1D,MAAK+wB,KAAOQ,EACLnxB,GAGRkxB,EAAMF,QAAU,SAAS1wB,GACxB,MAAgB,UAARA,EAAoB4wB,EAAQnsB,GAErCmsB,EAAMzuB,SAAW6tB,KAAK7tB,SAEvB7C,KAAKqxB,GAAUC,MACT,IAAID,EAAQ,CAClB,GAAI/iB,GAASoiB,KAAK7wB,UAAUyO,MAEvBoiB,MAAKG,cAA+B,kBAAR7wB,QAChCsO,EAAStO,KAAKsO,QAAUA,EAOzB,KALA,GAAIwiB,IAASU,SAAU,MAEnBC,GAAU,cAAe,WAAY,WAErC7sB,EAAI8rB,KAAKG,aAAe,EAAI,EACzBa,EAAMD,EAAO7sB,MACfysB,EAAOK,IAAQZ,EAAMY,IACxBpjB,EAAOnN,KAAKnB,KAAM0xB,EAAKL,EAAOK,GAKhC,KAAK,GAAIA,KAAOL,GACVP,EAAMY,IAAMpjB,EAAOnN,KAAKnB,KAAM0xB,EAAKL,EAAOK,IAGjD,MAAO1xB,QAKT0wB,KAAOA,KAAKpiB,QACX2N,YAAa,WACZjc,KAAKsO,OAAO5K,UAAU,OAGvByN,SAAUhP,OACVgG,QAAS,MAET+oB,QAAS,SAASzvB,EAAQkwB,EAAOC,GAChC,IAAK,GAAIF,KAAOjwB,GACaowB,SAAxB7xB,KAAKH,UAAU6xB,IAClBC,EAAMxwB,KAAKywB,EAASnwB,EAAOiwB,GAAMA,EAAKjwB,IAKzC0vB,UAAW,WACV,IAAK,GAAIvsB,GAAI,EAAGA,EAAIlB,UAAU7B,OAAQ+C,IACV,kBAAhBlB,WAAUkB,GAEpBlB,UAAUkB,GAAG5E,KAAKH,WAGlBG,KAAKH,UAAUyO,OAAO5K,UAAUkB,GAGlC,OAAO5E,OAGR6C,SAAU,WACT,MAAOjD,QAAOI,KAAKoxB,cAKrBlpB,UAAU4pB,QAAU,WASlB,QAASC,GAAWC,GAClB,QAAU,mBAAmBvrB,KAAKurB,IAAcA,EAAUrG,MAAM,gCAAmCkG,OAAW,IAAI,GAGpH,QAASI,GAAeD,GACtB,QAASA,EAAUrG,MAAM,mBAAqBkG,OAAW,IAAI,GAG/D,QAASK,GAAK/pB,EAASgqB,GACrB,GACIC,GADAC,EAAK,EAaT,OAVyB,+BAArB5G,UAAU6G,QACZF,EAAK,GAAIxZ,QAAO,8BACc,YAArB6S,UAAU6G,UACnBF,EAAK,GAAIxZ,QAAO,uCAGdwZ,GAAsC,MAAhCA,EAAGG,KAAK9G,UAAUuG,aAC1BK,EAAKG,WAAW5Z,OAAO6Z,KAGd,KAAPJ,GAAoB,EACnBlqB,EACAgqB,EACY,MAAbA,EAAqCE,EAAVlqB,EACd,MAAbgqB,EAA2BhqB,EAAUkqB,EACxB,OAAbF,EAAuCE,GAAXlqB,EACf,OAAbgqB,EAA4BhqB,GAAWkqB,EAA3C,OAJwBlqB,IAAYkqB,GADb,EA/BzB,GAAIL,GAAcvG,UAAUuG,UACxBltB,EAAczD,SAASwD,cAAc,OAErC6tB,EAAoD,KAAtCV,EAAUlvB,QAAQ,UAAyD,KAA/BkvB,EAAUlvB,QAAQ,SAC5E6vB,EAAoD,KAAtCX,EAAUlvB,QAAQ,gBAChC8vB,EAAoD,KAAtCZ,EAAUlvB,QAAQ,WAChC+vB,EAAoD,KAAtCb,EAAUlvB,QAAQ,SAiCpC,QAEEgwB,WAAYd,EAUZjmB,UAAW,WACT,GAAIimB,GAA8BhyB,KAAK8yB,WAAWhmB,cAE9CimB,EAA8B,mBAAqBjuB,GAEnDkuB,EAA8B3xB,SAAS4xB,aAAe5xB,SAAS6xB,uBAAyB7xB,SAAS8xB,kBAEjGC,EAA8B/xB,SAASgyB,eAAiBhyB,SAASsD,iBAEjE2uB,EAA+BtzB,KAAKuzB,SAAWxB,EAAWC,GAAa,GAAOhyB,KAAKwzB,aAAevB,EAAeD,GAAa,GAA0C,KAApCA,EAAUlvB,QAAQ,eAAwD,KAAhCkvB,EAAUlvB,QAAQ,SACpM,OAAOiwB,IACFC,GACAI,IACCE,GAGRG,cAAe,WACb,MAAOzzB,MAAK0zB,cAAc,cAG5BH,MAAO,WACL,MAAO,oBAAsB9sB,KAAKzG,KAAK8yB,aAGzCU,UAAW,WACT,MAA8C,KAAvCxzB,KAAK8yB,WAAWhwB,QAAQ,YAYjC6wB,yBAA0B,WACxB,MAAOzB,MAQT0B,8CAA+C,WAC7C,QAAS,iBAAmBvyB,YAO9BwyB,6CAA8C,WAC5C,MAAO3B,MAQT4B,wBAAyB,WACvB,MAAO,gBAAkBhvB,IAM3BivB,0BAA2B,WACzB,MAAOrB,IAGTsB,+BAAgC,SAASvG,GACvC,MAAO,eAAiBA,IAG1BiG,cAAe,SAASO,GACtB,MAAO,KAAOA,IAAanvB,IAAe,WAExC,MADAA,GAAYmC,aAAa,KAAOgtB,EAAW,WACM,kBAAnCnvB,GAAY,KAAOmvB,OAOrCC,gCAAiC,WAC/B,OAAQrB,GAWVsB,kBAAmB,SAASvC,GAC1B,GAAInE,GAAUmE,EAAQ/sB,cAAc,OAChCuvB,EAAU,wBAEd,OADA3G,GAAQrZ,UAAYggB,EACb3G,EAAQrZ,UAAUtH,gBAAkBsnB,GAe7CC,gBAAiB,WAEf,GAAIC,IAEFC,YAAwBrC,EAAK,GAAI,MAIjCsC,oBAAwBtC,IACxBuC,kBAAwBvC,KAItBnmB,GACF2oB,WAAchC,EAGhB,OAAO,UAAS1nB,EAAK2pB,GACnB,GAAIC,GAAUN,EAAcK,EAC5B,KAAKC,EAAS,CAEZ,IACE,MAAO5pB,GAAIkoB,sBAAsByB,GACjC,MAAME,IAER,IACE,MAAO7pB,GAAI8pB,oBAAoBH,GAC/B,MAAMI,GACN,QAAShpB,EAAU4oB,IAGvB,OAAO,MAcXK,iCAAkC,WAChC,MAAO9C,MAOT+C,sBAAuB,WACrB,MAAOj1B,MAAKq0B,gBAAgBhzB,SAAU,kBAOxC6zB,+BAAgC,WAC9B,MAAOxC,IAAWG,GAAWF,GAM/BwC,8BAA+B,WAC7B,GAAIC,GAAK/zB,SAASwD,cAAc,KAChC,OAAqC,KAA9BuwB,EAAGvuB,aAAa,YAOzBwuB,iCAAkC,WAChC,MAAO3C,IAAWR,KAAUW,GAM9ByC,mBAAoB,WAClB,OAAQ3C,GAMV4C,uBAAwB,WACtB,GACIn1B,GACAgU,EAFAohB,EAAoB1wB,EAAYoN,WAAU,EAW9C,OAPAsjB,GAAkBphB,UAAY,iBAC9BA,EAA8BohB,EAAkBphB,UAAUtH,cAC1D1M,EAA4C,uBAAdgU,GAAoD,uBAAdA,EAGpEpU,KAAKu1B,uBAAyB,WAAa,MAAOn1B,IAE3CA,GAMTq1B,qCAAsC,WACpC,MAA4E,KAArE71B,OAAOyB,SAASq0B,wBAAwB5yB,QAAQ,kBAOzD6yB,wBAAyB,WACvB,MAAO,gBAAkBj0B,SAAU,UAAYA,QAAOqlB,gBAMxD6O,yBAA0B,WACxB,MAAO/C,IAaTgD,oBAAqB,SAASC,GAC5B,GAAIC,GAAgB/D,EAAUrG,MAAM,mBAAqBkG,OAAW,EACpE,OAAOkE,GAAc,IAAM,KAAO,wBAA0BD,IAAS,UAAYA,KAQnFE,0BAA2B,SAASC,GAClC,MAAO/D,GAAK,KAAoB,mBAAb+D,GAA8C,mBAAbA,IAMtDC,eAAgB,WACd,MAAOhE,MAMTiE,gCAAiC,WAC/B,MAAOjE,MAGTkE,qBAAsB,WACpB,MAAO1D,IAAWE,GAAYC,GAShCwD,mBAAoB,WAClB,MAAOxD,IAMTyD,oBAAqB,WACnB,MAAOpE,MAWTqE,qCAAsC,WACpC,MAAO5D,IAGT6D,uBAAwB,WACtB,MAAQ,iBAAmB90B,SAQ7B+0B,mBAAoB,WAClB,QAAS,iBAAmB/0B,UAK9Bg1B,YAAa,SAAShF,GACpB,MAAY,aAARA,EACM,cAAgBrwB,UAASwD,cAAc,OAAOqqB,MAAS,aAAe,WAEzEwC,OAIZxpB,UAAUM,KAAKmuB,MAAQ,SAASvnB,GAC/B,OAUEnK,SAAU,SAAS2xB,GACjB,GAAIl0B,MAAMC,QAAQi0B,GAAS,CACzB,IAAK,GAAIhyB,GAAIgyB,EAAO/0B,OAAQ+C,KAC1B,GAAqD,KAAjDsD,UAAUM,KAAKmuB,MAAMvnB,GAAKtM,QAAQ8zB,EAAOhyB,IAC3C,OAAO,CAGX,QAAO,EAEP,MAAqD,KAA9CsD,UAAUM,KAAKmuB,MAAMvnB,GAAKtM,QAAQ8zB,IAY7C9zB,QAAS,SAAS8zB,GACd,GAAIxnB,EAAItM,QACN,MAAOsM,GAAItM,QAAQ8zB,EAEnB,KAAK,GAAIhyB,GAAE,EAAG/C,EAAOuN,EAAIvN,OAAUA,EAAF+C,EAAUA,IACzC,GAAIwK,EAAIxK,KAAOgyB,EAAU,MAAOhyB,EAElC,OAAO,IAWbiyB,QAAS,SAASC,GAChBA,EAAmB5uB,UAAUM,KAAKmuB,MAAMG,EAIxC,KAHA,GAAIC,MACAnyB,EAAU,EACV/C,EAAUuN,EAAIvN,OACTA,EAAF+C,EAAUA,IACVkyB,EAAiB7xB,SAASmK,EAAIxK,KACjCmyB,EAAOv1B,KAAK4N,EAAIxK,GAGpB,OAAOmyB,IAUTz0B,IAAK,WAIH,IAHA,GAAIsC,GAAW,EACX/C,EAAWuN,EAAIvN,OACfm1B,KACKn1B,EAAF+C,EAAUA,IACfoyB,EAASx1B,KAAK4N,EAAIxK,GAEpB,OAAOoyB,IAaTC,IAAK,SAASC,EAAUC,GACtB,GAAIz0B,MAAM7C,UAAUo3B,IAClB,MAAO7nB,GAAI6nB,IAAIC,EAAUC,EAKzB,KAHA,GAAI5xB,GAAM6J,EAAIvN,SAAW,EACrBu1B,EAAI,GAAI10B,OAAM6C,GACdX,EAAI,EACGW,EAAJX,EAASA,IACbwyB,EAAExyB,GAAKsyB,EAAS/1B,KAAKg2B,EAAS/nB,EAAIxK,GAAIA,EAAGwK,EAE5C,OAAOgoB,IAUXC,OAAQ,WAKN,IAJA,GAAIC,MACAC,EAAMnoB,EAAIvN,OACV21B,EAAM,EAEGD,EAANC,GACAtvB,UAAUM,KAAKmuB,MAAMW,GAAMryB,SAASmK,EAAIooB,KAC3CF,EAAK91B,KAAK4N,EAAIooB,IAEhBA,GAEF,OAAOF,MAKZpvB,UAAUM,KAAKivB,WAAa/G,KAAKpiB,QAEhCopB,GAAI,SAASzD,EAAW0D,GAItB,MAHA33B,MAAK43B,OAAS53B,KAAK43B,WACnB53B,KAAK43B,OAAO3D,GAAaj0B,KAAK43B,OAAO3D,OACrCj0B,KAAK43B,OAAO3D,GAAWzyB,KAAKm2B,GACrB33B,MAGT63B,IAAK,SAAS5D,EAAW0D,GACvB33B,KAAK43B,OAAS53B,KAAK43B,UACnB,IACIE,GACAC,EAFAnzB,EAAI,CAGR,IAAIqvB,EAAW,CAGb,IAFA6D,EAAc93B,KAAK43B,OAAO3D,OAC1B8D,KACOnzB,EAAEkzB,EAASj2B,OAAQ+C,IACpBkzB,EAASlzB,KAAO+yB,GAAWA,GAC7BI,EAAYv2B,KAAKs2B,EAASlzB,GAG9B5E,MAAK43B,OAAO3D,GAAa8D,MAGzB/3B,MAAK43B,SAEP,OAAO53B,OAGTg4B,KAAM,SAAS/D,EAAWgE,GACxBj4B,KAAK43B,OAAS53B,KAAK43B,UAGnB,KAFA,GAAIE,GAAW93B,KAAK43B,OAAO3D,OACvBrvB,EAAW,EACRA,EAAEkzB,EAASj2B,OAAQ+C,IACxBkzB,EAASlzB,GAAGzD,KAAKnB,KAAMi4B,EAEzB,OAAOj4B,OAITk4B,QAAS,WACP,MAAOl4B,MAAK03B,GAAG5zB,MAAM9D,KAAM0D,YAI7By0B,cAAe,WACb,MAAOn4B,MAAK63B,IAAI/zB,MAAM9D,KAAM0D,cAG/BwE,UAAUM,KAAK/G,OAAS,SAAS+M,GAChC,OAME4pB,MAAO,SAASC,GACd,IAAK,GAAIzzB,KAAKyzB,GACZ7pB,EAAI5J,GAAKyzB,EAASzzB,EAEpB,OAAO5E,OAGTsC,IAAK,WACH,MAAOkM,IAUT0R,MAAO,SAASzR,GACd,GACI7J,GADA0zB,IAGJ,IAAY,OAAR9pB,IAAiBtG,UAAUM,KAAK/G,OAAO+M,GAAK+pB,gBAC9C,MAAO/pB,EAGT,KAAK5J,IAAK4J,GACLA,EAAID,eAAe3J,KAElB0zB,EAAO1zB,GADL6J,EACUvG,UAAUM,KAAK/G,OAAO+M,EAAI5J,IAAIsb,MAAMzR,GAEpCD,EAAI5J,GAItB,OAAO0zB,IAQT31B,QAAS,WACP,MAA+C,mBAAxCR,OAAOtC,UAAUgD,SAAS1B,KAAKqN,IAQxCgqB,WAAY,WACV,MAA+C,sBAAxCr2B,OAAOtC,UAAUgD,SAAS1B,KAAKqN,IAGxC+pB,cAAe,WACb,MAA+C,oBAAxCp2B,OAAOtC,UAAUgD,SAAS1B,KAAKqN,MAI3C,WACC,GAAIiqB,GAAoB,OACpBC,EAAoB,OACpBC,EAAoB,YACpBC,GACEC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,UAEX/wB,WAAUM,KAAK0wB,OAAS,SAASC,GAE/B,MADAA,GAAMv5B,OAAOu5B,IAOXr5B,KAAM,WACJ,MAAOq5B,GAAIl5B,QAAQw4B,EAAmB,IAAIx4B,QAAQy4B,EAAiB,KAQrEU,YAAa,SAASC,GACpB,IAAK,GAAIz0B,KAAKy0B,GACZF,EAAMn5B,KAAKC,QAAQ,KAAO2E,EAAI,KAAK00B,GAAGD,EAAKz0B,GAE7C,OAAOu0B,IAQTl5B,QAAS,SAASs5B,GAChB,OACED,GAAI,SAASr5B,GACX,MAAOk5B,GAAIpyB,MAAMwyB,GAAQ5xB,KAAK1H,MAUpCu5B,WAAY,SAASC,EAAYC,GAC/B,GAAIC,GAAOR,EAAIl5B,QAAQ04B,EAAgB,SAAS11B,GAAK,MAAO21B,GAAW31B,IAOvE,OANIw2B,KACFE,EAAOA,EAAK15B,QAAQ,kBAAmB,WAErCy5B,IACFC,EAAOA,EAAK15B,QAAQ,OAAQ,YAEvB05B,QAef,SAAUzxB,GAoBR,QAAS0xB,GAASnM,EAASoM,GACzB,MAAIC,GAA8BrM,EAASoM,GAClCpM,GAGLA,IAAYA,EAAQlb,cAAc6C,kBACpCqY,EAAUA,EAAQlb,cAActH,MAG3B8uB,EAAWtM,EAASoM,IAO7B,QAASG,GAAoBb,GAC3B,MAAOA,GAAIl5B,QAAQg6B,EAAa,SAAStO,EAAOuO,GAC9C,GAAIC,IAAeD,EAAIvO,MAAMyO,QAA8B,IAAM,GAC7DC,EAAcC,EAASH,EAC3BD,GAAMA,EAAIj6B,QAAQm6B,EAAuB,IAErCF,EAAInzB,MAAMszB,GAASx4B,OAASq4B,EAAInzB,MAAMozB,GAAat4B,SACrDq4B,GAAYC,EACZA,EAAc,GAEhB,IAAII,GAAaL,EACbM,EAAaN,CASjB,OARIA,GAAIr4B,OAAS44B,IACfD,EAAaA,EAAWE,OAAO,EAAGD,GAAsB,OAG7B,SAAzBF,EAAQG,OAAO,EAAG,KACpBH,EAAU,UAAYA,GAGjB,YAAcA,EAAU,KAAOC,EAAa,OAASL,IAQhE,QAASQ,GAAgB/I,GACvB,GAAIgJ,GAAchJ,EAAQiJ,sBAI1B,OAHKD,KACHA,EAAchJ,EAAQiJ,uBAAyBjJ,EAAQ/sB,cAAc,QAEhE+1B,EAMT,QAASE,GAAmBhmB,GAC1B,GAAIpQ,GAAcoQ,EAASpQ,WACvBq2B,EAAc7yB,EAAUM,KAAK0wB,OAAOpkB,EAASb,MAAMulB,aACnDoB,EAAcD,EAAgBj2B,EAAW6N,cAO7C,KAHAqoB,EAAYxmB,UAAY,gBAAkB4lB,EAAoBe,GAC9DH,EAAYtc,YAAYsc,EAAY/mB,YAE7B+mB,EAAY/mB,YAEjBnP,EAAWoN,aAAa8oB,EAAY/mB,WAAYiB,EAElDpQ,GAAW4Z,YAAYxJ,GAGzB,QAASglB,GAA8Bt1B,EAAMq1B,GAE3C,IADA,GAAIhtB,GACGrI,EAAKE,YAAY,CAGtB,GAFAF,EAAOA,EAAKE,WACZmI,EAAWrI,EAAKqI,SACZrI,EAAK6qB,WAAannB,EAAUM,KAAKmuB,MAAMnyB,EAAK6qB,UAAUtoB,MAAM,MAAM9B,SAAS40B,GAC7E,OAAO,CAET,IAAImB,EAAe/1B,SAAS4H,GAC1B,OAAO,CACF,IAAiB,SAAbA,EACT,OAAO,EAGX,OAAO,EAGT,QAASktB,GAAWtM,EAASoM,GAC3B,KAAImB,EAAe/1B,SAASwoB,EAAQ5gB,WAIhC4gB,EAAQ4B,WAAannB,EAAUM,KAAKmuB,MAAMlJ,EAAQ4B,UAAUtoB,MAAM,MAAM9B,SAAS40B,IAArF,CAIA,GAAIpM,EAAQve,WAAahH,EAAUa,WAAa0kB,EAAQxZ,KAAK0X,MAAMsO,GAEjE,WADAa,GAAmBrN,EAQrB;IAJA,GAAIxe,GAAoB/G,EAAUM,KAAKmuB,MAAMlJ,EAAQxe,YAAY3M,MAC7D24B,EAAoBhsB,EAAWpN,OAC/B+C,EAAoB,EAEfq2B,EAAFr2B,EAAoBA,IACzBm1B,EAAW9qB,EAAWrK,GAAIi1B,EAG5B,OAAOpM,IAlIT,GAGIuN,GAAwB9yB,EAAUM,KAAKmuB,OAAO,OAAQ,MAAO,IAAK,SAAU,OAAQ,QAAS,UAW7FsD,EAAwB,oCACxBG,EAAwB,oBACxBK,EAAwB,IACxBH,GAA0BY,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAoHvDlzB,GAAUG,IAAIuxB,SAAWA,EAGzB1xB,EAAUG,IAAIuxB,SAASK,YAAcA,GACpC/xB,WACF,SAAUA,GACT,GAAI2D,GAAM3D,EAAUG,GAEpBwD,GAAIwvB,SAAW,SAAS5N,EAAS4B,GAC/B,GAAItqB,GAAY0oB,EAAQ1oB,SACxB,OAAIA,GACKA,EAAUC,IAAIqqB,QAEnBxjB,EAAIyvB,SAAS7N,EAAS4B,KAG1B5B,EAAQ4B,WAAa,IAAMA,KAG7BxjB,EAAI0vB,YAAc,SAAS9N,EAAS4B,GAClC,GAAItqB,GAAY0oB,EAAQ1oB,SACxB,OAAIA,GACKA,EAAUyC,OAAO6nB,QAG1B5B,EAAQ4B,UAAY5B,EAAQ4B,UAAUpvB,QAAQ,GAAI2Y,QAAO,WAAayW,EAAY,YAAa,OAGjGxjB,EAAIyvB,SAAW,SAAS7N,EAAS4B,GAC/B,GAAItqB,GAAY0oB,EAAQ1oB,SACxB,IAAIA,EACF,MAAOA,GAAUE,SAASoqB,EAG5B,IAAImM,GAAmB/N,EAAQ4B,SAC/B,OAAQmM,GAAiB35B,OAAS,IAAM25B,GAAoBnM,GAAa,GAAIzW,QAAO,UAAYyW,EAAY,WAAW5oB,KAAK+0B,MAE7HtzB,WACFA,UAAUG,IAAIpD,SAAW,WACxB,GAAImQ,GAAkB/T,SAAS+T,eAC/B,OAAIA,GAAgBnQ,SACX,SAAS4V,EAAW4S,GAIzB,MAHIA,GAAQve,WAAahH,UAAUY,eACjC2kB,EAAUA,EAAQ/oB,YAEbmW,IAAc4S,GAAW5S,EAAU5V,SAASwoB,IAE5CrY,EAAgBqmB,wBAClB,SAAS5gB,EAAW4S,GAEzB,SAAuD,GAA7C5S,EAAU4gB,wBAAwBhO,KAHzC,UAiCTvlB,UAAUG,IAAIqzB,cAAgB,WAC5B,QAASC,GAAgB3wB,EAAK4wB,GAC5B,GAAIC,GAAW7wB,EAAInG,cAAc,KAEjC,OADA+2B,GAAK5sB,YAAY6sB,GACVA,EAGT,QAASC,GAAY9wB,EAAKtK,GACxB,MAAOsK,GAAInG,cAAcnE,GAG3B,QAASg7B,GAAcjO,EAASsO,EAAUC,GACxC,GAAyB,OAArBvO,EAAQ5gB,UAA0C,OAArB4gB,EAAQ5gB,UAA0C,SAArB4gB,EAAQ5gB,SAEpE,MAAO4gB,EAGT,IAIIxe,GACAgsB,EACAgB,EACAC,EACAx3B,EACAy3B,EACAC,EACAC,EACAz3B,EAZAoG,EAAoByiB,EAAQlb,cAC5BqpB,EAAoBE,EAAY9wB,EAAK+wB,GACrCO,EAAoB7O,EAAQ9oB,iBAAiB,MAC7C43B,EAAoBD,EAAWz6B,MAYnC,KAAK+C,EAAE,EAAK23B,EAAF33B,EAAoBA,IAE5B,IADAs3B,EAAYI,EAAW13B,IACfF,EAAaw3B,EAAUx3B,aAAeA,IAAe+oB,GAAW/oB,EAAW4b,YAAc4b,GAAW,CAC1G,GAA2D,UAAvDh0B,UAAUG,IAAIm0B,SAAS,WAAWC,KAAK/3B,GAAyB,CAClEA,EAAW4Z,YAAY4d,EACvB,OAEFh0B,UAAUG,IAAIq0B,OAAOR,GAAWS,MAAMT,EAAUx3B,YAOpD,IAHAuK,EAAoB/G,UAAUM,KAAKmuB,MAAMlJ,EAAQxe,YAAY3M,MAC7D24B,EAAoBhsB,EAAWpN,OAE1B+C,EAAE,EAAKq2B,EAAFr2B,EAAoBA,IAC5By3B,EAAoBA,GAAmBV,EAAgB3wB,EAAK4wB,GAC5DK,EAAoBhtB,EAAWrK,GAC/Bu3B,EAA0E,UAAtDj0B,UAAUG,IAAIm0B,SAAS,WAAWC,KAAKR,GAC3DG,EAA2C,OAAvBH,EAAUpvB,UAG1BsvB,GAAoBH,GAAoB9zB,UAAUG,IAAIizB,SAASW,EAAWD,GAQ1EI,EAEFC,EAAkBA,EAAgBxoB,WAAa,KAAOwoB,EAIxDA,EAAgBrtB,YAAYitB,IAZ1BI,EAAkBA,EAAgBxoB,WAAa8nB,EAAgB3wB,EAAK4wB,GAAQS,EAC5EA,EAAgBrtB,YAAYitB,GAC5BI,EAAkB,KAkBtB,OAL0B,KAAtBptB,EAAWpN,QACb85B,EAAgB3wB,EAAK4wB,GAGvBnO,EAAQ/oB,WAAWk4B,aAAahB,EAAMnO,GAC/BmO,EAGT,MAAOF,MAiBTxzB,UAAUG,IAAIw0B,eAAiB,SAASC,GACtC,OACEL,KAAM,SAASM,GACb,OACEC,GAAI,SAASC,GAIX,IAHA,GAAIC,GACAt4B,EAAY,EACZ/C,EAAYi7B,EAAiBj7B,OACxBA,EAAF+C,EAAUA,IACfs4B,EAAYJ,EAAiBl4B,GACgB,mBAAlCm4B,GAAkBG,IAAgE,KAAjCH,EAAkBG,KAC5ED,EAAgBC,GAAaH,EAAkBG,GAGnD,QAASC,MAAOz5B,UAAU05B,aAyBpC,SAAU/0B,GASR,GAAIg1B,IAAyB,qBAAsB,kBAAmB,iBAAkB,cAEpFC,EAAiC,SAAS7P,GAC5C,MAAI8P,GAAsB9P,GAChB7B,SAASvjB,EAAIm0B,SAAS,SAASC,KAAKhP,GAAU,IAAMA,EAAQ+P,aAE/D,GAGLD,EAAwB,SAAS9P,GAGnC,IAFA,GAAI7oB,GAAU,EACV/C,EAAUw7B,EAAsBx7B,OAC3BA,EAAF+C,EAAUA,IACf,GAA6D,eAAzDyD,EAAIm0B,SAASa,EAAsBz4B,IAAI63B,KAAKhP,GAC9C,MAAO4P,GAAsBz4B,GAKnCyD,GAAIo1B,WAAa,SAASC,GACxB,OACEjB,KAAM,SAAShP,GACT6P,EAA+B7P,KACjCiQ,EAAex1B,UAAUM,KAAKmuB,MAAM+G,GAAc7G,QAAQwG,GAO5D,KAJA,GAGIpH,GAHA0H,EAAU,GACV97B,EAAU67B,EAAa77B,OACvB+C,EAAU,EAEL/C,EAAF+C,EAAUA,IACfqxB,EAAWyH,EAAa94B,GACxB+4B,GAAW1H,EAAW,IAAM5tB,EAAIm0B,SAASvG,GAAUwG,KAAKhP,GAAW,GAGrE,QACEuP,GAAI,SAASvP,GAEX,MADAplB,GAAIu1B,UAAUD,GAASjG,GAAGjK,IACjB0P,MAAOz5B,UAAU05B,cAMnCl1B,UAAUG,KASb,SAAUH,GACRA,EAAUG,IAAIw1B,SAAW,SAAShjB,EAAWtW,EAAU0vB,EAAW0D,GAChE,GAAIT,GAAW,SAAS4G,GAKtB,IAAK,GAJD/8B,GAAS+8B,EAAM/8B,OACf0sB,EAA+B,IAApB1sB,EAAOmO,SAAkBnO,EAAO2D,WAAa3D,EACxDkD,EAAW4W,EAAUlW,iBAAiBJ,GAEjCK,EAAI,EAAG2yB,EAAMtzB,EAAQpC,OAAY01B,EAAJ3yB,EAASA,IACzCX,EAAQW,GAAGK,SAASwoB,IACtBkK,EAAQx2B,KAAK8C,EAAQW,GAAIk5B,GAM/B,OADAjjB,GAAUra,iBAAiByzB,EAAWiD,GAAU,IAE9Chf,KAAM,WACJ2C,EAAUlZ,oBAAoBsyB,EAAWiD,GAAU,OAIxDhvB,WAEH,SAAUA,GACRA,EAAUG,IAAI01B,QAAU,SAASv5B,GAC/B,GAAIw5B,IAAoB91B,EAAUY,aAAcZ,EAAUa,WAEtDk1B,EAAe,SAASz5B,GAC1B,MAAOA,GAAK0K,WAAahH,EAAUa,WAAa,SAAWtC,KAAKjC,EAAKyP,MAGvE,QAGEiqB,KAAM,SAASrvB,GACb,GAAIsvB,GAAW35B,EAAKkM,gBAChB0tB,EAASvvB,GAAWA,EAAQ0J,UAAa1J,EAAQ0J,UAAYylB,CAEjE,OAAKG,IAKDj2B,EAAUM,KAAKmuB,MAAMyH,GAAOn5B,SAASk5B,EAASjvB,WAC/CL,GAAWA,EAAQwvB,kBAAoBJ,EAAaE,GAE9Cj2B,EAAUG,IAAI01B,QAAQI,GAAUD,KAAKrvB,GAGvCsvB,EAVE,MAcX3oB,KAAM,SAAS3G,GACb,GAAI+C,GAAWpN,EAAKqN,YAChBusB,EAASvvB,GAAWA,EAAQ0J,UAAa1J,EAAQ0J,UAAYylB,CAEjE,OAAKpsB,IAKD1J,EAAUM,KAAKmuB,MAAMyH,GAAOn5B,SAAS2M,EAAS1C,WAC/CL,GAAWA,EAAQwvB,kBAAoBJ,EAAarsB,GAE9C1J,EAAUG,IAAI01B,QAAQnsB,GAAU4D,KAAK3G,GAGvC+C,EAVE,MAgBX0sB,aAAc,SAASzvB,GACrB,GAAIyR,EAGJ,IAAsB,IAAlB9b,EAAK0K,SACP,MAAO1K,EAKT,IADA8b,EAAY9b,EAAK8b,WACZA,EACH,MAAO9b,EAIT,IAAIqK,GAAWA,EAAQ0vB,YACrB,IAAK,GAAI35B,GAAIiK,EAAQ0vB,YAAY18B,OAAQ+C,KACvC,GAAIsD,EAAUG,IAAIizB,SAAS92B,EAAMqK,EAAQ0vB,YAAY35B,IACnD,MAAOJ,EAKb,OAAO0D,GAAUG,IAAI01B,QAAQzd,GAAWge,aAAazvB,IAsBvDpI,KAAM,SAAS+3B,GACb,GAAIje,EAGJ,KAAKie,EACH,OAAO,CAIT,IAAsB,IAAlBh6B,EAAK0K,SACP,OAAO,CAGT,IAAIsvB,EAAWC,QACRj6B,EAAKP,QAAQu6B,EAAWC,OAC3B,OAAO,CAIX,IAAID,EAAW3xB,UAAYrI,EAAKqI,WAAa2xB,EAAW3xB,SACtD,OAAO,CAGT,IAAI2xB,EAAWnP,YAAc7qB,EAAKO,UAAUE,SAASu5B,EAAWnP,WAC9D,OAAO,CAIT,IAAImP,EAAWE,YAAa,CAC1B,GAAIz6B,IAAWO,EAAK6qB,WAAa,IAAI1D,MAAM6S,EAAWE,gBACtD,IAAuB,IAAnBz6B,EAAQpC,OACV,OAAO,EAKX,GAAI28B,EAAWG,eAAiBH,EAAWG,cAAc98B,OAAS,EAGhE,IAAK,GAFD+8B,IAAc,EACdC,EAAUn8B,MAAMC,QAAQ67B,EAAWG,eAAkBH,EAAWG,eAAiBH,EAAWG,eACvFG,EAAI,EAAGC,EAAYF,EAAOh9B,OAAYk9B,EAAJD,EAAeA,IAAK,CAG7D,GADAve,EAAOrY,EAAU4pB,QAAQ4E,YAAYmI,EAAOC,IACxCt6B,EAAK0qB,MAAM3O,GAAO,CACpB,IAAIie,EAAWQ,WAqBR,CACLJ,GAAc,CACd,OArBA,GAAIJ,EAAWQ,qBAAsBpmB,SAEnC,GAAIpU,EAAK0qB,MAAM3O,GAAMzgB,OAAO6rB,MAAM6S,EAAWQ,YAAYn9B,OAAS,EAAG,CACnE+8B,GAAc,CACd,YAEG,IAAIl8B,MAAMC,QAAQ67B,EAAWQ,aAElC,GAAIR,EAAWQ,WAAWl8B,QAAQ0B,EAAK0qB,MAAM3O,GAAMzgB,QAAS,CAC1D8+B,GAAc,CACd,YAIF,IAAIJ,EAAWQ,aAAex6B,EAAK0qB,MAAM3O,GAAMzgB,OAAQ,CACrD8+B,GAAc,CACd,QAQR,IAAKA,EACH,OAAO,EAKb,OAAO,MAKZ12B,WAaHA,UAAUG,IAAI42B,SAAW,WAEvB,GAAIC,GAAiB,SAASvF,EAAM/H,GAClC,GAAIgJ,GAAchJ,EAAQ/sB,cAAc,MACxC+1B,GAAY1L,MAAME,QAAU,OAC5BwC,EAAQ3mB,KAAK+D,YAAY4rB,EAEzB,KAAMA,EAAYxmB,UAAYulB,EAAQ,MAAM74B,IAE5C,MADA8wB,GAAQ3mB,KAAKqT,YAAYsc,GAClBA,GAMLuE,EAA4B,SAASvN,GACvC,IAAIA,EAAQwN,6BAAZ,CAGA,IAAK,GAAIx6B,GAAE,EAAG/C,EAAOw9B,EAAex9B,OAAUA,EAAF+C,EAAUA,IACpDgtB,EAAQ/sB,cAAcw6B,EAAez6B,GAEvCgtB,GAAQwN,8BAA+B,IAQrCC,GACF,OAAQ,UAAW,QAAS,QAAS,MAAO,SAAU,UAAW,WAAY,UAAW,aACxF,SAAU,SAAU,SAAU,SAAU,SAAU,OAAQ,QAAS,MAAO,SAAU,WACpF,KAAM,KAAM,OAAQ,MAAO,UAAW,SAAU,UAAW,OAAQ,QAAS,QAAS,MAGvF,OAAO,UAAS1F,EAAM/H,GACpBA,EAAUA,GAAWvwB,QACrB,IAAIu5B,EAWJ,OAVqB,gBAAX,IAAuBjB,EAAKzqB,UACpC0rB,EAAchJ,EAAQ/sB,cAAc,OACpC+1B,EAAY5rB,YAAY2qB,IACfzxB,UAAU4pB,QAAQqC,kBAAkBvC,IAC7CgJ,EAAchJ,EAAQ/sB,cAAc,OACpC+1B,EAAYxmB,UAAYulB,IAExBwF,EAA0BvN,GAC1BgJ,EAAcsE,EAAevF,EAAM/H,IAE9BgJ,MAoBX1yB,UAAUG,IAAIi3B,iBAAmB,WAE/B,MAAO,UAAS96B,EAAMg6B,EAAYe,EAAQ1kB,GAExC,IADA0kB,EAASA,GAAU,GACZA,KAAY/6B,GAA0B,SAAlBA,EAAKqI,YAAyBgO,GAAarW,IAASqW,IAAY,CACzF,GAAI3S,UAAUG,IAAI01B,QAAQv5B,GAAMiC,KAAK+3B,GACnC,MAAOh6B,EAETA,GAAOA,EAAKE,WAEd,MAAO,UAcXwD,UAAUG,IAAIm0B,SAAW,WAMvB,QAASgD,GAASrG,GAChB,MAAOA,GAAIl5B,QAAQw/B,EAAkB,SAAS9T,GAC5C,MAAOA,GAAM+T,OAAO,GAAGC,gBAP3B,GAAIC,IACEC,QAAU,cAAgBx+B,UAASwD,cAAc,OAAOqqB,MAAS,aAAe,YAElFuQ,EAAmB,UAQvB,OAAO,UAASxJ,GACd,OACEwG,KAAM,SAAShP,GACb,GAAIA,EAAQve,WAAahH,UAAUY,aAAnC,CAIA,GAAIkC,GAAoByiB,EAAQlb,cAC5ButB,EAAoBF,EAAqB3J,IAAauJ,EAASvJ,GAC/D/G,EAAoBzB,EAAQyB,MAC5B7Z,EAAoBoY,EAAQpY,aAC5B2pB,EAAoB9P,EAAM4Q,EAC9B,IAAId,EACF,MAAOA,EAQT,IAAI3pB,EACF,IACE,MAAOA,GAAayqB,GACpB,MAAMh/B,IAKV,GAEIi/B,GACA3/B,EAHAmN,EAAsBvC,EAAIyH,aAAezH,EAAI0H,aAC7CstB,GAAoC,WAAb/J,GAAsC,UAAbA,IAA8C,aAArBxI,EAAQ5gB,QAIrF,OAAIU,GAAI2H,kBAGF8qB,IACFD,EAAmB7Q,EAAM+Q,SACzB/Q,EAAM+Q,SAAW,UAEnB7/B,EAAcmN,EAAI2H,iBAAiBuY,EAAS,MAAMyS,iBAAiBjK,GAC/D+J,IACF9Q,EAAM+Q,SAAWF,GAAoB,IAEhC3/B,GAXT,cAiBP8H,UAAUG,IAAI83B,aAAe,SAAS37B,EAAM47B,GAC3C,GAAIC,KACJ,KAAK77B,EAAKA,EAAKqP,WAAWrP,EAAKA,EAAKA,EAAKqN,YAClB,GAAjBrN,EAAK0K,SACFkxB,GAAgB,QAAU35B,KAAKjC,EAAKjC,WAAaiC,EAAK87B,cACzDD,EAAI7+B,KAAKgD,GAGX67B,EAAMA,EAAIt8B,OAAOmE,UAAUG,IAAI83B,aAAa37B,EAAM47B,GAGtD,OAAOC,IAYTn4B,UAAUG,IAAIk4B,sBAAwB,WAIpC,QAASC,GAAuBx1B,GAC9B,MAAOA,GAAIy1B,wBAA0Bz1B,EAAIy1B,sBAAwBC,KAJnE,GAAIC,MACAD,EAAsB,CAM1B,OAAO,UAAS11B,EAAKmI,GACnB,GAAIue,GAAc8O,EAAuBx1B,GAAO,IAAMmI,EAClDytB,EAAcD,EAAWjP,EAK7B,OAJKkP,KACHA,EAAaD,EAAWjP,GAAO1mB,EAAIE,qBAAqBiI,IAGnDytB,EAAW/+B,OAAS,MAa/B,SAAUqG,GAIR,QAASs4B,GAAuBx1B,GAC9B,MAAOA,GAAIy1B,wBAA0Bz1B,EAAIy1B,sBAAwBC,KAJnE,GAAIC,MACAD,EAAsB,CAM1Bx4B,GAAUG,IAAIw4B,wBAA0B,SAAS71B,EAAKqkB,GAGpD,IAAKnnB,EAAU4pB,QAAQ2D,uCACrB,QAASzqB,EAAIqoB,cAAc,IAAMhE,EAGnC,IAAIqC,GAAc8O,EAAuBx1B,GAAO,IAAMqkB,EAClDuR,EAAcD,EAAWjP,EAK7B,OAJKkP,KACHA,EAAaD,EAAWjP,GAAO1mB,EAAI0qB,uBAAuBrG,IAGrDuR,EAAW/+B,OAAS,IAE5BqG,WACFA,UAAUG,IAAIq0B,OAAS,SAASoE,GAC/B,OACEnE,MAAO,SAASlP,GACdA,EAAQ/oB,WAAWoN,aAAagvB,EAAiBrT,EAAQ5b,cAG3DkvB,OAAQ,SAAStT,GACfA,EAAQ/oB,WAAWoN,aAAagvB,EAAiBrT,IAGnDuT,KAAM,SAASvT,GACbA,EAAQze,YAAY8xB,MAIzB54B,UAAUG,IAAI44B,UAAY,SAASC,GAGlC,MAFAA,GAAQA,EAAMv5B,KAAK,OAGjBq5B,KAAM,SAASh2B,GACb,GAAIm2B,GAAen2B,EAAInG,cAAc,QACrCs8B,GAAazgC,KAAO,WAEhBygC,EAAaC,WACfD,EAAaC,WAAWzD,QAAUuD,EAElCC,EAAanyB,YAAYhE,EAAI+J,eAAemsB,GAG9C,IAAIG,GAAOr2B,EAAIqoB,cAAc,YAC7B,IAAIgO,EAEF,WADAA,GAAK38B,WAAWoN,aAAaqvB,EAAcE,EAG3C,IAAIC,GAAOt2B,EAAIqoB,cAAc,OACzBiO,IACFA,EAAKtyB,YAAYmyB,MAO3B,SAAUj5B,GACRA,EAAUG,IAAIi0B,WAAa,SAAS93B,GAElC,QAAS+8B,GAAaxwB,GACpB,MAAsB,OAAfA,EAAElE,SAOX,QAAS20B,GAA2B/T,GAClC,MAAI8T,GAAa9T,IACR,EAG+C,UAApDvlB,EAAUG,IAAIm0B,SAAS,WAAWC,KAAKhP,IAClC,GAGF,EAGT,OAOEzoB,IAAK,WACH,GAAIgG,GAAkBxG,EAAK+N,cACzBV,EAAkB3J,EAAUG,IAAI01B,QAAQv5B,GAAMgR,MAAM6oB,kBAAkB,IACtE3tB,EAAkBxI,EAAUG,IAAI01B,QAAQv5B,GAAM05B,MAAMG,kBAAkB,GAEpExsB,KAAgB2vB,EAA2B3vB,IAC7C3J,EAAUG,IAAIq0B,OAAO1xB,EAAInG,cAAc,OAAO83B,MAAMn4B,GAElDkM,IAAoB8wB,EAA2B9wB,IACjDxI,EAAUG,IAAIq0B,OAAO1xB,EAAInG,cAAc,OAAOk8B,OAAOv8B,IAQzDgD,OAAQ,WACN,GAAIqK,GAAkB3J,EAAUG,IAAI01B,QAAQv5B,GAAMgR,MAAM6oB,kBAAkB,IACtE3tB,EAAkBxI,EAAUG,IAAI01B,QAAQv5B,GAAM05B,MAAMG,kBAAkB,GAEtExsB,IAAe0vB,EAAa1vB,IAC9BA,EAAYnN,WAAW4Z,YAAYzM,GAEjCnB,GAAmB6wB,EAAa7wB,IAClCA,EAAgBhM,WAAW4Z,YAAY5N,OAK9CxI,WAMHA,UAAUG,IAAI6vB,QAAU,SAASzK,EAASgU,EAAY9J,GACpD8J,EAAoC,gBAAjB,IAA6BA,GAAcA,CAO9D,KALA,GAAIC,GACAzN,EACArvB,EAAU,EACV/C,EAAU4/B,EAAW5/B,OAEhBA,EAAF+C,EAAUA,IACfqvB,EAAYwN,EAAW78B,GACnB6oB,EAAQjtB,iBACVitB,EAAQjtB,iBAAiByzB,EAAW0D,GAAS,IAE7C+J,EAAiB,SAAS5D,GAClB,UAAYA,KAChBA,EAAM/8B,OAAS+8B,EAAM98B,YAEvB88B,EAAM39B,eAAiB29B,EAAM39B,gBAAkB,WAC7CH,KAAKI,aAAc,GAErB09B,EAAMz9B,gBAAkBy9B,EAAMz9B,iBAAmB,WAC/CL,KAAKM,cAAe,GAEtBq3B,EAAQx2B,KAAKssB,EAASqQ,IAExBrQ,EAAQlsB,YAAY,KAAO0yB,EAAWyN,GAI1C,QACExpB,KAAM,WAIJ,IAHA,GAAI+b,GACArvB,EAAU,EACV/C,EAAU4/B,EAAW5/B,OAChBA,EAAF+C,EAAUA,IACfqvB,EAAYwN,EAAW78B,GACnB6oB,EAAQ9rB,oBACV8rB,EAAQ9rB,oBAAoBsyB,EAAW0D,GAAS,GAEhDlK,EAAQ1rB,YAAY,KAAOkyB,EAAWyN,MA0DhDx5B,UAAUG,IAAIs5B,MAAQ,SAASC,EAAuBC,GA6BnD,QAASF,GAAMG,EAAe91B,GAC7B9D,UAAUM,KAAK/G,OAAOsgC,GAAc3J,MAAM4J,GAAc5J,MAAMpsB,EAAOk1B,OAAO5+B,KAE5E,IAIImrB,GACAxb,EACA4B,EANA+d,EAAgB5lB,EAAO4lB,SAAWkQ,EAAcvvB,eAAiBlR,SACjEkT,EAAgBqd,EAAQpd,yBACxBytB,EAA0C,gBAApB,GACtBC,GAAiB,CAmBrB,KAdIl2B,EAAOk2B,kBAAmB,IAC5BA,GAAiB,GAIjBzU,EADEwU,EACQ/5B,UAAUG,IAAI42B,SAAS6C,EAAelQ,GAEtCkQ,EAGRC,EAAaI,WACfC,EAAoB3U,EAASsU,EAAaI,WAGrC1U,EAAQ5Z,YACbA,EAAa4Z,EAAQ5Z,WACrB5B,EAAUowB,EAASxuB,EAAY7H,EAAOs2B,QAASJ,EAAgBl2B,EAAOgwB,iBAClE/pB,GACFsC,EAASvF,YAAYiD,GAEnB4B,IAAe5B,GACjBwb,EAAQnP,YAAYzK,EAIxB,IAAI7H,EAAOu2B,YAGT,IAAK,GADDC,GAAWt6B,UAAUG,IAAI83B,aAAa5rB,GACjCxD,EAAIyxB,EAAS3gC,OAAQkP,KAC5ByxB,EAASzxB,GAAGgqB,UAAYyH,EAASzxB,GAAGgqB,UAAU96B,QAAQ,uBAAwB,MAUlF,OALAwtB,GAAQrZ,UAAY,GAGpBqZ,EAAQze,YAAYuF,GAEb0tB,EAAW/5B,UAAUI,OAAOm6B,oBAAoBhV,GAAWA,EAGpE,QAAS4U,GAASK,EAASJ,EAASJ,EAAgBlG,GAClD,GAKIznB,GACAtC,EACA0wB,EACAC,EARAC,EAAkBH,EAAQxzB,SAC1B4zB,EAAkBJ,EAAQzzB,WAC1B8zB,EAAkBD,EAAUjhC,OAC5BsD,EAAkB69B,EAAkBH,GACpCj+B,EAAkB,CAOtB,IAAIo3B,GAAmC,IAAhB6G,GAAqB36B,UAAUG,IAAIizB,SAASoH,EAAS1G,GACxE,MAAO0G,EAMX,IAHAzwB,EAAU9M,GAAUA,EAAOu9B,EAASR,IAG/BjwB,EAAS,CACV,GAAIA,KAAY,EAAO,CAInB,IAFAsC,EAAWmuB,EAAQnwB,cAAciC,yBAE5B5P,EAAIm+B,EAAiBn+B,KACpBk+B,EAAUl+B,KACZ+9B,EAAWN,EAASS,EAAUl+B,GAAI09B,EAASJ,EAAgBlG,GACvD2G,IACEG,EAAUl+B,KAAO+9B,GACnB/9B,IAEF2P,EAASzC,aAAa6wB,EAAUpuB,EAASV,aAiC/C,OA5BA+uB,GAAc16B,UAAUG,IAAIm0B,SAAS,WAAWC,KAAKiG,GAEjC,KAAhBE,IAEFA,EAAc16B,UAAUM,KAAKmuB,MAAMsM,GAAeh+B,SAASy9B,EAAQvvB,SAAW,QAAU,IAEtFjL,UAAUM,KAAKmuB,OAAO,QAAS,OAAQ,UAAU1xB,SAAS29B,IAC5DruB,EAASvF,YAAY0zB,EAAQnwB,cAAc1N,cAAc,OAIvDqD,UAAUM,KAAKmuB,OACf,MAAO,MAAO,IACd,QAAS,KAAM,KACf,KAAM,KAAM,KACZ,KAAM,KACN,SAAU,SAAU,UACpB,KAAM,KAAM,KAAM,KAAM,KAAM,OAC/B1xB,SAASy9B,EAAQ71B,SAASC,gBAAkB41B,EAAQh+B,WAAW4b,YAAcoiB,IAEvEA,EAAQ7wB,aAAgD,IAAjC6wB,EAAQ7wB,YAAY3C,UAAmB,MAAQzI,KAAKi8B,EAAQ7wB,YAAYkpB,YAClGxmB,EAASvF,YAAY0zB,EAAQnwB,cAAcwC,eAAe,OAI5DR,EAASub,WACXvb,EAASub,YAEJvb,EAGT,MAAO,MAKb,IAAK3P,EAAE,EAAKm+B,EAAFn+B,EAAmBA,IACvBk+B,EAAUl+B,KACZ+9B,EAAWN,EAASS,EAAUl+B,GAAI09B,EAASJ,EAAgBlG,GACvD2G,IACEG,EAAUl+B,KAAO+9B,GACnB/9B,IAEFqN,EAAQjD,YAAY2zB,IAM1B,IAAIL,GACArwB,EAAQpF,SAASC,gBAAkBo2B,KACjCjxB,EAAQhD,WAAWpN,QACnB,UAAY4E,KAAKwL,EAAQmC,aAAe8tB,GAAyC,gCAAtBQ,EAAQrT,WAAqE,2BAAtBqT,EAAQrT,aAC1Hpd,EAAQkxB,WAAWthC,QACnB,CAEJ,IADA0S,EAAWtC,EAAQM,cAAciC,yBAC1BvC,EAAQ4B,YACbU,EAASvF,YAAYiD,EAAQ4B,WAK/B,OAHIU,GAASub,WACXvb,EAASub,YAEJvb,EAMT,MAHItC,GAAQ6d,WACV7d,EAAQ6d,YAEH7d,EAGT,QAASmwB,GAAqB3U,EAAS2V,GACrC,GAAIlc,GAAK/hB,EAAQk+B,CAEjB,KAAKnc,IAAOkc,GACV,GAAIA,EAAc70B,eAAe2Y,GAAM,CACjChf,UAAUM,KAAK/G,OAAO2hC,EAAclc,IAAMsR,aAC5CrzB,EAASi+B,EAAclc,GACiB,gBAAxBkc,GAAclc,IAAsBoc,EAAuBF,EAAclc,MACzF/hB,EAASm+B,EAAuBF,EAAclc,KAEhDmc,EAAM5V,EAAQ9oB,iBAAiBuiB,EAC/B,KAAK,GAAItiB,GAAIy+B,EAAIxhC,OAAQ+C,KACvBO,EAAOk+B,EAAIz+B,KAMnB,QAAS2+B,GAAeb,EAASR,GAC/B,GAAIsB,GACAvxB,EAIAwxB,EAHAC,EAAc3B,EAAa4B,KAC3B92B,EAAc61B,EAAQ71B,SAASC,cAC/B82B,EAAclB,EAAQkB,SAO1B,IAAIlB,EAAQmB,WACV,MAAO,KAIT,IAFAnB,EAAQmB,WAAa,EAEK,mBAAtBnB,EAAQrT,UACV,MAAO,KAyBT,IAhBIuU,GAA0B,QAAbA,IACf/2B,EAAW+2B,EAAY,IAAM/2B,GAO3B,aAAe61B,KACZx6B,UAAU4pB,QAAQyD,0BACE,MAArBmN,EAAQ71B,UACsC,SAA9C61B,EAAQoB,UAAUrgC,MAAM,IAAIqJ,gBAC9BD,EAAW,QAIXA,IAAY62B,GAAU,CAExB,GADAF,EAAOE,EAAS72B,IACX22B,GAAQA,EAAKh8B,OAChB,MAAO,KACF,IAAIg8B,EAAKO,OACd,OAAO,CAETP,GAAwB,gBAAX,IAAwBQ,WAAYR,GAASA,MACrD,CAAA,IAAId,EAAQ7uB,WAIjB,MAAO,KAHP2vB,IAASQ,WAAYd,GAOvB,GAAIM,EAAKS,cAAgBC,EAAWxB,EAASX,EAAcyB,EAAKS,YAAa/B,GAAiB,CAC5F,IAAIsB,EAAKW,cASP,MAAO,KARP,IAA2B,WAAvBX,EAAKW,cACP,OAAO,CACF,IAA2B,WAAvBX,EAAKW,cAGd,MAAO,KAFPV,GAAYD,EAAKY,yBAA2BlB,EAgBlD,MAPAjxB,GAAUywB,EAAQnwB,cAAc1N,cAAc4+B,GAAaD,EAAKQ,YAAcn3B,GAC9Ew3B,EAAkB3B,EAASzwB,EAASuxB,EAAMtB,GAC1CoC,EAAc5B,EAASzwB,EAASuxB,GAEhCd,EAAU,KAENzwB,EAAQ6d,WAAa7d,EAAQ6d,YAC1B7d,EAGT,QAASiyB,GAAWxB,EAASxB,EAAO9C,EAAO8D,GACzC,GAAIqC,GAAY7jC,CAGhB,IAAyB,SAArBgiC,EAAQ71B,WAAwBq1B,IAAyC,gCAAtBQ,EAAQrT,WAAqE,2BAAtBqT,EAAQrT,WACpH,OAAO,CAGT,KAAK3uB,IAAQ09B,GACX,GAAIA,EAAM7vB,eAAe7N,IAASwgC,EAAMsD,kBAAoBtD,EAAMsD,iBAAiB9jC,KACjF6jC,EAAarD,EAAMsD,iBAAiB9jC,GAChC+jC,EAAU/B,EAAS6B,IACrB,OAAO,CAIb,QAAO,EAaT,QAASE,GAAU/B,EAAS6B,GAE1B,GAEIG,GAAejiC,EAAgBM,EAAG4hC,EAAoBC,EAFtDC,EAAcnC,EAAQ77B,aAAa,SACnCi+B,EAAcpC,EAAQ77B,aAAa,QAIvC,IAAI09B,EAAWQ,QACb,IAAK,GAAIC,KAAKT,GAAWQ,QACvB,GAAIR,EAAWQ,QAAQx2B,eAAey2B,IAAMC,EAAgBD,IAEtDC,EAAgBD,GAAGtC,GACrB,OAAO,CAOf,IAAImC,GAAeN,EAAWz9B,QAAS,CACrC+9B,EAAcA,EAAY5kC,QAAQ,QAAS,IAAIA,QAAQ,QAAS,IAAI8G,MAAMm+B,GAC1ER,EAAgBG,EAAYhjC,MAC5B,KAAK,GAAI+C,GAAI,EAAO8/B,EAAJ9/B,EAAmBA,IACjC,GAAI2/B,EAAWz9B,QAAQ+9B,EAAYjgC,IACjC,OAAO,EAMb,GAAIkgC,GAAcP,EAAW1F,OAAQ,CAEnCiG,EAAaA,EAAW/9B,MAAM,IAC9B,KAAKtE,IAAK8hC,GAAW1F,OACnB,GAAI0F,EAAW1F,OAAOtwB,eAAe9L,GACnC,IAAK,GAAI0iC,GAAKL,EAAWjjC,OAAQsjC,KAG/B,GAFAP,EAAYE,EAAWK,GAAIp+B,MAAM,KAE7B69B,EAAU,GAAG3kC,QAAQ,MAAO,IAAI6M,gBAAkBrK,IAChD8hC,EAAW1F,OAAOp8B,MAAO,GAAiC,IAAzB8hC,EAAW1F,OAAOp8B,IAAYyF,UAAUM,KAAKmuB,MAAM4N,EAAW1F,OAAOp8B,IAAIwC,SAAS2/B,EAAU,GAAG3kC,QAAQ,MAAO,IAAI6M,gBACrJ,OAAO,EASnB,GAAIy3B,EAAWa,MACX,IAAKriC,IAAKwhC,GAAWa,MACjB,GAAIb,EAAWa,MAAM72B,eAAexL,KAChC4hC,EAAOz8B,UAAUG,IAAIxB,aAAa67B,EAAS3/B,GACtB,gBAAX,IACF4hC,EAAKpL,OAAOgL,EAAWa,MAAMriC,IAAM,IACnC,OAAO,CAM3B,QAAO,EAGT,QAASuhC,GAAc5B,EAASzwB,EAASuxB,GACvC,GAAI/gC,GAAG4iC,CACP,IAAG7B,GAAQA,EAAK8B,YACd,IAAK7iC,IAAK+gC,GAAK8B,YACb,GAAI9B,EAAK8B,YAAY/2B,eAAe9L,GAAI,CAGtC,GAFA4iC,EAAW,UAAN5iC,EAAiBigC,EAAQxT,MAAMqW,YAAc7C,EAAQxT,MAAMsW,SAAW9C,EAAQxT,MAAMzsB,GAErF+gC,EAAK8B,YAAY7iC,YAAcmW,UAAY4qB,EAAK8B,YAAY7iC,GAAGgE,KAAK4+B,GACtE,QAEQ,WAAN5iC,EAEFwP,EAAQid,MAAOwT,EAAQxT,MAAgB,WAAI,aAAc,YAAcmW,EAC7D3C,EAAQxT,MAAMzsB,KACvBwP,EAAQid,MAAMzsB,GAAK4iC,IAO9B,QAASI,GAA4BC,EAAWvC,GAC9C,GAAIwC,KACJ,KAAK,GAAIhB,KAAQxB,GACXA,EAAW50B,eAAeo2B,IAAqC,IAA5BA,EAAK7hC,QAAQ4iC,IAClDC,EAAiBnkC,KAAKmjC,EAG1B,OAAOgB,GAGT,QAASC,GAAgBC,EAAeC,EAAgB5yB,EAAYrG,GAClE,GACIk5B,GADA5gC,EAAS6gC,EAAsB9yB,EAGnC,OAAI/N,KACE2gC,GAAqC,QAAlBD,GAAuC,OAAZh5B,KAChDk5B,EAAoB5gC,EAAO2gC,GACO,gBAAxB,IACDC,GAKN,EAGT,QAASE,GAAiBvD,EAASwD,GACjC,GAIIL,GAAeM,EAAUC,EAJzBC,EAAoBn+B,UAAUM,KAAK/G,OAAOsgC,EAAaoB,gBAAkBjjB,QACzEomB,EAAoBp+B,UAAUM,KAAK/G,OAAO4kC,GAAkBjO,MAAOlwB,UAAUM,KAAK/G,OAAOykC,OAAwBhmB,SAAS5d,MAC1H6gC,KACAoD,EAAoBr+B,UAAUG,IAAIm+B,cAAc9D,EAGpD,KAAKmD,IAAiBS,GACpB,GAAI,MAAQ7/B,KAAKo/B,GAAgB,CAE/BO,EAAqBX,EAA4BI,EAAcpiC,MAAM,EAAE,IAAK8iC,EAC5E,KAAK,GAAI3hC,GAAI,EAAG6hC,EAAOL,EAAmBvkC,OAAY4kC,EAAJ7hC,EAAUA,IAE1DuhC,EAAWP,EAAgBQ,EAAmBxhC,GAAI2hC,EAAcH,EAAmBxhC,IAAK0hC,EAAgBT,GAAgBnD,EAAQ71B,UAC5Hs5B,KAAa,IACfhD,EAAWiD,EAAmBxhC,IAAMuhC,OAIxCA,GAAWP,EAAgBC,EAAeU,EAAcV,GAAgBS,EAAgBT,GAAgBnD,EAAQ71B,UAC5Gs5B,KAAa,IACfhD,EAAW0C,GAAiBM,EAKlC,OAAOhD,GAIT,QAASkB,GAAkB3B,EAASzwB,EAASuxB,EAAMtB,GACjD,GAWIwC,GAEAgC,EACAC,EACAd,EACA1gC,EAhBAg+B,KACAyD,EAAsBpD,EAAKqD,UAC3BxL,EAAsBmI,EAAKsD,UAC3BC,EAAsBvD,EAAKwD,UAC3BC,EAAsBzD,EAAK0D,eAC3BC,EAAsBpF,EAAaj7B,QACnClC,EAAsB,EACtBkC,KACA+3B,KACAuI,KACAC,IAmBJ,IAXIJ,IACF9D,EAAaj7B,UAAUM,KAAK/G,OAAOwlC,GAAe/mB,SAIpDijB,EAAaj7B,UAAUM,KAAK/G,OAAO0hC,GAAY/K,MAAM6N,EAAiBvD,EAAUc,EAAK8D,mBAAmBhlC,MAEpGskC,GACF9/B,EAAQtF,KAAKolC,GAGXvL,EACF,IAAKwK,IAAiBxK,GACpBl2B,EAASoiC,EAAgBlM,EAASwK,IAC7B1gC,IAGLwhC,EAAWxhC,EAAO+C,UAAUG,IAAIxB,aAAa67B,EAASmD,IAC7B,gBAAf,IACR/+B,EAAQtF,KAAKmlC,GAKnB,IAAII,EACF,IAAKlB,IAAiBkB,GACpB5hC,EAASqiC,EAAgBT,EAASlB,IAC7B1gC,IAILsiC,SAAWtiC,EAAO+C,UAAUG,IAAIxB,aAAa67B,EAASmD,IAC7B,gBAAf,WACRhH,EAAOr9B,KAAKimC,UAMlB,IAA+B,gBAArB,IAAoD,QAAnBN,GAA4BzE,EAAQ77B,aAAa,SAC1F,GAAIk7B,EAAa2F,kBAAmB,CAOlC,IANAL,EAAa3E,EAAQ77B,aAAa,SAC9BwgC,IACFvgC,EAAUA,EAAQ/C,OAAOsjC,EAAWtgC,MAAMm+B,KAG5CR,EAAgB59B,EAAQjF,OACf6iC,EAAF9/B,EAAiBA,IACtB8hC,EAAe5/B,EAAQlC,GAClBm9B,EAAa2F,kBAAkBhB,IAClCU,EAAW5lC,KAAKklC,EAIhBU,GAAWvlC,SACbshC,EAAW,SAAWj7B,UAAUM,KAAKmuB,MAAMyQ,GAAY/P,SAAS1vB,KAAK,UAIvEw7B,GAAW,SAAWT,EAAQ77B,aAAa,aAExC,CAcL,IAZKq7B,IACHiF,EAAe,+BAAiC,EAChDA,EAAwC,wBAAI,EAC5CA,EAAe,6BAA+B,GAIhDE,EAAa3E,EAAQ77B,aAAa,SAC9BwgC,IACFvgC,EAAUA,EAAQ/C,OAAOsjC,EAAWtgC,MAAMm+B,KAE5CR,EAAgB59B,EAAQjF,OACf6iC,EAAF9/B,EAAiBA,IACtB8hC,EAAe5/B,EAAQlC,GACnBuiC,EAAeT,IACjBU,EAAW5lC,KAAKklC,EAIhBU,GAAWvlC,SACbshC,EAAW,SAAWj7B,UAAUM,KAAKmuB,MAAMyQ,GAAY/P,SAAS1vB,KAAK,MAKrEw7B,EAAW,UAAYjB,IACzBiB,EAAW,SAAWA,EAAW,SAASljC,QAAQ,4BAA6B,IAC3E,SAAWwG,KAAK08B,EAAW,iBACtBA,GAAW,UAIlBtE,EAAOh9B,SACTshC,EAAkB,MAAIj7B,UAAUM,KAAKmuB,MAAMkI,GAAQxH,SAAS1vB,KAAK,KAInE,KAAKk+B,IAAiB1C,GAIpB,IACElxB,EAAQhL,aAAa4+B,EAAe1C,EAAW0C,IAC/C,MAAM/kC,IAKNqiC,EAAWwE,MACoB,mBAAtBxE,GAAgB,OACzBlxB,EAAQhL,aAAa,QAASk8B,EAAWyE,OAET,mBAAvBzE,GAAiB,QAC1BlxB,EAAQhL,aAAa,SAAUk8B,EAAW0E,SAKhD,QAASC,GAAYpF,GACnB,GAAI7wB,GAAc6wB,EAAQ7wB,WAC1B,KAAIA,GAAeA,EAAY3C,WAAahH,UAAUa,UAG/C,CAEL,GAAIkL,GAAOyuB,EAAQzuB,KAAKhU,QAAQiI,UAAUU,wBAAyB,GACnE,OAAO85B,GAAQnwB,cAAcwC,eAAed,GAJ5CpC,EAAYoC,KAAOyuB,EAAQzuB,KAAKhU,QAAQiI,UAAUU,wBAAyB,IAAMiJ,EAAYoC,KAAKhU,QAAQiI,UAAUU,wBAAyB,IAQjJ,QAASm/B,GAAerF,GACtB,MAAIX,GAAaiG,SACRtF,EAAQnwB,cAAc01B,cAAcvF,EAAQ3H,WADrD,OA1lBF,GAAIiI,IACEkF,EAAK3E,EACL4E,EAAKL,EACLM,EAAKL,GAGP7E,EAAsB,OACtBgC,EAAsB,MACtBlD,GAAwB2B,QAAU78B,YAClCi7B,KACAkB,GAAuB,UAAW,aAAc,SAAU,MAAO,MAAO,KAAM,WACvD,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,OACvD,WAAY,WAAY,KAAM,IAAK,MAAM,QAAS,MAolBzE+C,GACF9L,IAAK,WACH,GAAImO,GAAU,eACd,OAAO,UAASvC,GACd,MAAKA,IAAmBA,EAAena,MAAM0c,GAGtCvC,EAAe7lC,QAAQooC,EAAS,SAAS1c,GAC9C,MAAOA,GAAM7e,gBAHN,SAQb66B,IAAK,WACH,GAAIU,GAAU,oBACd,OAAO,UAASvC,GACd,MAAKA,IAAmBA,EAAena,MAAM0c,GAGtCvC,EAAe7lC,QAAQooC,EAAS,SAAS1c,GAC9C,MAAOA,GAAM7e,gBAHN,SAQbw7B,KAAM,WACJ,GAAID,GAAU,mCACd,OAAO,UAASvC,GACd,MAAKA,IAAmBA,EAAena,MAAM0c,GAGtCvC,EAAe7lC,QAAQooC,EAAS,SAAS1c,GAC9C,MAAOA,GAAM7e,gBAHN,SAQby7B,IAAK,WACH,GAAIF,GAAU,iBACd,OAAO,UAASvC,GACd,MAAKA,GAGEA,EAAe7lC,QAAQooC,EAAS,IAF9B,OAObG,QAAS,WACP,GAAIH,GAAU,KACd,OAAO,UAASvC,GAEd,MADAA,IAAkBA,GAAkB,IAAI7lC,QAAQooC,EAAS,IAClDvC,GAAkB,SAK7B2C,UAAW,WACT,GAAIJ,GAAU,4BACd,OAAO,UAASvC,GAEd,MADAA,IAAkBA,GAAkB,IAAI7lC,QAAQooC,EAAS,UAClDvC,GAAkB,SAI7B4C,IAAK,WACH,MAAO,UAAS5C,GACd,MAAOA,QAMT0B,GACFmB,WAAY,WACV,GAAIC,IACFC,KAAU,oBACVC,MAAU,qBACVC,OAAU,sBAEZ,OAAO,UAASjD,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBh5B,oBAMxCy6B,GACFyB,UAAW,WACT,GAAIJ,IACFC,KAAQ,qBACRC,MAAQ,sBAEV,OAAO,UAAShD,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBh5B,mBAI1C67B,WAAY,WACV,GAAIC,IACFC,KAAU,0BACVC,MAAU,2BACVC,OAAU,4BACVE,QAAU,6BAEZ,OAAO,UAASnD,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBh5B,mBAI1Co8B,SAAU,WACR,GAAIN,IACFC,KAAQ,qBACRC,MAAQ,sBACRK,KAAQ,qBACR9I,IAAQ,qBAEV,OAAO,UAASyF,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBh5B,mBAI1Cs8B,UAAW,WACT,GAAIR,IACFV,EAAK,6BACLmB,EAAK,0BACLlB,EAAK,2BACLmB,EAAK,0BACLC,EAAK,4BACLC,EAAK,6BACLC,EAAK,6BACLC,IAAK,4BACLC,IAAK,2BAEP,OAAO,UAAS7D,GACd,MAAO8C,GAAQhpC,OAAOkmC,GAAgBpG,OAAO,SAM/CuF,GACF2E,mBAAoB,WAClB,GAAIC,GAEAC,GAAmB,MAAO,QAAS,UAAW,KAAM,SAAU,WAC3C,QAAS,QAAS,SAAU,SAAU,QAAS,QAC/C,MAAO,QAAS,SAAU,SAAS,WAAY,SAEtE,OAAO,UAAS/6B,GAId,GADA86B,GAAO96B,EAAGxM,WAAawM,EAAGuxB,aAAargC,QAAQ,MAAO,IAClD4pC,GAAOA,EAAIhoC,OAAS,EACtB,OAAO,CAIT,KAAK,GAAI+C,GAAIklC,EAAgBjoC,OAAQ+C,KACnC,GAAImK,EAAGskB,cAAcyW,EAAgBllC,IACnC,OAAO,CAKX,OAAImK,GAAGyuB,aAAezuB,EAAGyuB,YAAc,GAAKzuB,EAAGg7B,cAAgBh7B,EAAGg7B,aAAe,GACxE,GAGF,OAKTzG,GACFS,OAAQ,SAAUtW,GAChBvlB,UAAUG,IAAI07B,OAAOtW,IAGvBjmB,OAAQ,SAAUimB,GAChBA,EAAQ/oB,WAAW4Z,YAAYmP,IAInC,OAAOkU,GAAMC,EAAuBC,IAStC35B,UAAUG,IAAI2hC,qBAAuB,SAASxlC,GAK5C,IAJA,GAAIy3B,GACAhtB,EAAoB/G,UAAUM,KAAKmuB,MAAMnyB,EAAKyK,YAAY3M,MAC1D24B,EAAoBhsB,EAAWpN,OAC/B+C,EAAoB,EACfq2B,EAAFr2B,EAAoBA,IACzBq3B,EAAYhtB,EAAWrK,GACnBq3B,EAAU/sB,WAAahH,UAAUa,WAAgC,KAAnBkzB,EAAUhoB,MAC1DgoB,EAAUv3B,WAAW4Z,YAAY2d,IA6BvC/zB,UAAUG,IAAI4hC,cAAgB,SAASxc,EAASyc,GAG9C,IAFA,GACIr2B,GADAs2B,EAAa1c,EAAQlb,cAAc1N,cAAcqlC,GAE9Cr2B,EAAa4Z,EAAQ5Z,YAC1Bs2B,EAAWn7B,YAAY6E,EAQzB,OANA3L,WAAUG,IAAIw0B,gBAAgB,QAAS,cAAcJ,KAAKhP,GAASuP,GAAGmN,GAElE1c,EAAQ/oB,YACV+oB,EAAQ/oB,WAAWk4B,aAAauN,EAAY1c,GAGvC0c,GAeTjiC,UAAUG,IAAI+hC,sBAAwB,SAAS5lC,GAC7C,GAAKA,EAAKE,WAAV,CAIA,IAAKF,EAAKqP,WAER,WADArP,GAAKE,WAAW4Z,YAAY9Z,EAK9B,KADA,GAAI+P,GAAW/P,EAAK+N,cAAciC,yBAC3BhQ,EAAKqP,YACVU,EAASvF,YAAYxK,EAAKqP,WAE5BrP,GAAKE,WAAWk4B,aAAaroB,EAAU/P,GACvCA,EAAO+P,EAAW,OAwBpB,SAAUlM,GACR,QAASgiC,GAAgB7lC,GACvB,MAA8C,UAAvC6D,EAAIm0B,SAAS,WAAWC,KAAKj4B,GAGtC,QAAS+8B,GAAa/8B,GACpB,MAAyB,OAAlBA,EAAKqI,SAGd,QAASy9B,GAAiB7c,GACxB,GAAIyO,GAAYzO,EAAQlb,cAAc1N,cAAc,KACpD4oB,GAAQze,YAAYktB,GAGtB,QAASqO,GAAY3O,EAAM4O,GACzB,GAAK5O,EAAK/uB,SAAS8e,MAAM,kBAAzB,CAIA,GAGI9X,GACAyM,EACAmqB,EACAC,EACAC,EACA9O,EARA7wB,EAAkB4wB,EAAKrpB,cACvBgC,EAAkBvJ,EAAIwJ,yBACtB9D,EAAkBxI,UAAUG,IAAI01B,QAAQnC,GAAMsC,MAAMG,kBAAkB,GAQ1E,IAAImM,EAMF,KAJI95B,GAAoB25B,EAAgB35B,IAAqB6wB,EAAa7wB,IACxE45B,EAAiB/1B,GAGZsnB,EAAYD,EAAKgP,mBAAqBhP,EAAK/nB,YAAa,CAE7D,IADAyM,EAAYub,EAASvb,UACdzM,EAAagoB,EAAShoB,YAC3B42B,EAAwB52B,IAAeyM,EAEvCoqB,EAAwBD,IAAgBJ,EAAgBx2B,KAAgB0tB,EAAa1tB,GACrFU,EAASvF,YAAY6E,GACjB62B,GACFJ,EAAiB/1B,EAIrBsnB,GAASn3B,WAAW4Z,YAAYud,OAGlC,MAAOA,EAAYD,EAAKgP,mBAAqBhP,EAAK/nB,YAAa,CAC7D,GAAIgoB,EAASxI,eAAiBwI,EAASxI,cAAc,4DACnD,KAAOxf,EAAagoB,EAAShoB,YAC3BU,EAASvF,YAAY6E,OAElB,CAEL,IADA82B,EAAY3/B,EAAInG,cAAc,KACvBgP,EAAagoB,EAAShoB,YAC3B82B,EAAU37B,YAAY6E,EAExBU,GAASvF,YAAY27B,GAEvB9O,EAASn3B,WAAW4Z,YAAYud,GAIpCD,EAAKl3B,WAAWk4B,aAAaroB,EAAUqnB,IAGzCvzB,EAAIkiC,YAAcA,GACjBriC,UAAUG,KAuBb,SAAUH,GACR,GAGI8C,GAAsB3J,SAItBwpC,GACE,SAAU,MAAO,SAAU,eAAgB,SAC3C,eAAgB,gBAAiB,iBAAkB,aAKrDC,GACE,OAAQ,QAAS,aAAc,kBAC/B,QAAS,UAAW,SACpB,eAAgB,cAChB,iBAAkB,kBAKpBC,GACE,WACA,QAAS,OAAQ,QAGvB7iC,GAAUG,IAAI2iC,QAAUta,KAAKpiB,QAG3B2N,YAAa,SAASgvB,EAAej/B,GACnChM,KAAKk3B,SAAW+T,GAAiB/iC,EAAUW,eAC3C7I,KAAKgM,OAAW9D,EAAUM,KAAK/G,WAAW22B,MAAMpsB,GAAQ1J,MACxDtC,KAAKkrC,aAAiBlrC,KAAKmrC,iBAG7BC,WAAY,SAAS3d,GACK,gBAAd,KACRA,EAAUziB,EAAI0jB,eAAejB,IAG/BA,EAAQze,YAAYhP,KAAKkrC,eAG3BG,UAAW,WACT,MAAOrrC,MAAKkrC,cAGd14B,UAAW,WACTxS,KAAKsrC,eAGPh5B,YAAa,WACXtS,KAAKsrC,eAGPC,QAAS,WACP,GAAIC,GAASxrC,KAAKqrC,WAClBG,GAAO9mC,WAAW4Z,YAAYktB,IAGhCF,YAAa,WACX,KAAM,IAAIlkC,OAAM,uDAsBlB+jC,cAAe,WACb,GAAIM,GAASzrC,KACTwrC,EAASxgC,EAAInG,cAAc,SA6B/B,OA5BA2mC,GAAOnc,UAAY,oBACnBnnB,EAAUG,IAAI4+B,eACZyE,SAAsB,aACtBC,kBAAsB,OACtBC,YAAsB,EACtBhE,MAAsB,EACtBC,OAAsB,EACtBgE,YAAsB,EACtBC,aAAsB,IACrBpU,GAAG8T,GAGFtjC,EAAU4pB,QAAQ8B,kDACpB4X,EAAO7D,IAAM,8BAGf6D,EAAOO,OAAS,WACdP,EAAOQ,mBAAqBR,EAAOO,OAAS,KAC5CN,EAAKQ,cAAcT,IAGrBA,EAAOQ,mBAAqB,WACtB,kBAAkBvlC,KAAK+kC,EAAOlqC,cAChCkqC,EAAOQ,mBAAqBR,EAAOO,OAAS,KAC5CN,EAAKQ,cAAcT,KAIhBA,GAMTS,cAAe,SAAST,GAEtB,GAAKtjC,EAAUG,IAAIpD,SAAS+F,EAAIoK,gBAAiBo2B,GAAjD,CAIA,GAAIC,GAAiBzrC,KACjBksC,EAAiBV,EAAO14B,cACxBq5B,EAAiBX,EAAO14B,cAAczR,SACtC+qC,EAAiBphC,EAAIqhC,cAAgBrhC,EAAIohC,SAAW,QACpDE,EAAiBtsC,KAAKusC,UACpBH,QAAcA,EACdI,YAAcxsC,KAAKgM,OAAOwgC,aAkBhC,IAdAL,EAAeM,KAAK,YAAa,WACjCN,EAAeO,MAAMJ,GACrBH,EAAeQ,QAEf3sC,KAAKwS,UAAY,WAAa,MAAOg5B,GAAO14B,eAC5C9S,KAAKsS,YAAc,WAAa,MAAOk5B,GAAO14B,cAAczR,UAK5D6qC,EAAaU,QAAU,SAAS3/B,EAAc4/B,EAAUC,GACtD,KAAM,IAAI1lC,OAAM,sBAAwB6F,EAAc4/B,EAAUC,KAG7D5kC,EAAU4pB,QAAQ6B,2BAA4B,CAOjD,GAAI/uB,GAAG/C,CACP,KAAK+C,EAAE,EAAG/C,EAAOgpC,EAAiBhpC,OAAUA,EAAF+C,EAAUA,IAClD5E,KAAK+sC,OAAOb,EAAcrB,EAAiBjmC,GAE7C,KAAKA,EAAE,EAAG/C,EAAOipC,EAAkBjpC,OAAUA,EAAF+C,EAAUA,IACnD5E,KAAK+sC,OAAOb,EAAcpB,EAAkBlmC,GAAIsD,EAAUW,eAE5D,KAAKjE,EAAE,EAAG/C,EAAOkpC,EAAmBlpC,OAAUA,EAAF+C,EAAUA,IACpD5E,KAAK+sC,OAAOZ,EAAgBpB,EAAmBnmC,GAIjD5E,MAAK+sC,OAAOZ,EAAgB,SAAU,IAAI,GAG5CnsC,KAAKgtC,QAAS,EAGdC,WAAW,WAAaxB,EAAKvU,SAASuU,IAAU,KAGlDc,SAAU,SAASW,GACjB,GAGIrrC,GAHA2qC,EAAcU,EAAaV,YAC3B7S,EAAc,GACd/0B,EAAc,CAGlB,IADA4nC,EAAsC,gBAAlB,IAA8BA,GAAeA,EAG/D,IADA3qC,EAAS2qC,EAAY3qC,OACZA,EAAF+C,EAAUA,IACf+0B,GAAQ,gCAAkC6S,EAAY5nC,GAAK,IAK/D,OAFAsoC,GAAaV,YAAc7S,EAEpBzxB,EAAUM,KAAK0wB,OACpB,mGAGAE,YAAY8T,IAShBH,OAAQ,SAAStrC,EAAQw0B,EAAU3E,EAAO6b,GACxC,IAAM1rC,EAAOw0B,GAAY3E,EAAS,MAAMxwB,IAExC,IAAMW,EAAOwG,iBAAiBguB,EAAU,WAAa,MAAO3E,KAAa,MAAMxwB,IAC/E,GAAIqsC,EACF,IAAM1rC,EAAO2rC,iBAAiBnX,EAAU,cAAkB,MAAMn1B,IAGlE,IAAKoH,EAAU4pB,QAAQkE,0BAA0BC,GAC/C,IACE,GAAIjqB,IACF1J,IAAK,WAAa,MAAOgvB,IAEvB6b,KACFnhC,EAAOxJ,IAAM,cAEfL,OAAOC,eAAeX,EAAQw0B,EAAUjqB,GACxC,MAAMlL,SAIboH,WACF,SAAUA,GACT,GAAI8C,GAAM3J,QACV6G,GAAUG,IAAIglC,oBAAsB3c,KAAKpiB,QACrCg/B,mBAAoB,WAClB,MAAOttC,MAAKytB,SAGdjb,UAAW,WACT,MAAOxS,MAAKytB,QAAQlb,cAAcE,aAAezS,KAAKytB,QAAQlb,cAAcG,cAG9EJ,YAAa,WACX,MAAOtS,MAAKytB,QAAQlb,eAGtB0J,YAAa,SAASgvB,EAAej/B,EAAQsf,GAC3CtrB,KAAKk3B,SAAW+T,GAAiB/iC,EAAUW,eAC3C7I,KAAKgM,OAAW9D,EAAUM,KAAK/G,WAAW22B,MAAMpsB,GAAQ1J,MAEpDtC,KAAKytB,QADLnC,EACetrB,KAAKutC,aAAajiB,GAElBtrB,KAAKwtC,kBAK1BA,eAAgB,WACd,GAAI/f,GAAUziB,EAAInG,cAAc,MAGhC,OAFA4oB,GAAQ4B,UAAY,oBACpBrvB,KAAKytC,aAAahgB,GACXA,GAIT8f,aAAc,SAASjiB,GAGrB,MAFAA,GAAgB+D,UAAa/D,EAAgB+D,WAA2C,KAA9B/D,EAAgB+D,UAAoB/D,EAAgB+D,UAAY,qBAAuB,oBACjJrvB,KAAKytC,aAAaniB,GAAiB,GAC5BA,GAGTmiB,aAAc,SAAShgB,EAASigB,GAC9B,GAAIjC,GAAOzrC,IAEX,KAAK0tC,EAAe,CAChB,GAAIC,GAAY3tC,KAAKusC,UACrB9e,GAAQrZ,UAAYu5B,EAGxB3tC,KAAKgtC,QAAS,EAEdC,WAAW,WAAaxB,EAAKvU,SAASuU,IAAU,IAGlDc,SAAU,WACR,MAAO,OAIZrkC,WACF,WACC,GAAI0gC,IACFvZ,UAAa,QAEfnnB,WAAUG,IAAI4+B,cAAgB,SAAS9D,GACrC,OACEzL,GAAI,SAASjK,GACX,IAAK,GAAI7oB,KAAKu+B,GACZ1V,EAAQxmB,aAAa2hC,EAAQhkC,IAAMA,EAAGu+B,EAAWv+B,UAM1DsD,UAAUG,IAAIu1B,UAAY,SAASiB,GAClC,OACEnH,GAAI,SAASjK,GACX,GAAIyB,GAAQzB,EAAQyB,KACpB,IAAuB,gBAAb,GAER,YADAA,EAAMyO,SAAW,IAAMkB,EAGzB,KAAK,GAAIj6B,KAAKi6B,GACF,UAANj6B,GACFsqB,EAAMsW,SAAW3G,EAAOj6B,GACxBsqB,EAAMqW,WAAa1G,EAAOj6B,IAE1BsqB,EAAMtqB,GAAKi6B,EAAOj6B,MAoB5B,SAAUyD,GACRA,EAAIulC,oBAAsB,SAASC,EAAQloC,EAAMmoC,GAC/C,GAAIC,GAAa,cACbC,EAAQ,WACN,GAAIC,GAAsBtoC,EAAK8nB,QAAQ+P,YAAc,GAAK73B,EAAK8nB,QAAQsc,aAAe,CAClFpkC,GAAKuoC,sBACPvoC,EAAKwoC,QACLxoC,EAAK8nB,QAAQ3D,QACTmkB,GACFhB,WAAW,WACT,GAAI/lB,GAAMvhB,EAAK8C,UAAUse,cACpBG,GAAII,WAAcJ,EAAIE,YACzBzhB,EAAK8C,UAAUgV,WAAW9X,EAAK8nB,QAAQ5Z,YAAclO,EAAK8nB,UAE3D,IAGP9nB,EAAKyoC,gBAAiB,EACtB/lC,EAAIkzB,YAAY51B,EAAK8nB,QAASsgB,IAEhCvrC,EAAM,WACAmD,EAAK0oC,YACP1oC,EAAKyoC,gBAAiB,EACtBzoC,EAAK2oC,SAASR,GACdzlC,EAAIgzB,SAAS11B,EAAK8nB,QAASsgB,IAInCF,GACGnW,GAAG,kBAAmBl1B,GACtBk1B,GAAG,oBAAqBsW,GACxBtW,GAAG,iBAAkBsW,GACrBtW,GAAG,iBAAkBsW,GACrBtW,GAAG,gBAAiBl1B,GAEvBA,MAED0F,UAAUG,KACZ,SAAUA,GACT,GAAI+M,GAAkB/T,SAAS+T,eAC3B,gBAAiBA,IACnB/M,EAAIkmC,eAAiB,SAAS9gB,EAAS/H,GACrC+H,EAAQ6S,YAAc5a,GAGxBrd,EAAImmC,eAAiB,SAAS/gB,GAC5B,MAAOA,GAAQ6S,cAER,aAAelrB,IACxB/M,EAAIkmC,eAAiB,SAAS9gB,EAAS/H,GACrC+H,EAAQlrB,UAAYmjB,GAGtBrd,EAAImmC,eAAiB,SAAS/gB,GAC5B,MAAOA,GAAQlrB,aAGjB8F,EAAIkmC,eAAiB,SAAS9gB,EAAS/H,GACrC+H,EAAQsN,UAAYrV,GAGtBrd,EAAImmC,eAAiB,SAAS/gB,GAC5B,MAAOA,GAAQsN,aAGlB7yB,UAAUG,KAWbH,UAAUG,IAAIxB,aAAe,SAASrC,EAAMqhC,GAC1C,GAAI4I,IAAyBvmC,UAAU4pB,QAAQqD,+BAC/C0Q,GAAgBA,EAAc/4B,aAC9B,IAAID,GAAWrI,EAAKqI,QACpB,IAAgB,OAAZA,GAAsC,OAAjBg5B,GAA0B39B,UAAUG,IAAIqmC,cAAclqC,MAAU,EAKvF,MAAOA,GAAKmjC,GACP,IAAI8G,GAAyB,aAAejqC,GAAM,CAEvD,GAAIs/B,GAAiBt/B,EAAKs/B,UAAUh3B,cAEhC6hC,EAAkE,IAAjD7K,EAAUhhC,QAAQ,IAAM+iC,EAAiB,IAE9D,OAAO8I,GAAenqC,EAAKqC,aAAag/B,GAAiB,KAEzD,MAAOrhC,GAAKqC,aAAag/B,IAa7B39B,UAAUG,IAAIm+B,cAAgB,SAAShiC,GACrC,GAGImgC,GAHA8J,GAAyBvmC,UAAU4pB,QAAQqD,gCAC3CtoB,EAAWrI,EAAKqI,SAChBs2B,IAGJ,KAAKwB,IAAQngC,GAAK2+B,YACX3+B,EAAK2+B,WAAW50B,gBAAkB/J,EAAK2+B,WAAW50B,eAAeo2B,KAAYngC,EAAK2+B,WAAW50B,gBAAkBpM,OAAOtC,UAAU0O,eAAepN,KAAKqD,EAAK2+B,WAAYwB,KACpKngC,EAAK2+B,WAAWwB,GAAMiK,YACR,OAAZ/hC,GAAiE,OAA5CrI,EAAK2+B,WAAWwB,GAAMt+B,KAAKyG,eAA0B5E,UAAUG,IAAIqmC,cAAclqC,MAAU,EAClH2+B,EAAgB,IAAI3+B,EAAKmjC,IAChBz/B,UAAUM,KAAKmuB,OAAO,UAAW,YAAY1xB,SAAST,EAAK2+B,WAAWwB,GAAMt+B,KAAKyG,gBAAkB2hC,EACxE,IAAhCjqC,EAAK2+B,WAAWwB,GAAMrT,QACxB6R,EAAW3+B,EAAK2+B,WAAWwB,GAAMt+B,MAAQ7B,EAAK2+B,WAAWwB,GAAMrT,OAGjE6R,EAAW3+B,EAAK2+B,WAAWwB,GAAMt+B,MAAQ7B,EAAK2+B,WAAWwB,GAAMrT,MAKvE,OAAO6R,IAOTj7B,UAAUG,IAAIqmC,cAAgB,SAAUlqC,GACtC,IACE,MAAOA,GAAKqqC,WAAarqC,EAAKL,mBAAmB,gBACjD,MAAMrD,GACN,GAAI0D,EAAKqqC,UAAgC,aAApBrqC,EAAKlD,WACxB,OAAO,IAIZ,SAAU4G,GA2BT,QAAS4mC,GAAYlT,EAAM6C,GAGzB,IAAK,GADHsQ,GADEC,KAEKluC,EAAI,EAAGyE,EAAMq2B,EAAK/5B,OAAY0D,EAAJzE,EAASA,IAE1C,GADAiuC,EAAInT,EAAK96B,GAAG6D,iBAAiB85B,GAE3B,IAAI,GAAI75B,GAAImqC,EAAEltC,OAAQ+C,IAAKoqC,EAAIC,QAAQF,EAAEnqC,KAG7C,MAAOoqC,GAGT,QAASE,GAAcngC,GACrBA,EAAGrK,WAAW4Z,YAAYvP,GAG5B,QAAS2C,GAAYy9B,EAAel9B,GAClCk9B,EAAczqC,WAAWoN,aAAaG,EAASk9B,EAAct9B,aAG/D,QAASD,GAASpN,EAAM4qC,GAEtB,IADA,GAAI3hB,GAAUjpB,EAAKqN,YACO,GAAnB4b,EAAQve,UAEb,GADAue,EAAUA,EAAQ5b,aACbu9B,GAAOA,GAAO3hB,EAAQta,QAAQrG,cACjC,MAAO2gB,EAGX,OAAO,MArDT,GAAI5hB,GAAM3D,EAAUG,IAEhBgnC,EAAU,SAASC,GACrBtvC,KAAK+O,GAAKugC,EACVtvC,KAAKuvC,WAAW,EAChBvvC,KAAKwvC,WAAW,EAChBxvC,KAAKyvC,UAAU,EACfzvC,KAAK0vC,SAAS,EACd1vC,KAAK2vC,UAAU,EACf3vC,KAAK4vC,SAAS,EACd5vC,KAAK6vC,QAAQ,EACb7vC,KAAK8vC,kBACL9vC,KAAK+vC,UAAW,GAGdC,EAAsB,SAAUV,EAAMW,GACpCX,GACFtvC,KAAKsvC,KAAOA,EACZtvC,KAAKiwC,MAAQpkC,EAAIyzB,iBAAiBgQ,GAAQ7Q,MAAO,WACxCwR,IACTjwC,KAAKiwC,MAAQA,EACbjwC,KAAKsvC,KAAOtvC,KAAKiwC,MAAMtrC,iBAAiB,UAAU,IAmCtDqrC,GAAoBnwC,WAElBqwC,oBAAqB,SAASZ,EAAMrY,EAAK/zB,EAAGD,EAAGktC,EAAOC,GAKpD,IAAK,GAJDC,MACFC,EAAOptC,GAAK,EAAU0oB,SAASwkB,EAAO,IAAM,EAAI,GAChDG,EAAOttC,GAAK,EAAU2oB,SAASukB,EAAO,IAAM,EAAI,GAEzCK,EAAKttC,EAASotC,GAANE,EAAYA,IAAM,CACX,mBAAXvZ,GAAIuZ,KAAsBvZ,EAAIuZ,MACzC,KAAK,GAAIC,GAAKxtC,EAASstC,GAANE,EAAYA,IAC3BxZ,EAAIuZ,GAAIC,GAAM,GAAIpB,GAAQC,GAC1BrY,EAAIuZ,GAAIC,GAAIlB,UAAaY,GAASvkB,SAASukB,EAAO,IAAM,EACxDlZ,EAAIuZ,GAAIC,GAAIjB,UAAaY,GAASxkB,SAASwkB,EAAO,IAAM,EACxDnZ,EAAIuZ,GAAIC,GAAIhB,SAAWgB,GAAMxtC,EAC7Bg0B,EAAIuZ,GAAIC,GAAIf,QAAUe,GAAMF,EAC5BtZ,EAAIuZ,GAAIC,GAAId,SAAWa,GAAMttC,EAC7B+zB,EAAIuZ,GAAIC,GAAIb,QAAUY,GAAMF,EAC5BrZ,EAAIuZ,GAAIC,GAAIZ,OAASY,GAAMxtC,GAAKutC,GAAMttC,EACtC+zB,EAAIuZ,GAAIC,GAAIX,eAAiBO,EAE7BA,EAAY7uC,KAAKy1B,EAAIuZ,GAAIC,MAK/BC,kBAAmB,SAASpB,GAE1B,GADAA,EAAKS,UAAW,EACZT,EAAKQ,eAAejuC,OAAS,EAC/B,IAAK,GAAIY,GAAI,EAAGkuC,EAAOrB,EAAKQ,eAAejuC,OAAY8uC,EAAJluC,EAAUA,IAC7D6sC,EAAKQ,eAAertC,GAAGstC,UAAW,GAKtCa,YAAa,WACX,GAEEC,GAAMC,EAAKC,EAAOC,EAAM1B,EACxBrsC,EACAktC,EAAOC,EAJLnZ,KACAga,EAAYjxC,KAAKkxC,cAKrB,KAAKL,EAAO,EAAGA,EAAOI,EAAUpvC,OAAQgvC,IAKtC,IAJAC,EAAMG,EAAUJ,GAChBE,EAAQ/wC,KAAKmxC,YAAYL,GACzB7tC,EAAI,EACoB,mBAAbg0B,GAAI4Z,KAAwB5Z,EAAI4Z,OACtCG,EAAO,EAAGA,EAAOD,EAAMlvC,OAAQmvC,IAAQ,CAK1C,IAJA1B,EAAOyB,EAAMC,GAIiB,mBAAhB/Z,GAAI4Z,GAAM5tC,IAAqBA,GAE7CktC,GAAQtkC,EAAIhF,aAAayoC,EAAM,WAC/Bc,EAAQvkC,EAAIhF,aAAayoC,EAAM,WAE3Ba,GAASC,GACXpwC,KAAKkwC,oBAAoBZ,EAAMrY,EAAK4Z,EAAM5tC,EAAGktC,EAAOC,GACpDntC,GAAS,EAAU2oB,SAASukB,EAAO,IAAM,IAEzClZ,EAAI4Z,GAAM5tC,GAAK,GAAIosC,GAAQC,GAC3BrsC,KAKN,MADAjD,MAAKi3B,IAAMA,EACJA,GAGTka,YAAa,SAASL,GACpB,GAAIM,GAAepxC,KAAKiwC,MAAMtrC,iBAAiB,SAC7C0sC,EAAc,EAAiBvC,EAAYsC,EAAc,aACzDE,EAAWR,EAAInsC,iBAAiB,UAChC4sC,EAAcF,EAAYxvC,OAAS,EAAKqG,EAAUM,KAAKmuB,MAAM2a,GAAUza,QAAQwa,GAAeC,CAEhG,OAAOC,IAGTL,aAAc,WACZ,GAAIE,GAAepxC,KAAKiwC,MAAMtrC,iBAAiB,SAC7C6sC,EAAa,EAAiB1C,EAAYsC,EAAc,SACxDK,EAAUzxC,KAAKiwC,MAAMtrC,iBAAiB,MACtCssC,EAAaO,EAAW3vC,OAAS,EAAKqG,EAAUM,KAAKmuB,MAAM8a,GAAS5a,QAAQ2a,GAAcC,CAE5F,OAAOR,IAGTS,YAAa,SAASpC,GAIpB,IAAK,GAHDqC,GAAW3xC,KAAKi3B,IAAIp1B,OACtB+vC,EAAY5xC,KAAKi3B,KAAOj3B,KAAKi3B,IAAI,GAAMj3B,KAAKi3B,IAAI,GAAGp1B,OAAS,EAErDgwC,EAAQ,EAAUF,EAARE,EAAkBA,IACnC,IAAK,GAAIC,GAAQ,EAAUF,EAARE,EAAkBA,IACnC,GAAI9xC,KAAKi3B,IAAI4a,GAAOC,GAAO/iC,KAAOugC,EAChC,OAAQwB,IAAOe,EAAOE,IAAOD,EAInC,QAAO,GAGTE,kBAAmB,SAASxa,GAE1B,MADAx3B,MAAK4wC,cACD5wC,KAAKi3B,IAAIO,EAAIsZ,MAAQ9wC,KAAKi3B,IAAIO,EAAIsZ,KAAKtZ,EAAIua,MAAQ/xC,KAAKi3B,IAAIO,EAAIsZ,KAAKtZ,EAAIua,KAAKhjC,GACzE/O,KAAKi3B,IAAIO,EAAIsZ,KAAKtZ,EAAIua,KAAKhjC,GAE7B,MAGTkjC,YAAa,SAASC,GACpB,GAAI7O,KAMJ,IALArjC,KAAK4wC,cACL5wC,KAAKmyC,UAAYnyC,KAAK0xC,YAAY1xC,KAAKsvC,MACvCtvC,KAAKoyC,QAAUpyC,KAAK0xC,YAAYQ,GAG5BlyC,KAAKmyC,UAAUrB,IAAM9wC,KAAKoyC,QAAQtB,KAAQ9wC,KAAKmyC,UAAUrB,KAAO9wC,KAAKoyC,QAAQtB,KAAO9wC,KAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAAM,CAC9H,GAAIM,GAAWryC,KAAKmyC,SACpBnyC,MAAKmyC,UAAYnyC,KAAKoyC,QACtBpyC,KAAKoyC,QAAUC,EAEjB,GAAIryC,KAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAAK,CACzC,GAAIO,GAAYtyC,KAAKmyC,UAAUJ,GAC/B/xC,MAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAClC/xC,KAAKoyC,QAAQL,IAAMO,EAGrB,GAAsB,MAAlBtyC,KAAKmyC,WAAqC,MAAhBnyC,KAAKoyC,QACjC,IAAK,GAAItB,GAAM9wC,KAAKmyC,UAAUrB,IAAKyB,EAAOvyC,KAAKoyC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACvE,IAAK,GAAIiB,GAAM/xC,KAAKmyC,UAAUJ,IAAKS,EAAOxyC,KAAKoyC,QAAQL,IAAYS,GAAPT,EAAaA,IACvE1O,EAAI7hC,KAAKxB,KAAKi3B,IAAI6Z,GAAKiB,GAAKhjC,GAIlC,OAAOs0B,IAGToP,mBAAoB,SAASC,GAM3B,GALA1yC,KAAK4wC,cACL5wC,KAAKmyC,UAAYnyC,KAAK0xC,YAAY1xC,KAAKsvC,MACvCtvC,KAAKoyC,QAAUpyC,KAAK0xC,YAAYgB,GAG5B1yC,KAAKmyC,UAAUrB,IAAM9wC,KAAKoyC,QAAQtB,KAAQ9wC,KAAKmyC,UAAUrB,KAAO9wC,KAAKoyC,QAAQtB,KAAO9wC,KAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAAM,CAC9H,GAAIM,GAAWryC,KAAKmyC,SACpBnyC,MAAKmyC,UAAYnyC,KAAKoyC,QACtBpyC,KAAKoyC,QAAUC,EAEjB,GAAIryC,KAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAAK,CACzC,GAAIO,GAAYtyC,KAAKmyC,UAAUJ,GAC/B/xC,MAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAClC/xC,KAAKoyC,QAAQL,IAAMO,EAGrB,OACE50B,MAAS1d,KAAKi3B,IAAIj3B,KAAKmyC,UAAUrB,KAAK9wC,KAAKmyC,UAAUJ,KAAKhjC,GAC1D4O,IAAO3d,KAAKi3B,IAAIj3B,KAAKoyC,QAAQtB,KAAK9wC,KAAKoyC,QAAQL,KAAKhjC,KAIxD4jC,YAAa,SAASvD,EAAKwD,EAAIxN,GAI7B,IAAK,GADHkK,GAFEtkC,EAAMhL,KAAKiwC,MAAM19B,cACnBmF,EAAO1M,EAAIwJ,yBAEJ5P,EAAI,EAAOguC,EAAJhuC,EAAQA,IAAK,CAG3B,GAFA0qC,EAAOtkC,EAAInG,cAAcuqC,GAErBhK,EACF,IAAK,GAAIT,KAAQS,GACXA,EAAM72B,eAAeo2B,IACvB2K,EAAKroC,aAAa09B,EAAMS,EAAMT,GAMpC2K,GAAKtgC,YAAY3N,SAAS0T,eAAe,MACzC2C,EAAK1I,YAAYsgC,GAEnB,MAAO53B,IAITm7B,0BAA2B,SAASd,EAAKjB,GAGvC,IAAK,GAFD5tC,GAAIlD,KAAKi3B,IAAI6Z,GACfgC,EAAU,GACHluC,EAAI,EAAkBmtC,EAAJntC,EAASA,IAC9B1B,EAAE0B,GAAGirC,QACPiD,GAGJ,OAAOA,IAGTC,oBAAqB,SAASjC,EAAKkC,GAIjC,IAAK,GAFH1D,GAAM9X,EADJuZ,EAAQ/wC,KAAKmxC,YAAYL,GAGpBE,EAAO,EAAGT,EAAOQ,EAAMlvC,OAAe0uC,EAAPS,EAAaA,IAGnD,GAFA1B,EAAOyB,EAAMC,GACbxZ,EAAMx3B,KAAK0xC,YAAYpC,GACnB9X,KAAQ,GAA6B,mBAAZwb,IAA2Bxb,EAAIsZ,KAAOkC,EACjE,MAAO1D,EAGX,OAAO,OAGT2D,iBAAkB,WAChB,GAAIlC,GAAQ/wC,KAAKiwC,MAAMtrC,iBAAiB,SACxC,OAAKosC,IAAyB,GAAhBA,EAAMlvC,QAIX,GAHPqtC,EAAclvC,KAAKiwC,QACZ,IAOXiD,gBAAiB,SAAS5D,GACxB,GAAIA,EAAKC,UAAW,CAClB,GAAI4D,GAAUvnB,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,YAAc,EAAG,IAChEqkC,EAAQ9D,EAAKvgC,GAAGoE,QAAQrG,aAC1B,IAAIqmC,EAAU,EAAG,CACf,GAAIE,GAAWrzC,KAAK2yC,YAAYS,EAAOD,EAAS,EAChDzhC,GAAY49B,EAAKvgC,GAAIskC,GAEvB/D,EAAKvgC,GAAGukC,gBAAgB,aAI5BC,aAAc,SAAS7tC,EAAO8xB,GAC5B,GAAIt0B,GAAI,KACND,EAAI,IAENu0B,GAAMA,GAAOx3B,KAAKw3B,GAElB,KAAK,GAAIwZ,GAAO,EAAGT,EAAOvwC,KAAKi3B,IAAIO,EAAIsZ,KAAKjvC,OAAe0uC,EAAPS,EAAaA,IAE/D,GADA/tC,EAAIjD,KAAKi3B,IAAIO,EAAIsZ,KAAKE,GAClB/tC,EAAE4sC,SACJ3sC,EAAI2I,EAAIyzB,iBAAiBr8B,EAAE8L,IAAM0vB,MAAO,QAEtC,MAAOv7B,EASb,OAJU,QAANA,GAAcwC,IAChBxC,EAAI2I,EAAIyzB,iBAAiBt/B,KAAKi3B,IAAIO,EAAIsZ,KAAKtZ,EAAIua,KAAKhjC,IAAM0vB,MAAO,QAAW,MAGvEv7B,GAGTswC,YAAa,SAAS1C,EAAKiB,EAAKoB,EAASC,EAAOnwC,GAC9C,GAAIC,GAAIlD,KAAKuzC,cAAa,GAAQzC,IAAOA,EAAKiB,IAAOA,IACnD0B,EAAYzzC,KAAK2yC,YAAYS,EAAOD,EAEtC,IAAIjwC,EAAG,CACL,GAAIwwC,GAAS1zC,KAAK6yC,0BAA0Bd,EAAKjB,EAC7C4C,IAAU,EACZhiC,EAAY1R,KAAKmxC,YAAYjuC,GAAGwwC,GAASD,GAEzCvwC,EAAE4O,aAAa2hC,EAAWvwC,EAAE2Q,gBAEzB,CACL,GAAI28B,GAAKxwC,KAAKiwC,MAAM19B,cAAc1N,cAAc,KAChD2rC,GAAGxhC,YAAYykC,GACf/hC,EAAY7F,EAAIyzB,iBAAiBr8B,EAAE8L,IAAM0vB,MAAO,OAAS+R,KAI7DmD,SAAU,SAAS3W,GAOjB,GANAh9B,KAAKg9B,GAAKA,EACVh9B,KAAK4wC,cACL5wC,KAAKmyC,UAAYnyC,KAAK0xC,YAAY1xC,KAAKsvC,MACvCtvC,KAAKoyC,QAAUpyC,KAAK0xC,YAAY1xC,KAAKg9B,IAGjCh9B,KAAKmyC,UAAUrB,IAAM9wC,KAAKoyC,QAAQtB,KAAQ9wC,KAAKmyC,UAAUrB,KAAO9wC,KAAKoyC,QAAQtB,KAAO9wC,KAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAAM,CAC9H,GAAIM,GAAWryC,KAAKmyC,SACpBnyC,MAAKmyC,UAAYnyC,KAAKoyC,QACtBpyC,KAAKoyC,QAAUC,EAEjB,GAAIryC,KAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAAK,CACzC,GAAIO,GAAYtyC,KAAKmyC,UAAUJ,GAC/B/xC,MAAKmyC,UAAUJ,IAAM/xC,KAAKoyC,QAAQL,IAClC/xC,KAAKoyC,QAAQL,IAAMO,EAGrB,IAAK,GAAIxB,GAAM9wC,KAAKmyC,UAAUrB,IAAKyB,EAAOvyC,KAAKoyC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACvE,IAAK,GAAIiB,GAAM/xC,KAAKmyC,UAAUJ,IAAKS,EAAOxyC,KAAKoyC,QAAQL,IAAYS,GAAPT,EAAaA,IACvE,GAAI/xC,KAAKi3B,IAAI6Z,GAAKiB,GAAKxC,WAAavvC,KAAKi3B,IAAI6Z,GAAKiB,GAAKvC,UACrD,OAAO,CAIb,QAAO,GAGToE,iBAAkB,SAAStE,EAAMuE,GAC/B,GAAIjB,GAAKhnB,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI8kC,GAAO,IAAM,CACrDjB,IAAM,EACRtD,EAAKvgC,GAAG9H,aAAa4sC,EAAMjB,IAE3BtD,EAAKvgC,GAAGukC,gBAAgBO,GACZ,WAARA,IACFvE,EAAKC,WAAY,GAEP,WAARsE,IACFvE,EAAKE,WAAY,GAEnBF,EAAKG,UAAW,EAChBH,EAAKI,SAAU,EACfJ,EAAKK,UAAW,EAChBL,EAAKM,SAAU,EACfN,EAAKO,QAAS,IAIlBiE,mBAAoB,WAClB,GAAIhD,GAAKxB,EAAMuB,EAAMP,EAAMU,EAAMT,EAAMwD,CAGvC,IADA/zC,KAAK4wC,cACD5wC,KAAKi3B,IAAK,CAGZ,IAFA4Z,EAAO,EACPP,EAAOtwC,KAAKi3B,IAAIp1B,OACHyuC,EAAPO,EAAaA,IAAQ,CAKzB,IAJAC,EAAM9wC,KAAKi3B,IAAI4Z,GACfkD,GAAa,EACb/C,EAAO,EACPT,EAAOO,EAAIjvC,OACG0uC,EAAPS,EAAaA,IAElB,GADA1B,EAAOwB,EAAIE,KACLnlC,EAAIhF,aAAayoC,EAAKvgC,GAAI,YAAc6c,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,GAAKugC,EAAKK,YAAa,GAAO,CAC/HoE,GAAa,CACb,OAGJ,GAAIA,EAEF,IADA/C,EAAO,EACOT,EAAPS,EAAaA,IAClBhxC,KAAK4zC,iBAAiB9C,EAAIE,GAAO;CAMvC,GAAIC,GAAYjxC,KAAKkxC,cAGrB,KAFAL,EAAO,EACPP,EAAOW,EAAUpvC,OACJyuC,EAAPO,EAAaA,IACjBC,EAAMG,EAAUJ,GACa,GAAzBC,EAAI7hC,WAAWpN,QAAgB,QAAQ4E,KAAKqqC,EAAIxQ,aAAewQ,EAAIvuC,YACrE2sC,EAAc4B,KAMtBkD,iBAAkB,WAChB,GAAIC,GAAQ,EACVC,EAAQ,EACRC,EAAW,IAGb,IADAn0C,KAAK4wC,cACD5wC,KAAKi3B,IAAK,CAGZgd,EAAQj0C,KAAKi3B,IAAIp1B,MACjB,KAAK,GAAIgvC,GAAO,EAAUoD,EAAPpD,EAAcA,IAC3B7wC,KAAKi3B,IAAI4Z,GAAMhvC,OAASqyC,IAASA,EAAQl0C,KAAKi3B,IAAI4Z,GAAMhvC,OAG9D,KAAK,GAAIivC,GAAM,EAASmD,EAANnD,EAAaA,IAC7B,IAAK,GAAIiB,GAAM,EAASmC,EAANnC,EAAaA,IACzB/xC,KAAKi3B,IAAI6Z,KAAS9wC,KAAKi3B,IAAI6Z,GAAKiB,IAC9BA,EAAM,IACR/xC,KAAKi3B,IAAI6Z,GAAKiB,GAAO,GAAI1C,GAAQrvC,KAAK2yC,YAAY,KAAM,IACxDwB,EAAWn0C,KAAKi3B,IAAI6Z,GAAKiB,EAAI,GACzBoC,GAAYA,EAASplC,IAAMolC,EAASplC,GAAGyB,QACzCkB,EAAY1R,KAAKi3B,IAAI6Z,GAAKiB,EAAI,GAAGhjC,GAAI/O,KAAKi3B,IAAI6Z,GAAKiB,GAAKhjC,OAStEqlC,QAAS,WACP,MAAKp0C,MAAKizC,oBAKD,GAJPjzC,KAAK8zC,qBACL9zC,KAAKg0C,oBACE,IAMXK,QAAS,WACP,GAAIr0C,KAAKo0C,YACPp0C,KAAK4wC,cACL5wC,KAAKw3B,IAAMx3B,KAAK0xC,YAAY1xC,KAAKsvC,MAE7BtvC,KAAKw3B,KAAK,CACZ,GAAI8c,GAAWt0C,KAAKi3B,IAAIj3B,KAAKw3B,IAAIsZ,KAAK9wC,KAAKw3B,IAAIua,KAC7CoB,EAAWtnC,EAAIhF,aAAaytC,EAASvlC,GAAI,WAAc6c,SAAS/f,EAAIhF,aAAaytC,EAASvlC,GAAI,WAAY,IAAM,EAChHqkC,EAAQkB,EAASvlC,GAAGoE,QAAQrG,aAE9B,IAAIwnC,EAAS9E,UAAW,CACtB,GAAI+E,GAAU3oB,SAAS/f,EAAIhF,aAAaytC,EAASvlC,GAAI,WAAY,GACjE,IAAIwlC,EAAU,EACZ,IAAK,GAAI3B,GAAK,EAAGL,EAAOgC,EAAU,EAAShC,GAANK,EAAYA,IAC/C5yC,KAAKwzC,YAAYxzC,KAAKw3B,IAAIsZ,IAAM8B,EAAI5yC,KAAKw3B,IAAIua,IAAKoB,EAASC,EAAOkB,EAGtEA,GAASvlC,GAAGukC,gBAAgB,WAE9BtzC,KAAKkzC,gBAAgBoB,KAM3Blc,MAAO,SAAS4E,GACd,GAAIh9B,KAAKo0C,UACP,GAAIp0C,KAAK2zC,SAAS3W,GAAK,CAIrB,IAAK,GAHDuX,GAAUv0C,KAAKoyC,QAAQtB,IAAM9wC,KAAKmyC,UAAUrB,IAAM,EACpDqC,EAAUnzC,KAAKoyC,QAAQL,IAAM/xC,KAAKmyC,UAAUJ,IAAM,EAE3CjB,EAAM9wC,KAAKmyC,UAAUrB,IAAKyB,EAAOvyC,KAAKoyC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACvE,IAAK,GAAIiB,GAAM/xC,KAAKmyC,UAAUJ,IAAKS,EAAOxyC,KAAKoyC,QAAQL,IAAYS,GAAPT,EAAaA,IAEnEjB,GAAO9wC,KAAKmyC,UAAUrB,KAAOiB,GAAO/xC,KAAKmyC,UAAUJ,KACjDwC,EAAU,GACZv0C,KAAKi3B,IAAI6Z,GAAKiB,GAAKhjC,GAAG9H,aAAa,UAAWstC,GAE5CpB,EAAU,GACZnzC,KAAKi3B,IAAI6Z,GAAKiB,GAAKhjC,GAAG9H,aAAa,UAAWksC,KAI1C,kBAAkB1sC,KAAKzG,KAAKi3B,IAAI6Z,GAAKiB,GAAKhjC,GAAGqF,UAAUtH,iBAC3D9M,KAAKi3B,IAAIj3B,KAAKmyC,UAAUrB,KAAK9wC,KAAKmyC,UAAUJ,KAAKhjC,GAAGqF,WAAa,IAAMpU,KAAKi3B,IAAI6Z,GAAKiB,GAAKhjC,GAAGqF,WAE/F86B,EAAclvC,KAAKi3B,IAAI6Z,GAAKiB,GAAKhjC,IAKvC/O,MAAKo0C,cAED1yC,QAAO2J,SACTA,QAAQC,IAAI,oDAQpBkpC,sBAAuB,SAASlF,GAC9B,GAAImF,GAAUz0C,KAAK0xC,YAAYpC,EAAKvgC,IAClC2lC,EAAYD,EAAQ3D,IAAM,EAC1B6D,GAAU7D,IAAO4D,EAAW3C,IAAO0C,EAAQ1C,IAE7C,IAAI2C,EAAY10C,KAAKi3B,IAAIp1B,OAAQ,CAE/B,GAAIivC,GAAM9wC,KAAKuzC,cAAa,EAAOoB,EACnC,IAAY,OAAR7D,EAAc,CAChB,GAAI4C,GAAS1zC,KAAK6yC,0BAA0B8B,EAAO5C,IAAK4C,EAAO7D,IAC/D,IAAI4C,GAAU,EACZhiC,EAAY1R,KAAKmxC,YAAYL,GAAK4C,GAASpE,EAAKvgC,QAC3C,CACL,GAAI6lC,GAAW50C,KAAK+yC,oBAAoBjC,EAAK4D,EAC5B,QAAbE,EACFljC,EAAYkjC,EAAUtF,EAAKvgC,IAE3B+hC,EAAIh/B,aAAaw9B,EAAKvgC,GAAI+hC,EAAIj9B,YAG9B+X,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,EACvDugC,EAAKvgC,GAAG9H,aAAa,UAAW2kB,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,GAErFugC,EAAKvgC,GAAGukC,gBAAgB,cAShCuB,cAAe,SAASvF,GAClBA,EAAKO,OACHP,EAAKE,UACPxvC,KAAKw0C,sBAAsBlF,GAE3BJ,EAAcI,EAAKvgC,IAGjB6c,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,EACvDugC,EAAKvgC,GAAG9H,aAAa,UAAW2kB,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,GAErFugC,EAAKvgC,GAAGukC,gBAAgB,YAK9BwB,qBAAsB,WACpB,GAAI/D,KAGJ,IAFA/wC,KAAK4wC,cACL5wC,KAAKw3B,IAAMx3B,KAAK0xC,YAAY1xC,KAAKsvC,MAC7BtvC,KAAKw3B,OAAQ,EAEf,IAAK,GADDud,GAAS/0C,KAAKi3B,IAAIj3B,KAAKw3B,IAAIsZ,KACtBE,EAAO,EAAGT,EAAOwE,EAAOlzC,OAAe0uC,EAAPS,EAAaA,IAChD+D,EAAO/D,GAAMnB,QACfkB,EAAMvvC,KAAKuzC,EAAO/D,GAAMjiC,GAI9B,OAAOgiC,IAGTiE,wBAAyB,WACvB,GAAIjE,KAGJ,IAFA/wC,KAAK4wC,cACL5wC,KAAKw3B,IAAMx3B,KAAK0xC,YAAY1xC,KAAKsvC,MAC7BtvC,KAAKw3B,OAAQ,EACf,IAAK,GAAIqZ,GAAO,EAAGP,EAAOtwC,KAAKi3B,IAAIp1B,OAAeyuC,EAAPO,EAAaA,IAClD7wC,KAAKi3B,IAAI4Z,GAAM7wC,KAAKw3B,IAAIua,MAAQ/xC,KAAKi3B,IAAI4Z,GAAM7wC,KAAKw3B,IAAIua,KAAKlC,QAC/DkB,EAAMvvC,KAAKxB,KAAKi3B,IAAI4Z,GAAM7wC,KAAKw3B,IAAIua,KAAKhjC,GAI9C,OAAOgiC,IAITkE,UAAW,WACT,GAAIC,GAASrpC,EAAIyzB,iBAAiBt/B,KAAKsvC,MAAQ7Q,MAAO,MACtD,IAAIyW,EAAQ,CAGV,GAFAl1C,KAAK4wC,cACL5wC,KAAKw3B,IAAMx3B,KAAK0xC,YAAY1xC,KAAKsvC,MAC7BtvC,KAAKw3B,OAAQ,EAEf,IAAK,GADDud,GAAS/0C,KAAKi3B,IAAIj3B,KAAKw3B,IAAIsZ,KACtBE,EAAO,EAAGT,EAAOwE,EAAOlzC,OAAe0uC,EAAPS,EAAaA,IAC/C+D,EAAO/D,GAAMjB,WAChB/vC,KAAK0wC,kBAAkBqE,EAAO/D,IAC9BhxC,KAAK60C,cAAcE,EAAO/D,IAIhC9B,GAAcgG,KAIlBC,cAAe,SAAS7F,GAClBA,EAAKC,UACH3jB,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,EACvDugC,EAAKvgC,GAAG9H,aAAa,UAAW2kB,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,GAErFugC,EAAKvgC,GAAGukC,gBAAgB,WAEjBhE,EAAKO,QACdX,EAAcI,EAAKvgC,KAIvBqmC,aAAc,WAGZ,GAFAp1C,KAAK4wC,cACL5wC,KAAKw3B,IAAMx3B,KAAK0xC,YAAY1xC,KAAKsvC,MAC7BtvC,KAAKw3B,OAAQ,EACf,IAAK,GAAIqZ,GAAO,EAAGP,EAAOtwC,KAAKi3B,IAAIp1B,OAAeyuC,EAAPO,EAAaA,IACjD7wC,KAAKi3B,IAAI4Z,GAAM7wC,KAAKw3B,IAAIua,KAAKhC,WAChC/vC,KAAK0wC,kBAAkB1wC,KAAKi3B,IAAI4Z,GAAM7wC,KAAKw3B,IAAIua,MAC/C/xC,KAAKm1C,cAAcn1C,KAAKi3B,IAAI4Z,GAAM7wC,KAAKw3B,IAAIua,QAOnDvqC,OAAQ,SAAS6tC,GACf,GAAIr1C,KAAKo0C,UAAW,CAClB,OAAQiB,GACN,IAAK,MACHr1C,KAAKi1C,WACP,MACA,KAAK,SACHj1C,KAAKo1C,eAGTp1C,KAAKo0C,YAITkB,OAAQ,SAASC,GACf,GAAIvqC,GAAMhL,KAAKiwC,MAAM19B,aAQrB,IANAvS,KAAK4wC,cACL5wC,KAAKw3B,IAAMx3B,KAAK0xC,YAAY1xC,KAAKsvC,MACpB,SAATiG,GAAoB1pC,EAAIhF,aAAa7G,KAAKsvC,KAAM,aAClDtvC,KAAKw3B,IAAIsZ,IAAM9wC,KAAKw3B,IAAIsZ,IAAMllB,SAAS/f,EAAIhF,aAAa7G,KAAKsvC,KAAM,WAAY,IAAM,GAGnFtvC,KAAKw3B,OAAQ,EAAO,CAItB,IAAK,GAHDud,GAAS/0C,KAAKi3B,IAAIj3B,KAAKw3B,IAAIsZ,KAC7B0E,EAASxqC,EAAInG,cAAc,MAEpBgsC,EAAO,EAAGP,EAAOyE,EAAOlzC,OAAeyuC,EAAPO,EAAaA,IAC/CkE,EAAOlE,GAAMd,WAChB/vC,KAAK0wC,kBAAkBqE,EAAOlE,IAC9B7wC,KAAKy1C,WAAWV,EAAOlE,GAAO2E,EAAQD,GAI1C,QAAQA,GACN,IAAK,QACH7jC,EAAY1R,KAAKuzC,cAAa,GAAOiC,EACvC,MACA,KAAK,QACH,GAAIE,GAAK7pC,EAAIyzB,iBAAiBt/B,KAAKi3B,IAAIj3B,KAAKw3B,IAAIsZ,KAAK9wC,KAAKw3B,IAAIua,KAAKhjC,IAAM0vB,MAAO,MAC5EiX,IACFA,EAAGhxC,WAAWoN,aAAa0jC,EAAQE,MAO7CD,WAAY,SAASnG,EAAMwB,EAAKyE,GAC9B,GAAII,GAAerG,EAAc,WAAK6D,QAAYtnC,EAAIhF,aAAayoC,EAAKvgC,GAAI,YAAc,IACtFugC,GAAKO,OACM,SAAT0F,GAAoBjG,EAAKE,UAC3BF,EAAKvgC,GAAG9H,aAAa,UAAW2kB,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAG,WAAY,IAAM,GAEpF+hC,EAAI9hC,YAAYhP,KAAK2yC,YAAY,KAAM,EAAGgD,IAG/B,SAATJ,GAAoBjG,EAAKE,WAAaF,EAAKM,QAC7CkB,EAAI9hC,YAAYhP,KAAK2yC,YAAY,KAAM,EAAGgD,IACjC1yC,EAAEusC,WACXF,EAAKvgC,GAAG41B,KAAK,UAAW/Y,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,IAKnF/J,IAAK,SAASuwC,GACRv1C,KAAKo0C,aACM,SAATmB,GAA6B,SAATA,IACtBv1C,KAAKs1C,OAAOC,IAED,UAATA,GAA8B,SAATA,IACvBv1C,KAAK41C,UAAUL,KAKrBM,WAAY,SAAUvG,EAAMuB,EAAM0E,GAChC,GAAIO,GACF1C,EAAQ9D,EAAKvgC,GAAGoE,QAAQrG,aAI1B,QAAQyoC,GACN,IAAK,SACHO,GAAUxG,EAAKC,WAAaD,EAAKG,QACnC,MACA,KAAK,QACHqG,GAAUxG,EAAKC,WAAaD,EAAKI,SAAYJ,EAAKC,WAAatsC,EAAE8L,IAAM/O,KAAKsvC,KAIhF,GAAIwG,EAAM,CAER,OAAQP,GACN,IAAK,SACHjG,EAAKvgC,GAAGrK,WAAWoN,aAAa9R,KAAK2yC,YAAYS,EAAO,GAAI9D,EAAKvgC,GACnE,MACA,KAAK,QACH2C,EAAY49B,EAAKvgC,GAAI/O,KAAK2yC,YAAYS,EAAO,IAK7C9D,EAAKE,WACPxvC,KAAK+1C,yBAAyBzG,EAAMuB,EAAK,EAAG0E,OAK9CjG,GAAKvgC,GAAG9H,aAAa,UAAY2kB,SAAS/f,EAAIhF,aAAayoC,EAAKvgC,GAAI,WAAY,IAAM,IAI1F6mC,UAAW,SAASL,GAClB,GAAIzE,GAAKkF,CAQT,IANAh2C,KAAK4wC,cACL5wC,KAAKw3B,IAAMx3B,KAAK0xC,YAAY1xC,KAAKsvC,MACpB,SAATiG,GAAoB1pC,EAAIhF,aAAa7G,KAAKsvC,KAAM,aAClDtvC,KAAKw3B,IAAIua,IAAM/xC,KAAKw3B,IAAIua,IAAMnmB,SAAS/f,EAAIhF,aAAa7G,KAAKsvC,KAAM,WAAY,IAAM,GAGnFtvC,KAAKw3B,OAAQ,EACf,IAAK,GAAIqZ,GAAO,EAAGP,EAAOtwC,KAAKi3B,IAAIp1B,OAAeyuC,EAAPO,EAAaA,IACtDC,EAAM9wC,KAAKi3B,IAAI4Z,GACXC,EAAI9wC,KAAKw3B,IAAIua,OACfiE,EAAUlF,EAAI9wC,KAAKw3B,IAAIua,KAClBiE,EAAQjG,WACX/vC,KAAK0wC,kBAAkBsF,GACvBh2C,KAAK61C,WAAWG,EAASnF,EAAO0E,MAO1CQ,yBAA0B,SAAUzG,EAAMuB,EAAM0E,GAQ9C,IAAK,GAJHvE,GAAMiF,EAENC,EALEC,EAAYvqB,SAAS/f,EAAIhF,aAAa7G,KAAKsvC,KAAM,WAAY,IAAM,EACrE8G,EAAOvqC,EAAIyzB,iBAAiBgQ,EAAKvgC,IAAM0vB,MAAO,OAC9C2U,EAAQ9D,EAAKvgC,GAAGoE,QAAQrG,cAExB9B,EAAMhL,KAAKiwC,MAAM19B,cAGV3N,EAAI,EAAOuxC,EAAJvxC,EAAeA,IAG7B,GAFAosC,EAAOhxC,KAAK6yC,0BAA0B7yC,KAAKw3B,IAAIua,IAAMlB,EAAOjsC,GAC5DwxC,EAAOxkC,EAASwkC,EAAM,MAEpB,GAAIpF,EAAO,EACT,OAAQuE,GACN,IAAK,SACHU,EAAej2C,KAAKmxC,YAAYiF,GAC5BpF,EAAO,GAAKhxC,KAAKi3B,IAAI4Z,EAAOjsC,GAAG5E,KAAKw3B,IAAIua,KAAKhjC,IAAMknC,EAAajF,IAASA,GAAQiF,EAAap0C,OAAS,EACxG6P,EAAYukC,EAAajF,GAAOhxC,KAAK2yC,YAAYS,EAAO,IAEzD6C,EAAajF,GAAMtsC,WAAWoN,aAAa9R,KAAK2yC,YAAYS,EAAO,GAAI6C,EAAajF,GAGxF,MACA,KAAK,QACHt/B,EAAY1R,KAAKmxC,YAAYiF,GAAMpF,GAAOhxC,KAAK2yC,YAAYS,EAAO,QAItEgD,GAAKtkC,aAAa9R,KAAK2yC,YAAYS,EAAO,GAAIgD,EAAKviC,gBAGrDqiC,GAAOlrC,EAAInG,cAAc,MACzBqxC,EAAKlnC,YAAYhP,KAAK2yC,YAAYS,EAAO,IACzCpzC,KAAKiwC,MAAMjhC,YAAYknC,KAM/BrqC,EAAIokC,OACFoG,gBAAiB,SAASC,EAAOC,GAC/B,GAAIC,GAAK,GAAIxG,GAAoBsG,EACjC,OAAOE,GAAGvE,YAAYsE,IAGxBE,SAAU,SAASnH,EAAMiG,GACvB,GAAItyC,GAAI,GAAI+sC,GAAoBV,EAChCrsC,GAAE+B,IAAIuwC,IAGRmB,YAAa,SAASpH,EAAM+F,GAC1B,GAAIpyC,GAAI,GAAI+sC,GAAoBV,EAChCrsC,GAAEuE,OAAO6tC,IAGXsB,kBAAmB,SAASL,EAAOC,GACjC,GAAIC,GAAK,GAAIxG,GAAoBsG,EACjCE,GAAGpe,MAAMme,IAGXK,YAAa,SAAStH,GACpB,GAAIrsC,GAAI,GAAI+sC,GAAoBV,EAChCrsC,GAAEoxC,WAGJ5B,mBAAoB,SAASnD,EAAMiH,GACjC,GAAItzC,GAAI,GAAI+sC,GAAoBV,EAChC,OAAOrsC,GAAEwvC,mBAAmB8D,IAG9BzzC,QAAS,SAASwsC,GAChB,GAAIrsC,GAAI,GAAI+sC,GAAoBV,EAEhC,OADArsC,GAAE2tC,cACK3tC,EAAEyuC,YAAYpC,IAGvBuH,SAAU,SAAS5G,EAAOzY,GACxB,GAAIv0B,GAAI,GAAI+sC,GAAoB,KAAMC,EACtC,OAAOhtC,GAAE+uC,kBAAkBxa,IAG7Bsf,cAAe,SAASxH,GACtB,GAAIrsC,GAAI,GAAI+sC,GAAoBV,EAChC,OAAOrsC,GAAE6xC,wBAGXiC,iBAAkB,SAASzH,GACzB,GAAIrsC,GAAI,GAAI+sC,GAAoBV,EAChC,OAAOrsC,GAAE+xC,2BAGXrB,SAAU,SAAS2C,EAAOC,GACxB,GAAItzC,GAAI,GAAI+sC,GAAoBsG,EAChC,OAAOrzC,GAAE0wC,SAAS4C,MAIrBruC,WAEHA,UAAUG,IAAIo2B,MAAQ,SAASuY,EAAUvY,GACrC,GACIsQ,GADAC,IAGAgI,GAAS9nC,WACT8nC,GAAYA,GAGhB,KAAK,GAAIl2C,GAAI,EAAGyE,EAAMyxC,EAASn1C,OAAY0D,EAAJzE,EAASA,IAE5C,GADAiuC,EAAIiI,EAASl2C,GAAG6D,iBAAiB85B,GAE7B,IAAI,GAAI75B,GAAImqC,EAAEltC,OAAQ+C,IAAKoqC,EAAIC,QAAQF,EAAEnqC,KAGjD,MAAOoqC,IAEV9mC,UAAUG,IAAIozB,wBAA0B,WACvC,GAAIrmB,GAAkB/T,SAAS+T,eAC/B,OAAIA,GAAgBqmB,wBACX,SAAS5gB,EAAW4S,GACzB,MAAO5S,GAAU4gB,wBAAwBhO,IAGpC,SAAU5S,EAAW4S,GAE1B,GAAIwpB,GAAWC,CAYf,IATED,EADyB,IAAvBp8B,EAAU3L,SACA2L,EAEAA,EAAUtI,cAGtB2kC,EADuB,IAArBzpB,EAAQve,SACGue,EAEAA,EAAQlb,cAEnBsI,IAAc4S,EAAU,MAAO,EACnC,IAAI5S,IAAc4S,EAAQlb,cAAgB,MAAO,GACjD,IAAIsI,EAAUtI,gBAAkBkb,EAAU,MAAO,GACjD,IAAIwpB,IAAcC,EAAa,MAAO,EAGtC,IAA2B,IAAvBr8B,EAAU3L,UAA0C2L,EAAU5L,YAAgF,KAAlE/G,UAAUM,KAAKmuB,MAAM9b,EAAU5L,YAAYnM,QAAS2qB,GAClI,MAAO,GAET,IAAyB,IAArBA,EAAQve,UAA0Cue,EAAQxe,YAAgF,KAAlE/G,UAAUM,KAAKmuB,MAAMlJ,EAAQxe,YAAYnM,QAAS+X,GAC5H,MAAO,GAKT,KAHA,GAAIs8B,GAAQt8B,EACRu8B,KACA7lB,EAAW,KACR4lB,GAAQ,CACb,GAAIA,GAAS1pB,EAAU,MAAO,GAC9B2pB,GAAQ51C,KAAM21C,GACdA,EAAQA,EAAMzyC,WAIhB,IAFAyyC,EAAQ1pB,EACR8D,EAAW,KACJ4lB,GAAQ,CACb,GAAIA,GAASt8B,EAAY,MAAO,GAChC,IAAIw8B,GAAiBnvC,UAAUM,KAAKmuB,MAAMygB,GAASt0C,QAASq0C,EAC5D,IAAuB,KAAnBE,EAAuB,CAC1B,GAAIC,GAA2BF,EAASC,GACpCE,EAAarvC,UAAUM,KAAKmuB,MAAM2gB,EAAyBroC,YAAYnM,QAASs0C,EAAQC,EAAiB,IACzGG,EAActvC,UAAUM,KAAKmuB,MAAM2gB,EAAyBroC,YAAYnM,QAASyuB,EACrF,OAAIgmB,GAAaC,EACJ,EAGJ,EAGVjmB,EAAW4lB,EACXA,EAAQA,EAAMzyC,WAEhB,MAAO,OAUbwD,UAAUG,IAAI07B,OAAS,SAASv/B,GAC9B,GAAIizC,KACJ,IAAIjzC,EAAKE,WAAY,CACnB,KAAOF,EAAK8b,WACVm3B,EAASxI,QAAQzqC,EAAK8b,WACtBpY,UAAUG,IAAIq0B,OAAOl4B,EAAK8b,WAAWqc,MAAMn4B,EAE7CA,GAAKE,WAAW4Z,YAAY9Z,GAE9B,MAAOizC,IAUTvvC,UAAUG,IAAIqvC,cAAgB,SAAS5Z,GACrC,GAAInE,EAQJ,OAPImE,GAAM6Z,gBACJzvC,UAAUM,KAAKmuB,MAAMmH,EAAM6Z,cAAcvZ,OAAOn5B,SAAS,aAC3D00B,EAAOmE,EAAM6Z,cAAcC,QAAQ,aAC1B1vC,UAAUM,KAAKmuB,MAAMmH,EAAM6Z,cAAcvZ,OAAOn5B,SAAS,gBAClE00B,EAAOzxB,UAAUM,KAAK0wB,OAAO4E,EAAM6Z,cAAcC,QAAQ,eAAepe,YAAW,GAAM,KAGtFG,GAITzxB,UAAUG,IAAIwvC,qBAAuB,SAAUC,EAAU90C,GACvD,GAAI+0C,GAAcD,EAASrvC,UAAUuZ,cACjChX,EAAM8sC,EAASrqB,QAAQlb,cACvBylC,EAAahtC,EAAInG,cAAc,OAC/BozC,EAAYH,EAASI,cAEzBltC,GAAIC,KAAK+D,YAAYgpC,GAErBA,EAAW9oB,MAAM0Y,MAAQ,MACzBoQ,EAAW9oB,MAAM2Y,OAAS,MAC1BmQ,EAAW9oB,MAAM+Q,SAAW,SAC5B+X,EAAW9oB,MAAM9c,SAAW,WAC5B4lC,EAAW9oB,MAAMipB,IAAMF,EAAUG,EAAI,KACrCJ,EAAW9oB,MAAM2Z,KAAOoP,EAAUI,EAAI,KAEtCL,EAAW/wC,aAAa,kBAAmB,QAC3C+wC,EAAWluB,QAEXmjB,WAAW,WACT,GAAItT,EAEJme,GAASrvC,UAAU6vC,YAAYP,GAC/Bpe,EAAOqe,EAAW5jC,UACdulB,GAAQ,aAAelzB,KAAKkzB,EAAK75B,UACnC65B,GAAO,GAET32B,EAAE22B,GACFqe,EAAWtzC,WAAW4Z,YAAY05B,IACjC,IAEJ9vC,UAAUG,IAAIkwC,sBAAwB,SAAS/zC,GAE9C,IAAK,GADDkd,GAAYxZ,UAAUG,IAAI83B,aAAa37B,GAClCuM,EAAI2Q,EAAU7f,OAAQkP,KAC7B2Q,EAAU3Q,GAAGgqB,UAAYrZ,EAAU3Q,GAAGgqB,UAAU96B,QAAQiI,UAAUU,wBAAyB,KAS/FV,UAAUI,OAAOkwC,gBAAkB,WAEjC,GAAIC,GAAe,SAAUC,GAC3B,GAAIC,GAAazwC,UAAUM,KAAK0wB,OAAOwf,GAAU54C,OAC7C84C,EAAaD,EAAW14C,QAAQ,sCAAuC,OAE3E,OAAO,IAAI2Y,QAAO,SAAWggC,EAAa,SAAU,MAGlDC,EAAiC,SAAU3X,EAAO4X,GACpD,GACI1J,GAAKlgB,EADL6pB,EAAW7wC,UAAUM,KAAK/G,OAAOy/B,GAAOhhB,OAAM,EAGlD,KAAKkvB,IAAO2J,GAASpV,KAEnB,GAAIoV,EAASpV,KAAKp1B,eAAe6gC,IAC3B2J,EAASpV,KAAKyL,GAAK9J,YACrB,IAAKpW,IAAS6pB,GAASpV,KAAKyL,GAAK9J,YAC3ByT,EAASpV,KAAKyL,GAAK9J,YAAY/2B,eAAe2gB,IAC5C4pB,EAAa5pB,KACf6pB,EAASpV,KAAKyL,GAAK9J,YAAYpW,GAASupB,EAAaK,EAAa5pB,IAQ9E,OAAO6pB,IAGLC,EAAc,SAASC,EAAStf,GAClC,GAAeuf,EAEf,KAAKD,EACH,MAAO,KAGT,KAAK,GAAIr0C,GAAI,EAAG2yB,EAAM0hB,EAAQp3C,OAAY01B,EAAJ3yB,EAASA,IAI7C,GAHKq0C,EAAQr0C,GAAGu0C,YACdD,EAAaD,EAAQr0C,GAAGpC,KAEtBy2C,EAAQr0C,GAAGu0C,WAAaF,EAAQr0C,GAAGu0C,UAAU1yC,KAAKkzB,GACpD,MAAOsf,GAAQr0C,GAAGpC,GAItB,OAAO02C,GAGT,OAAO,UAASvf,EAAM9qB,GACpB,GAKIuqC,GALAN,GACEO,MAASnxC,UAAUG,IAAIm0B,SAAS,SAASC,KAAK5tB,EAAQsgC,eACtDmK,SAAYpxC,UAAUG,IAAIm0B,SAAS,aAAaC,KAAK5tB,EAAQsgC,gBAE/DjO,EAAQ2X,EAA+BG,EAAYnqC,EAAQqyB,MAAOvH,OAAamf,EAYnF,OATAM,GAAUlxC,UAAUG,IAAIs5B,MAAMhI,GAC5BuH,MAASA,EACToB,SAAW,EACX1Q,QAAW/iB,EAAQsgC,cAAc58B,cACjCypB,gBAAmBntB,EAAQmtB,gBAC3BkG,gBAAmB,EACnBK,aAAgB,QActBr6B,UAAUI,OAAOixC,qBAAuB,WACtC,GAAIC,GAAmB,WACrB,GAAI/rB,GAAUztB,IACditC,YAAW,WACT,GAAI74B,GAAYqZ,EAAQrZ,UAAUtH,eACjB,iBAAbsH,GACa,8BAAbA,KACFqZ,EAAQrZ,UAAY,KAErB,GAGL,OAAO,UAAS0jC,GACd5vC,UAAUG,IAAI6vB,QAAQ4f,EAASrqB,SAAU,MAAO,WAAY+rB,OAYhE,SAAUtxC,GACR,GAAIuxC,GAAgB,KACpBvxC,GAAUI,OAAOm6B,oBAAsB,SAAShV,GAC9C,GAAIrZ,GAAYqZ,EAAQrZ,SACxB,IAAyC,KAArCA,EAAUtR,QAAQ22C,GACpB,MAAOrlC,EAGT,IACI8lB,GACAwf,EACA73C,EACA+C,EAJA+0C,EAAoBlsB,EAAQ9oB,iBAAiB,0BAKjD,KAAKC,EAAE,EAAG/C,EAAO83C,EAAkB93C,OAAUA,EAAF+C,EAAUA,IACnDs1B,EAAcyf,EAAkB/0C,GAAG0jC,MAAQqR,EAAkB/0C,GAAG+iC,IAChE+R,EAAcxxC,EAAUM,KAAK0wB,OAAOgB,GAAKj6B,QAAQ,KAAKq5B,GAAGmgB,GACzDrlC,EAAclM,EAAUM,KAAK0wB,OAAO9kB,GAAWnU,QAAQy5C,GAAapgB,GAAGY,EAEzE,OAAO9lB,KAERlM,WASH,SAAUA,GACR,GAAI6lC,GAAa,yBAEjB7lC,GAAUI,OAAOsxC,OAAS,SAASnsB,GACjCvlB,EAAUG,IAAIgzB,SAAS5N,EAASsgB,GAChC7lC,EAAUG,IAAIkzB,YAAY9N,EAASsgB,EAGnC,KACE,GAAI/iC,GAAMyiB,EAAQlb,aAClBvH,GAAIioB,YAAY,UAAU,EAAO,MACjCjoB,EAAIioB,YAAY,UAAU,EAAO,MACjC,MAAMnyB,OAEToH,WACFA,UAAUI,OAAOuxC,oBAAsB,SAASC,EAAUjM,GAYzD,QAASvhC,KAEP,MADAwtC,GAASt5C,iBAAiB,YAAau5C,GAChCjxB,EAUT,QAASkxB,GAA0Bj5C,GACjC+nB,EAAOpL,MAAQ3c,EACf+nB,EAAOnL,IAAM5c,EACb+nB,EAAOioB,OAAShwC,GAChB+nB,EAAOmnB,MAAQ5nC,EAAIi3B,iBAAiBxW,EAAOpL,OAAS+gB,MAAO,UAEvD3V,EAAOmnB,QACTgK,IACA5xC,EAAIgzB,SAASt6B,EAAQm5C,GACrBJ,EAASt5C,iBAAiB,YAAa25C,GACvCL,EAASt5C,iBAAiB,UAAW45C,GACrCvM,EAAO7V,KAAK,oBAAoBA,KAAK,8BAKzC,QAASiiB,KACP,GAAIH,EAAU,CACZ,GAAIO,GAAgBP,EAASn1C,iBAAiB,IAAMu1C,EACpD,IAAIG,EAAcx4C,OAAS,EACzB,IAAK,GAAI+C,GAAI,EAAGA,EAAIy1C,EAAcx4C,OAAQ+C,IACxCyD,EAAIkzB,YAAY8e,EAAcz1C,GAAIs1C,IAM1C,QAASI,GAAevJ,GACtB,IAAK,GAAInsC,GAAI,EAAGA,EAAImsC,EAAMlvC,OAAQ+C,IAChCyD,EAAIgzB,SAAS0V,EAAMnsC,GAAIs1C,GAI3B,QAASC,GAAiBrc,GACxB,GAEEyc,GAFEC,EAAW,KACblL,EAAOjnC,EAAIi3B,iBAAiBxB,EAAM/8B,QAAU09B,MAAO,UAGjD6Q,IAAQxmB,EAAOmnB,OAASnnB,EAAOpL,QACjC88B,EAAYnyC,EAAIi3B,iBAAiBgQ,GAAQ7Q,MAAO,UAC5C+b,GAAYA,IAAa1xB,EAAOmnB,QAClCgK,IACAM,EAASzxB,EAAOnL,IAChBmL,EAAOnL,IAAM2xB,EACbxmB,EAAOioB,MAAQ1oC,EAAI4nC,MAAMoG,gBAAgBvtB,EAAOpL,MAAO4xB,GACnDxmB,EAAOioB,MAAMlvC,OAAS,GACxBgsC,EAAOiK,SAASrvC,UAAUgyC,WAE5BH,EAAcxxB,EAAOioB,OACjBjoB,EAAOnL,MAAQ48B,GACjB1M,EAAO7V,KAAK,qBAAqBA,KAAK,gCAM9C,QAASoiB,KACPN,EAASn4C,oBAAoB,YAAaw4C,GAC1CL,EAASn4C,oBAAoB,UAAWy4C,GACxCvM,EAAO7V,KAAK,eAAeA,KAAK,wBAChCiV,WAAW,WACTyN,KACA,GAcJ,QAASA,KACPZ,EAASvnC,cAAc/R,iBAAiB,QAASm6C,GAGnD,QAASC,GAAal9B,EAAOC,GAC3BmL,EAAOpL,MAAQA,EACfoL,EAAOnL,IAAMA,EACbmL,EAAOmnB,MAAQ5nC,EAAIi3B,iBAAiBxW,EAAOpL,OAAS+gB,MAAO,UAC3D4b,cAAgBhyC,EAAI4nC,MAAMoG,gBAAgBvtB,EAAOpL,MAAOoL,EAAOnL,KAC/D28B,EAAcD,eACdK,IACA7M,EAAO7V,KAAK,eAAeA,KAAK,wBA7GlC,GAAI3vB,GAAMH,UAAUG,IAClBygB,GACEmnB,MAAO,KACPvyB,MAAO,KACPC,IAAK,KACLozB,MAAO,KACPjoB,OAAQ8xB,GAEVV,EAAkB,4BAOhBH,EAAkB,SAASjc,GAC7B,GAAI/8B,GAASmH,UAAUG,IAAIi3B,iBAAiBxB,EAAM/8B,QAAU09B,MAAO,UAC/D19B,IACFi5C,EAAyBj5C,IAqEzB45C,EAAmB,SAAS7c,GAC9Bgc,EAASvnC,cAAc5Q,oBAAoB,QAASg5C,GAChDtyC,EAAIi3B,iBAAiBxB,EAAM/8B,QAAU09B,MAAO,WAAc3V,EAAOmnB,QACnEgK,IACAnxB,EAAOmnB,MAAQ,KACfnnB,EAAOpL,MAAQ,KACfoL,EAAOnL,IAAM,KACbkwB,EAAO7V,KAAK,iBAAiBA,KAAK,2BAkBtC,OAAO1rB,MAGR,SAAUpE,GACT,GAAI2yC,GAAiB,4EACjBC,EAAiB,2DACjBC,EAAiB,4DACjBC,EAAiB,oCAEjBC,EAAa,SAAUlxC,GACzB,MAAO,IAAI6O,QAAO,YAAc7O,EAAI,kBAAoB,MAG1D7B,GAAUI,OAAO4yC,aAEfC,WAAY,SAASC,EAAWC,GAC9B,GAGIliB,GAAKmiB,EAHLC,EAAaN,EAAWI,GACxBztB,EAASwtB,EAAUzvB,MAAM4vB,GACzBC,EAAQ,EAGZ,IAAI5tB,EAAQ,CACV,IAAK,GAAIhpB,GAAIgpB,EAAO/rB,OAAQ+C,KAC1BgpB,EAAOhpB,GAAKsD,EAAUM,KAAK0wB,OAAOtL,EAAOhpB,GAAGmC,MAAM,KAAK,IAAIjH,MAI7D,IAFAq5B,EAAMvL,EAAOA,EAAO/rB,OAAO,GAEvBg5C,EAAWp0C,KAAK0yB,GAClBmiB,EAAaniB,EAAIxN,MAAMkvB,OAClB,IAAIC,EAAUr0C,KAAK0yB,GACxBmiB,EAAaniB,EAAIxN,MAAMmvB,OAClB,IAAIC,EAAWt0C,KAAK0yB,GACzBmiB,EAAaniB,EAAIxN,MAAMovB,GACvBS,EAAQ,OACH,IAAIR,EAAWv0C,KAAK0yB,GAIzB,MAHAmiB,GAAaniB,EAAIxN,MAAMqvB,GACvBM,EAAWG,QACXH,EAAW95C,KAAK,GACT0G,EAAUM,KAAKmuB,MAAM2kB,GAAYrkB,IAAI,SAAS9zB,EAAGq0B,GACtD,MAAc,GAANA,EAA8B,GAAlB5L,SAASzoB,EAAG,IAAYyoB,SAASzoB,EAAG,IAAKqvB,WAAWrvB,IAI5E,IAAIm4C,EAKF,MAJAA,GAAWG,QACNH,EAAW,IACdA,EAAW95C,KAAK,GAEX0G,EAAUM,KAAKmuB,MAAM2kB,GAAYrkB,IAAI,SAAS9zB,EAAGq0B,GACtD,MAAc,GAANA,EAAW5L,SAASzoB,EAAGq4C,GAAQhpB,WAAWrvB,KAIxD,OAAO,GAGTu4C,aAAc,SAAS1mC,EAAKxK,GAC1B,GAAIA,EAAO,CACT,GAAa,OAATA,EACF,MAAQwK,GAAI,GAAGnS,SAAS,IAAI88B,cAAkB3qB,EAAI,GAAGnS,SAAS,IAAI88B,cAAkB3qB,EAAI,GAAGnS,SAAS,IAAI88B,aACnG,IAAa,QAATn1B,EACT,MAAO,IAAOwK,EAAI,GAAGnS,SAAS,IAAI88B,cAAkB3qB,EAAI,GAAGnS,SAAS,IAAI88B,cAAkB3qB,EAAI,GAAGnS,SAAS,IAAI88B,aACzG,IAAa,OAATn1B,EACT,MAAO,OAASwK,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,GAClD,IAAa,QAATxK,EACT,MAAO,QAAUwK,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,GAClE,IAAa,OAATxK,EACT,MAAQwK,GAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAI7D,MAAIA,GAAI,IAAiB,IAAXA,EAAI,GACT,QAAUA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAEhE,OAASA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,KAI3D2mC,cAAe,SAASP,GACtB,GAAIxtB,GAASwtB,EAAUzvB,MAAMsvB,EAAW,aACxC,OAAIrtB,GACK1lB,EAAUM,KAAK0wB,OAAOtL,EAAOA,EAAO/rB,OAAS,GAAGkF,MAAM,KAAK,IAAIjH,QAEjE,KAIVoI,WAOH,SAAUA,GAGR,QAAS0zC,GAAwBnuB,GAC/B,GAAI0qB,GAAM,CACV,IAAI1qB,EAAQ/oB,WACV,EACEyzC,IAAO1qB,EAAQouB,WAAa,EAC5BpuB,EAAUA,EAAQquB,mBACXruB,EAEX,OAAO0qB,GAIT,QAAS4D,GAAS5qC,EAAUC,GAExB,IADA,GAAI49B,GAAM,EACH59B,IAAeD,GAGlB,GAFA69B,IACA59B,EAAaA,EAAW1M,YACnB0M,EACD,KAAM,IAAIhK,OAAM,gCAExB,OAAO4nC,GAKX,QAASgN,GAAsBtxC,GAC3B,IAAIA,EAAMoT,sBAMV,IAJA,GAAIm+B,GAASvxC,EAAM2O,wBACf6iC,EAAcH,EAASE,EAAQvxC,EAAM4L,gBACrC6lC,EAAYJ,EAASE,EAAQvxC,EAAM6L,eAEhC7L,EAAMoT,uBAEPo+B,EAAcC,GACdzxC,EAAMyS,eAAezS,EAAM4L,gBAC3B4lC,EAAcH,EAASE,EAAQvxC,EAAM4L,kBAGrC5L,EAAM4S,YAAY5S,EAAM6L,cACxB4lC,EAAYJ,EAASE,EAAQvxC,EAAM6L,eA1C7C,GAAIlO,GAAMH,EAAUG,GA+CpBH,GAAUmmB,UAAYqC,KAAKpiB,QAEzB2N,YAAa,SAAS4xB,EAAQuO,EAASC,GAErC36C,OAAOkI,MAAM0C,OAEbtM,KAAK6tC,OAAWA,EAChB7tC,KAAK83C,SAAWjK,EAAOiK,SACvB93C,KAAKgL,IAAWhL,KAAK83C,SAAS9sC,IAC9BhL,KAAKuN,IAAWvN,KAAK83C,SAASvqC,IAC9BvN,KAAKo8C,QAAUA,EACfp8C,KAAKq8C,kBAAoBA,IAAqB,GAQhDr6B,YAAa,WACX,GAAItX,GAAQ1K,KAAKs8C,UAEjB,OADI5xC,IAAOsxC,EAAsBtxC,GAC1BA,GAASA,EAAM0U,cAQxBk5B,YAAa,SAASl2B,GACfA,GAILpiB,KAAKu8C,aAAan6B,IAUpBo6B,UAAW,SAASh4C,GAClB,GAAIkG,GAAQd,MAAM8C,YAAY1M,KAAKgL,IAGnC,OAFAN,GAAMyS,eAAe3Y,GACrBkG,EAAM2S,aAAa7Y,GACZxE,KAAKu8C,aAAa7xC,IAK3B+xC,+BAAgC,SAAUj4C,GACxC,GAAIk4C,GAAmB18C,KAAKgL,IAAInG,cAAc,QAC1C83C,EAAuB38C,KAAKgL,IAAI+J,eAAe7M,EAAUS,iBACzDi0C,EAAqB,WAEnB,GAAIt8B,EAEJtgB,MAAKo8C,QAAQz6C,oBAAoB,UAAWi7C,GAC5C58C,KAAKo8C,QAAQz6C,oBAAoB,UAAWk7C,GAC5C78C,KAAKo8C,QAAQz6C,oBAAoB,aAAci7C,GAC/C58C,KAAKo8C,QAAQz6C,oBAAoB,QAASi7C,GAC1C58C,KAAKo8C,QAAQz6C,oBAAoB,OAAQi7C,GACzC58C,KAAKo8C,QAAQz6C,oBAAoB,QAASm7C,GAC1C98C,KAAKo8C,QAAQz6C,oBAAoB,OAAQm7C,GACzC98C,KAAKo8C,QAAQz6C,oBAAoB,cAAem7C,GAI5CJ,GAAoBA,EAAiBh4C,aACvCg4C,EAAiBtoC,UAAYsoC,EAAiBtoC,UAAUnU,QAAQiI,EAAUU,wBAAyB,IAC/F,SAAWnC,KAAKi2C,EAAiBtoC,YACnCkM,EAAYo8B,EAAiBp8B,UAC7BpY,EAAUG,IAAI07B,OAAO2Y,GACrB18C,KAAK+8C,SAASz8B,IAEdo8B,EAAiBh4C,WAAW4Z,YAAYo+B,KAI3Cr5C,KAAKrD,MACR88C,EAA4B,WACtBJ,GAAoBA,EAAiBh4C,YACvCuoC,WAAW2P,EAAoB,IAGnCC,EAAiB,SAAS/e,GACJ,IAAhBA,EAAMkf,OAA+B,KAAhBlf,EAAMkf,OAAgC,KAAhBlf,EAAMkf,OAAiC,KAAhBlf,EAAMkf,QAAkBlf,EAAMmf,SAAYnf,EAAMof,UACpHN,IAuBR,OAnBAF,GAAiBxtB,MAAM9c,SAAW,WAClCsqC,EAAiBxtB,MAAME,QAAU,QACjCstB,EAAiBxtB,MAAMiuB,SAAW,MAClCT,EAAiBxtB,MAAMkuB,OAAS,QAChCV,EAAiB1tC,YAAY2tC,GAE7Bn4C,EAAKE,WAAWoN,aAAa4qC,EAAkBl4C,EAAKqN,aACpD7R,KAAKw8C,UAAUG,GAGf38C,KAAKo8C,QAAQ57C,iBAAiB,UAAWo8C,GACzC58C,KAAKo8C,QAAQ57C,iBAAiB,UAAWq8C,GACzC78C,KAAKo8C,QAAQ57C,iBAAiB,aAAco8C,GAC5C58C,KAAKo8C,QAAQ57C,iBAAiB,QAASo8C,GACvC58C,KAAKo8C,QAAQ57C,iBAAiB,OAAQo8C,GACtC58C,KAAKo8C,QAAQ57C,iBAAiB,QAASs8C,GACvC98C,KAAKo8C,QAAQ57C,iBAAiB,OAAQs8C,GACtC98C,KAAKo8C,QAAQ57C,iBAAiB,cAAes8C,GAEtCJ,GAWTK,SAAU,SAASv4C,EAAM64C,EAAWnmB,GAClC,GAqBIhQ,GArBAxc,EAAQd,MAAM8C,YAAY1M,KAAKgL,KAC/BsyC,EAAqB,WAGnB,IAAKp2B,EACH,GAAIm2B,EAAW,CAGb,GAAIX,GAAmB18C,KAAKgL,IAAI+J,eAAe7M,EAAUS,gBACzDnE,GAAKE,WAAWoN,aAAa4qC,EAAkBl4C,EAAKqN,aACpD7R,KAAKyd,WAAWi/B,GAChBzP,WAAW,WACLyP,GAAoBA,EAAiBh4C,YACvCg4C,EAAiBh4C,WAAW4Z,YAAYo+B,IAEzC,OAEH18C,MAAKy8C,+BAA+Bj4C,GAW9C,IALAkG,EAAM0S,cAAc5Y,GACpBkG,EAAM4S,YAAY9Y,GAIbnD,SAASk8C,eAAiBl8C,SAASk8C,gBAAkBv9C,KAAK83C,SAASrqB,QAYtEvG,EAAMlnB,KAAKu8C,aAAa7xC,GACxB4yC,IACIpmB,GACFA,EAAShQ,OAfoE,CAC/E,GAAI+wB,GAAYj4C,KAAK83C,SAASI,cAC9Bl4C,MAAK83C,SAASrqB,QAAQ3D,QACtB9pB,KAAK83C,SAAS0F,aAAavF,GAC3BhL,WAAW,WACT/lB,EAAMlnB,KAAKu8C,aAAa7xC,GACxB4yC,IACIpmB,GACFA,EAAShQ,IAEX7jB,KAAKrD,MAAO,KAiBlByd,WAAY,SAASjZ,EAAMi5C,GACzB,GAAI/yC,GAAkBd,MAAM8C,YAAY1M,KAAKgL,KACzC0yC,EAAkBl5C,EAAK0K,WAAahH,EAAUY,aAC9C6b,EAAkB,eAAiBngB,GAAOA,EAAKmgB,YAAiC,QAAlBngB,EAAKqI,SACnEuT,EAAkBs9B,EAAYl5C,EAAK4P,UAAY5P,EAAKyP,KACpDo6B,EAA+B,KAAZjuB,GAAkBA,IAAYlY,EAAUS,gBAC3Dg1C,EAAkBt1C,EAAIm0B,SAAS,WAAWC,KAAKj4B,GAC/C23B,EAAoC,UAAjBwhB,GAA6C,cAAjBA,CAEnD,IAAItP,GAAWqP,GAAa/4B,IAAgB84B,EAE1C,IAAMj5C,EAAK4P,UAAYlM,EAAUS,gBAAmB,MAAM7H,IAExD6jB,EACFja,EAAM8S,mBAAmBhZ,GAEzBkG,EAAM+S,WAAWjZ,GAGfmgB,GAAe0pB,GAAWqP,EAC5BhzC,EAAM6S,SAAS4e,GACNxX,GAAe0pB,IACxB3jC,EAAM0S,cAAc5Y,GACpBkG,EAAM4S,YAAY9Y,IAGpBxE,KAAKu8C,aAAa7xC,IAWpBkzC,gBAAiB,SAASn1B,GACxB,GAAIhgB,GACAiC,CAEJ,OAAI+d,IAAgBzoB,KAAKgL,IAAIvC,WAAyC,YAA5BzI,KAAKgL,IAAIvC,UAAU/H,OAC3DgK,EAAQ1K,KAAKgL,IAAIvC,UAAUiE,cACvBhC,GAASA,EAAM7I,QACV6I,EAAMxE,KAAK,IAItBuC,EAAYzI,KAAK+mB,aAAa/mB,KAAKgL,KAC/BvC,EAAU6e,YAAc7e,EAAU2e,WAC7B3e,EAAU6e,WAEjB5c,EAAQ1K,KAAKs8C,SAASt8C,KAAKgL,KACpBN,EAAQA,EAAM2O,wBAA0BrZ,KAAKgL,IAAIC,QAI5D4yC,cAAe,WACb,GAAInzC,GAAQ1K,KAAKs8C,UACjBN,GAAsBtxC,GACtB1K,KAAKu8C,aAAa7xC,IAGpBozC,oBAAqB,WAKnB,IAAK,GAHDx0B,GAAStpB,KAAK+9C,eACdC,KAEKp5C,EAAI,EAAGq5C,EAAO30B,EAAOznB,OAAYo8C,EAAJr5C,EAAUA,IAC5Co5C,EAASx8C,KAAK8nB,EAAO1kB,GAAGyU,yBAA2BrZ,KAAKgL,IAAIC,KAEhE,OAAO+yC,IAGTE,qBAAsB,SAAS3lC,GAG7B,IAAK,GADW4lC,GADZ70B,EAAStpB,KAAK+9C,eACdt5C,KACKG,EAAI,EAAGq5C,EAAO30B,EAAOznB,OAAYo8C,EAAJr5C,EAAUA,IAC9Cu5C,EAAW70B,EAAO1kB,GAAG+c,UAAU,GAAI,SAASnd,GACxC,MAAO0D,GAAUM,KAAKmuB,MAAMpe,GAAWtT,SAAST,EAAKqI,YAEzDpI,EAAQA,EAAMV,OAAOo6C,EAEvB,OAAO15C,IAGT25C,eAAgB,SAAS5lC,GAIvB,IAAK,GAFW2lC,GADZ70B,EAAStpB,KAAK+9C,eACdt5C,KAEKG,EAAI,EAAGq5C,EAAO30B,EAAOznB,OAAYo8C,EAAJr5C,EAAUA,IAC9Cu5C,EAAW70B,EAAO1kB,GAAG+c,UAAU,GAAI,SAAS8L,GAC1C,MAAOjV,GAAOiV,EAASnE,EAAO1kB,MAEhCH,EAAQA,EAAMV,OAAOo6C,EAEvB,OAAO15C,IAGT45C,mBAAoB,WAIlB,IAAK,GAHDC,GAAct+C,KAAKu+C,oBACnB91C,EAAYzI,KAAK+mB,eAEZniB,EAAI,EAAGq5C,EAAOK,EAAYz8C,OAAYo8C,EAAJr5C,EAAUA,IACnD,GAAI6D,EAAU2Y,aAAak9B,EAAY15C,IACrC,OAAO,CAIX,QAAO,GAKTiZ,eAAgB,WACd,GACI2gC,GAAaC,EAAWH,EAAaI,EADrCh0C,EAAQ1K,KAAKs8C,UAGjB,IAAIt8C,KAAKq8C,kBAAmB,EACrBmC,EAAct2C,EAAUG,IAAIi3B,iBAAiB50B,EAAM4L,gBAAkBmoB,MAAO,IAAMz+B,KAAKq8C,oBAAqB,EAAOr8C,KAAKo8C,WAC3H1xC,EAAMyS,eAAeqhC,IAElBC,EAAYv2C,EAAUG,IAAIi3B,iBAAiB50B,EAAM6L,cAAgBkoB,MAAO,IAAMz+B,KAAKq8C,oBAAqB,EAAOr8C,KAAKo8C,WACvH1xC,EAAM4S,YAAYmhC,GAIpBH,EAAc5zC,EAAMiX,UAAU,GAAI,SAAWnd,GAC3C,MAAO0D,GAAUG,IAAIizB,SAAS92B,EAAMxE,KAAKq8C,oBACxCh5C,KAAKrD,MACR,KAAK,GAAI4E,GAAI05C,EAAYz8C,OAAQ+C,KAC/B,IACE85C,EAAK,GAAIC,aAAY,+BACrBL,EAAY15C,GAAGg6C,cAAcF,GAC7B,MAAOG,KAIbn0C,EAAMmT,iBACN7d,KAAKu8C,aAAa7xC,IAGpBo0C,gBAAiB,SAASt6C,EAAMu6C,GAC9B,GAAIpB,EACJ,KAAKn5C,EAAM,CACT,GAAIiE,GAAYzI,KAAK+mB,cACrBviB,GAAOiE,EAAU2e,WAGnB,GAAI5iB,IAASxE,KAAKo8C,QACd,OAAO,CAGX,IACI5rC,GADAw+B,EAAMxqC,EAAKkM,eAGf,OAAIs+B,KAAQhvC,KAAKo8C,SACN,GAGPpN,GAAwB,IAAjBA,EAAI9/B,UAAmC,IAAjB8/B,EAAI9/B,SAElC8/B,EAAMhvC,KAAK8+C,gBAAgB9P,EAAK+P,GACxB/P,GAAwB,IAAjBA,EAAI9/B,UAAkB,QAAUzI,KAAKuoC,EAAI1O,aAEzD0O,EAAMhvC,KAAK8+C,gBAAgB9P,EAAK+P,GACvBA,GAAe/P,GAAwB,IAAjBA,EAAI9/B,UAGnCyuC,EAAez1C,EAAUG,IAAIm0B,SAAS,WAAWC,KAAKuS,GAEjD9mC,EAAUM,KAAKmuB,OAAO,KAAM,KAAM,QAAQ1xB,SAAS+pC,EAAIniC,WACvD3E,EAAUM,KAAKmuB,OAAO,QAAS,eAAgB,OAAQ,YAAa,UAAU1xB,SAAS04C,KACxF,UAAYl3C,KAAKuoC,EAAI56B,aAErB46B,EAAMhvC,KAAK8+C,gBAAgB9P,EAAK+P,KAE1B/P,GAAOxqC,IAASxE,KAAKo8C,UAC/B5rC,EAAShM,EAAKE,WACV8L,IAAWxQ,KAAKo8C,UAChBpN,EAAMhvC,KAAK8+C,gBAAgBtuC,EAAQuuC,KAIjC/P,IAAQhvC,KAAKo8C,QAAWpN,GAAM,IAGxCgQ,yBAA0B,WAIxB,IAAK,GAFDC,GADAx6C,EAAQzE,KAAK89C,sBACN1G,KAEFxyC,EAAI,EAAGq5C,EAAOx5C,EAAM5C,OAAYo8C,EAAJr5C,EAAUA,IAC7Cq6C,EAASx6C,EAAMG,GAAGiI,UAAmC,OAAtBpI,EAAMG,GAAGiI,SAAqBpI,EAAMG,GAAKsD,EAAUG,IAAIi3B,iBAAiB76B,EAAMG,IAAM65B,MAAO,OAAO,EAAOz+B,KAAKo8C,SACzI6C,GACF7H,EAAQ51C,KAAKy9C,EAGjB,OAAQ7H,GAAc,OAAIA,EAAU,MAGtC8H,kBAAmB,WACjB,GAAIl/C,KAAKukB,cAAe,CACtB,GAAI7Z,GAAQ1K,KAAKs8C,WACb6C,EAAQz0C,EAAM4L,eACdX,EAAMjL,EAAMyM,YACZioC,EAAQx1C,MAAM8C,YAAY1M,KAAKgL,IAInC,OAFAo0C,GAAM5hC,mBAAmB2hC,GACzBC,EAAMriC,SAASoiC,EAAOxpC,GACfypC,IAIXC,uBAAwB,WACtB,GAEIC,IAFI11C,MAAM8C,YAAY1M,KAAKgL,KACvBhL,KAAK+mB,eACF/mB,KAAKk/C,oBAAoBpkC,iBAChCykC,EAASD,EAAKhf,WAElB,OAAO,QAAU75B,KAAK84C,IAGxBC,wBAAyB,WACvB,GAAIt8C,GAAI0G,MAAM8C,YAAY1M,KAAKgL,KAC3BvI,EAAIzC,KAAK+mB,eACTrc,EAAQ1K,KAAKs8C,WACbz9B,EAAYnU,EAAM4L,cAEtB,OAAIuI,GACEA,EAAU3P,WAAahH,EAAUa,UAC5B/I,KAAKukB,eAAkB1F,EAAU3P,WAAahH,EAAUa,WAAa,QAAUtC,KAAKoY,EAAU5K,KAAKymB,OAAO,EAAEhwB,EAAMyM,eAEzHjU,EAAEsa,mBAAmBxd,KAAKs8C,WAAWjjC,yBACrCnW,EAAEqa,UAAS,GACHvd,KAAKukB,gBAAkBrhB,EAAEoT,iBAAmB7T,EAAE2kB,YAAclkB,EAAEqT,eAAiB9T,EAAE2kB,aAAelkB,EAAEiU,cAAgB1U,EAAE4kB,cANhI,QAWFo4B,qBAAsB,SAASC,GAC3B,GAAIj3C,GAAYzI,KAAK+mB,eACjBviB,EAAOiE,EAAU2e,WACjB/U,EAAS5J,EAAU4e,YACvB,OAAIq4B,IAAUl7C,EACO,IAAX6N,IAAiB7N,EAAKqI,UAAYrI,EAAKqI,WAAa6yC,EAAO/f,eAAiBz3B,EAAUG,IAAIi3B,iBAAiB96B,EAAKE,YAAc+5B,MAAOihB,GAAU,IAC9Il7C,EACU,IAAX6N,IAAiBrS,KAAK8+C,gBAAgBt6C,GAAM,GAD/C,QAKXm7C,wBAAyB,WACvB,GAIIj1C,GAAOk1C,EAAcC,EAJrBp3C,EAAYzI,KAAK+mB,eACjBviB,EAAOiE,EAAU2e,WACjB/U,EAAS5J,EAAU4e,aACnBpY,IAGJ,IAAIzK,EACF,GAAe,IAAX6N,EAAc,CAChB,GAAI8rB,GAAWn+B,KAAK8+C,gBAAgBt6C,GAAM,GACtCs7C,EAAW3hB,EAAWj2B,EAAUG,IAAI01B,QAAQI,GAAUG,aAAct+B,KAAsB,mBAAKu+B,aAAcv+B,KAAKq8C,qBAAsB,GAAS,IACrJ,IAAIyD,EAEF,IAAK,GADDxB,GAAct+C,KAAKu+C,oBACd35C,EAAI,EAAGq5C,EAAOK,EAAYz8C,OAAYo8C,EAAJr5C,EAAUA,IACnD,GAAIk7C,IAAaxB,EAAY15C,GAC3B,MAAO05C,GAAY15C,OAIpB,CAIL,GAHA8F,EAAQjC,EAAUghB,WAAW,GAC7B/e,EAAMqS,SAASrS,EAAM4L,eAAgB5L,EAAMyM,YAAc,GAErDzM,EAAO,CACTk1C,EAAel1C,EAAMiX,UAAU,EAAE,GACjC,KAAK,GAAI5Q,GAAI,EAAGwmB,EAAMqoB,EAAa/9C,OAAY01B,EAAJxmB,EAASA,IAC9C6uC,EAAa7uC,GAAGrM,YAAck7C,EAAa7uC,GAAGrM,aAAeF,GAC/DyK,EAAWzN,KAAKo+C,EAAa7uC,IAKnC,GADA8uC,EAAW5wC,EAAWpN,OAAS,EAAIoN,EAAWA,EAAWpN,OAAQ,GAAK,KAClEg+C,GAAkC,IAAtBA,EAAS3wC,UAAkBhH,EAAUG,IAAIizB,SAASukB,EAAU7/C,KAAKq8C,mBAC/E,MAAOwD,GAKb,OAAO,GAITE,uBAAwB,SAAS56C,GAC/B,GAAI+hB,GAAMtd,MAAMsmB,cAAclwB,KAAKuN,IACnC,IAAK2Z,EAGH,IACE/hB,IACA,MAAMrE,GACNmsC,WAAW,WAAa,KAAMnsC,IAAM,OALtCqE,IAQFyE,OAAMymB,iBAAiBnJ,IAIzB84B,kBAAmB,SAAS76C,EAAQ86C,GAClC,GAMIvD,GACAwD,EACAruC,EAAasuC,EACb37C,EAAMsM,EAAO4S,EACb08B,EAVAn1C,EAAwBjL,KAAKgL,IAAIC,KACjCo1C,EAAwBJ,GAAyBh1C,EAAKq1C,UACtDC,EAAwBN,GAAyBh1C,EAAKu1C,WACtDnxB,EAAwB,8BACxBoxB,EAAwB,gBAAkBpxB,EAAY,KAAOnnB,EAAUS,gBAAkB,UACzF+B,EAAwB1K,KAAKs8C,UAAS,EAQ1C,KAAK5xC,EAEH,WADAvF,GAAO8F,EAAMA,EAIVP,GAAMwO,YACTwK,EAAShZ,EAAM0U,aACftO,EAAQ4S,EAAOhE,yBAAyB+gC,GACxC/8B,EAAOnG,UAAS,GAChBmG,EAAOzD,WAAWnP,GAClB4S,EAAOjO,UAGTjR,EAAOkG,EAAMgV,yBAAyB+gC,GACtC/1C,EAAMuV,WAAWzb,GAEbsM,IACF4rC,EAAmB18C,KAAKo8C,QAAQz3C,iBAAiB,IAAM0qB,GACvD3kB,EAAMyS,eAAeu/B,EAAiB,IACtChyC,EAAM4S,YAAYo/B,EAAiBA,EAAiB76C,OAAQ,KAE9D7B,KAAKu8C,aAAa7xC,EAGlB,KACEvF,EAAOuF,EAAM4L,eAAgB5L,EAAM6L,cACnC,MAAMzV,GACNmsC,WAAW,WAAa,KAAMnsC,IAAM,GAGtC,GADA47C,EAAmB18C,KAAKo8C,QAAQz3C,iBAAiB,IAAM0qB,GACnDqtB,GAAoBA,EAAiB76C,OAAQ,CAC/Cu+C,EAAWx2C,MAAM8C,YAAY1M,KAAKgL,KAClC6G,EAAc6qC,EAAiB,GAAG7qC,YAC9B6qC,EAAiB76C,OAAS,IAC5Bs+C,EAAczD,EAAiBA,EAAiB76C,OAAQ,GAAG6O,iBAEzDyvC,GAAetuC,GACjBuuC,EAASjjC,eAAetL,GACxBuuC,EAAS9iC,YAAY6iC,KAErBD,EAAsBlgD,KAAKgL,IAAI+J,eAAe7M,EAAUS,iBACxDN,EAAIq0B,OAAOwjB,GAAqBvjB,MAAM+f,EAAiB,IACvD0D,EAASjjC,eAAe+iC,GACxBE,EAAS9iC,YAAY4iC,IAEvBlgD,KAAKu8C,aAAa6D,EAClB,KAAK,GAAIx7C,GAAI83C,EAAiB76C,OAAQ+C,KACrC83C,EAAiB93C,GAAGF,WAAW4Z,YAAYo+B,EAAiB93C,QAK7D5E,MAAKo8C,QAAQtyB,OAGXm2B,KACFh1C,EAAKq1C,UAAaD,EAClBp1C,EAAKu1C,WAAaD,EAIpB,KACE7D,EAAiBh4C,WAAW4Z,YAAYo+B,GACxC,MAAM3nB,MAGVvyB,IAAK,SAASgC,EAAM6N,GAClB,GAAI+tC,GAAWx2C,MAAM8C,YAAY1M,KAAKgL,IACtCo1C,GAASrjC,SAASvY,EAAM6N,GAAU,GAClCrS,KAAKu8C,aAAa6D,IAUpB1rB,WAAY,SAASiF,GACnB,GAGIrZ,GAFA9b,GADYoF,MAAM8C,YAAY1M,KAAKgL,KAC5BhL,KAAKgL,IAAInG,cAAc,QAC9B0P,EAAWvU,KAAKgL,IAAIwJ,wBAMxB,KAHAhQ,EAAK4P,UAAYulB,EACjBrZ,EAAY9b,EAAK8b,UAEV9b,EAAKqP,YACVU,EAASvF,YAAYxK,EAAKqP,WAE5B7T,MAAKigB,WAAW1L,GAEZ+L,GACFtgB,KAAK+8C,SAASz8B,IAWlBL,WAAY,SAASzb,GACnB,GAAIkG,GAAQ1K,KAAKs8C,UACb5xC,IACFA,EAAMuV,WAAWzb,IAIrBk8C,oBAAqB,SAAUjzB,EAASxN,GACtC,GACIvV,GAAOi2C,EACP9sC,EAAYyM,EAFZ4G,EAAMlnB,KAAK+mB,cAIXG,GAAIa,WAAa,IACnBrd,EAAQwc,EAAIuC,WAAW,GAAGrK,aAE1B1U,EAAM4S,YAAYmQ,GAClBkzB,EAAyBj2C,EAAMkT,kBAE/B6P,EAAQ/oB,WAAWoN,aAAa6uC,EAAwBlzB,EAAQ5b,aAEhEgC,EAAaoM,EAAWpM,WACxByM,EAAYL,EAAWK,UAEvBmN,EAAQ/oB,WAAWoN,aAAamO,EAAYwN,EAAQ5b,aAGhDgC,GAAcyM,IACf5V,EAAMyS,eAAetJ,GACrBnJ,EAAM4S,YAAYgD,GAClBtgB,KAAKu8C,aAAa7xC,MAUzBk2C,SAAU,SAASC,GACjB,GACIr8C,GADA8kB,EAAStpB,KAAK+9C,eACRt5C,IACV,IAAqB,GAAjB6kB,EAAOznB,OACT,MAAO4C,EAGT,KAAK,GAAIG,GAAI0kB,EAAOznB,OAAQ+C,KAAM,CAChCJ,EAAOxE,KAAKgL,IAAInG,cAAcg8C,EAAYh0C,UAC1CpI,EAAMjD,KAAKgD,GACPq8C,EAAYxxB,YACd7qB,EAAK6qB,UAAYwxB,EAAYxxB,WAE3BwxB,EAAYC,UACdt8C,EAAKyC,aAAa,QAAS45C,EAAYC,SAEzC,KAEEx3B,EAAO1kB,GAAGub,iBAAiB3b,GAC3BxE,KAAKyd,WAAWjZ,GAChB,MAAM1D,GAEN0D,EAAKwK,YAAYsa,EAAO1kB,GAAGgZ,mBAC3B0L,EAAO1kB,GAAGqb,WAAWzb,IAGzB,MAAOC,IAGTs8C,mBAAoB,SAASF,GAC3B,GAEIG,GACAC,EACAptC,EAJA+mB,EAAc56B,KAAKgL,IAAInG,cAAc,OACrC6F,EAAQd,MAAM8C,YAAY1M,KAAKgL,IASnC,IAJA4vB,EAAYvL,UAAYwxB,EAAYxxB,UAEpCrvB,KAAK83C,SAAS1vC,SAASmqB,KAAK,cAAesuB,GAC3CG,EAAkBhhD,KAAKo8C,QAAQz3C,iBAAiB,IAAMk8C,EAAYxxB,WAC9D2xB,EAAgB,GAOlB,IANAA,EAAgB,GAAGt8C,WAAWoN,aAAa8oB,EAAaomB,EAAgB,IAExEt2C,EAAMyS,eAAe6jC,EAAgB,IACrCt2C,EAAM4S,YAAY0jC,EAAgBA,EAAgBn/C,OAAS,IAC3Do/C,EAAev2C,EAAMkT,kBAEdqjC,EAAaptC,YAElB,GADAA,EAAaotC,EAAaptC,WACC,GAAvBA,EAAW3E,UAAiBhH,EAAUG,IAAIizB,SAASznB,EAAYgtC,EAAYxxB,WAAY,CACzF,KAAOxb,EAAWA,YAChB+mB,EAAY5rB,YAAY6E,EAAWA,WAET,QAAxBA,EAAWhH,UAAqB+tB,EAAY5rB,YAAYhP,KAAKgL,IAAInG,cAAc,OACnFo8C,EAAa3iC,YAAYzK,OAEzB+mB,GAAY5rB,YAAY6E,OAI5B+mB,GAAc,IAGhB,OAAOA,IAUTsmB,eAAgB,WACd,GASIrF,GATA7wC,EAAgBhL,KAAKgL,IACrBm2C,EAAgB,EAChBC,EAAgBp2C,EAAIoK,gBAAgBisC,aAAer2C,EAAIoK,gBAAgB20B,aACvEnP,EAAgB5vB,EAAIs2C,gCAAkCt2C,EAAIs2C,iCAAmC,WAC3F,GAAI7zB,GAAUziB,EAAInG,cAAc,OAGhC,OADA4oB,GAAQrZ,UAAYlM,EAAUS,gBACvB8kB,IAIT2zB,KACFphD,KAAKigB,WAAW2a,GAChBihB,EAAYD,EAAwBhhB,GACpCA,EAAYl2B,WAAW4Z,YAAYsc,GAC/BihB,GAAc7wC,EAAIC,KAAKq1C,UAAYt1C,EAAIoK,gBAAgB20B,aAAeoX,IACxEn2C,EAAIC,KAAKq1C,UAAYzE,KAQ3B0F,WAAY,WACNr5C,EAAU4pB,QAAQ6D,0BACpB31B,KAAKwhD,kBACIxhD,KAAKgL,IAAIvC,WAClBzI,KAAKyhD,oBAOTD,gBAAiB,WACf,GAAI/4C,GAAYzI,KAAKuN,IAAIwZ,cACzBte,GAAUi5C,OAAO,OAAQ,OAAQ,gBACjCj5C,EAAUi5C,OAAO,SAAU,QAAS,iBAItCC,eAAgB,SAAUC,EAAUrkC,GAElC,GADAA,EAAgC,mBAAbA,IAA4B,EAAQA,EACnDrV,EAAU4pB,QAAQ6D,0BAA2B,CAC/C,GAAIltB,GAAYzI,KAAKuN,IAAIwZ,cAEzBte,GAAUi5C,OAAO,SAAUE,EAAU,gBACjCrkC,IACe,SAAbqkC,EACFn5C,EAAU4kB,kBACY,UAAbu0B,GACTn5C,EAAU6kB,mBAMlBm0B,iBAAkB,WAChB,GAGII,GACAC,EACAC,EACAn9C,EACAk6B,EAPAp0B,EAAc1K,KAAKgL,IAAIvC,UAAUiE,cACjCs1C,EAAct3C,EAAMu3C,YACpBC,EAAcliD,KAAKgL,IAAIC,KAAKi3C,WAOhC,IAAKx3C,EAAMy3C,YAAX,CAeA,IAXiB,IAAbH,IAGFD,EAAc/hD,KAAKgL,IAAInG,cAAc,QACrC7E,KAAKigB,WAAW8hC,GAChBC,EAAWD,EAAYlG,UACvBkG,EAAYr9C,WAAW4Z,YAAYyjC,IAGrCC,GAAY,EAEPp9C,EAAE,IAAOs9C,EAAFt9C,EAAeA,GAAG,EAC5B,IACE8F,EAAMy3C,YAAYv9C,EAAGo9C,EACrB,OACA,MAAMntB,IAOV,IAFAgtB,EAAcG,EACdF,EAAW9hD,KAAKgL,IAAIvC,UAAUiE,cACzBoyB,EAAEojB,EAAapjB,GAAG,EAAGA,IACxB,IACEgjB,EAASK,YAAYrjB,EAAG+iB,EACxB,OACA,MAAM9sB,IAGVrqB,EAAM6a,YAAY,WAAYu8B,GAC9Bp3C,EAAMoe,WAGRs5B,QAAS,WACP,GAAI35C,GAAYzI,KAAK+mB,cACrB,OAAOte,GAAYA,EAAU5F,WAAa,IAG5C8e,SAAU,SAASzS,EAAUsJ,GAC3B,GAAI9N,GAAQ1K,KAAKs8C,UACjB,OAAI5xC,GACKA,EAAMiX,SAASjf,MAAMC,QAAQuM,GAAYA,GAAYA,GAAWsJ,OAM3E6pC,iBAAkB,SAAS33C,GACzB,GAAI1K,KAAKo8C,SAAWp8C,KAAKo8C,QAAQvoC,YAAcnJ,EAAO,CACpD,GAAI43C,GAAc53C,EAAM+V,YAAYzgB,KAAKo8C,QACzC,IAAoB,IAAhBkG,EACkB,IAAhBA,GACF53C,EAAMyS,eAAend,KAAKo8C,QAAQvoC,YAEhB,IAAhByuC,GACF53C,EAAM4S,YAAYtd,KAAKo8C,QAAQ97B,WAEb,IAAhBgiC,IACF53C,EAAMyS,eAAend,KAAKo8C,QAAQvoC,YAClCnJ,EAAM4S,YAAYtd,KAAKo8C,QAAQ97B,gBAE5B,IAAItgB,KAAKuiD,2BAA2B73C,GAAQ,CACjD,GAAI83C,GAAyB93C,EAAM6L,aAAaisC,sBAC5CA,IACF93C,EAAMsS,OAAOwlC,EAAwBxiD,KAAKyiD,kBAAkBD,OAMpEC,kBAAmB,SAASj+C,GAC1B,GAAIkG,GAAQrJ,SAASqL,aAErB,OADAhC,GAAM8S,mBAAmBhZ,GAClBkG,EAAM0M,WAGfmrC,2BAA4B,SAAS73C,GACnC,GAAI0H,GAAW/J,EAAIozB,wBAAwB/wB,EAAM4L,eAAgB5L,EAAM6L,aACvE,OACqB,IAAnB7L,EAAM0M,WACK,EAAXhF,GAIJkqC,SAAU,SAASoG,GACjB,GAAIj6C,GAAYzI,KAAK+mB,eACjBrc,EAAQjC,GAAaA,EAAUsf,YAActf,EAAUghB,WAAW,EAMtE,OAJIi5B,MAAY,GACd1iD,KAAKqiD,iBAAiB33C,GAGjBA,GAGT6zC,kBAAmB,WACjB,GAAIoE,GAAiBt6C,EAAIo2B,MAAMz+B,KAAKo8C,QAAS,IAAMp8C,KAAKq8C,mBACpDuG,EAAkBv6C,EAAIo2B,MAAMkkB,EAAgB,IAAM3iD,KAAKq8C,kBAE3D,OAAOn0C,GAAUM,KAAKmuB,MAAMgsB,GAAgB9rB,QAAQ+rB,IAMtD7E,aAAc,WACZ,GAEI8E,GAFAv5B,KACApmB,EAAIlD,KAAKs8C,UAKb,IAFIp5C,GAAKomB,EAAO9nB,KAAK0B,GAEjBlD,KAAKq8C,mBAAqBr8C,KAAKo8C,SAAWl5C,EAAG,CAC/C,GACI4/C,GADAxE,EAAct+C,KAAKu+C,mBAEvB,IAAID,EAAYz8C,OAAS,EACvB,IAAK,GAAI+C,GAAI,EAAG6hC,EAAO6X,EAAYz8C,OAAY4kC,EAAJ7hC,EAAUA,IAAK,CACxDi+C,IACA,KAAK,GAAI/jB,GAAI,EAAGikB,EAAOz5B,EAAOznB,OAAYkhD,EAAJjkB,EAAUA,IAAK,CACnD,GAAIxV,EAAOwV,GACT,OAAQxV,EAAOwV,GAAGre,YAAY69B,EAAY15C,KACxC,IAAK,GAEL,KACA,KAAK,GAEHk+C,EAAWx5B,EAAOwV,GAAG1f,aACrB0jC,EAASzlC,aAAaihC,EAAY15C,IAClCi+C,EAAUrhD,KAAKshD,GAEfA,EAAWx5B,EAAOwV,GAAG1f,aACrB0jC,EAAS1lC,cAAckhC,EAAY15C,IACnCi+C,EAAUrhD,KAAKshD,EACjB,MACA,SAEED,EAAUrhD,KAAK8nB,EAAOwV,IAG5BxV,EAASu5B,IAKjB,MAAOv5B,IAGTvC,aAAc,WACZ,MAAOnd,OAAMmd,aAAa/mB,KAAKuN,MAMjCgvC,aAAc,SAAS7xC,GACrB,GAAIjC,GAAYmB,MAAMmd,aAAa/mB,KAAKuN,IAExC,OADA9E,GAAUihB,eAAehf,GACjBjC,GAAaA,EAAU2e,YAAc3e,EAAU6e,UAAa7e,EAAY,MAGlFiE,YAAa,WACX,MAAO9C,OAAM8C,YAAY1M,KAAKgL,MAGhCuZ,YAAa,WACT,MAAOvkB,MAAK+mB,eAAexC,aAG/By+B,QAAS,WACP,MAAOhjD,MAAK+mB,eAAepG,UAG7BsiC,aAAc,WACZ,MAAOjjD,MAAK+mB,eAAelkB,YAG7BqgD,iBAAkB,SAASC,GACzB,GAAIz4C,GAAQ1K,KAAKs8C,WACb/rC,EAAgB7F,EAAM2O,wBACtBwF,EAAYnU,EAAM4L,eAClBsI,EAAUlU,EAAM6L,YAOlB,IAJIhG,EAAcrB,WAAahH,EAAUa,YACvCwH,EAAgBA,EAAc7L,YAG5Bma,EAAU3P,WAAahH,EAAUa,YAAc,QAAUtC,KAAKoY,EAAU5K,KAAKymB,OAAOhwB,EAAMyM,cAC5F,OAAO,CAGT,IAAIyH,EAAQ1P,WAAahH,EAAUa,YAAc,QAAUtC,KAAKmY,EAAQ3K,KAAKymB,OAAOhwB,EAAM0M,YACxF,OAAO,CAGT,MAAOyH,GAAaA,IAActO,GAAe,CAC/C,GAAIsO,EAAU3P,WAAahH,EAAUa,YAAcb,EAAUG,IAAIpD,SAASsL,EAAesO,GACvF,OAAO,CAET,IAAI3W,EAAUG,IAAI01B,QAAQlf,GAAWqf,MAAMG,kBAAkB,IAC3D,OAAO,CAETxf,GAAYA,EAAUna,WAGxB,KAAOka,GAAWA,IAAYrO,GAAe,CAC3C,GAAIqO,EAAQ1P,WAAahH,EAAUa,YAAcb,EAAUG,IAAIpD,SAASsL,EAAeqO,GACrF,OAAO,CAET,IAAI1W,EAAUG,IAAI01B,QAAQnf,GAASpJ,MAAM6oB,kBAAkB,IACzD,OAAO,CAETzf,GAAUA,EAAQla,WAGpB,MAAQwD,GAAUM,KAAKmuB,MAAMwsB,GAAWl+C,SAASsL,EAAc1D,UAAa0D,GAAgB,GAGhGkqC,SAAU,WACR,GAAIvzB,GAAMlnB,KAAK+mB,cACfG,IAAOA,EAAIqE,sBAIdrjB,WASH,SAAUA,EAAW0B,GAKnB,QAAS0xB,GAASvsB,EAAIq0C,EAAUC,GAC9B,IAAKt0C,EAAGsgB,UACN,OAAO,CAGT,IAAIi0B,GAAqBv0C,EAAGsgB,UAAU1D,MAAM03B,MAC5C,OAAOC,GAAmBA,EAAmBzhD,OAAS,KAAOuhD,EAG/D,QAASG,GAAax0C,EAAIs0C,GACxB,IAAKt0C,EAAGlI,eAAiBkI,EAAGlI,aAAa,SACvC,OAAO,CAEYkI,GAAGlI,aAAa,SAAS8kB,MAAM03B,EACpD,OAASt0C,GAAGlI,aAAa,SAAS8kB,MAAM03B,IAAW,GAAO,EAG5D,QAAStc,GAASh4B,EAAI+xC,EAAUuC,GAC1Bt0C,EAAGlI,aAAa,UAClB28C,EAAYz0C,EAAIs0C,GACZt0C,EAAGlI,aAAa,WAAa,QAAUJ,KAAKsI,EAAGlI,aAAa,UAC9DkI,EAAG9H,aAAa,QAAS65C,EAAW,IAAM/xC,EAAGlI,aAAa,UAE1DkI,EAAG9H,aAAa,QAAS65C,IAG3B/xC,EAAG9H,aAAa,QAAS65C,GAI7B,QAASzlB,GAAStsB,EAAIq0C,EAAUC,GAC1Bt0C,EAAGsgB,WACLkM,EAAYxsB,EAAIs0C,GAChBt0C,EAAGsgB,WAAa,IAAM+zB,GAEtBr0C,EAAGsgB,UAAY+zB,EAInB,QAAS7nB,GAAYxsB,EAAIs0C,GACnBt0C,EAAGsgB,YACLtgB,EAAGsgB,UAAYtgB,EAAGsgB,UAAUpvB,QAAQojD,EAAQ,KAIhD,QAASG,GAAYz0C,EAAIs0C,GACvB,GAAI5gD,GACAghD,IACJ,IAAI10C,EAAGlI,aAAa,SAAU,CAC5BpE,EAAIsM,EAAGlI,aAAa,SAASE,MAAM,IACnC,KAAK,GAAInC,GAAInC,EAAEZ,OAAQ+C,KAChBnC,EAAEmC,GAAG+mB,MAAM03B,IAAY,QAAU58C,KAAKhE,EAAEmC,KAC3C6+C,EAAGjiD,KAAKiB,EAAEmC,GAGV6+C,GAAG5hD,OACLkN,EAAG9H,aAAa,QAASw8C,EAAG97C,KAAK,MAEjCoH,EAAGukC,gBAAgB,UAKzB,QAASoQ,GAAuB30C,EAAImgB,GAClC,GAAIy0B,MACAC,EAAS10B,EAAMnoB,MAAM,KACrB88C,EAAU90C,EAAGlI,aAAa,QAE9B,IAAIg9C,EAAS,CACXA,EAAUA,EAAQ5jD,QAAQ,OAAQ,IAAI6M,cACtC62C,EAAQniD,KAAK,GAAIoX,QAAO,YAAcsW,EAAMjvB,QAAQ,OAAQ,IAAIA,QAAQ,aAAc,QAAQ6M,cAAc7M,QAAQ,IAAK,MAAMA,QAAQ,iCAAkC,iCAAkC,MAE3M,KAAK,GAAI2E,GAAIg/C,EAAO/hD,OAAQ+C,IAAM,GAC3B,QAAU6B,KAAKm9C,EAAOh/C,KACzB++C,EAAQniD,KAAK,GAAIoX,QAAO,YAAcgrC,EAAOh/C,GAAG3E,QAAQ,OAAQ,IAAIA,QAAQ,aAAc,QAAQ6M,cAAc7M,QAAQ,IAAK,MAAMA,QAAQ,iCAAkC,iCAAkC,MAGnN,KAAK,GAAI6+B,GAAI,EAAGikB,EAAOY,EAAQ9hD,OAAYkhD,EAAJjkB,EAAUA,IAC/C,GAAI+kB,EAAQl4B,MAAMg4B,EAAQ7kB,IACxB,MAAO6kB,GAAQ7kB,GAKrB,OAAO,EAGT,QAASglB,GAAmBt/C,EAAMm/B,EAAMzU,EAAOG,GAC7C,MAAIH,GACKw0B,EAAuBl/C,EAAM0qB,GAC3BG,EACFnnB,EAAUG,IAAIizB,SAAS92B,EAAM6qB,GAE7BzlB,EAAMvB,IAAI4I,cAAc0yB,EAAMn/B,EAAK2O,QAAQrG,eAItD,QAASi3C,GAAoBt/C,EAAOk/B,EAAMzU,EAAOG,GAC/C,IAAK,GAAIzqB,GAAIH,EAAM5C,OAAQ+C,KACzB,IAAKk/C,EAAmBr/C,EAAMG,GAAI++B,EAAMzU,EAAOG,GAC7C,OAAO,CAGX,OAAO5qB,GAAM5C,QAAS,GAAO,EAG/B,QAASmiD,GAAoBj1C,EAAImgB,EAAOm0B,GAEtC,GAAIY,GAAaP,EAAuB30C,EAAImgB,EAC5C,OAAI+0B,IAEFT,EAAYz0C,EAAIk1C,GACT,WAGPld,EAASh4B,EAAImgB,EAAOm0B,GACb,UAIX,QAASa,GAAeC,EAAKC,GAC3B,MAAOD,GAAI90B,UAAUpvB,QAAQokD,EAAqB,MAAQD,EAAI/0B,UAAUpvB,QAAQokD,EAAqB,KAGvG,QAASC,GAAuBv1C,GAE9B,IADA,GAAIyB,GAASzB,EAAGrK,WACTqK,EAAG8E,YACRrD,EAAOsB,aAAa/C,EAAG8E,WAAY9E,EAErCyB,GAAO8N,YAAYvP,GAGrB,QAASw1C,GAAmCJ,EAAKC,GAC/C,GAAID,EAAIhhB,WAAWthC,QAAUuiD,EAAIjhB,WAAWthC,OAC1C,OAAO,CAET,KAAK,GAAwC2iD,GAAOC,EAAOp+C,EAAlDzB,EAAI,EAAGW,EAAM4+C,EAAIhhB,WAAWthC,OAAgC0D,EAAJX,IAAWA,EAG1E,GAFA4/C,EAAQL,EAAIhhB,WAAWv+B,GACvByB,EAAOm+C,EAAMn+C,KACD,SAARA,EAAiB,CAEnB,GADAo+C,EAAQL,EAAIjhB,WAAWuhB,aAAar+C,GAChCm+C,EAAM5V,WAAa6V,EAAM7V,UAC3B,OAAO,CAET,IAAI4V,EAAM5V,WAAa4V,EAAMzpB,YAAc0pB,EAAM1pB,UAC/C,OAAO,EAIb,OAAO,EAGT,QAAS4pB,GAAangD,EAAM6N,GAC1B,MAAIzI,GAAMvB,IAAImJ,oBAAoBhN,GAClB,GAAV6N,IACO7N,EAAKkM,gBACL2B,GAAU7N,EAAK3C,SACf2C,EAAKqN,aAEP,EAIJQ,EAAS,GAAKA,EAAS7N,EAAKyK,WAAWpN,OAGhD,QAAS+iD,GAAYpgD,EAAMqgD,EAAgBC,EAAkBjqC,GAC3D,GAAI5I,EAYJ,IAXIrI,EAAMvB,IAAImJ,oBAAoBqzC,KACR,GAApBC,GACFA,EAAmBl7C,EAAMvB,IAAIoI,aAAao0C,GAC1CA,EAAiBA,EAAengD,YACvBogD,GAAoBD,EAAehjD,QAC5CijD,EAAmBl7C,EAAMvB,IAAIoI,aAAao0C,GAAkB,EAC5DA,EAAiBA,EAAengD,YAEhCuN,EAAUrI,EAAMvB,IAAI0J,cAAc8yC,EAAgBC,MAGjD7yC,GACE4I,GAAagqC,IAAmBhqC,GAAW,CAE9C5I,EAAU4yC,EAAe3yC,WAAU,GAC/BD,EAAQkC,IACVlC,EAAQqhC,gBAAgB,KAG1B,KADA,GAAIh/B,GACIA,EAAQuwC,EAAe51C,WAAW61C,IACxC7yC,EAAQjD,YAAYsF,EAEtB1K,GAAMvB,IAAIqJ,YAAYO,EAAS4yC,GAInC,MAAQA,IAAkBrgD,EAAQyN,EAAW2yC,EAAYpgD,EAAMyN,EAAQvN,WAAYkF,EAAMvB,IAAIoI,aAAawB,GAAU4I,GAGtH,QAASkqC,GAAMC,GACbhlD,KAAKilD,eAAkBD,EAAU91C,UAAYhH,EAAUY,aACvD9I,KAAKklD,cAAgBllD,KAAKilD,eAAiBD,EAAU1kC,UAAY0kC,EACjEhlD,KAAK0hB,WAAa1hB,KAAKklD;CAsCzB,QAASC,GAAYC,EAAUhC,EAAUiC,EAAoBv1B,EAAWgxB,EAAUwE,EAAoBzqC,GACpG7a,KAAKolD,SAAWA,IAAaG,GAC7BvlD,KAAKojD,SAAWA,IAAcA,KAAa,GAAS,EAAQ,IAC5DpjD,KAAKqlD,mBAAqBA,EAC1BrlD,KAAK8gD,SAAWA,GAAY,GAC5B9gD,KAAKslD,mBAAqBA,EAC1BtlD,KAAK8vB,UAAYA,EACjB9vB,KAAKwlD,mBAAoB,EACzBxlD,KAAK6a,UAAYA,EA1PnB,GAAI0qC,GAAiB,OAEjBlB,EAAsB,MA6M1BU,GAAMllD,WACJ4lD,QAAS,WAEP,IAAK,GADc3wC,GAAUtE,EAAQkV,EAAjCggC,KACK9gD,EAAI,EAAGW,EAAMvF,KAAK0hB,UAAU7f,OAAY0D,EAAJX,IAAWA,EACtDkQ,EAAW9U,KAAK0hB,UAAU9c,GAC1B4L,EAASsE,EAASpQ,WAClBghD,EAAS9gD,GAAKkQ,EAASb,KACnBrP,IACF4L,EAAO8N,YAAYxJ,GACdtE,EAAO6P,iBACV7P,EAAO9L,WAAW4Z,YAAY9N,GAKpC,OADAxQ,MAAKklD,cAAcjxC,KAAOyR,EAAOggC,EAAS/9C,KAAK,IACxC+d,GAGTigC,UAAW,WAET,IADA,GAAI/gD,GAAI5E,KAAK0hB,UAAU7f,OAAQ0D,EAAM,EAC9BX,KACLW,GAAOvF,KAAK0hB,UAAU9c,GAAG/C,MAE3B,OAAO0D,IAGT1C,SAAU,WAER,IAAK,GADD6iD,MACK9gD,EAAI,EAAGW,EAAMvF,KAAK0hB,UAAU7f,OAAY0D,EAAJX,IAAWA,EACtD8gD,EAAS9gD,GAAK,IAAM5E,KAAK0hB,UAAU9c,GAAGqP,KAAO,GAE/C,OAAO,UAAYyxC,EAAS/9C,KAAK,KAAO,OAe5Cw9C,EAAYtlD,WACV+lD,qBAAsB,SAASphD,GAE7B,IADA,GAAIqhD,GACGrhD,GAAM,CAEX,GADAqhD,EAAgB7lD,KAAKojD,SAAW9nB,EAAS92B,EAAMxE,KAAKojD,SAAUpjD,KAAKqlD,oBAAyC,KAAlBrlD,KAAK8gD,UAAmB,GAAQ,EACtHt8C,EAAK0K,UAAYhH,EAAUY,cAAwD,SAAxCtE,EAAKqC,aAAa,oBAAkC+C,EAAMvB,IAAI4I,cAAcjR,KAAKolD,SAAU5gD,EAAK2O,QAAQrG,gBAAkB+4C,EACvK,MAAOrhD,EAETA,GAAOA,EAAKE,WAEd,OAAO,GAITohD,qBAAsB,SAASthD,GAE7B,IADA,GAAIuhD,GACGvhD,GAAM,CAGX,GAFAuhD,EAAgB/lD,KAAK8gD,SAAWyC,EAAa/+C,EAAMxE,KAAKslD,qBAAsB,EAE1E9gD,EAAK0K,UAAYhH,EAAUY,cAAwD,SAAxCtE,EAAKqC,aAAa,oBAAiC+C,EAAMvB,IAAI4I,cAAcjR,KAAKolD,SAAU5gD,EAAK2O,QAAQrG,gBAAkBi5C,EACtK,MAAOvhD,EAETA,GAAOA,EAAKE,WAEd,OAAO,GAGTshD,oBAAqB,SAASxhD,GAC5B,GAAI2M,GAAWnR,KAAK4lD,qBAAqBphD,GACrCyhD,GAAY,CAahB,OAXK90C,GAMCnR,KAAK8gD,WACPmF,EAAY,UANd90C,EAAWnR,KAAK8lD,qBAAqBthD,GACjC2M,IACF80C,EAAY,WASdx4B,QAAWtc,EACXzQ,KAAQulD,IAKZC,UAAW,SAASxkC,EAAWhX,GAU7B,IAAK,GAPYy7C,GAKbrxC,EAAUsxC,EAPVpB,EAAYtjC,EAAU,GAAIm+B,EAAWn+B,EAAUA,EAAU7f,OAAS,GAElEwkD,KAEAC,EAAiBtB,EAAWuB,EAAe1G,EAC3C2G,EAAmB,EAAGC,EAAiB5G,EAASh+C,OAI3C+C,EAAI,EAAGW,EAAMmc,EAAU7f,OAAY0D,EAAJX,IAAWA,EACjDkQ,EAAW4M,EAAU9c,GACrBwhD,EAAoB,KAChBtxC,GAAYA,EAASpQ,aACvB0hD,EAAoBpmD,KAAK0mD,6BAA6B5xC,EAASpQ,YAAY,IAEzE0hD,GACGD,IACHA,EAAe,GAAIpB,GAAMqB,GACzBC,EAAO7kD,KAAK2kD,IAEdA,EAAazkC,UAAUlgB,KAAKsT,GACxBA,IAAakwC,IACfsB,EAAiBH,EAAajB,cAC9BsB,EAAmBF,EAAezkD,QAEhCiT,IAAa+qC,IACf0G,EAAeJ,EAAajB,cAC5BuB,EAAiBN,EAAaR,cAGhCQ,EAAe,IAInB,IAAGtG,GAAYA,EAASn7C,WAAY,CAClC,GAAIiiD,GAAe3mD,KAAK0mD,6BAA6B7G,EAASn7C,YAAY,EACtEiiD,KACGR,IACHA,EAAe,GAAIpB,GAAMlF,GACzBwG,EAAO7kD,KAAK2kD,IAEdA,EAAazkC,UAAUlgB,KAAKmlD,IAIhC,GAAIN,EAAOxkD,OAAQ,CACjB,IAAK+C,EAAI,EAAGW,EAAM8gD,EAAOxkD,OAAY0D,EAAJX,IAAWA,EAC1CyhD,EAAOzhD,GAAG6gD,SAGZ/6C,GAAMqS,SAASupC,EAAgBE,GAC/B97C,EAAMsS,OAAOupC,EAAcE,KAI/BC,6BAA8B,SAASliD,EAAMoiD,GAC3C,GAEIC,GAFAC,EAActiD,EAAK0K,UAAYhH,EAAUa,UACzCgG,EAAK+3C,EAAatiD,EAAKE,WAAaF,EAEpC2Q,EAAWyxC,EAAU,cAAgB,iBACzC,IAAIE,GAGF,GADAD,EAAeriD,EAAK2Q,GAChB0xC,GAAgBA,EAAa33C,UAAYhH,EAAUa,UACrD,MAAO89C,OAKT,IADAA,EAAe93C,EAAGoG,GACd0xC,GAAgB7mD,KAAK+mD,qBAAqBviD,EAAMqiD,GAClD,MAAOA,GAAaD,EAAU,aAAe,YAGjD,OAAO,OAGTG,qBAAsB,SAAS5C,EAAKC,GAClC,MAAOx6C,GAAMvB,IAAI4I,cAAcjR,KAAKolD,UAAWjB,EAAIhxC,SAAW,IAAIrG,gBAC7DlD,EAAMvB,IAAI4I,cAAcjR,KAAKolD,UAAWhB,EAAIjxC,SAAW,IAAIrG,gBAC3Do3C,EAAeC,EAAKC,IACpBG,EAAmCJ,EAAKC,IAG/C4C,gBAAiB,SAASh8C,GACxB,GAAI+D,GAAK/D,EAAInG,cAAc7E,KAAKolD,SAAS,GAOzC,OANIplD,MAAKojD,WACPr0C,EAAGsgB,UAAYrvB,KAAKojD,UAElBpjD,KAAK8gD,UACP/xC,EAAG9H,aAAa,QAASjH,KAAK8gD,UAEzB/xC,GAGTk4C,gBAAiB,SAASnyC,GACxB,GAAItE,GAASsE,EAASpQ,UACtB,IAAgC,GAA5B8L,EAAOvB,WAAWpN,QAAe+H,EAAMvB,IAAI4I,cAAcjR,KAAKolD,SAAU50C,EAAO2C,QAAQrG,eAErF9M,KAAKojD,UACP/nB,EAAS7qB,EAAQxQ,KAAKojD,SAAUpjD,KAAKqlD,oBAEnCrlD,KAAK8gD,UACP/Z,EAASv2B,EAAQxQ,KAAK8gD,SAAU9gD,KAAKslD,wBAElC,CACL,GAAIv2C,GAAK/O,KAAKgnD,gBAAgBp9C,EAAMvB,IAAIiK,YAAYwC,GACpDA,GAASpQ,WAAWoN,aAAa/C,EAAI+F,GACrC/F,EAAGC,YAAY8F,KAInBoyC,YAAa,SAASn4C,GACpB,MAAOnF,GAAMvB,IAAI4I,cAAcjR,KAAKolD,SAAUr2C,EAAGoE,QAAQrG,gBACF,KAA/C5E,EAAUM,KAAK0wB,OAAOnqB,EAAGsgB,WAAWvvB,UAEjCiP,EAAGlI,aAAa,UAC0C,KAA3DqB,EAAUM,KAAK0wB,OAAOnqB,EAAGlI,aAAa,UAAU/G,SAI5DqnD,eAAgB,SAASryC,EAAUpK,EAAO08C,EAAmBC,GAC3D,GAAIC,GAAY,GAAsB,GAAQ,EAC1Cn2C,EAAWi2C,GAAqBC,EAChCE,GAAe,CACnB,KAAK78C,EAAM0W,aAAajQ,GAAW,CAEjC,GAAIq2C,GAAgB98C,EAAM0U,YACtBooC,GAAc/pC,WAAWtM,GAEzBq2C,EAAc3mC,eAAenW,EAAM6L,aAAc7L,EAAM0M,YAAcutC,EAAaj6C,EAAM6L,aAAc7L,EAAM0M,aAC5GwtC,EAAYzzC,EAAUzG,EAAM6L,aAAc7L,EAAM0M,UAAWpX,KAAK6a,WAChEnQ,EAAM4S,YAAYnM,IAElBq2C,EAAc3mC,eAAenW,EAAM4L,eAAgB5L,EAAMyM,cAAgBwtC,EAAaj6C,EAAM4L,eAAgB5L,EAAMyM,eAClHhG,EAAWyzC,EAAYzzC,EAAUzG,EAAM4L,eAAgB5L,EAAMyM,YAAanX,KAAK6a,aAIhFysC,GAAatnD,KAAKqlD,oBACrB9pB,EAAYpqB,EAAUnR,KAAKqlD,oBAGzBiC,GAAatnD,KAAKslD,qBACpBiC,EAA0F,WAA1EvD,EAAoB7yC,EAAUnR,KAAK8gD,SAAU9gD,KAAKslD,qBAEhEtlD,KAAKknD,YAAY/1C,KAAco2C,GACjCjD,EAAuBnzC,IAI3Bs2C,aAAc,SAAS/8C,GAErB,IAAK,GADDgX,GACKgmC,EAAKh9C,EAAM7I,OAAQ6lD,KAAO,CAGjC,GAFEhmC,EAAYhX,EAAMg9C,GAAI/lC,UAAUzZ,EAAUa,aAEvC2Y,EAAU7f,OACb,IACE,GAAI2C,GAAOxE,KAAKgnD,gBAAgBt8C,EAAMg9C,GAAInxC,aAAahE,cAGvD,OAFA7H,GAAMg9C,GAAIvnC,iBAAiB3b,OAC3BxE,MAAKyd,WAAW/S,EAAMg9C,GAAKljD,GAE3B,MAAM1D,IAKV,GAFA4J,EAAMg9C,GAAI1pC,kBACV0D,EAAYhX,EAAMg9C,GAAI/lC,UAAUzZ,EAAUa,YACtC2Y,EAAU7f,OAAQ,CAGpB,IAAK,GAFDiT,GAEKlQ,EAAI,EAAGW,EAAMmc,EAAU7f,OAAY0D,EAAJX,IAAWA,EACjDkQ,EAAW4M,EAAU9c,GAChB5E,KAAKgmD,oBAAoBlxC,GAAU2Y,SACtCztB,KAAKinD,gBAAgBnyC,EAIzBpK,GAAMg9C,GAAI3qC,SAAS2E,EAAU,GAAI,GACjC5M,EAAW4M,EAAUA,EAAU7f,OAAS,GACxC6I,EAAMg9C,GAAI1qC,OAAOlI,EAAUA,EAASjT,QAEhC7B,KAAK8vB,WACP9vB,KAAKkmD,UAAUxkC,EAAWhX,EAAMg9C,OAOxCC,YAAa,SAASj9C,GAEpB,IAAK,GADDgX,GAAW5M,EAAgD3D,EACtDu2C,EAAKh9C,EAAM7I,OAAQ6lD,KAAO,CAGjC,GADAhmC,EAAYhX,EAAMg9C,GAAI/lC,UAAUzZ,EAAUa,YACtC2Y,EAAU7f,OACZ6I,EAAMg9C,GAAI1pC,kBACV0D,EAAYhX,EAAMg9C,GAAI/lC,UAAUzZ,EAAUa,gBACrC,CACL,GAAIiC,GAAMN,EAAMg9C,GAAInxC,aAAahE,cAC7B/N,EAAOwG,EAAI+J,eAAe7M,EAAUS,gBACxC+B,GAAMg9C,GAAIznC,WAAWzb,GACrBkG,EAAMg9C,GAAIjqC,WAAWjZ,GACrBkd,GAAald,GAGf,IAAK,GAAII,GAAI,EAAGW,EAAMmc,EAAU7f,OAAY0D,EAAJX,IAAWA,EAC7C8F,EAAMg9C,GAAIhlC,YACZ5N,EAAW4M,EAAU9c,GAErBuM,EAAWnR,KAAKgmD,oBAAoBlxC,GACd,UAAlB3D,EAASzQ,KACXV,KAAKmnD,eAAeryC,EAAUpK,EAAMg9C,IAAK,EAAOv2C,EAASsc,SAChDtc,EAASsc,SAClBztB,KAAKmnD,eAAeryC,EAAUpK,EAAMg9C,GAAKv2C,EAASsc,SAK7C,IAAPloB,EACFvF,KAAKyd,WAAW/S,EAAMg9C,GAAKhmC,EAAU,KAErChX,EAAMg9C,GAAI3qC,SAAS2E,EAAU,GAAI,GACjC5M,EAAW4M,EAAUA,EAAU7f,OAAS,GACxC6I,EAAMg9C,GAAI1qC,OAAOlI,EAAUA,EAASjT,QAEhC7B,KAAK8vB,WACP9vB,KAAKkmD,UAAUxkC,EAAWhX,EAAMg9C,OAOxCjqC,WAAY,SAAS/S,EAAOlG,GAC1B,GAAIk5C,GAAkBl5C,EAAK0K,WAAahH,EAAUY,aAC9C6b,EAAkB,eAAiBngB,GAAOA,EAAKmgB,aAAc,EAC7DvE,EAAkBs9B,EAAYl5C,EAAK4P,UAAY5P,EAAKyP,KACpDo6B,EAA+B,KAAZjuB,GAAkBA,IAAYlY,EAAUS,eAE/D,IAAI0lC,GAAWqP,GAAa/4B,EAE1B,IAAMngB,EAAK4P,UAAYlM,EAAUS,gBAAmB,MAAM7H,IAE5D4J,EAAM8S,mBAAmBhZ,GACrB6pC,GAAWqP,EACbhzC,EAAM6S,UAAS,GACN8wB,IACT3jC,EAAM0S,cAAc5Y,GACpBkG,EAAM4S,YAAY9Y,KAItBojD,uBAAwB,SAAS9yC,EAAUpK,GACzC,GAAImZ,GAAYnZ,EAAM0U,YACtByE,GAAUrG,mBAAmB1I,EAE7B,IAAImM,GAAoB4C,EAAU7C,aAAatW,GAC3Cgb,EAAOzE,EAAoBA,EAAkBpe,WAAa,EAG9D,OAFAghB,GAAUpO,SAEHiQ,GAGTmiC,iBAAkB,SAASn9C,GAKzB,IAAK,GAFDyG,GAAyBuQ,EAFzB1Q,KACA82C,EAAc,OAGTJ,EAAKh9C,EAAM7I,OAAQ6lD,KAAO,CAGjC,GADAhmC,EAAYhX,EAAMg9C,GAAI/lC,UAAUzZ,EAAUa,aACrC2Y,EAAU7f,OAGb,MAFAsP,GAAWnR,KAAKgmD,oBAAoBt7C,EAAMg9C,GAAIpxC,gBAAgBmX,QAEvD,GACLupB,UAAa7lC,GACb42C,SAAYD,IACV,CAGN,KAAK,GAAmCE,GAA/BpjD,EAAI,EAAGW,EAAMmc,EAAU7f,OAA0B0D,EAAJX,IAAWA,EAC/DojD,EAAehoD,KAAK4nD,uBAAuBlmC,EAAU9c,GAAI8F,EAAMg9C,IAC/Dv2C,EAAWnR,KAAKgmD,oBAAoBtkC,EAAU9c,IAAI6oB,QAC9Ctc,GAA4B,IAAhB62C,GACdh3C,EAAUxP,KAAK2P,GAE2C,IAAtDjJ,EAAUG,IAAI83B,aAAahvB,GAAU,GAAMtP,OAC7CimD,EAAc,OACW,SAAhBA,IACTA,EAAc,WAEN32C,IACV22C,EAAc,WAMpB,MAAQ92C,GAAgB,QACtBgmC,SAAYhmC,EACZ+2C,SAAYD,IACV,GAGNG,YAAa,SAASv9C,GACpB,GACIw9C,GADAC,EAAYnoD,KAAK6nD,iBAAiBn9C,EAGlCy9C,GACyB,SAAvBA,EAAUJ,SACZ/nD,KAAK2nD,YAAYj9C,GACe,WAAvBy9C,EAAUJ,UACnBG,EAAoBnE,EAAoBoE,EAAUnR,SAAUh3C,KAAKolD,SAAUplD,KAAK8gD,SAAU9gD,KAAKojD,UAC/FpjD,KAAK2nD,YAAYj9C,GACZw9C,GACHloD,KAAKynD,aAAa/8C,KAIfq5C,EAAoBoE,EAAUnR,SAAUh3C,KAAKolD,SAAUplD,KAAK8gD,SAAU9gD,KAAKojD,WAC9EpjD,KAAK2nD,YAAYj9C,GAEnB1K,KAAKynD,aAAa/8C,IAGpB1K,KAAKynD,aAAa/8C,KAKxBxC,EAAUO,UAAU08C,YAAcA,GAEjCj9C,UAAW0B,OAOd1B,UAAUkgD,SAAW13B,KAAKpiB,QAExB2N,YAAa,SAAS4xB,GACpB7tC,KAAK6tC,OAAWA,EAChB7tC,KAAK83C,SAAWjK,EAAOiK,SACvB93C,KAAKgL,IAAWhL,KAAK83C,SAAS9sC,KAUhCq9C,QAAS,SAAS1zB,GAChB,MAAOzsB,WAAU4pB,QAAQuC,gBAAgBr0B,KAAKgL,IAAK2pB,IAWrDpC,KAAM,SAASoC,EAASrD,GACtB,GAAI9iB,GAAUtG,UAAUE,SAASusB,GAC7B1X,EAAU/U,UAAUM,KAAKmuB,MAAMjzB,WAAWpB,MAC1C6C,EAAUqJ,GAAOA,EAAI+jB,KACrB7qB,EAAU,IAWd,IAPI1H,KAAK83C,SAAS5J,sBAAwBhmC,UAAUM,KAAKmuB,OAAO,eAAgB,uBAAwB,6BAA6B1xB,SAAS0vB,KAC5I30B,KAAK83C,SAASrqB,QAAQrZ,UAAY,GAClCpU,KAAK83C,SAASrvC,UAAUgV,WAAWzd,KAAK83C,SAASrqB,UAGnDztB,KAAK6tC,OAAO7V,KAAK,0BAEb7yB,EACF8X,EAAKgyB,QAAQjvC,KAAK83C,UAClBpwC,EAASvC,EAAOrB,MAAM0K,EAAKyO,OAE3B,KAEEvV,EAAS1H,KAAKgL,IAAIioB,YAAY0B,GAAS,EAAOrD,GAC9C,MAAMxwB,IAIV,MADAd,MAAK6tC,OAAO7V,KAAK,yBACVtwB,GAaT4gD,MAAO,SAAS3zB,GACd,GAAInmB,GAAUtG,UAAUE,SAASusB,GAC7B1X,EAAU/U,UAAUM,KAAKmuB,MAAMjzB,WAAWpB,MAC1C6C,EAAUqJ,GAAOA,EAAI85C,KACzB,IAAInjD,EAEF,MADA8X,GAAKgyB,QAAQjvC,KAAK83C,UACX3yC,EAAOrB,MAAM0K,EAAKyO,EAEzB,KAEE,MAAOjd,MAAKgL,IAAImoB,kBAAkBwB,GAClC,MAAM7zB,GACN,OAAO,IAMbynD,WAAY,SAAS5zB,GACnB,GAAInmB,GAAUtG,UAAUE,SAASusB,GAC7B1X,EAAU/U,UAAUM,KAAKmuB,MAAMjzB,WAAWpB,MAC1C6C,EAAUqJ,GAAOA,EAAI+5C,UACzB,OAAIpjD,IACF8X,EAAKgyB,QAAQjvC,KAAK83C,UACX3yC,EAAOrB,MAAM0K,EAAKyO,KAElB,KAIX,SAAS/U,GACTA,EAAUE,SAASogD,MACjBj2B,KAAM,SAASulB,EAAUnjB,GACvBzsB,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,MAGpE2zB,MAAO,SAASxQ,EAAUnjB,GAMxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,QAGpEzsB,WACD,SAAUA,GAKT,QAASygD,GAAQ7Q,EAAU3U,GACzB,GAIIthC,GACA+mD,EACA/+B,EACAg/B,EACAxa,EACAya,EACAxoB,EACAyoB,EACAjqB,EAZA9zB,EAAkB8sC,EAAS9sC,IAC3Bg+C,EAAkB,qBAAuB,GAAIj6B,MAC7Ck6B,EAAkB,sBAClBrkD,EAAkB,CAatB,KAHAsD,EAAUE,SAASqgD,aAAal2B,KAAKulB,EAAUoR,EAAOC,EAAWH,EAAWC,EAAiBC,EAAOA,GAAO,GAAM,GACjHN,EAAU59C,EAAIrG,iBAAiBwkD,EAAY,IAAMH,GACjDnnD,EAAU+mD,EAAQ/mD,OACTA,EAAF+C,EAAUA,IAAK,CACpBilB,EAAS++B,EAAQhkD,GACjBilB,EAAOypB,gBAAgB,QACvB,KAAKxU,IAAKqE,GAEE,SAANrE,GACFjV,EAAO5iB,aAAa63B,EAAGqE,EAAWrE,IAKxCgqB,EAAyBj/B,EACV,IAAXhoB,IACFy+B,EAAcj4B,EAAImmC,eAAe3kB,GACjCg/B,IAAoBh/B,EAAOwJ,cAAc,KACzCgb,EAA0B,KAAhB/N,GAAsBA,IAAgBp4B,EAAUS,iBACrDkgD,GAAmBxa,IACtBhmC,EAAIkmC,eAAe1kB,EAAQsZ,EAAWzd,MAAQmE,EAAOye,MACrDygB,EAAa/9C,EAAI+J,eAAe,KAChC+iC,EAASrvC,UAAUs0C,SAASlzB,GAC5BxhB,EAAIq0B,OAAOqsB,GAAYpsB,MAAM9S,GAC7Bi/B,EAAyBC,IAG7BjR,EAASrvC,UAAUs0C,SAAS+L,GAI9B,QAASM,GAAatR,EAAU8Q,EAASzlB,GAEvC,IAAK,GADDkmB,GACKtmD,EAAI6lD,EAAQ/mD,OAAQkB,KAAM,CAGjCsmD,EAAWT,EAAQ7lD,GAAGogC,UACtB,KAAK,GAAImmB,GAAKD,EAASxnD,OAAQynD,KAC7BV,EAAQ7lD,GAAGuwC,gBAAgB+V,EAASnjD,KAAKojD,GAAIjjD,KAI/C,KAAK,GAAIy4B,KAAKqE,GACRA,EAAW50B,eAAeuwB,IAC5B8pB,EAAQ7lD,GAAGkE,aAAa63B,EAAGqE,EAAWrE,KA9D9C,GAAIoqB,GACAC,EAAY,IACZ9gD,EAAYH,EAAUG,GAmE1BH,GAAUE,SAASmhD,YAajBh3B,KAAM,SAASulB,EAAUnjB,EAASrD,GAChC,GAAIs3B,GAAU5oD,KAAKsoD,MAAMxQ,EAAUnjB,EACnC,IAAIi0B,EAAS,CAEX,KAAMt3B,IAAUA,EAAMgX,OAA4B,OAAnBsgB,EAAQ/mD,QAAsCgwB,SAAnB+2B,EAAQ/mD,QAAwB+mD,EAAQ/mD,OAAS,EAC3G,CACE,IAAI,GAAI+C,GAAE,EAAGA,EAAIgkD,EAAQ/mD,OAAQ+C,IAE/BsD,EAAUG,IAAI07B,OAAO6kB,EAAQhkD,GAE/B,QAIFkzC,EAASrvC,UAAUu3C,kBAAkB,WACnCoJ,EAAatR,EAAU8Q,EAASt3B,SAI9BA,IAASA,EAAMgX,OACjBhX,EAA0B,gBAAZ,GAAuBA,GAAUgX,KAAMhX,GACrDq3B,EAAQ7Q,EAAUxmB,KAKxBg3B,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,QAGnEzsB,WACF,SAAUA,GAGT,QAASshD,GAAc1R,EAAU8Q,GAM/B,IALA,GAEI/+B,GACA4/B,EACAnpB,EAJAz+B,EAAU+mD,EAAQ/mD,OAClB+C,EAAU,EAIL/C,EAAF+C,EAAUA,IACfilB,EAAc++B,EAAQhkD,GACtB6kD,EAAcphD,EAAIi3B,iBAAiBzV,GAAU4U,MAAO,SACpD6B,EAAcj4B,EAAImmC,eAAe3kB,GAI7ByW,EAAY3U,MAAMtjB,EAAIuxB,SAASK,eAAiBwvB,EAElDA,EAAcphD,EAAI4hC,cAAcpgB,EAAQ,QAExCxhB,EAAI+hC,sBAAsBvgB,GAnBhC,GAAIxhB,GAAMH,EAAUG,GAwBpBH,GAAUE,SAASshD,YASjBn3B,KAAM,SAASulB,EAAUnjB,GACvB,GAAIi0B,GAAU5oD,KAAKsoD,MAAMxQ,EAAUnjB,EAC/Bi0B,IACF9Q,EAASrvC,UAAUu3C,kBAAkB,WACnCwJ,EAAc1R,EAAU8Q,MAK9BN,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,QAGnEzsB,WAMH,SAAUA,GACR,GAAImgC,GAAU,gCAEdngC,GAAUE,SAASkxC,UACjB/mB,KAAM,SAASulB,EAAUnjB,EAASg1B,GAChCzhD,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,OAAQ,qBAAuBg1B,EAAMthB,IAGzGigB,MAAO,SAASxQ,EAAUnjB,EAASg1B,GACjC,MAAOzhD,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,OAAQ,qBAAuBg1B,EAAMthB,MAGxGngC,WAEH,SAAUA,GACR,GAAImgC,GAAU,mCAEdngC,GAAUE,SAASwhD,eACjBr3B,KAAM,SAASulB,EAAUnjB,EAASg1B,GAChCA,EAAwB,gBAAV,GAAsBA,EAAKA,KAAOA,EAC3C,QAAUljD,KAAKkjD,IAClBzhD,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,QAAQ,GAAO,EAAO,aAAeg1B,EAAMthB,IAIjHigB,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,QAAQ,GAAO,EAAO,YAAa0T,IAGrGkgB,WAAY,SAASzQ,EAAUnjB,GAC7B,GACI+jB,GADAmR,EAAK7pD,KAAKsoD,MAAMxQ,EAAUnjB,EAO9B,OAHIk1B,IAAM3hD,EAAUM,KAAK/G,OAAOooD,GAAIlnD,YAChCknD,EAAKA,EAAG,IAERA,IACFnR,EAAWmR,EAAGhjD,aAAa,UAElBqB,EAAUI,OAAO4yC,YAAYS,cAAcjD,IAG/C,KAGVxwC,WAMH,SAAUA,GACR,GAAImgC,GAAU,0BAEdngC,GAAUE,SAAS0hD,WACjBv3B,KAAM,SAASulB,EAAUnjB,EAAS0kB,GAChCnxC,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,OAAQ,iBAAmB0kB,EAAOhR,IAGtGigB,MAAO,SAASxQ,EAAUnjB,EAAS0kB,GACjC,MAAOnxC,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,OAAQ,iBAAmB0kB,EAAOhR,MAGrGngC,WAMH,SAAUA,GACR,GAAImgC,GAAU,+BAEdngC,GAAUE,SAAS2hD,gBACjBx3B,KAAM,SAASulB,EAAUnjB,EAAS0kB,GAChC,GACI2Q,GADAC,EAAa/hD,EAAUI,OAAO4yC,YAAYC,WAA6B,gBAAX,GAAuB,SAAW9B,EAAMA,MAAQ,SAAWA,EAAO,QAG9H4Q,KACFD,EAAY,cAAgBC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,KAChE,IAAjBA,EAAU,KACZD,GAAa,eAAiBC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,MAE9G/hD,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,QAAQ,GAAO,EAAOq1B,EAAW3hB,KAIvGigB,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,QAAQ,GAAO,EAAO,QAAS0T,IAGjGkgB,WAAY,SAASzQ,EAAUnjB,EAASnqB,GACtC,GACI0/C,GADAL,EAAK7pD,KAAKsoD,MAAMxQ,EAAUnjB,EAO9B,OAJIk1B,IAAM3hD,EAAUM,KAAK/G,OAAOooD,GAAIlnD,YAClCknD,EAAKA,EAAG,IAGNA,IACFK,EAAWL,EAAGhjD,aAAa,SACvBqjD,GACEA,IACFl1C,IAAM9M,EAAUI,OAAO4yC,YAAYC,WAAW+O,EAAU,SACjDhiD,EAAUI,OAAO4yC,YAAYQ,aAAa1mC,IAAKxK,KAIrD,KAIVtC,WAEH,SAAUA,GACR,GAAImgC,GAAU,0CAEdngC,GAAUE,SAAS+hD,cACjB53B,KAAM,SAASulB,EAAUnjB,EAAS0kB,GAChC,GACI2Q,GADAC,EAAa/hD,EAAUI,OAAO4yC,YAAYC,WAA6B,gBAAX,GAAuB,oBAAsB9B,EAAMA,MAAQ,oBAAsBA,EAAO,mBAGpJ4Q,KACFD,EAAY,yBAA2BC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,KAC3E,IAAjBA,EAAU,KACZD,GAAa,0BAA4BC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,MAEzH/hD,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,QAAQ,GAAO,EAAOq1B,EAAW3hB,KAIvGigB,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,QAAQ,GAAO,EAAO,mBAAoB0T,IAG5GkgB,WAAY,SAASzQ,EAAUnjB,EAASnqB,GACtC,GACI0/C,GADAL,EAAK7pD,KAAKsoD,MAAMxQ,EAAUnjB,GAE1B3f,GAAM,CAMV,OAJI60C,IAAM3hD,EAAUM,KAAK/G,OAAOooD,GAAIlnD,YAClCknD,EAAKA,EAAG,IAGNA,IACFK,EAAWL,EAAGhjD,aAAa,WAEzBmO,EAAM9M,EAAUI,OAAO4yC,YAAYC,WAAW+O,EAAU,oBACjDhiD,EAAUI,OAAO4yC,YAAYQ,aAAa1mC,EAAKxK,KAGnD,KAIVtC,WAMH,SAAUA,GASR,QAASkiD,GAAQtS,GAMf,IAAK,GALDj9B,GAAYi9B,EAASrqB,QACrB48B,EAAcxvC,EAAUlW,iBAAiB2lD,gBACzChM,EAAczjC,EAAUlW,iBAAiBmzC,EAAS9rC,OAAOu+C,8BACzDvT,EAAW9uC,EAAUM,KAAKmuB,MAAM0zB,GAAaxzB,QAAQynB,GAEhD15C,EAAIoyC,EAASn1C,OAAQ+C,KACE,KAA1BoyC,EAASpyC,GAAGwP,WACd4iC,EAASpyC,GAAGF,WAAW4Z,YAAY04B,EAASpyC,IAKlD,QAAS4lD,GAAgB1S,GACvB,MAAOA,GAAS9rC,OAAOw+B,cAAgB,MAAQ,IAIjD,QAASigB,GAAejmD,EAAMqW,EAAW6vC,GAIvC,IAHA,GAAI35C,GAAIvM,EACJmtB,EAAQ,KAEL5gB,GAAK8J,GAAa9J,IAAM8J,GACV,IAAf9J,EAAE7B,UAAkB6B,EAAE9M,QAAQymD,EAAYJ,eAAiBK,KAC7Dh5B,EAAQ5gB,GAEVA,EAAIA,EAAErM,UAGR,OAAOitB,GAMT,QAASi5B,GAAsBn9B,EAAS5e,EAASipC,GAwB/C,MAtBKrqB,KACHA,EAAUqqB,EAAS9sC,IAAInG,cAAcgK,EAAQhC,UAAY29C,EAAgB1S,IAEzErqB,EAAQze,YAAY8oC,EAAS9sC,IAAI+J,eAAe7M,EAAUS,mBAGxDkG,EAAQhC,UAAY4gB,EAAQ5gB,WAAagC,EAAQhC,WACnD4gB,EAAUplB,EAAI4hC,cAAcxc,EAAS5e,EAAQhC,WAI3CgC,EAAQ6vB,cACVjR,EAAQ4B,UAAY5B,EAAQ4B,UAAUpvB,QAAQ4O,EAAQ6vB,YAAa,KAEjE7vB,EAAQwgB,WACV5B,EAAQ1oB,UAAUC,IAAI6J,EAAQwgB,WAG5BxgB,EAAQ8vB,eAA+C,mBAAvB9vB,GAAQmwB,aAC1CvR,EAAQyB,MAAMhnB,EAAU4pB,QAAQ4E,YAAY7nB,EAAQ8vB,gBAAkB9vB,EAAQmwB,YAGzEvR,EAKT,QAASo9B,GAAyBp9B,EAAS5e,EAASipC,GAClD,GAAI5oB,EAEArgB,GAAQ8vB,gBACVlR,EAAQyB,MAAMhnB,EAAU4pB,QAAQ4E,YAAY7nB,EAAQ8vB,gBAAkB,IAEpE9vB,EAAQwgB,WACV5B,EAAQ1oB,UAAUyC,OAAOqH,EAAQwgB,WAG/BxgB,EAAQ6vB,cACVjR,EAAQ4B,UAAY5B,EAAQ4B,UAAUpvB,QAAQ4O,EAAQ6vB,YAAa,KAI/B,OAAlCjR,EAAQ5mB,aAAa,UAA8D,KAAzC4mB,EAAQ5mB,aAAa,SAAS/G,QAC1E2tB,EAAQ6lB,gBAAgB,SAGtBzkC,EAAQhC,UAAY4gB,EAAQ5gB,WAAagC,EAAQhC,WACnDqiB,EAAQzB,EAAQ5mB,aAAa,SACxBqoB,GAA0B,KAAjBA,EAAMpvB,OAGlB2tB,EAAUplB,EAAI4hC,cAAcxc,EAAS+8B,EAAgB1S,IAFrDzvC,EAAI07B,OAAOtW,IAOuB,OAAlCA,EAAQ5mB,aAAa,UAA8D,KAAzC4mB,EAAQ5mB,aAAa,SAAS/G,QAC1E2tB,EAAQ6lB,gBAAgB,SAM5B,QAASwX,GAAwBr9B,GAG/B,IAAK,GAFDs9B,GAAgBt9B,EAAQ9oB,iBAAiB2lD,oBAEpC1lD,EAAImmD,EAAclpD,OAAQ+C,KAC5BmmD,EAAcnmD,GAAGiN,aAAyD,IAA1Ck5C,EAAcnmD,GAAGiN,YAAY3C,UAA4D,OAA1C67C,EAAcnmD,GAAGiN,YAAYhF,UACrC,MAArEk+C,EAAcnmD,GAAGwP,WAAa22C,EAAcnmD,GAAGm2B,WAAWj7B,QAC7DirD,EAAcnmD,GAAGF,WAAWoN,aAAai5C,EAAcnmD,GAAG2N,cAAc1N,cAAc,MAAOkmD,EAAcnmD,GAAGiN,aAGlH3J,EAAUG,IAAI07B,OAAOgnB,EAAcnmD,IAKvC,QAASomD,GAAiBtgD,EAAOotC,GAC/B,GAAItzC,EAEJ,OAAIkG,GAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAepH,UAAkBxE,EAAM4L,iBAAmB5L,EAAM6L,kBAC5F7L,EAAM4L,eAAezC,aAAenJ,EAAM4L,eAAegK,WAAiC,IAApB5V,EAAM0M,WAC1E1M,EAAM4L,iBAAmBwhC,EAASrqB,UACpC/iB,EAAMyS,eAAezS,EAAM4L,gBAC3B5L,EAAM4S,YAAY5S,EAAM6L,gBAM1B7L,EAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAepH,UAAkD,IAAhCxE,EAAM6L,aAAarH,cAChFxE,EAAM4L,eAAezC,aAAenJ,EAAM6L,cAAoC,IAApB7L,EAAM0M,WAC9D1M,EAAM4L,iBAAmBwhC,EAASrqB,SACpC/iB,EAAM4S,YAAY5S,EAAM4L,iBAM1B5L,EAAM6L,cAAgD,IAAhC7L,EAAM6L,aAAarH,UAAoD,IAAlCxE,EAAM4L,eAAepH,cAC9ExE,EAAM6L,aAAa1C,aAAenJ,EAAM4L,gBAAsC,IAApB5L,EAAM0M,WAC9D1M,EAAM6L,eAAiBuhC,EAASrqB,SAClC/iB,EAAMyS,eAAezS,EAAM6L,eAO7B7L,EAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAepH,UAAkBxE,EAAM4L,iBAAmB5L,EAAM6L,cAAgB7L,EAAM4L,eAAe5R,gBACjIgG,EAAM4L,eAAe5R,WAAWmP,aAAenJ,EAAM4L,gBAAkB5L,EAAM0M,WAAa1M,EAAM6L,aAAa1U,QAAgC,IAAtB6I,EAAMyM,cAC/H3S,EAAOkG,EAAM4L,eAAe5R,WACxBF,IAASszC,EAASrqB,UACpB/iB,EAAMyS,eAAe3Y,GACrBkG,EAAM4S,YAAY9Y,MALxB,OAcF,QAASymD,GAAqBvgD,EAAOmE,EAASq8C,EAAapT,GACzD,GAAIqT,GAAiB,EAAYjjD,EAAUM,KAAK/G,OAAOoN,GAASqR,OAAM,GAAQ,IAC1EirC,KACFA,EAAet+C,SAAWs+C,EAAet+C,UAAYq+C,GAAeV,EAAgB1S,IAEtFkT,EAAiBtgD,EAAOotC,EAExB,IAMIj3C,GAASuqD,EAAQ3T,EANjBv0C,EAAIwH,EAAM0U,aACVisC,EAAsBnoD,EAAEoT,eACxB8J,EAAUld,EAAE0a,kBACZrJ,EAAWujC,EAAS9sC,IAAIwJ,yBACxB82C,GAAkBH,GAAmC,eAAhBD,GAAgCC,EAAet+C,UAAwC,eAA5Bs+C,EAAet+C,SAC/G0+C,EAAkBd,EAAeY,EAAqBvT,EAASrqB,QAAS69B,EAG5E,IAAIz8C,GAAWA,EAAQhC,UAAiC,eAArBgC,EAAQhC,SAA2B,CACpE,GAAI2+C,GAAQZ,EAAsB,KAAM/7C,EAASipC,EACjD0T,GAAMx8C,YAAYoR,GAClB7L,EAASvF,YAAYw8C,GACrBJ,GAAUI,OACL,CAEL,GAAKprC,EAAQvM,WAIX,KAAMuM,EAAQvM,YAEZ,GAAmC,GAA/BuM,EAAQvM,WAAW3E,UAAiBkR,EAAQvM,WAAW5P,QAAQqmD,gBAEjE,GAAIz7C,EAEF+7C,EAAsBxqC,EAAQvM,WAAYhF,EAASipC,GAC/C13B,EAAQvM,WAAW5P,QAAQ0mD,IAC7BG,EAAwB1qC,EAAQvM,YAElCU,EAASvF,YAAYoR,EAAQvM,gBAExB,CAELi3C,EAAwB1qC,EAAQvM,YAChC4jC,EAAWvvC,EAAUG,IAAI07B,OAAO3jB,EAAQvM,WACxC,KAAK,GAAI5Q,GAAI,EAAGstC,EAAOkH,EAAS51C,OAAY0uC,EAAJttC,EAAUA,IAChDsR,EAASvF,YAAYyoC,EAASx0C,GAG5BsR,GAAStF,WAAWpN,OAAS,GAC/B0S,EAASvF,YAAY8oC,EAAS9sC,IAAInG,cAAc,WAKpD,IAAIgK,EAAS,CAGX,IADAhO,EAAU+pD,EAAsB,KAAMO,EAAgBrT,GAChD13B,EAAQvM,aAA+C,IAAhCuM,EAAQvM,WAAW3E,WAAmBkR,EAAQvM,WAAW5P,QAAQqmD,kBACzD,GAA/BlqC,EAAQvM,WAAW3E,UAAiBrO,EAAQoD,QAAQ0mD,IACtDG,EAAwB1qC,EAAQvM,YAElChT,EAAQmO,YAAYoR,EAAQvM,WAE9BU,GAASvF,YAAYnO,OAIc,IAA/Buf,EAAQvM,WAAW3E,UACrB47C,EAAwB1qC,EAAQvM,YAElCU,EAASvF,YAAYoR,EAAQvM,gBA7CnCU,GAASvF,YAAY47C,EAAsB,KAAM/7C,EAASipC,GAoD5DsT,GAASljD,EAAUM,KAAKmuB,MAAMpiB,EAAStF,YAAY3M,MAWrD,MARIipD,GAEFzT,EAASrvC,UAAUi4C,oBAAoB6K,EAAiBh3C,GAGxDrR,EAAE+c,WAAW1L,GAGR62C,EAIT,QAASK,GAAuBh+B,EAASqqB,GACvC,GAAIpzC,GAAawD,EAAUG,IAAIi3B,iBAAiB7R,GAC1CgR,MAAO6rB,gBACN,KAAMxS,EAASrqB,QAEtB,OAAO,GAAe/oB,EAAWmI,SAAW,KAtQ9C,GAAIxE,GAAMH,EAAUG,IAGhBsiD,EAA4B,gCAC5BL,gBAAiB,kDAqQrBpiD,EAAUE,SAASmsB,aACjBhC,KAAM,SAASulB,EAAUnjB,EAAS9lB,GAChC,GACiBya,GAAQ5e,EAAO8F,EAAQ4R,EAAUkmC,EAD9CoD,IAWJ,IAPuB,gBAAZ78C,KACTA,GACEhC,SAAUgC,EAAQ8wB,gBAKlB9wB,GAAWA,EAAQrJ,SACrB8iD,EAAQtoD,KAAKsoD,MAAMxQ,EAAUnjB,EAAS9lB,IAC3B,CACTuT,EAAWxY,MAAMsmB,cAAc4nB,EAASvqC,IACxC,KAAK,GAAIuxB,KAAKwpB,GACZuC,EAAyBvC,EAAMxpB,GAAIjwB,EAASipC,GAMlD,IAAKwQ,EAAO,CAENxQ,EAASrvC,UAAU8b,gBACrB/T,EAAStI,EAAUG,IAAIi3B,iBAAiBwY,EAASrvC,UAAUs1C,eAAe,GAAGznC,gBAC3EmoB,MAAO6rB,gBACN,KAAMxS,EAASrqB,SACdjd,GACF4R,EAAWxY,MAAMsmB,cAAc4nB,EAASvqC,KACxC7C,EAAQotC,EAASrvC,UAAUiE,cAC3BhC,EAAM+S,WAAWjN,GACjBsnC,EAASrvC,UAAU8zC,aAAa7xC,IACtBotC,EAASzJ,YACnBjsB,EAAWxY,MAAMsmB,cAAc4nB,EAASvqC,KACxCuqC,EAASrvC,UAAU84C,eAKvBj4B,EAASwuB,EAASrvC,UAAUs1C,cAC5B,KAAK,GAAIn5C,GAAI0kB,EAAOznB,OAAQ+C,KAC1B8mD,EAAmBA,EAAiB3nD,OAAOknD,EAAqB3hC,EAAO1kB,GAAIiK,EAAS48C,EAAuBniC,EAAO1kB,GAAG0R,eAAgBwhC,GAAWA,IAMpJsS,EAAQtS,GAEJ11B,EACFxY,MAAMymB,iBAAiBjO,IAEvB1X,EAAQotC,EAASrvC,UAAUiE,cAC3BhC,EAAMyS,eAAeuuC,EAAiB,IACtChhD,EAAM4S,YAAYouC,EAAiBA,EAAiB7pD,OAAS,IAC7Di2C,EAASrvC,UAAU8zC,aAAa7xC,IAGlCxC,EAAUG,IAAIkwC,sBAAsBT,EAASrqB,UAK/C66B,MAAO,SAASxQ,EAAUnjB,EAAS6J,GAGP,gBAAfA,KACTA,GACEC,MAAOD,GAWX,KAAK,GAHDhuB,GAJA/L,EAAQqzC,EAASrvC,UAAU21C,eAAe,SAAW3wB,GACnD,MAAOvlB,GAAUG,IAAI01B,QAAQtQ,GAAShnB,KAAK+3B,IAAgBC,MAAO6rB,kBACjEjnD,KAAKrD,OACR2rD,EAAc7T,EAASrvC,UAAUq1C,sBAI5Bl5C,EAAI,EAAGq5C,EAAO0N,EAAY9pD,OAAYo8C,EAAJr5C,EAAUA,IACnD4L,EAASnI,EAAIi3B,iBAAiBqsB,EAAY/mD,GAAI45B,IAAgBC,MAAO6rB,gBAAkB,KAAMxS,EAASrqB,SAClGjd,GAAoC,KAA1B/L,EAAM3B,QAAQ0N,IAC1B/L,EAAMjD,KAAKgP,EAIf,OAAyB,KAAjB/L,EAAM5C,QAAgB,EAAQ4C,KAIzCyD,WASF,SAASA,GACRA,EAAUE,SAASwjD,YAEjBr5B,KAAM,SAASulB,EAAUnjB,EAASk3B,GAChC,GACIvlD,GAAMoE,EAAOohD,EADbC,EAAM/rD,KAAKsoD,MAAMxQ,EAEjBiU,GAEFjU,EAASrvC,UAAUu3C,kBAAkB,WACnC15C,EAAOylD,EAAI14B,cAAc,QACzBnrB,EAAUG,IAAI+hC,sBAAsB2hB,GAChCzlD,GACF4B,EAAUG,IAAI+hC,sBAAsB9jC,MAKxCoE,EAAQotC,EAASrvC,UAAU6zC,WAC3BwP,EAAgBphD,EAAMkT,kBACtBmuC,EAAMjU,EAAS9sC,IAAInG,cAAc,OACjCyB,EAAOwxC,EAAS9sC,IAAInG,cAAc,QAE9BgnD,IACFvlD,EAAK+oB,UAAYw8B,GAGnBE,EAAI/8C,YAAY1I,GAChBA,EAAK0I,YAAY88C,GACjBphD,EAAMuV,WAAW8rC,GACjBjU,EAASrvC,UAAUgV,WAAWsuC,KAIlCzD,MAAO,SAASxQ,GACd,GAAIkU,GAAelU,EAASrvC,UAAUm1C,iBACtC,OAAIoO,IAAgBA,EAAan/C,UAAqC,OAAzBm/C,EAAan/C,UACtDm/C,EAAan4C,YAAcm4C,EAAan4C,WAAWhH,UAAgD,QAApCm/C,EAAan4C,WAAWhH,SAClFm/C,EAEA9jD,EAAUG,IAAIi3B,iBAAiB0sB,GAAgBvtB,MAAO,gBAInEv2B,WAkCF,SAAUA,GAUR,QAAS+jD,GAAa94C,GACpB,GAAI+4C,GAAQC,EAAch5C,EAC1B,OAAO+4C,IAAS/4C,EAAQrG,cAAeo/C,EAAMp/C,gBAAkBqG,EAAQrG,eAGzE,QAASs/C,GAAYj5C,EAASkc,EAAWqP,EAAaoiB,EAAUuL,EAAaxxC,GAC3E,GAAIyxC,GAAan5C,CAajB,OAXIkc,KACFi9B,GAAc,IAAMj9B,GAElByxB,IACFwL,GAAc,IAAMxL,GAGjByL,EAAYD,KACfC,EAAYD,GAAc,GAAIpkD,GAAUO,UAAU08C,YAAY8G,EAAa94C,GAAUkc,EAAWqP,GAAa,EAAMoiB,EAAUuL,EAAaxxC,IAGrI0xC,EAAYD,GA5BrB,GACIH,IACEK,OAAU,IACVC,GAAU,IACVC,EAAU,SACV9nD,EAAU,MAEZ2nD,IAwBJrkD,GAAUE,SAASqgD,cACjBl2B,KAAM,SAASulB,EAAUnjB,EAASxhB,EAASkc,EAAWqP,EAAaoiB,EAAUuL,EAAaM,EAAmBC,GAC3G,GAAIliD,GAAQotC,EAASrvC,UAAUiE,cAC3BmgD,EAAY/U,EAASrvC,UAAUs1C,cAEnC,OAAK8O,IAAiC,GAApBA,EAAUhrD,QAG5Bi2C,EAASrvC,UAAUse,eAAewE,kBAElC6gC,EAAYj5C,EAASkc,EAAWqP,EAAaoiB,EAAUuL,EAAavU,EAASrqB,SAASw6B,YAAY4E,QAE7FF,EAYOC,GACV9U,EAASxV,WAZT53B,EAAMqS,SAAS8vC,EAAU,GAAGv2C,eAAiBu2C,EAAU,GAAG11C,aAC1DzM,EAAMsS,OACJ6vC,EAAUA,EAAUhrD,OAAS,GAAG0U,aAChCs2C,EAAUA,EAAUhrD,OAAS,GAAGuV,WAElC0gC,EAASrvC,UAAU8zC,aAAa7xC,GAChCotC,EAASrvC,UAAUu3C,kBAAkB,WAC9B4M,GACH9U,EAASxV,YAEV,GAAM,OAjBF,GA0BXomB,eAAgB,SAAS5Q,EAAUnjB,EAASxhB,EAASkc,EAAWqP,EAAaoiB,EAAUuL,GACrF,GAAI5gB,GAAOzrC,IAEX,IAAIA,KAAKsoD,MAAMxQ,EAAUnjB,EAASxhB,EAASkc,EAAWqP,EAAaoiB,EAAUuL,IAC3EvU,EAASrvC,UAAU8b,gBAClBuzB,EAASrvC,UAAU42C,2BACnBvH,EAASrvC,UAAU+2C,0BACpB,CACA,GAAIsN,GAAgBrhB,EAAK6c,MAAMxQ,EAAUnjB,EAASxhB,EAASkc,EAAWqP,GAAa,EACnFoZ,GAASrvC,UAAUs3C,uBAAuB,WAC3B+M,EAAcpoD,UAC3BozC,GAASrvC,UAAUgV,WAAWqvC,GAAe,GAC7C5kD,EAAUE,SAASqgD,aAAal2B,KAAKulB,EAAUnjB,EAASxhB,EAASkc,EAAWqP,EAAaoiB,EAAUuL,GAAa,GAAM,SAGpHrsD,MAAKsoD,MAAMxQ,EAAUnjB,EAASxhB,EAASkc,EAAWqP,EAAaoiB,EAAUuL,KAAiBvU,EAASrvC,UAAU8b,cAC/GuzB,EAASrvC,UAAUs3C,uBAAuB,WACxC73C,EAAUE,SAASqgD,aAAal2B,KAAKulB,EAAUnjB,EAASxhB,EAASkc,EAAWqP,EAAaoiB,EAAUuL,GAAa,GAAM,KAGxHnkD,EAAUE,SAASqgD,aAAal2B,KAAKulB,EAAUnjB,EAASxhB,EAASkc,EAAWqP,EAAaoiB,EAAUuL,IAKzG/D,MAAO,SAASxQ,EAAUnjB,EAASxhB,EAASkc,EAAWqP,EAAaoiB,EAAUuL,GAC5E,GAEIQ,GAAW1E,EAFXn9C,EAAgB8sC,EAAS9sC,IACzB+hD,EAAgBZ,EAAch5C,IAAYA,CAI9C,OAAKjL,GAAUG,IAAIk4B,sBAAsBv1B,EAAKmI,IACzCjL,EAAUG,IAAIk4B,sBAAsBv1B,EAAK+hD,GAK1C19B,IAAcnnB,EAAUG,IAAIw4B,wBAAwB71B,EAAKqkB,IACnD,GAGVw9B,EAAY/U,EAASrvC,UAAUs1C,eAE1B8O,GAAkC,IAArBA,EAAUhrD,QAI5BsmD,EAAYiE,EAAYj5C,EAASkc,EAAWqP,EAAaoiB,EAAUuL,EAAavU,EAASrqB,SAASo6B,iBAAiBgF,GAE3G1E,GAAaA,EAAUnR,SAAYmR,EAAUnR,UAAW,IALvD,IAXA,KAmBZ9uC,WACF,SAAUA,GAET,GAAI24C,IACFh0C,SAAU,aACVrH,QAAQ,EAGV0C,GAAUE,SAAS4kD,kBACjBz6B,KAAM,SAASulB,GACb,MAAO5vC,GAAUE,SAASmsB,YAAYhC,KAAKulB,EAAU,cAAe+I,IAGtEyH,MAAO,SAASxQ,GACd,MAAO5vC,GAAUE,SAASmsB,YAAY+zB,MAAMxQ,EAAU,cAAe+I,MAIxE34C,WACD,SAASA,GACTA,EAAUE,SAASssB,YACjBnC,KAAM,SAASulB,EAAUnjB,EAASgF,GAC5Bme,EAAS1vC,SAASigD,QAAQ1zB,GAC5BmjB,EAAS9sC,IAAIioB,YAAY0B,GAAS,EAAOgF,GAEzCme,EAASrvC,UAAUisB,WAAWiF,IAIlC2uB,MAAO,WACL,OAAO,KAGXpgD,WACD,SAAUA,GACT,GAAIihD,GAAY,KAEhBjhD,GAAUE,SAAS6kD,aAWjB16B,KAAM,SAASulB,EAAUnjB,EAASrD,GAChCA,EAA0B,gBAAZ,GAAuBA,GAAUqW,IAAKrW,EAEpD,IAEIxc,GACAtE,EAHAxF,EAAU8sC,EAAS9sC,IACnBkiD,EAAUltD,KAAKsoD,MAAMxQ,EAKzB,IAAIoV,IAAU57B,EAAMqW,IAclB,MAbAmQ,GAASrvC,UAAU+zC,UAAU0Q,GAC7B18C,EAAS08C,EAAMxoD,WACf8L,EAAO8N,YAAY4uC,GAGnBhlD,EAAUG,IAAI2hC,qBAAqBx5B,GACX,MAApBA,EAAO3D,UAAqB2D,EAAOqD,aACrCikC,EAASrvC,UAAUs0C,SAASvsC,GAC5BA,EAAO9L,WAAW4Z,YAAY9N,QAIhCtI,GAAUI,OAAOsxC,OAAO9B,EAASrqB,QAKnC,IAAIy/B,EACF,IAAK,GAAIx7B,KAAOJ,GACVA,EAAM/iB,eAAemjB,IACvBw7B,EAAMjmD,aAAqB,cAARyqB,EAAsB,QAAUA,EAAKJ,EAAMI,QAHpE,CAUAw7B,EAAQliD,EAAInG,cAAcskD,EAE1B,KAAK,GAAIvkD,KAAK0sB,GACZ47B,EAAMjmD,aAAmB,cAANrC,EAAoB,QAAUA,EAAG0sB,EAAM1sB,GAG5DkzC,GAASrvC,UAAUwX,WAAWitC,GAC1BhlD,EAAU4pB,QAAQqE,mCACpBrhB,EAAW9J,EAAI+J,eAAe7M,EAAUS,iBACxCmvC,EAASrvC,UAAUwX,WAAWnL,GAC9BgjC,EAASrvC,UAAUs0C,SAASjoC,IAE5BgjC,EAASrvC,UAAUs0C,SAASmQ,KAIhC5E,MAAO,SAASxQ,GACd,GACIkU,GACAtmC,EACAynC,EAHAniD,EAAM8sC,EAAS9sC,GAKnB,OAAK9C,GAAUG,IAAIk4B,sBAAsBv1B,EAAKm+C,KAI9C6C,EAAelU,EAASrvC,UAAUm1C,mBAK9BoO,EAAan/C,WAAas8C,EAErB6C,EAGLA,EAAa98C,WAAahH,EAAUY,cAC/B,GAGT4c,EAAOoyB,EAASrvC,UAAU25C,WAC1B18B,EAAOxd,EAAUM,KAAK0wB,OAAOxT,GAAM5lB,SAE1B,GAGTqtD,EAAoBrV,EAASrvC,UAAUkZ,SAASzZ,EAAUY,aAAc,SAAStE,GAC/E,MAAyB,QAAlBA,EAAKqI,WAGmB,IAA7BsgD,EAAkBtrD,QACb,EAGFsrD,EAAkB,MA/BhB,KAkCZjlD,WACF,SAAUA,GACT,GAAIklD,GAAa,QAAUllD,EAAU4pB,QAAQ8D,2BAA6B,IAAM,GAEhF1tB,GAAUE,SAASilD,iBACjB96B,KAAM,SAASulB,EAAUnjB,GACnBmjB,EAAS1vC,SAASigD,QAAQ1zB,IAC5BmjB,EAAS9sC,IAAIioB,YAAY0B,GAAS,EAAO,MACpCzsB,EAAU4pB,QAAQwD,sBACrBwiB,EAASrvC,UAAUy4C,kBAGrBpJ,EAAS1vC,SAASmqB,KAAK,aAAc66B,IAIzC9E,MAAO,WACL,OAAO,KAGVpgD,WACD,SAASA,GACTA,EAAUE,SAASqsB,mBACjBlC,KAAM,SAASulB,EAAUnjB,GACvBzsB,EAAUE,SAASklD,WAAW/6B,KAAKulB,EAAUnjB,EAAS,OAGxD2zB,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASklD,WAAWhF,MAAMxQ,EAAUnjB,EAAS,SAGlEzsB,WACA,SAASA,GACTA,EAAUE,SAASosB,qBACjBjC,KAAM,SAASulB,EAAUnjB,GACvBzsB,EAAUE,SAASklD,WAAW/6B,KAAKulB,EAAUnjB,EAAS,OAGxD2zB,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASklD,WAAWhF,MAAMxQ,EAAUnjB,EAAS,SAGlEzsB,WACDA,UAAUE,SAASklD,WAAa,SAAUplD,GAEzC,GAAIqlD,GAAS,SAAS/oD,EAAM6B,GAC1B,GAAI7B,GAAQA,EAAKqI,SAAU,CACL,gBAATxG,KACTA,GAAQA,GAEV,KAAK,GAAI0K,GAAI1K,EAAKxE,OAAQkP,KACxB,GAAIvM,EAAKqI,WAAaxG,EAAK0K,GACzB,OAAO,EAIb,OAAO,GAGLy8C,EAAa,SAAShpD,EAAMqI,EAAUirC,GACxC,GAAI9I,IACEjgC,GAAI,KACJ0+C,OAAO,EAGb,IAAIjpD,EAAM,CACR,GAAIkpD,GAAWxlD,EAAUG,IAAIi3B,iBAAiB96B,GAAQi6B,MAAO,OACzDkvB,EAA8B,OAAb9gD,EAAqB,KAAO,IAE7C0gD,GAAO/oD,EAAMqI,GACfmiC,EAAIjgC,GAAKvK,EACA+oD,EAAO/oD,EAAMmpD,GACtB3e,GACEjgC,GAAIvK,EACJipD,OAAO,GAEAC,IACLH,EAAOG,EAAShpD,WAAYmI,GAC9BmiC,EAAIjgC,GAAK2+C,EAAShpD,WACT6oD,EAAOG,EAAShpD,WAAYipD,KACrC3e,GACEjgC,GAAK2+C,EAAShpD,WACd+oD,OAAO,KAWf,MAJIze,GAAIjgC,KAAO+oC,EAASrqB,QAAQxoB,SAAS+pC,EAAIjgC,MAC3CigC,EAAIjgC,GAAK,MAGJigC,GAGL4e,EAAqB,SAAS7+C,EAAIlC,EAAUirC,GAC9C,GACgB+V,GADZF,EAA8B,OAAb9gD,EAAqB,KAAO,IAMjDirC,GAASrvC,UAAUu3C,kBAAkB,WACnC,GAAI8N,GAAaC,EAAoBJ,EAAe7V,EACpD,IAAIgW,EAAWjsD,OACb,IAAK,GAAIyF,GAAIwmD,EAAWjsD,OAAQyF,KAC9BY,EAAUG,IAAI4hC,cAAc6jB,EAAWxmD,GAAIuF,EAASC,mBAEjD,CACL+gD,EAAaE,GAAqB,KAAM,MAAOjW,EAC/C,KAAK,GAAIlzC,GAAIipD,EAAWhsD,OAAQ+C,KAC9BsD,EAAUG,IAAIkiC,YAAYsjB,EAAWjpD,GAAIkzC,EAAS9rC,OAAOw+B,cAE3DtiC,GAAUG,IAAIkiC,YAAYx7B,EAAI+oC,EAAS9rC,OAAOw+B,mBAKhDwjB,EAAuB,SAASj/C,EAAIlC,EAAUirC,GAChD,GAAI6V,GAA8B,OAAb9gD,EAAqB,KAAO,IAMjDirC,GAASrvC,UAAUu3C,kBAAkB,WAInC,IAAK,GAHDiO,IAAel/C,GAAIhL,OAAOgqD,EAAoBJ,EAAe7V,IAGxDxwC,EAAI2mD,EAAYpsD,OAAQyF,KAC/BY,EAAUG,IAAI4hC,cAAcgkB,EAAY3mD,GAAIuF,EAASC,kBAKvDihD,EAAsB,SAASlhD,EAAUirC,GAIzC,IAAK,GAHDxuB,GAASwuB,EAASrvC,UAAUs1C,eAC5BkQ,KAEK/qD,EAAIomB,EAAOznB,OAAQqB,KAC1B+qD,EAAcA,EAAYlqD,OAAOulB,EAAOpmB,GAAGye,UAAU,GAAI,SAASnd,GAChE,MAAO+oD,GAAO/oD,EAAMqI,KAIxB,OAAOohD,IAGPC,EAAqB,SAASrhD,EAAUirC,GAE1CA,EAASrvC,UAAUs3C,uBAAuB,WACxC,GAKI1R,GAASzS,EALTuyB,EAAiB,oBAAqB,GAAIp/B,OAAOq/B,UACjDxzB,EAAckd,EAASrvC,UAAUs4C,oBAC/Bl0C,SAAY,MACZwiB,UAAa8+B,GAMnBvzB,GAAYxmB,UAAYwmB,EAAYxmB,UAAUnU,QAAQiI,EAAUU,wBAAyB,IAErFgyB,IACFyT,EAAUnmC,EAAUM,KAAKmuB,OAAO,GAAI,OAAQzuB,EAAUS,kBAAkB1D,SAAS21B,EAAYxmB,WAC7FwnB,EAAO1zB,EAAUG,IAAIqzB,cAAcd,EAAa/tB,EAASC,cAAegrC,EAAStnC,OAAOxE,OAAOu+C,8BAC3Flc,GACFyJ,EAASrvC,UAAUgV,WAAWme,EAAKvI,cAAc,OAAO,MAMhE,QACEd,KAAM,SAASulB,EAAUnjB,EAAS9nB,GAChC,GAAI7B,GAAgB8sC,EAAS9sC,IACzBqjD,EAA8B,OAAbxhD,EAAqB,oBAAsB,sBAC5Dm/C,EAAgBlU,EAASrvC,UAAUm1C,kBACnChiB,EAAgB4xB,EAAWxB,EAAcn/C,EAAUirC,EAElDlc,GAAK7sB,GAMC6sB,EAAK6xB,MACdO,EAAoBpyB,EAAK7sB,GAAIlC,EAAUirC,GAEvC8V,EAAmBhyB,EAAK7sB,GAAIlC,EAAUirC,GARlCA,EAAS1vC,SAASigD,QAAQgG,GAC5BrjD,EAAIioB,YAAYo7B,GAAK,EAAO,MAE5BH,EAAmBrhD,EAAUirC,IASnCwQ,MAAO,SAASxQ,EAAUnjB,EAAS9nB,GACjC,GAAIm/C,GAAelU,EAASrvC,UAAUm1C,kBAClChiB,EAAe4xB,EAAWxB,EAAcn/C,EAAUirC,EAEtD,OAAQlc,GAAK7sB,KAAO6sB,EAAK6xB,MAAS7xB,EAAK7sB,IAAK,KAI/C7G,WACD,SAASA,GACTA,EAAUE,SAASkmD,QACjB/7B,KAAM,SAASulB,EAAUnjB,GACvBzsB,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,MAGpE2zB,MAAO,SAASxQ,EAAUnjB,GAMxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,QAGpEzsB,WACD,SAAUA,GAET,GAAI24C,IACFxxB,UAAW,4BACXqP,YAAa,gCACbl5B,QAAQ,EAGV0C,GAAUE,SAASmmD,eACjBh8B,KAAM,SAASulB,GACb,MAAO5vC,GAAUE,SAASmsB,YAAYhC,KAAKulB,EAAU,cAAe+I,IAGtEyH,MAAO,SAASxQ,GACd,MAAO5vC,GAAUE,SAASmsB,YAAY+zB,MAAMxQ,EAAU,cAAe+I,MAIxE34C,WACF,SAAUA,GAET,GAAI24C,IACFxxB,UAAW,0BACXqP,YAAa,gCACbl5B,QAAQ,EAGV0C,GAAUE,SAASomD,aACjBj8B,KAAM,SAASulB,GACb,MAAO5vC,GAAUE,SAASmsB,YAAYhC,KAAKulB,EAAU,cAAe+I,IAGtEyH,MAAO,SAASxQ,GACd,MAAO5vC,GAAUE,SAASmsB,YAAY+zB,MAAMxQ,EAAU,cAAe+I,MAGxE34C,WACF,SAAUA,GAET,GAAI24C,IACFxxB,UAAW,2BACXqP,YAAa,gCACbl5B,QAAQ,EAGV0C,GAAUE,SAASqmD,cACjBl8B,KAAM,SAASulB,GACb,MAAO5vC,GAAUE,SAASmsB,YAAYhC,KAAKulB,EAAU,cAAe+I,IAGtEyH,MAAO,SAASxQ,GACd,MAAO5vC,GAAUE,SAASmsB,YAAY+zB,MAAMxQ,EAAU,cAAe+I,MAGxE34C,WACF,SAAUA,GAET,GAAI24C,IACFxxB,UAAW,6BACXqP,YAAa,gCACbl5B,QAAQ,EAGV0C,GAAUE,SAASsmD,aACjBn8B,KAAM,SAASulB,GACb,MAAO5vC,GAAUE,SAASmsB,YAAYhC,KAAKulB,EAAU,cAAe+I,IAGtEyH,MAAO,SAASxQ,GACd,MAAO5vC,GAAUE,SAASmsB,YAAY+zB,MAAMxQ,EAAU,cAAe+I,MAGxE34C,WACF,SAAUA,GAET,GAAI24C,IACFliB,cAAe,YACfK,WAAY,QACZx5B,QAAQ,EAGV0C,GAAUE,SAASumD,iBACjBp8B,KAAM,SAASulB,GACb,MAAO5vC,GAAUE,SAASmsB,YAAYhC,KAAKulB,EAAU,cAAe+I,IAGtEyH,MAAO,SAASxQ,GACd,MAAO5vC,GAAUE,SAASmsB,YAAY+zB,MAAMxQ,EAAU,cAAe+I,MAGxE34C,WACF,SAAUA,GAET,GAAI24C,IACFliB,cAAe,YACfK,WAAY,OACZx5B,QAAQ,EAGV0C,GAAUE,SAASwmD,gBACjBr8B,KAAM,SAASulB,GACb,MAAO5vC,GAAUE,SAASmsB,YAAYhC,KAAKulB,EAAU,cAAe+I,IAGtEyH,MAAO,SAASxQ,GACd,MAAO5vC,GAAUE,SAASmsB,YAAY+zB,MAAMxQ,EAAU,cAAe+I,MAIxE34C,WACF,SAAUA,GAET,GAAI24C,IACFliB,cAAe,YACfK,WAAY,SACZx5B,QAAQ,EAGV0C,GAAUE,SAASymD,kBACjBt8B,KAAM,SAASulB,GACb,MAAO5vC,GAAUE,SAASmsB,YAAYhC,KAAKulB,EAAU,cAAe+I,IAGtEyH,MAAO,SAASxQ,GACd,MAAO5vC,GAAUE,SAASmsB,YAAY+zB,MAAMxQ,EAAU,cAAe+I,MAIxE34C,WACD,SAASA,GACTA,EAAUE,SAAS0mD,MACjBv8B,KAAM,SAASulB,GACb,MAAOA,GAASiX,YAAYD,QAG9BxG,MAAO,WACL,OAAO,KAGXpgD,WACA,SAASA,GACTA,EAAUE,SAAS4mD,WACjBz8B,KAAM,SAASulB,EAAUnjB,GACvBzsB,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,MAGpE2zB,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,QAGpEzsB,WACA,SAASA,GACTA,EAAUE,SAAS6mD,MACjB18B,KAAM,SAASulB,GACb,MAAOA,GAASiX,YAAYE,QAG9B3G,MAAO,WACL,OAAO,KAGXpgD,WACA,SAASA,GACTA,EAAUE,SAAS8mD,aACjB38B,KAAM,SAASulB,EAAUnjB,EAASrD,GAChC,GAAIygB,GAAKjB,EAAKnX,CACd,IAAIrI,GAASA,EAAM69B,MAAQ79B,EAAM89B,MAAQxjC,SAAS0F,EAAM69B,KAAM,IAAM,GAAKvjC,SAAS0F,EAAM89B,KAAM,IAAM,EAAG,CAOrG,IALEz1B,EADErI,EAAM+9B,WACD,iBAAoB/9B,EAAM+9B,WAAa,KAEvC,UAET11B,GAAQ,UACHmX,EAAM,EAAGA,EAAMxf,EAAM89B,KAAMte,IAAQ,CAEtC,IADAnX,GAAQ,OACHoY,EAAM,EAAGA,EAAMzgB,EAAM69B,KAAMpd,IAC9BpY,GAAQ,iBAEVA,IAAQ,QAEVA,GAAQ,mBACRme,EAAS1vC,SAASmqB,KAAK,aAAcoH,KAKzC2uB,MAAO,WACL,OAAO,KAIXpgD,WACA,SAASA,GACTA,EAAUE,SAASknD,iBACjB/8B,KAAM,SAASulB,EAAUnjB,GACnBmjB,EAASyX,gBAAkBzX,EAASyX,eAAe7xC,OAASo6B,EAASyX,eAAe5xC,MAClF3d,KAAKsoD,MAAMxQ,EAAUnjB,GACvBzsB,EAAUG,IAAI4nC,MAAM2G,YAAYkB,EAASyX,eAAe7xC,OAExDxV,EAAUG,IAAI4nC,MAAM0G,kBAAkBmB,EAASyX,eAAe7xC,MAAOo6B,EAASyX,eAAe5xC,OAKnG2qC,MAAO,SAASxQ,GACd,GAAIA,EAASyX,eAAgB,CAC3B,GAAI7xC,GAAQo6B,EAASyX,eAAe7xC,MAClCC,EAAMm6B,EAASyX,eAAe5xC,GAChC,IAAID,GAASC,GAAOD,GAASC,IAEzBzV,EAAUG,IAAIxB,aAAa6W,EAAO,YAClCkO,SAAS1jB,EAAUG,IAAIxB,aAAa6W,EAAO,WAAY,IAAM,GAE7DxV,EAAUG,IAAIxB,aAAa6W,EAAO,YAClCkO,SAAS1jB,EAAUG,IAAIxB,aAAa6W,EAAO,WAAY,IAAM,GAG/D,OAAQA,GAGZ,OAAO,KAGXxV,WACA,SAASA,GACTA,EAAUE,SAASonD,eACjBj9B,KAAM,SAASulB,EAAUnjB,EAASrD,GAChC,GAAIwmB,EAASyX,gBAAkBzX,EAASyX,eAAe7xC,OAASo6B,EAASyX,eAAe5xC,IAAK,CAG3F,GAAI8xC,GAAcvnD,EAAUG,IAAI4nC,MAAMwC,mBAAmBqF,EAASyX,eAAe7xC,MAAOo6B,EAASyX,eAAe5xC,IACnG,WAAT2T,GAA8B,SAATA,EACvBppB,EAAUG,IAAI4nC,MAAMwG,SAASgZ,EAAY/xC,MAAO4T,IAC9B,SAATA,GAA6B,SAATA,IAC7BppB,EAAUG,IAAI4nC,MAAMwG,SAASgZ,EAAY9xC,IAAK2T,GAEhD2b,WAAW,WACT6K,EAASyX,eAAezmC,OAAO2mC,EAAY/xC,MAAO+xC,EAAY9xC,MAC9D,KAIN2qC,MAAO,WACL,OAAO,KAGXpgD,WACA,SAASA,GACTA,EAAUE,SAASsnD,kBACnBn9B,KAAM,SAASulB,EAAUnjB,EAASrD,GAChC,GAAIwmB,EAASyX,gBAAkBzX,EAASyX,eAAe7xC,OAASo6B,EAASyX,eAAe5xC,IAAK,CAC3F,GAEEgyC,GAFEF,EAAcvnD,EAAUG,IAAI4nC,MAAMwC,mBAAmBqF,EAASyX,eAAe7xC,MAAOo6B,EAASyX,eAAe5xC,KAC9G6Z,EAAMtvB,EAAUG,IAAI4nC,MAAMntC,QAAQ2sD,EAAY/xC,OAE9CuyB,EAAQ6H,EAASyX,eAAetf,KAElC/nC,GAAUG,IAAI4nC,MAAMyG,YAAY+Y,EAAY/xC,MAAO4T,GACnD2b,WAAW,WAET0iB,EAAUznD,EAAUG,IAAI4nC,MAAM4G,SAAS5G,EAAOzY,GAEzCm4B,IACU,OAATr+B,IACFq+B,EAAUznD,EAAUG,IAAI4nC,MAAM4G,SAAS5G,GACrCa,IAAOtZ,EAAIsZ,IAAM,EACjBiB,IAAOva,EAAIua,OAIF,UAATzgB,IACFq+B,EAAUznD,EAAUG,IAAI4nC,MAAM4G,SAAS5G,GACrCa,IAAOtZ,EAAIsZ,IACXiB,IAAOva,EAAIua,IAAM,MAInB4d,GACF7X,EAASyX,eAAezmC,OAAO6mC,EAASA,IAEzC,KAIPrH,MAAO,WACL,OAAO,KAGTpgD,WACA,SAASA,GACTA,EAAUE,SAASwnD,YACjBr9B,KAAM,SAASulB,GACb,GAAI+X,GAAU/X,EAASrvC,UAAUu2C,yBAAyB,KAC1D,OAAI6Q,GACK7vD,KAAK8vD,iBAAiBD,EAAS/X,EAASrvC,YAE1C,GAGT6/C,MAAO,WACH,OAAO,GAGXwH,iBAAkB,SAASC,EAAStnD,GAClC,GAAIunD,GAASp0B,EAAMq0B,EAAQC,EAAQC,EAC/BC,GAAQ,CAuBZ,OArBA3nD,GAAUs3C,uBAAuB,WAE/B,IAAK,GAAIn7C,GAAImrD,EAAQluD,OAAQ+C,KAC3BsrD,EAASH,EAAQnrD,GACjBorD,EAA0C,OAA/BE,EAAOxrD,WAAWmI,SAAqB,KAAO,KACzD+uB,EAAOs0B,EAAO39C,cAAc1N,cAAcmrD,GAC1CC,EAAS/nD,EAAUG,IAAI01B,QAAQmyB,GAAQhyB,MAAM3lB,WAAYrQ,EAAUY,gBACnEqnD,EAAa,EAAWF,EAAO58B,cAAc,UAAY,KAErD48B,IACEE,EACFA,EAAWnhD,YAAYkhD,IAEvBt0B,EAAK5sB,YAAYkhD,GACjBD,EAAOjhD,YAAY4sB,IAErBw0B,GAAQ,KAKPA,KAGXloD,WACA,SAASA,GAETA,EAAUE,SAASioD,aACjB99B,KAAM,SAASulB,GACb,GAAI+X,GAAU/X,EAASrvC,UAAUu2C,yBAAyB,KAC1D,OAAI6Q,GACK7vD,KAAKswD,iBAAiBT,EAAS/X,IAEjC,GAGTwQ,MAAO,WACH,OAAO,GAGXgI,iBAAkB,SAASP,EAASjY,GAClC,GAAIyY,GAAUC,EAAeC,EAA2BP,EAAQQ,EAC5DN,GAAQ,EACR3kB,EAAOzrC,IAgDX,OA9CA83C,GAASrvC,UAAUs3C,uBAAuB,WAExC,IAAK,GAAIn7C,GAAImrD,EAAQluD,OAAQ+C,KAE3B,GADAsrD,EAASH,EAAQnrD,GACbsrD,EAAOxrD,aACT6rD,EAAWL,EAAOxrD,WAEO,OAArB6rD,EAASp9C,SAAyC,OAArBo9C,EAASp9C,SAAkB,CAM1D,GALAi9C,GAAQ,EAERI,EAAgBtoD,EAAUG,IAAIi3B,iBAAiBixB,EAAS7rD,YAAc+5B,MAAO,WAAY,EAAOqZ,EAASrqB,SACzGgjC,EAAcvoD,EAAUG,IAAIi3B,iBAAiBixB,EAAS7rD,YAAc+5B,MAAO,OAAQ,EAAOqZ,EAASrqB,SAE/F+iC,GAAiBC,EAEfP,EAAOr+C,cACT6+C,EAAYjlB,EAAKklB,aAAaJ,EAAUL,GACxCA,EAAOlhD,YAAY0hD,IAErBF,EAAc1+C,aAAao+C,EAAQO,EAAY5+C,iBAE1C,CAEDq+C,EAAOr+C,cACT6+C,EAAYjlB,EAAKklB,aAAaJ,EAAUL,GACxCA,EAAOlhD,YAAY0hD,GAGrB,KAAK,GAAI5xB,GAAIoxB,EAAOjhD,WAAWpN,OAAQi9B,KACrCyxB,EAAS7rD,WAAWoN,aAAao+C,EAAOjhD,WAAW6vB,GAAIyxB,EAAS1+C,YAGlE0+C,GAAS7rD,WAAWoN,aAAazQ,SAASwD,cAAc,MAAO0rD,EAAS1+C,aACxEq+C,EAAOxrD,WAAW4Z,YAAY4xC,GAKG,IAA/BK,EAASthD,WAAWpN,QACpB0uD,EAAS7rD,WAAW4Z,YAAYiyC,MAOrCH,GAGTO,aAAc,SAASJ,EAAUL,GAI/B,IAHA,GAAIrjD,GAAW0jD,EAAS1jD,SACpB+jD,EAAUvvD,SAASwD,cAAcgI,GAE9BqjD,EAAOr+C,aACZ++C,EAAQ5hD,YAAYkhD,EAAOr+C,YAE7B,OAAO++C,MAIX1oD,WACA,SAASA,GACTA,EAAUE,SAASyoD,WACjBt+B,KAAM,SAASulB,EAAUnjB,GACvBzsB,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,QAGpE2zB,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,UAGpEzsB,WACA,SAASA,GACTA,EAAUE,SAAS0oD,aACjBv+B,KAAM,SAASulB,EAAUnjB,GACvBzsB,EAAUE,SAASqgD,aAAaC,eAAe5Q,EAAUnjB,EAAS,QAGpE2zB,MAAO,SAASxQ,EAAUnjB,GACxB,MAAOzsB,GAAUE,SAASqgD,aAAaH,MAAMxQ,EAAUnjB,EAAS,UAGpEzsB,WAKF,SAAUA,GACR,GAAI6oD,GAAsB,GACtBC,EAAsB,GACtBhoD,EAAsB,EACtBK,EAAsB,GACtB4nD,EAAsB,GACtBC,EAAsB,gCACtBC,EAAsB,kCAGtB9oD,GAFsB,sDAAwDH,EAAUS,gBAAkB,UACpF,sDAAwDT,EAAUS,gBAAkB,UACpFT,EAAUG,IASpCH,GAAUkpD,YAAclpD,EAAUM,KAAKivB,WAAWnpB,QAEhD2N,YAAa,SAAS4xB,GACpB7tC,KAAK6tC,OAASA,EACd7tC,KAAK83C,SAAWjK,EAAOiK,SACvB93C,KAAKytB,QAAUztB,KAAK83C,SAASrqB,QAE7BztB,KAAKoS,SAAW,EAChBpS,KAAKqxD,cACLrxD,KAAKsxD,cAELtxD,KAAKuxD,WAELvxD,KAAKwxD,YAGPA,SAAU,WACR,CAAA,GAEIC,GAFAhmB,EAAYzrC,IACAA,MAAK83C,SAAS4Z,QAAQp/C,cAItCjK,EAAI6vB,QAAQl4B,KAAKytB,QAAS,UAAW,SAASqQ,GAC5C,IAAIA,EAAM6zB,SAAY7zB,EAAMmf,SAAYnf,EAAMof,SAA9C,CAIA,GAAI0U,GAAU9zB,EAAM8zB,QAChBC,EAASD,IAAYb,IAAUjzB,EAAMg0B,SACrCC,EAAUH,IAAYb,GAASjzB,EAAMg0B,UAAcF,IAAYZ,CAE/Da,IACFpmB,EAAKwjB,OACLnxB,EAAM39B,kBACG4xD,IACTtmB,EAAKqjB,OACLhxB,EAAM39B,qBAKVkI,EAAI6vB,QAAQl4B,KAAKytB,QAAS,UAAW,SAASqQ,GAC5C,GAAI8zB,GAAU9zB,EAAM8zB,OAChBA,KAAYH,IAIhBA,EAAUG,GAENA,IAAY5oD,GAAiB4oD,IAAYvoD,IAC3CoiC,EAAK8lB,cAITvxD,KAAK6tC,OACFnW,GAAG,mBAAoB,WACtB+T,EAAK8lB,aAGN75B,GAAG,yBAA0B,WAC5B+T,EAAK8lB,cAIXA,SAAU,WACR,GAGI7mD,GAAOlG,EAAM6N,EAAQob,EAASrb,EAH9B4/C,EAAoBhyD,KAAKqxD,WAAWrxD,KAAKoS,SAAW,GACpD6/C,EAAoBjyD,KAAK83C,SAASoa,UAAS,GAAO,GAClDjkB,EAAsBjuC,KAAKytB,QAAQ+P,YAAc,GAAKx9B,KAAKytB,QAAQsc,aAAe,CAGtF,IAAIkoB,IAAgBD,EAApB,CAIA,GAAInwD,GAAS7B,KAAKqxD,WAAWxvD,OAAS7B,KAAKsxD,WAAWzvD,OAAS7B,KAAKoS,QAChEvQ,GAASovD,IACXjxD,KAAKqxD,WAAW5V,QAChBz7C,KAAKsxD,WAAW7V,QAChBz7C,KAAKoS,YAGPpS,KAAKoS,WAED67B,IAEFvjC,EAAU1K,KAAK83C,SAASrvC,UAAU6zC,WAClC93C,EAAWkG,GAASA,EAAM4L,eAAkB5L,EAAM4L,eAAiBtW,KAAKytB,QACxEpb,EAAW3H,GAASA,EAAMyM,YAAezM,EAAMyM,YAAc,EAEzD3S,EAAK0K,WAAahH,EAAUY,aAC9B2kB,EAAUjpB,GAEVipB,EAAWjpB,EAAKE,WAChB0N,EAAWpS,KAAKmyD,kBAAkB1kC,EAASjpB,IAG7CipB,EAAQxmB,aAAakqD,EAAkB9+C,GACd,mBAAf,IACRob,EAAQxmB,aAAaiqD,EAAgB9+C,GAIzC,IAAI8N,GAAQlgB,KAAKytB,QAAQvb,YAAY+/C,EACrCjyD,MAAKsxD,WAAW9vD,KAAK0e,GACrBlgB,KAAKqxD,WAAW7vD,KAAKywD,GAEjBxkC,IACFA,EAAQ6lB,gBAAgB6d,GACxB1jC,EAAQ6lB,gBAAgB4d,MAK5BjC,KAAM,WACJjvD,KAAKuxD,WAEAvxD,KAAKoyD,iBAIVpyD,KAAKwC,IAAIxC,KAAKsxD,aAAatxD,KAAKoS,SAAW,IAC3CpS,KAAK6tC,OAAO7V,KAAK,mBAGnB82B,KAAM,WACC9uD,KAAKqyD,iBAIVryD,KAAKwC,IAAIxC,KAAKsxD,aAAatxD,KAAKoS,SAAW,IAC3CpS,KAAK6tC,OAAO7V,KAAK,mBAGnBo6B,aAAc,WACZ,MAAOpyD,MAAKoS,SAAW,GAGzBigD,aAAc,WACZ,MAAOryD,MAAKoS,SAAWpS,KAAKqxD,WAAWxvD,QAGzCW,IAAK,SAAS8vD,GACZtyD,KAAKytB,QAAQrZ,UAAY,EAMzB,KAJA,GAAIxP,GAAI,EACJqK,EAAaqjD,EAAarjD,WAC1BpN,EAASywD,EAAarjD,WAAWpN,OAE5BA,EAAF+C,EAAUA,IACf5E,KAAKytB,QAAQze,YAAYC,EAAWrK,GAAGsN,WAAU,GAInD,IAAIG,GACA7N,EACA4N,CAEAkgD,GAAa3jB,aAAawiB,IAC5B9+C,EAAYigD,EAAazrD,aAAasqD,GACtC/+C,EAAYkgD,EAAazrD,aAAaqqD,GACtC1sD,EAAYxE,KAAKytB,UAEjBjpB,EAAYxE,KAAKytB,QAAQ4F,cAAc,IAAM89B,EAAmB,MAAQnxD,KAAKytB,QAC7Epb,EAAY7N,EAAKqC,aAAasqD,GAC9B/+C,EAAY5N,EAAKqC,aAAaqqD,GAC9B1sD,EAAK8uC,gBAAgB6d,GACrB3sD,EAAK8uC,gBAAgB4d,IAGN,OAAb9+C,IACF5N,EAAOxE,KAAKuyD,oBAAoB/tD,GAAO4N,IAGzCpS,KAAK83C,SAASrvC,UAAUjG,IAAIgC,EAAM6N;EAGpC8/C,kBAAmB,SAAS3hD,EAAQ8D,GAIlC,IAHA,GAAI1P,GAAc,EACdqK,EAAcuB,EAAOvB,WACrBpN,EAAcoN,EAAWpN,OACpBA,EAAF+C,EAAUA,IACf,GAAIqK,EAAWrK,KAAO0P,EACpB,MAAO1P,IAKb2tD,oBAAqB,SAAS/hD,EAAQ/I,GACpC,MAAO+I,GAAOvB,WAAWxH,OAG5BS,WAIHA,UAAUQ,MAAM8pD,KAAO9hC,KAAKpiB,QAE1B2N,YAAa,SAASzL,EAAQiiD,EAAiBzmD,GAC7ChM,KAAKwQ,OAAWA,EAChBxQ,KAAKytB,QAAWglC,EAChBzyD,KAAKgM,OAAWA,EACXhM,KAAKgM,OAAO0mD,YACb1yD,KAAK2yD,sBAIXA,mBAAoB,WAClB,GAAIlnB,GAAOzrC,IACXA,MAAKwQ,OAAOknB,GAAG,aAAc,WAC3B+T,EAAKj7B,OAAOknB,GAAG,cAAe,SAAS/xB,GACjCA,IAAS8lC,EAAKplC,MAChBolC,EAAKj7B,OAAOoiD,YAAcnnB,EAC1BA,EAAKonB,OAEL5lB,WAAW,WAAaxB,EAAK3hB,SAAY,IAEzC2hB,EAAKqnB,YAMbhpC,MAAO,WACL,IAAI9pB,KAAKytB,UAAWztB,KAAKytB,QAAQlb,eAAiBvS,KAAKytB,QAAQlb,cAAc8gB,cAAc,YAAcrzB,KAAKytB,QAI9G,IAASztB,KAAKytB,SAAWztB,KAAKytB,QAAQ3D,QAAa,MAAMhpB,MAG3DgyD,KAAM,WACJ9yD,KAAKytB,QAAQyB,MAAME,QAAU,QAG/ByjC,KAAM,WACJ7yD,KAAKytB,QAAQyB,MAAME,QAAU,IAG/B2jC,QAAS,WACP/yD,KAAKytB,QAAQxmB,aAAa,WAAY,aAGxC+rD,OAAQ,WACNhzD,KAAKytB,QAAQ6lB,gBAAgB,eAGhC,SAAUprC,GACT,GAAIG,GAAYH,EAAUG,IACtBypB,EAAY5pB,EAAU4pB,OAE1B5pB,GAAUQ,MAAMuqD,SAAW/qD,EAAUQ,MAAM8pD,KAAKlkD,QAE9CjI,KAAM,WAGN6sD,WAAY,OAEZj3C,YAAa,SAASzL,EAAQ2iD,EAAiBnnD,GAC7ChM,KAAK+wB,KAAKvgB,EAAQ2iD,EAAiBnnD,GAC9BhM,KAAKgM,OAAO0mD,WAGb1yD,KAAKkrC,aAAeioB,EAFpBnzD,KAAKozD,SAAWpzD,KAAKwQ,OAAO4iD,SAI5BpzD,KAAKgM,OAAOqnD,oBACZrzD,KAAKszD,2BAELtzD,KAAKuzD,gBAIXplB,MAAO,WACLnuC,KAAKytB,QAAQrZ,UAAY0d,EAAQ+B,+CAAiD,GAAK7zB,KAAKkzD,YAG9FhB,SAAU,SAASvwB,EAAOO,GACxB,GAAI5Q,GAAQtxB,KAAKquC,UAAY,GAAKnmC,EAAUI,OAAOm6B,oBAAoBziC,KAAKytB,QAK5E,OAJIkU,MAAU,IACZrQ,EAAQtxB,KAAKwQ,OAAOmxB,MAAMrQ,EAAQ4Q,KAAmB,GAAS,GAAQ,IAGjE5Q,GAGTgd,SAAU,SAAS3U,EAAMgI,GACnBA,IACFhI,EAAO35B,KAAKwQ,OAAOmxB,MAAMhI,GAG3B,KACE35B,KAAKytB,QAAQrZ,UAAYulB,EACzB,MAAO74B,GACPd,KAAKytB,QAAQlrB,UAAYo3B,IAI7B2I,QAAS,WACP,GAAIlgB,EACApiB,MAAKyI,YACP2Z,EAAWxY,MAAMsmB,cAAclwB,KAAKuN,MAEtCvN,KAAKwQ,OAAOmxB,MAAM3hC,KAAKytB,SACnBrL,GACFxY,MAAMymB,iBAAiBjO,IAI3BywC,KAAM,WACJ7yD,KAAKkrC,aAAahc,MAAME,QAAUpvB,KAAKwzD,eAAiB,GAEnDxzD,KAAKgM,OAAO0mD,YAAe1yD,KAAKozD,SAAS3lC,QAAQgmC,WAEpDzzD,KAAK+yD,UACL/yD,KAAKgzD,WAITF,KAAM,WACJ9yD,KAAKwzD,cAAgBnrD,EAAIm0B,SAAS,WAAWC,KAAKz8B,KAAKkrC,cAC5B,SAAvBlrC,KAAKwzD,gBACPxzD,KAAKwzD,cAAgB,MAEvBxzD,KAAKkrC,aAAahc,MAAME,QAAU,QAGpC2jC,QAAS,WACP/yD,KAAKwQ,OAAOwnB,KAAK,oBACjBh4B,KAAKytB,QAAQ6lB,gBAAgB,oBAG/B0f,OAAQ,WACNhzD,KAAKwQ,OAAOwnB,KAAK,mBACjBh4B,KAAKytB,QAAQxmB,aAAa,kBAAmB,SAG/C6iB,MAAO,SAAS4pC,GAIVxrD,EAAU4pB,QAAQoE,kBAAoBl2B,KAAKkuC,qBAC7CluC,KAAKmuC,QAGPnuC,KAAK+wB,MAEL,IAAIzQ,GAAYtgB,KAAKytB,QAAQnN,SACzBozC,IAAYpzC,GAAatgB,KAAKyI,YACL,OAAvB6X,EAAUzT,SACZ7M,KAAKyI,UAAU+zC,UAAUx8C,KAAKytB,QAAQnN,WAEtCtgB,KAAKyI,UAAUs0C,SAAS/8C,KAAKytB,QAAQnN,aAK3C43B,aAAc,WACZ,GAAIl4C,KAAKgL,KAAOhL,KAAKuN,IAAK,CACxB,GAAIoI,KAcJ,OAXEA,GAAIyiC,EAD8B,mBAAzBp4C,MAAKuN,IAAIomD,YACV3zD,KAAKuN,IAAIomD,aAER3zD,KAAKgL,IAAIoK,iBAAmBpV,KAAKgL,IAAIC,KAAKvG,YAAc1E,KAAKgL,IAAIC,MAAMq1C,UAIhF3qC,EAAI0iC,EAD8B,mBAAzBr4C,MAAKuN,IAAIqmD,YACV5zD,KAAKuN,IAAIqmD,aAER5zD,KAAKgL,IAAIoK,iBAAmBpV,KAAKgL,IAAIC,KAAKvG,YAAc1E,KAAKgL,IAAIC,MAAMu1C,WAG3E7qC,IAIX6nC,aAAc,SAAS7nC,GACjBA,GAAwB,mBAAVA,GAAI0iC,GAAsC,mBAAV1iC,GAAIyiC,GACpDp4C,KAAKuN,IAAIsmD,SAASl+C,EAAI0iC,EAAG1iC,EAAIyiC,IAIjC5J,eAAgB,WACd,MAAOnmC,GAAImmC,eAAexuC,KAAKytB,UAGjCygB,kBAAmB,WACjB,MAAOluC,MAAKwuC,mBAAsBxuC,KAAKgM,OAAiB,WAAIhM,KAAKkrC,aAAarkC,aAAa,oBAAsB7G,KAAKozD,SAAS3lC,QAAQ5mB,aAAa,iBAAmB7G,KAAKouC,gBAG9KC,QAAS,WACP,GAAIj6B,GAAYpU,KAAKytB,QAAQrZ,UAAUtH,aACvC,OAAO,iCAAmCrG,KAAK2N,IAC1B,KAAdA,GACc,SAAdA,GACc,YAAdA,GACc,gBAAdA,GACApU,KAAKkuC,qBAGdolB,yBAA0B,WACtB,GAAI7nB,GAAOzrC,IAEPA,MAAKgM,OAAO0mD,WACZ1yD,KAAK0xD,QAAU,GAAIrpD,GAAIglC,oBAAoB,WACvC5B,EAAKqoB,cACF9zD,KAAKkrC,eAEZlrC,KAAK0xD,QAAU,GAAIrpD,GAAIglC,oBAAoB,WACvC5B,EAAKqoB,YAET9zD,KAAKkrC,aAAelrC,KAAK0xD,QAAQpkB,qBACjCjlC,EAAIq0B,OAAO18B,KAAKkrC,cAAcvO,MAAM38B,KAAKozD,SAAS3lC,SAClDztB,KAAK+zD,4BAIbR,aAAc,WACZ,GAAI9nB,GAAOzrC,IAEXA,MAAK0xD,QAAU,GAAIrpD,GAAI2iC,QAAQ,WAC7BS,EAAKqoB,YAELtnB,YAAcxsC,KAAKgM,OAAOwgC,cAE5BxsC,KAAKkrC,aAAgBlrC,KAAK0xD,QAAQrmB,WAElC,IAAIonB,GAAkBzyD,KAAKozD,SAAS3lC,OACpCplB,GAAIq0B,OAAO18B,KAAKkrC,cAAcvO,MAAM81B,GAEpCzyD,KAAK+zD,2BAIPA,wBAAyB,WACrB,GAAI/zD,KAAKozD,SAAS3lC,QAAQumC,KAAM,CAC9B,GAAIC,GAAc5yD,SAASwD,cAAc,QACzCovD,GAAYvzD,KAAS,SACrBuzD,EAAY5tD,KAAS,kBACrB4tD,EAAY3iC,MAAS,EACrBjpB,EAAIq0B,OAAOu3B,GAAat3B,MAAM38B,KAAKozD,SAAS3lC,WAIlDqmC,QAAS,WACP,GAAIroB,GAAOzrC,IACXA,MAAKgL,IAAqBhL,KAAK0xD,QAAQp/C,cACvCtS,KAAKuN,IAAqBvN,KAAK0xD,QAAQl/C,YACvCxS,KAAKytB,QAAsBztB,KAAKgM,OAA0B,oBAAIhM,KAAK0xD,QAAQpkB,qBAAuBttC,KAAKgL,IAAIC,KACtGjL,KAAKgM,OAAO0mD,WAIb1yD,KAAKsiC,WAHLtiC,KAAKozD,SAAqBpzD,KAAKwQ,OAAO4iD,SACtCpzD,KAAKytB,QAAQrZ,UAAapU,KAAKozD,SAASlB,UAAS,GAAM,IAM3DlyD,KAAKyI,UAAY,GAAIP,GAAUmmB,UAAUruB,KAAKwQ,OAAQxQ,KAAKytB,QAASztB,KAAKgM,OAAOu+C,8BAGhFvqD,KAAKoI,SAAY,GAAIF,GAAUkgD,SAASpoD,KAAKwQ,QAExCxQ,KAAKgM,OAAO0mD,YACbrqD,EAAIw0B,gBACA,YAAa,aAAc,QAAS,OAAQ,MAAO,cACpDJ,KAAKz8B,KAAKozD,SAAS3lC,SAASuP,GAAGh9B,KAAKytB,SAG3CplB,EAAIgzB,SAASr7B,KAAKytB,QAASztB,KAAKgM,OAAOkoD,mBAGnCl0D,KAAKgM,OAAOkjB,QAAUlvB,KAAKgM,OAAOqnD,qBACpCrzD,KAAKkvB,QAGPlvB,KAAKk4B,SAEL,IAAI7xB,GAAOrG,KAAKgM,OAAO3F,IACnBA,KACFgC,EAAIgzB,SAASr7B,KAAKytB,QAASpnB,GACtBrG,KAAKgM,OAAOqnD,qBAAuBhrD,EAAIgzB,SAASr7B,KAAKkrC,aAAc7kC,IAG1ErG,KAAKgzD,UAEAhzD,KAAKgM,OAAO0mD,YAAc1yD,KAAKozD,SAAS3lC,QAAQgmC,UACnDzzD,KAAK+yD,SAIP,IAAIjlB,GAAsD,gBAA7B9tC,MAAKgM,OAAkB,YAChDhM,KAAKgM,OAAOmoD,YACVn0D,KAAKgM,OAAiB,WAAIhM,KAAKkrC,aAAarkC,aAAa,oBAAsB7G,KAAKozD,SAAS3lC,QAAQ5mB,aAAa,cACpHinC,IACFzlC,EAAIulC,oBAAoB5tC,KAAKwQ,OAAQxQ,KAAM8tC,GAI7C9tC,KAAKoI,SAASmqB,KAAK,gBAAgB,GAEnCvyB,KAAKo0D,mBACLp0D,KAAKq0D,sBACLr0D,KAAKs0D,mBACLt0D,KAAKu0D,oBAIAv0D,KAAKgM,OAAO0mD,aAAe1yD,KAAKozD,SAAS3lC,QAAQkhB,aAAa,cAAgBttC,SAASgyB,cAAc,WAAarzB,KAAKozD,SAAS3lC,SAAaqE,EAAQyB,SACxJ0Z,WAAW,WAAaxB,EAAK3hB,OAAM,IAAU,KAI1CgI,EAAQoD,kCACXhtB,EAAUI,OAAOixC,qBAAqBv5C,MAIpCA,KAAKw0D,UAAYx0D,KAAKgM,OAAOyoD,MAC/Bz0D,KAAKw0D,WAIFx0D,KAAKgM,OAAO0mD,YAAc1yD,KAAKozD,SAASN,OAG7C9yD,KAAKwQ,OAAOwnB,KAAK,cAAcA,KAAK,SAGtCo8B,iBAAkB,WAChB,GAAI3oB,GAAiCzrC,KACjC00D,EAAiC5iC,EAAQmD,wBACzC0/B,EAAiC7iC,EAAQkD,kCAK7C,IAJI0/B,GACF10D,KAAKoI,SAASmqB,KAAK,iBAAiB,GAGjCvyB,KAAKgM,OAAO4tB,SAAjB,GAMK+6B,GAAwBA,GAAuBD,KAClD10D,KAAKwQ,OAAOknB,GAAG,mBAAoB,WACjC,GAAIrvB,EAAImmC,eAAe/C,EAAKhe,SAAS9B,MAAMtjB,EAAIuxB,SAASK,aAAc,CAKpE,IAAK,GAJD26B,GAAoBnpB,EAAKhjC,UAAUm1C,kBACnCU,EAAc7S,EAAKhe,QAAQ9oB,iBAAiB,IAAM8mC,EAAKz/B,OAAOu+C,8BAC9DsK,GAAiB,EAEZjwD,EAAI05C,EAAYz8C,OAAQ+C,KAC3BsD,EAAUG,IAAIpD,SAASq5C,EAAY15C,GAAIgwD,KACzCC,GAAiB,EAIhBA,IAAgBxsD,EAAIuxB,SAASg7B,GAAoBnpB,EAAKz/B,OAAOu+C,kCAItEliD,EAAI6vB,QAAQl4B,KAAKytB,QAAS,OAAQ,WAChCplB,EAAIuxB,SAAS6R,EAAKhe,SAAUge,EAAKz/B,OAAOu+C,iCAQ5C,IACIuK,GAAkB90D,KAAK0xD,QAAQp/C,cAAcpH,qBAAqB,KAElE6pD,EAAkB1sD,EAAIuxB,SAASK,YAC/BuU,EAAkB,SAAS/gB,GACzB,GAAI6S,GAAcp4B,EAAUM,KAAK0wB,OAAO7wB,EAAImmC,eAAe/gB,IAAU3tB,MAIrE,OAHiC,SAA7BwgC,EAAY5F,OAAO,EAAG,KACxB4F,EAAc,UAAYA,GAErBA,EAGbj4B,GAAI6vB,QAAQl4B,KAAKytB,QAAS,UAAW,SAASqQ,GAC5C,GAAKg3B,EAAMjzD,OAAX,CAIA,GAEIy+B,GAFA0rB,EAAevgB,EAAKhjC,UAAUm1C,gBAAgB9f,EAAM/8B,OAAOwR,eAC3D8uB,EAAeh5B,EAAIi3B,iBAAiB0sB,GAAgBvtB,MAAO,KAAO,EAGjE4C,KAILf,EAAckO,EAAenN,GAG7B4L,WAAW,WACT,GAAI+nB,GAAiBxmB,EAAenN,EAChC2zB,KAAmB10B,GAKnB00B,EAAerpC,MAAMopC,IACvB1zB,EAAKp6B,aAAa,OAAQ+tD,IAE3B,SAIPX,oBAAqB,WAMnB,GALAr0D,KAAKoI,SAASmqB,KAAK,wBAAwB,GAKvCT,EAAQ4B,cAAc,aAAc,CACtC,GAAI8K,IAAqB,QAAS,UAC9By2B,EAAoBz2B,EAAW38B,OAC/B4rB,EAAoBztB,KAAKytB,OAE7BplB,GAAI6vB,QAAQzK,EAAS,YAAa,SAASqQ,GACzC,GAGI7H,GAHAl1B,EAAS+8B,EAAM/8B,QAAU+8B,EAAM98B,WAC/BkuB,EAASnuB,EAAOmuB,MAChBtqB,EAAS,CAGb,IAAwB,QAApB7D,EAAO8L,SAAX,CAIA,KAASooD,EAAFrwD,EAAoBA,IACzBqxB,EAAWuI,EAAW55B,GAClBsqB,EAAM+G,KACRl1B,EAAOkG,aAAagvB,EAAUrK,SAASsD,EAAM+G,GAAW,KACxD/G,EAAM+G,GAAY,GAKtB/tB,GAAUI,OAAOsxC,OAAOnsB,QAK9B6mC,iBAAkB,WAChBt0D,KAAK+uD,YAAc,GAAI7mD,GAAUkpD,YAAYpxD,KAAKwQ,SAGpD+jD,kBAAmB,WAKjB,QAASW,GAAOlJ,GACd,GAAIz7C,GAAgBlI,EAAIi3B,iBAAiB0sB,GAAgBvtB,MAAO,UAAY,EACxEluB,IAAiBlI,EAAIpD,SAASwmC,EAAKhe,QAASld,IAC9Ck7B,EAAKhjC,UAAUu3C,kBAAkB,WAC3BvU,EAAKz/B,OAAOw+B,cACdniC,EAAI+hC,sBAAsB75B,GACU,MAA3BA,EAAc1D,UACvBxE,EAAI4hC,cAAc15B,EAAe,OAXzC,GAAIk7B,GAAoCzrC,KACpCm1D,EAAoC,gCACpCC,EAAoC,cAenCp1D,MAAKgM,OAAOw+B,eACfniC,EAAI6vB,QAAQl4B,KAAKytB,SAAU,QAAS,WAAY,WAC9C,GAAIge,EAAK4C,UAAW,CAClB,GAAI1D,GAAYc,EAAKzgC,IAAInG,cAAc,IACvC4mC,GAAKhe,QAAQrZ,UAAY,GACzBq3B,EAAKhe,QAAQze,YAAY27B,GACpB7Y,EAAQ+B,+CAIX4X,EAAKhjC,UAAUgV,WAAWktB,GAAW,IAHrCA,EAAUv2B,UAAY,OACtBq3B,EAAKhjC,UAAU+zC,UAAU7R,EAAU92B,gBAmB3CxL,EAAI6vB,QAAQl4B,KAAKytB,QAAS,UAAW,SAASqQ,GAC5C,GAAI8zB,GAAU9zB,EAAM8zB,OAEpB,KAAI9zB,EAAMg0B,WAINF,IAAY1pD,EAAUe,WAAa2oD,IAAY1pD,EAAUc,eAA7D,CAGA,GAAIqsD,GAAehtD,EAAIi3B,iBAAiBmM,EAAKhjC,UAAUm1C,mBAAqBnf,MAAO02B,GAAqC,EACxH,OAAIE,OACFpoB,YAAW,WAET,GACIrR,GADAowB,EAAevgB,EAAKhjC,UAAUm1C,iBAGlC,IAA8B,OAA1ByX,EAAaxoD,SAAmB,CAClC,IAAKm/C,EACH,MAGFpwB,GAAOvzB,EAAIi3B,iBAAiB0sB,GAAgBvtB,MAAO22B,GAAa,GAE3Dx5B,GACHs5B,EAAOlJ,GAIP4F,IAAY1pD,EAAUe,WAAaosD,EAAaxoD,SAAS8e,MAAM,aACjEupC,EAAOlJ,IAER,QAIDvgB,EAAKz/B,OAAOw+B,eAAiBonB,IAAY1pD,EAAUe,YAAcf,EAAU4pB,QAAQiC,8BACrF+J,EAAM39B,iBACNsrC,EAAKrjC,SAASmqB,KAAK,4BAM1BrqB,WACF,SAAUA,GACT,GAAIG,GAAkBH,EAAUG,IAC5B2C,EAAkB3J,SAClBkM,EAAkB7L,OAClB4zD,EAAkBtqD,EAAInG,cAAc,OAIpC0wD,GACE,mBACA,QAAS,SACT,cAAe,YAAa,aAAc,eAAgB,cAC1D,cAAe,iBACf,aAAc,kBAAmB,cAAe,iBAChD,aAAc,YAAa,gBAK7BC,GACE,mBACA,kBACA,sBAAuB,sBAAuB,sBAC9C,oBAAqB,oBAAqB,oBAC1C,qBAAsB,qBAAsB,qBAC5C,mBAAoB,mBAAoB,mBACxC,QAAS,UAAW,QACpB,gBAAiB,cAAe,eAAgB,aAChD,gBAAiB,iBAAkB,gBAAiB,gBACpD,eAAgB,gBAAiB,cAAe,iBAChD,WAAY,MAAO,OAAQ,QAAS,SAAU,UAC9C,iBAAkB,aAClB,qBAAsB,kBAAmB,iBAAkB,aAC3D,qBAAsB,kBAAmB,iBAAiB,aAC1D,kCAAmC,8BAA+B,0BAClE,qCAAsC,iCAAkC,6BACxE,oCAAqC,gCAAiC,4BACtE,iCAAkC,6BAA8B,yBAChE,QAAS,UAEXC,GACE,yCACA,iFACA,0CACA,0CACAvtD,EAAU4pB,QAAQY,QAChB,mDACA,kDAEF,wFAWFgjC,EAAwB,SAASjoC,GACnC,GAAIA,EAAQkoC,UAGV,IAAMloC,EAAQkoC,YAAe,MAAM70D,QAC9B,CACL,GAAI80D,GAAenoC,EAAQyB,MACvB2mC,EAAoB7qD,EAAIoK,gBAAgBkrC,WAAat1C,EAAIC,KAAKq1C,UAC9DwV,EAAqB9qD,EAAIoK,gBAAgBorC,YAAcx1C,EAAIC,KAAKu1C,WAChEuV,GACE3jD,SAAkBwjD,EAAaxjD,SAC/B+lC,IAAkByd,EAAazd,IAC/BtP,KAAkB+sB,EAAa/sB,KAC/BmtB,iBAAkBJ,EAAaI,iBAGrC3tD,GAAIu1B,WACFxrB,SAAkB,WAClB+lC,IAAkB,WAClBtP,KAAkB,WAElBmtB,iBAAkB,SACjBt+B,GAAGjK,GAENA,EAAQ3D,QAERzhB,EAAIu1B,UAAUm4B,GAAgBr+B,GAAGjK,GAE7BlgB,EAAIsmD,UAINtmD,EAAIsmD,SAASiC,EAAoBD,IAMvC3tD,GAAUQ,MAAMuqD,SAASpzD,UAAUqvB,MAAQ,WACzC,GAOI+mC,GAPAxqB,EAAwBzrC,KACxBk2D,EAAwBlrD,EAAIqoB,cAAc,UAC1Co/B,EAAwBzyD,KAAKozD,SAAS3lC,QACtC0oC,EAAwB1D,EAAgB9jB,aAAa,eACrDynB,EAAwBD,GAAkB1D,EAAgB5rD,aAAa,eACvEwvD,EAAwB5D,EAAgBvjC,MAAME,QAC9CknC,EAAwB7D,EAAgBgB,QAG5CzzD,MAAKu2D,gBAAuBjB,EAAcpjD,WAAU,GACpDlS,KAAKw2D,eAAuBlB,EAAcpjD,WAAU,GACpDlS,KAAKy2D,mBAAuBnB,EAAcpjD,WAAU,GAGhDikD,GACF1D,EAAgBnf,gBAAgB,eAG9Bmf,IAAoByD,GACtBzD,EAAgBiE,OAIlBjE,EAAgBgB,UAAW,EAG3BhB,EAAgBvjC,MAAME,QAAU6mC,EAAyB,QAEpDxD,EAAgB5rD,aAAa,SAA4D,SAAjDwB,EAAIm0B,SAAS,UAAUC,KAAKg2B,IACpEA,EAAgB5rD,aAAa,SAA2D,SAAhDwB,EAAIm0B,SAAS,SAASC,KAAKg2B,MACtEA,EAAgBvjC,MAAME,QAAU6mC,EAAyBI,GAI3DhuD,EAAIo1B,WAAW+3B,GAAgB/4B,KAAKg2B,GAAiBz1B,GAAGh9B,KAAKkrC,cAAc/N,MAAMn9B,KAAKw2D,gBAGtFnuD,EAAIo1B,WAAW83B,GAAiB94B,KAAKg2B,GAAiBz1B,GAAGh9B,KAAKytB,SAAS0P,MAAMn9B,KAAKw2D,gBAGlFnuD,EAAI44B,UAAUw0B,GAAsBz0B,KAAKhhC,KAAKytB,QAAQlb,eAGtDkgD,EAAgBgB,UAAW,EAC3BprD,EAAIo1B,WAAW+3B,GAAgB/4B,KAAKg2B,GAAiBz1B,GAAGh9B,KAAKy2D,oBAC7DpuD,EAAIo1B,WAAW83B,GAAiB94B,KAAKg2B,GAAiBz1B,GAAGh9B,KAAKy2D,oBAC9DhE,EAAgBgB,SAAW6C,EAG3B7D,EAAgBvjC,MAAME,QAAUinC,EAChCX,EAAsBjD,GACtBA,EAAgBvjC,MAAME,QAAU6mC,EAEhC5tD,EAAIo1B,WAAW+3B,GAAgB/4B,KAAKg2B,GAAiBz1B,GAAGh9B,KAAKu2D,iBAC7DluD,EAAIo1B,WAAW83B,GAAiB94B,KAAKg2B,GAAiBz1B,GAAGh9B,KAAKu2D,iBAG9D9D,EAAgBvjC,MAAME,QAAUinC,EAEhChuD,EAAIo1B,YAAY,YAAYhB,KAAKg2B,GAAiBz1B,GAAGh9B,KAAKkrC,aAK1D,IAAIyrB,GAAsBzuD,EAAUM,KAAKmuB,MAAM6+B,GAAgB3+B,SAAS,WAmCxE,OAhCIq/B,GACFA,EAAsBpsC,QAEtB2oC,EAAgBiE,OAIdP,GACF1D,EAAgBxrD,aAAa,cAAemvD,GAI9Cp2D,KAAKwQ,OAAOknB,GAAG,iBAAkB,WAC/BrvB,EAAIo1B,WAAWk5B,GAAsBl6B,KAAKgP,EAAK8qB,iBAAiBv5B,GAAGyO,EAAKP,cACxE7iC,EAAIo1B,WAAW83B,GAAsB94B,KAAKgP,EAAK8qB,iBAAiBv5B,GAAGyO,EAAKhe,WAG1EztB,KAAKwQ,OAAOknB,GAAG,gBAAiB,WAC9BrvB,EAAIo1B,WAAWk5B,GAAsBl6B,KAAKgP,EAAK+qB,gBAAgBx5B,GAAGyO,EAAKP,cACvE7iC,EAAIo1B,WAAW83B,GAAsB94B,KAAKgP,EAAK+qB,gBAAgBx5B,GAAGyO,EAAKhe,WAGzEztB,KAAKwQ,OAAO0nB,QAAQ,mBAAoB,WACtC7vB,EAAIo1B,WAAWk5B,GAAsBl6B,KAAKgP,EAAKgrB,oBAAoBz5B,GAAGyO,EAAKP,cAC3E7iC,EAAIo1B,WAAW83B,GAAsB94B,KAAKgP,EAAKgrB,oBAAoBz5B,GAAGyO,EAAKhe,WAG7EztB,KAAKwQ,OAAO0nB,QAAQ,kBAAmB,WACrC7vB,EAAIo1B,WAAWk5B,GAAsBl6B,KAAKgP,EAAK+qB,gBAAgBx5B,GAAGyO,EAAKP,cACvE7iC,EAAIo1B,WAAW83B,GAAsB94B,KAAKgP,EAAK+qB,gBAAgBx5B,GAAGyO,EAAKhe,WAGlEztB,OAERkI,WASH,SAAUA,GACR,GAAIG,GAAYH,EAAUG,IACtBypB,EAAY5pB,EAAU4pB,QAItB8kC,GACEC,GAAM,OACNC,GAAM,SACNC,GAAM,aAKRC,EAAe,SAAUj2D,EAAQ62B,EAAQV,GAC3C,IAAI,GAAItyB,GAAI,EAAG2yB,EAAMK,EAAO/1B,OAAY01B,EAAJ3yB,EAASA,IAC3C7D,EAAOP,iBAAiBo3B,EAAOhzB,GAAIsyB,GAAU,IAM7C+/B,EAAkB,SAAUl2D,EAAQ62B,EAAQV,GAC9C,IAAI,GAAItyB,GAAI,EAAG2yB,EAAMK,EAAO/1B,OAAY01B,EAAJ3yB,EAASA,IAC3C7D,EAAOY,oBAAoBi2B,EAAOhzB,GAAIsyB,GAAU,IAIhDggC,EAAuB,SAASp5B,EAAOga,GACzC,CAAA,GAAIrvC,GAAYqvC,EAASrvC,SACXqvC,GAASrqB,QAEvB,GAAIhlB,EAAU8b,cACZ,GAAI9b,EAAUg3C,qBAAqB,MACjC3hB,EAAM39B,iBACN23C,EAAS1vC,SAASmqB,KAAK,mBAClB,IAAI9pB,EAAUg3C,uBACnB3hB,EAAM39B,qBACD,CACL,GAAIsI,EAAU+2C,2BACV/2C,EAAUq2C,mBACVr2C,EAAUq2C,kBAAkBjyC,UAC5B,UAAYpG,KAAKgC,EAAUq2C,kBAAkBjyC,UAC/C,CACA,GAAIsxB,GAAW11B,EAAUq2C,iBACzB,IAAI,QAAUr4C,KAAK03B,EAASmC,aAAenC,EAAS57B,WAElDu7B,EAAM39B,iBACNg+B,EAASz5B,WAAW4Z,YAAY6f,OAEhC,IAAIA,EAAS7d,UAAW,CACtB,GAAI62C,GAAUh5B,EAAS7d,UACnB82C,EAAUlvD,EAAUG,IAAIi3B,iBAAiB72B,EAAUm1C,mBAAqBnf,MAAO,oDAAqD,EAAOqZ,EAASrqB,QACxJ,IAAI0Q,EACF,GAAIi5B,EAAS,CAEX,IADAt5B,EAAM39B,iBACCi3D,EAAQvjD,YACbsqB,EAASnvB,YAAYooD,EAAQvjD,WAE/BpL,GAAUs0C,SAASoa,OAC+B,KAAzC1uD,EAAUm1C,kBAAkB1uC,WACrC4uB,EAAM39B,iBACNg+B,EAASnvB,YAAYvG,EAAUm1C,mBAC/Bn1C,EAAUs0C,SAASoa,KAO7B,GAAIE,GAAmB5uD,EAAUk3C,yBAEjC,IAAI0X,EAAkB,CACpBv5B,EAAM39B,gBAGN,KACE,GAAIu+C,GAAK,GAAIC,aAAY,8BACzB0Y,GAAiBzY,cAAcF,GAC/B,MAAOG,IACTwY,EAAiB3yD,WAAW4Z,YAAY+4C,QAIxC5uD,GAAU41C,uBACZvgB,EAAM39B,iBACNsI,EAAUoV,mBAKZy5C,EAAmB,SAASxf,GAC9B,GAAKA,EAASrvC,UAAU8b,eAEjB,GAAIuzB,EAASrvC,UAAUg3C,qBAAqB,OAC7C3H,EAAS1vC,SAASmqB,KAAK,cAAe,WAF1CulB,GAASrvC,UAAUoV,gBAMrBi6B,GAAS1vC,SAASmqB,KAAK,aAAc,WAGnCglC,EAAuB,WACnBv3D,KAAKw3D,wBACPC,cAAcD,wBAEhBx3D,KAAKwQ,OAAOwnB,KAAK,qBAIjB0/B,EAAwB,WAC1B13D,KAAKwQ,OAAOwnB,KAAK,qBAAqBA,KAAK,8BAC3CiV,WAAW,WACTjtC,KAAKwQ,OAAOwnB,KAAK,eAAeA,KAAK,yBACpC30B,KAAKrD,MAAO,IAGb23D,EAAc,SAAS75B,GACzB99B,KAAKwQ,OAAOwnB,KAAK,QAAS8F,GAAO9F,KAAK,iBAAkB8F,GAIxDmP,WAAW,WACTjtC,KAAK43D,WAAa53D,KAAKkyD,UAAS,GAAO,IACtC7uD,KAAKrD,MAAO,IAGb63D,EAAa,SAAS/5B,GACxB,GAAI99B,KAAK43D,aAAe53D,KAAKkyD,UAAS,GAAO,GAAQ,CAEnD,GAAI4F,GAAch6B,CACS,mBAAjB37B,QAAO41D,SACfD,EAAc31D,OAAO41D,OAAOj6B,GAASp9B,MAAQ4wB,MAAO,aAEtDtxB,KAAKwQ,OAAOwnB,KAAK,SAAU8/B,GAAa9/B,KAAK,kBAAmB8/B,GAElE93D,KAAKwQ,OAAOwnB,KAAK,OAAQ8F,GAAO9F,KAAK,gBAAiB8F,IAGpDk6B,EAAc,SAASl6B,GACzB99B,KAAKwQ,OAAOwnB,KAAK8F,EAAMp9B,KAAMo9B,GAAO9F,KAAK8F,EAAMp9B,KAAO,YAAao9B,GAChD,UAAfA,EAAMp9B,MACRusC,WAAW,WACTjtC,KAAKwQ,OAAOwnB,KAAK,qBAChB30B,KAAKrD,MAAO,IAIfi4D,EAAa,SAASn6B,GACpB99B,KAAKgM,OAAOksD,oBAGVp6B,EAAM6Z,gBACR7Z,EAAM6Z,cAAcwgB,QAAQ,YAAan4D,KAAKgM,OAAOksD,kBAAoBl4D,KAAKyI,UAAUu6C,WACxFllB,EAAM6Z,cAAcwgB,QAAQ,aAAcn4D,KAAKyI,UAAUw6C,gBACzDnlB,EAAM39B,kBAERH,KAAKwQ,OAAOwnB,KAAK8F,EAAMp9B,KAAMo9B,GAAO9F,KAAK8F,EAAMp9B,KAAO,YAAao9B,KAInEs6B,EAAc,SAASt6B,GACzB,GAAI8zB,GAAU9zB,EAAM8zB,SAChBA,IAAY1pD,EAAUiB,WAAayoD,IAAY1pD,EAAUe,YAC3DjJ,KAAKwQ,OAAOwnB,KAAK,qBAIjB+hB,EAAkB,SAASjc,GAC7B,IAAKhM,EAAQuD,mCAAoC,CAE/C,GAAIt0B,GAAS+8B,EAAM/8B,OACfs3D,EAAYr4D,KAAKytB,QAAQ9oB,iBAAiB,OAC1C2zD,EAAct4D,KAAKytB,QAAQ9oB,iBAAiB,IAAM3E,KAAKgM,OAAOu+C,6BAA+B,QAC7FgO,EAAWrwD,EAAUM,KAAKmuB,MAAM0hC,GAAWxhC,QAAQyhC,EAE/B,SAApBv3D,EAAO8L,UAAsB3E,EAAUM,KAAKmuB,MAAM4hC,GAAUtzD,SAASlE,IACvEf,KAAKyI,UAAUgV,WAAW1c,KAO5By3D,EAAkB,SAAS16B,GAC7B,GAMI26B,GANAC,GACEC,IAAK,UACLvhC,EAAK,UAEPr2B,EAAW+8B,EAAM/8B,OACjB8L,EAAW9L,EAAO8L,UAGL,MAAbA,GAAiC,QAAbA,KAGpB9L,EAAO4tC,aAAa,WACtB8pB,EAAQC,EAAc7rD,IAAa9L,EAAO8F,aAAa,SAAW9F,EAAO8F,aAAa,QACtF9F,EAAOkG,aAAa,QAASwxD,MAI7BG,EAAc,SAAS96B,GACzB,GAAI99B,KAAKgM,OAAOu+C,6BAA8B,CAG5C,GAAIsO,GAAa3wD,EAAUG,IAAIi3B,iBAAiBxB,EAAM/8B,QAAU09B,MAAO,IAAMz+B,KAAKgM,OAAOu+C,+BAAgC,EAAOvqD,KAAKytB,QACjIorC,IACF74D,KAAKyI,UAAUs0C,SAAS8b,KAK1BC,EAAa,WACVhnC,EAAQuD,oCAEX4X,WAAW,WACTjtC,KAAKyI,UAAUse,eAAewE,mBAC7BloB,KAAKrD,MAAO,IAIf+4D,EAAgB,SAASj7B,GAC3B,GAEI/8B,GAAQyP,EAFRohD,EAAU9zB,EAAM8zB,QAChBj9B,EAAUiiC,EAAUhF,IAInB9zB,EAAMmf,SAAWnf,EAAMof,WAAapf,EAAM6zB,QAAUh9B,IACvD30B,KAAKoI,SAASmqB,KAAKoC,GACnBmJ,EAAM39B,kBAGJyxD,IAAY1pD,EAAUc,eAExBkuD,EAAqBp5B,EAAO99B,OAI1B4xD,IAAY1pD,EAAUc,eAAiB4oD,IAAY1pD,EAAUmB,cAC/DtI,EAASf,KAAKyI,UAAUm1C,iBAAgB,GACpC78C,GAA8B,QAApBA,EAAO8L,WACnBixB,EAAM39B,iBACNqQ,EAASzP,EAAO2D,WAChB8L,EAAO8N,YAAYvd,GAEK,MAApByP,EAAO3D,UAAqB2D,EAAOqD,YACrCrD,EAAO9L,WAAW4Z,YAAY9N,GAEhCy8B,WAAW,WACT/kC,EAAUI,OAAOsxC,OAAO55C,KAAKytB,UAC5B,KAIHztB,KAAKgM,OAAOgtD,cAAgBpH,IAAY1pD,EAAUkB,UAEpD00B,EAAM39B,iBACNm3D,EAAiBt3D,KAAMA,KAAKytB,WAK5BwrC,EAAoB,WACtBhsB,WAAW,WACLjtC,KAAKgL,IAAIqoB,cAAc,YAAcrzB,KAAKytB,SAC5CztB,KAAK8pB,SAENzmB,KAAKrD,MAAO,IAGbk5D,EAAmB,WACrBjsB,WAAW,WACTjtC,KAAKyI,UAAUse,eAAewE,mBAC7BloB,KAAKrD,MAAO,IAKbm5D,EAAoB,WACtB,GAAIC,GAAe,WACbp5D,KAAKgL,IAAIioB,YAAY,wBAAwB,EAAO,SACpDjzB,KAAKgL,IAAIioB,YAAY,4BAA4B,EAAO,UAE1DomC,EAAkB,WAChBD,EAAaj4D,KAAKnB,MAClBi3D,EAAgBj3D,KAAK0xD,QAAQrmB,aAAc,QAAS,UAAW,aAAcguB,IAC5Eh2D,KAAKrD,KAERA,MAAKgL,IAAIioB,aACT/qB,EAAU4pB,QAAQuC,gBAAgBr0B,KAAKgL,IAAK,yBAC5C9C,EAAU4pB,QAAQuC,gBAAgBr0B,KAAKgL,IAAK,8BAE1ChL,KAAK0xD,QAAQrmB,UACf2rB,EAAah3D,KAAK0xD,QAAQrmB,aAAc,QAAS,UAAW,aAAcguB,GAE1EpsB,WAAW,WACTmsB,EAAaj4D,KAAKnB,OACjBqD,KAAKrD,MAAO,IAGnBA,KAAKuvD,eAAiBrnD,EAAUI,OAAOuxC,oBAAoB75C,KAAKytB,QAASztB,KAAKwQ,QAGhFtI,GAAUQ,MAAMuqD,SAASpzD,UAAUq4B,QAAU,WAC3C,GACIrd,GAAuB7a,KAAK0xD,QAAiB,UAAI1xD,KAAK0xD,QAAQrmB,YAAcrrC,KAAK0xD,QAAQpkB,qBAEzFgsB,GADsBt5D,KAAKytB,QACJqE,EAAQoC,mCAAqCl0B,KAAK0xD,QAAQpkB,mBAAsBttC,KAAKytB,QAAUztB,KAAK0xD,QAAQl/C,YAEvIxS,MAAK43D,WAAa53D,KAAKkyD,UAAS,GAAO,GAGvCr3C,EAAUra,kBAAkB,kBAAmB+2D,EAAqBl0D,KAAKrD,OAAO,GAI3E8xB,EAAQ0E,2BACXx2B,KAAKw3D,uBAAyB+B,YAAY,WACnClxD,EAAIpD,SAAS5D,SAAS+T,gBAAiByF,IAC1C08C,EAAqBp2D,KAAKnB,OAE3B,MAIDA,KAAKgM,OAAOwtD,cAEdL,EAAkBh4D,KAAKnB,MAGzBg3D,EAAasC,GAAmB,OAAQ,QAAS,UAAW,QAAS,SAAU5B,EAAsBr0D,KAAKrD,OAC1Gs5D,EAAiB94D,iBAAiB,QAASm3D,EAAYt0D,KAAKrD,OAAO,GACnEs5D,EAAiB94D,iBAAiB,OAASq3D,EAAWx0D,KAAKrD,OAAO,GAElEg3D,EAAah3D,KAAKytB,SAAU,OAAQ,QAAS,eAAgBuqC,EAAY30D,KAAKrD,OAAO,GACrFA,KAAKytB,QAAQjtB,iBAAiB,OAAcy3D,EAAW50D,KAAKrD,OAAO,GACnEA,KAAKytB,QAAQjtB,iBAAiB,YAAcu5C,EAAgB12C,KAAKrD,OAAO,GACxEA,KAAKytB,QAAQjtB,iBAAiB,YAAcg4D,EAAgBn1D,KAAKrD,OAAO,GACxEA,KAAKytB,QAAQjtB,iBAAiB,QAAco4D,EAAYv1D,KAAKrD,OAAO,GACpEA,KAAKytB,QAAQjtB,iBAAiB,OAAcs4D,EAAWz1D,KAAKrD,OAAO,GACnEA,KAAKytB,QAAQjtB,iBAAiB,QAAc43D,EAAY/0D,KAAKrD,OAAO,GACpEA,KAAKytB,QAAQjtB,iBAAiB,UAAcu4D,EAAc11D,KAAKrD,OAAO,GAEtEA,KAAKytB,QAAQjtB,iBAAiB,YAAa,WACzCR,KAAKwQ,OAAOwnB,KAAK,sBAChB30B,KAAKrD,OAAO,IAGVA,KAAKgM,OAAOqnD,qBAAuBvhC,EAAQwE,wBAC9Czb,EAAUra,iBAAiB,QAASy4D,EAAkB51D,KAAKrD,OAAO,GAClE6a,EAAUra,iBAAiB,OAAQ04D,EAAiB71D,KAAKrD,OAAO,MAInEkI,WAIH,SAAUA,GACR,GAAIuxD,GAAW,GAEfvxD,GAAUQ,MAAMgxD,aAAehpC,KAAKpiB,QAGlC2N,YAAa,SAAS4xB,EAAQulB,EAAUtb,GACtC93C,KAAK6tC,OAAWA,EAChB7tC,KAAKozD,SAAWA,EAChBpzD,KAAK83C,SAAWA,EAEhB93C,KAAKwxD,YAQPmI,uBAAwB,SAASC,GAC/B55D,KAAKozD,SAAS9kB,SAASpmC,EAAUM,KAAK0wB,OAAOl5B,KAAK83C,SAASoa,UAAS,GAAO,IAAQpyD,OAAQ85D,IAQ7FC,uBAAwB,SAASD,GAC/B,GAAIE,GAAgB95D,KAAKozD,SAASlB,UAAS,GAAO,EAC9C4H,GACF95D,KAAK83C,SAASxJ,SAASwrB,EAAeF,IAEtC55D,KAAK83C,SAAS3J,QACdnuC,KAAK6tC,OAAO7V,KAAK,qBAQrBy8B,KAAM,SAASmF,GACwB,aAAjC55D,KAAK6tC,OAAO+kB,YAAYvsD,KAC1BrG,KAAK65D,uBAAuBD,GAE5B55D,KAAK25D,uBAAuBC,IAShCpI,SAAU,WACR,GAAIuI,GACAtuB,EAAgBzrC,KAChBg0D,EAAgBh0D,KAAKozD,SAAS3lC,QAAQumC,KACtCgG,EAAgB,WACdD,EAAWR,YAAY,WAAa9tB,EAAKkuB,0BAA6BF,IAExEQ,EAAgB,WACdxC,cAAcsC,GACdA,EAAW,KAGjBC,KAEIhG,IAGF9rD,EAAUG,IAAI6vB,QAAQ87B,EAAM,SAAU,WACpCvoB,EAAKgpB,MAAK,KAEZvsD,EAAUG,IAAI6vB,QAAQ87B,EAAM,QAAS,WACnC/mB,WAAW,WAAaxB,EAAKouB,0BAA6B,MAI9D75D,KAAK6tC,OAAOnW,GAAG,cAAe,SAAS/xB,GACxB,aAATA,GAAwBo0D,EAGR,aAATp0D,IACT8lC,EAAKkuB,wBAAuB,GAC5BM,MAJAxuB,EAAKouB,wBAAuB,GAC5BG,OAOJh6D,KAAK6tC,OAAOnW,GAAG,mBAAoBuiC,OAGtC/xD,WACFA,UAAUQ,MAAMwxD,SAAWhyD,UAAUQ,MAAM8pD,KAAKlkD,QAE/CjI,KAAM,WAEN4V,YAAa,SAASzL,EAAQiiD,EAAiBzmD,GAC7ChM,KAAK+wB,KAAKvgB,EAAQiiD,EAAiBzmD,GAEnChM,KAAKwxD,YAGPrjB,MAAO,WACLnuC,KAAKytB,QAAQ6D,MAAQ,IAGvB4gC,SAAU,SAASvwB,GACjB,GAAIrQ,GAAQtxB,KAAKquC,UAAY,GAAKruC,KAAKytB,QAAQ6D,KAI/C,OAHIqQ,MAAU,IACZrQ,EAAQtxB,KAAKwQ,OAAOmxB,MAAMrQ,IAErBA,GAGTgd,SAAU,SAAS3U,EAAMgI,GACnBA,IACFhI,EAAO35B,KAAKwQ,OAAOmxB,MAAMhI,IAE3B35B,KAAKytB,QAAQ6D,MAAQqI,GAGvB2I,QAAS,WACL,GAAI3I,GAAO35B,KAAKwQ,OAAOmxB,MAAM3hC,KAAKytB,QAAQ6D,MAC1CtxB,MAAKytB,QAAQ6D,MAAQqI,GAGzBuU,kBAAmB,WACjB,GAAIisB,GAAsBjyD,UAAU4pB,QAAQkC,+BAA+Bh0B,KAAKytB,SAC5EqgB,EAAsB9tC,KAAKytB,QAAQ5mB,aAAa,gBAAkB,KAClEyqB,EAAsBtxB,KAAKytB,QAAQ6D,MACnC+c,GAAuB/c,CAC3B,OAAQ6oC,IAAuB9rB,GAAa/c,IAAUwc,GAGxDO,QAAS,WACP,OAAQnmC,UAAUM,KAAK0wB,OAAOl5B,KAAKytB,QAAQ6D,OAAOxxB,QAAUE,KAAKkuC,qBAGnEsjB,SAAU,WACR,GAAI/jC,GAAUztB,KAAKytB,QACfjd,EAAUxQ,KAAKwQ,OACf4pD,GACEC,QAAU,QACVC,SAAU,QAMZ1iC,EAAS1vB,UAAU4pB,QAAQ4B,cAAc,YAAc,UAAW,WAAY,WAAa,QAAS,OAAQ,SAEhHljB,GAAOknB,GAAG,aAAc,WACtBxvB,UAAUG,IAAI6vB,QAAQzK,EAASmK,EAAQ,SAASkG,GAC9C,GAAI7J,GAAYmmC,EAAat8B,EAAMp9B,OAASo9B,EAAMp9B,IAClD8P,GAAOwnB,KAAK/D,GAAW+D,KAAK/D,EAAY,eAG1C/rB,UAAUG,IAAI6vB,QAAQzK,GAAU,QAAS,QAAS,WAChDwf,WAAW,WAAaz8B,EAAOwnB,KAAK,SAASA,KAAK,mBAAsB,UAoChF,SAAU9vB,GACR,GAAIghD,GAEAqR,GAEFl0D,KAAsB6iD,EAEtBh6B,OAAsB,EAEtB3mB,QAAsB2gD,EAGtBsR,sBAAsB,EAEtB5gC,UAAsB,EAEtB4/B,cAAsB,EAEtBR,cAAsB,EAGtByB,aAAwB92B,MAAQ+2B,MAAQ7mB,QAAU8mB,OAAS5wD,MAASjD,YAEpE8zD,oBAAqB,KAErBC,OAAsB3yD,EAAUG,IAAIs5B,MAEpCuyB,kBAAsB,mBAEtB4G,cAAsB,sBAEtBtwB,eAAsB,EAEtBgC,eAEAsB,gBAAsBob,EAEtB6R,qBAAsB,EAEtBz4B,SAAsB,EAEtB+wB,qBAAqB,EAGrB9I,6BAA8B,iCAK9B2N,kBAAmB,gDAGrBhwD,GAAU8yD,OAAS9yD,EAAUM,KAAKivB,WAAWnpB,QAE3C2N,YAAa,SAASk3C,EAAiBnnD,GAerC,GAdAhM,KAAKmzD,gBAA+C,gBAAtB,GAAiC9xD,SAASqtB,eAAeykC,GAAmBA,EAC1GnzD,KAAKgM,OAAmB9D,EAAUM,KAAK/G,WAAW22B,MAAMmiC,GAAeniC,MAAMpsB,GAAQ1J,MACrFtC,KAAKi7D,cAAmB/yD,EAAU4pB,QAAQ/lB,YAES,YAA/C/L,KAAKmzD,gBAAgBtmD,SAASC,gBAC9B9M,KAAKgM,OAAOqnD,qBAAsB,EAClCrzD,KAAKgM,OAAO0mD,YAAa,GAExB1yD,KAAKgM,OAAO0mD,aACb1yD,KAAKozD,SAAmB,GAAIlrD,GAAUQ,MAAMwxD,SAASl6D,KAAMA,KAAKmzD,gBAAiBnzD,KAAKgM,QACtFhM,KAAK4yD,YAAmB5yD,KAAKozD,WAI5BpzD,KAAKi7D,gBAAmBj7D,KAAKgM,OAAO+uD,qBAAuB7yD,EAAU4pB,QAAQ2B,gBAAkB,CAClG,GAAIgY,GAAOzrC,IAEX,YADAitC,YAAW,WAAaxB,EAAKzT,KAAK,cAAcA,KAAK,SAAY,GAKnE9vB,EAAUG,IAAIgzB,SAASh6B,SAAS4J,KAAMjL,KAAKgM,OAAO8uD,eAElD96D,KAAK83C,SAAW,GAAI5vC,GAAUQ,MAAMuqD,SAASjzD,KAAMA,KAAKmzD,gBAAiBnzD,KAAKgM,QAC9EhM,KAAK4yD,YAAc5yD,KAAK83C,SAEW,kBAAxB93C,MAAKgM,OAAa,QAC3BhM,KAAKk7D,cAGPl7D,KAAK03B,GAAG,aAAc13B,KAAKm7D,mBAG7BA,iBAAkB,WACTn7D,KAAKgM,OAAO0mD,aACb1yD,KAAKo7D,aAAe,GAAIlzD,GAAUQ,MAAMgxD,aAAa15D,KAAMA,KAAKozD,SAAUpzD,KAAK83C,WAE/E93C,KAAKgM,OAAOzD,UACdvI,KAAKuI,QAAU,GAAIL,GAAUK,QAAQ8yD,QAAQr7D,KAAMA,KAAKgM,OAAOzD,QAASvI,KAAKgM,OAAOwuD,wBAI1Fc,aAAc,WACZ,MAAOt7D,MAAKi7D,eAGd9sB,MAAO,WAEL,MADAnuC,MAAK4yD,YAAYzkB,QACVnuC,MAGTkyD,SAAU,SAASvwB,EAAOO,GACxB,MAAOliC,MAAK4yD,YAAYV,SAASvwB,EAAOO,IAG1CoM,SAAU,SAAS3U,EAAMgI,GAGvB,MAFA3hC,MAAKg4B,KAAK,qBAEL2B,GAIL35B,KAAK4yD,YAAYtkB,SAAS3U,EAAMgI,GACzB3hC,MAJEA,KAAKmuC,SAOhB7L,QAAS,WACLtiC,KAAK4yD,YAAYtwB,WAGrBxY,MAAO,SAAS4pC,GAEd,MADA1zD,MAAK4yD,YAAY9oC,MAAM4pC,GAChB1zD,MAMT+yD,QAAS,WAEP,MADA/yD,MAAK4yD,YAAYG,UACV/yD,MAMTgzD,OAAQ,WAEN,MADAhzD,MAAK4yD,YAAYI,SACVhzD,MAGTquC,QAAS,WACP,MAAOruC,MAAK4yD,YAAYvkB,WAG1BH,kBAAmB,WACjB,MAAOluC,MAAK4yD,YAAY1kB,qBAG1BvM,MAAO,SAAS45B,EAAer5B,GAC7B,GAAIs5B,GAAgBx7D,KAAKgM,OAA0B,oBAAI3K,SAAarB,KAAa,SAAIA,KAAK83C,SAAS4Z,QAAQp/C,cAAgB,KACvHlS,EAAcJ,KAAKgM,OAAO6uD,OAAOU,GACnCr6B,MAASlhC,KAAKgM,OAAOyuD,YACrBn4B,QAAWtiC,KAAKgM,OAAOs2B,QACvB1Q,QAAW4pC,EACXx/B,gBAAmBh8B,KAAKgM,OAAOu+C,6BAC/BroB,eAAmBA,GAKrB,OAH8B,gBAApB,IACRh6B,EAAUI,OAAOsxC,OAAO2hB,GAEnBn7D,GAOT86D,YAAa,WACX,GAAIO,EAGAvzD,GAAU4pB,QAAQ2E,qBACpBz2B,KAAK03B,GAAG,iBAAkB,SAASoG,GACjCA,EAAM39B,iBACNs7D,EAAUvzD,EAAUG,IAAIqvC,cAAc5Z,GAClC29B,GACFz7D,KAAK07D,eAAeD,IAEtBp4D,KAAKrD,OAGPA,KAAK03B,GAAG,uBAAwB,SAASoG,GACvCA,EAAM39B,gBACN,IAAI83C,GAAYj4C,KAAK83C,SAASI,cAE9BhwC,GAAUG,IAAIwvC,qBAAqB73C,KAAK83C,SAAU,SAAS6jB,GACrDA,GACF37D,KAAK07D,eAAeC,GAEtB37D,KAAK83C,SAAS0F,aAAavF,IAC3B50C,KAAKrD,QAEPqD,KAAKrD,QAIX07D,eAAgB,SAAUD,GACxB,GAAIG,GAAY1zD,EAAUI,OAAOkwC,gBAAgBijB,GAC/CtsB,cAAiBnvC,KAAK83C,SAASrqB,QAC/ByT,MAASlhC,KAAKgM,OAAO4uD,uBAAyBp4D,IAAOxC,KAAKgM,OAAOyuD,cACjEz+B,gBAAmBh8B,KAAKgM,OAAOu+C,8BAEjCvqD,MAAK83C,SAASrvC,UAAUoV,iBACxB7d,KAAK83C,SAASrvC,UAAUisB,WAAWknC,OAGtC1zD"} \ No newline at end of file +{"version":3,"file":"wysihtml.min.js","sources":["wysihtml.js"],"names":["wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","document","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","window","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","body","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","createRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","util","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","toArray","el","appendChild","childNodes","nodeType","arrayLike","arr","addListener","eventType","listener","addEventListener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","deprecationNotice","deprecated","replacement","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","readyState","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","isPlainObject","isFunction","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","html","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","removeEventListener","domNode","defaultNodeTypes","_isBlankText","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","ingoreEmpty","all","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","attributeValue","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","getAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","innerHtml","simulatePlaceholder","editor","placeholderText","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","unparseColor","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","ctrlKey","metaKey","minWidth","zIndex","notVisual","fixWebkitSelection","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","contentNodes","lastNode","prevLeaf","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","uneditableContainerClassname","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","wrapper","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","styleRegExp","identifier","htmlApplier","strong","em","b","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertBlockQuote","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","innerLists","otherLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","handleDeleteKeyPress","selNode","curNode","beforeUneditable","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 3face88..d64fe2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wysihtml", - "version": "0.5.0-beta4", + "version": "0.5.0-beta5", "devDependencies": { "grunt": "~0.4.4", "grunt-contrib-concat": "~0.4.0", @@ -15,7 +15,7 @@ "dependencies": { "rangy": "^1.3.0-alpha.20140921" }, - "description": "h1. wysihtml 0.5.0-beta4", + "description": "h1. wysihtml 0.5.0-beta5", "main": "Gruntfile.js", "directories": { "example": "examples",