From 565a3fac201ac76a5b7ca854066b1c9dbcccc83e Mon Sep 17 00:00:00 2001 From: Oliver Pulges Date: Tue, 3 Mar 2015 16:21:17 +0200 Subject: [PATCH] Update beta version --- CHANGELOG.textile | 6 + dist/wysihtml-toolbar.js | 317 +++++++++++++++++++++++----------- dist/wysihtml-toolbar.min.js | 14 +- dist/wysihtml-toolbar.min.map | 2 +- dist/wysihtml.js | 285 +++++++++++++++++++++--------- dist/wysihtml.min.js | 12 +- dist/wysihtml.min.map | 2 +- package.json | 4 +- 8 files changed, 445 insertions(+), 197 deletions(-) diff --git a/CHANGELOG.textile b/CHANGELOG.textile index c50db56..dbe3b83 100644 --- a/CHANGELOG.textile +++ b/CHANGELOG.textile @@ -1,3 +1,9 @@ +*wysihtml5x 0.5.0-beta6* (March 3, 2015) +* Makes html editing view available for div (iframeless) mode +* Parser rules check_attributes accepts now functions for more flexible custmizaton +* Fixes last line break deletion in table cell +* Created tables do not fill cells with non-breakable spaces anymore + *wysihtml5x 0.5.0-beta5* (February 17, 2015) * Fixes IE and webkit erroneous handling * Corrects bower.json usage diff --git a/dist/wysihtml-toolbar.js b/dist/wysihtml-toolbar.js index c4d01c8..c6a5508 100644 --- a/dist/wysihtml-toolbar.js +++ b/dist/wysihtml-toolbar.js @@ -1,5 +1,5 @@ /** - * @license wysihtml5x v0.5.0-beta5 + * @license wysihtml5x v0.5.0-beta6 * https://github.com/Edicy/wysihtml5 * * Author: Christopher Blum (https://github.com/tiff) @@ -10,7 +10,7 @@ * */ var wysihtml5 = { - version: "0.5.0-beta5", + version: "0.5.0-beta6", // namespaces commands: {}, @@ -6692,7 +6692,7 @@ wysihtml5.dom.parse = function(elementOrHtml_current, config_current) { } function _checkAttribute(attributeName, attributeValue, methodName, nodeName) { - var method = attributeCheckMethods[methodName], + var method = wysihtml5.lang.object(methodName).isFunction() ? methodName : attributeCheckMethods[methodName], newAttributeValue; if (method) { @@ -9304,6 +9304,7 @@ wysihtml5.quirks.ensureProperClearing = (function() { } }; + caretPlaceholder.className = '_wysihtml5-temp-caret-fix'; caretPlaceholder.style.position = 'absolute'; caretPlaceholder.style.display = 'block'; caretPlaceholder.style.minWidth = '1px'; @@ -9339,7 +9340,9 @@ wysihtml5.quirks.ensureProperClearing = (function() { fixWebkitSelection = function() { // Webkit fails to add selection if there are no textnodes in that region // (like an uneditable container at the end of content). - if (!sel) { + var parent = node.parentNode, + lastSibling = parent ? parent.childNodes[parent.childNodes.length - 1] : null; + if (!sel || (lastSibling === node && this.win.getComputedStyle(node).display === "block")) { if (notVisual) { // If setAfter is used as internal between actions, self-removing caretPlaceholder has simpler implementation // and remove itself in call stack end instead on user interaction @@ -9640,45 +9643,69 @@ wysihtml5.quirks.ensureProperClearing = (function() { } }, - caretIsBeforeUneditable: function() { - var selection = this.getSelection(), - node = selection.anchorNode, - offset = selection.anchorOffset, - childNodes = [], - range, contentNodes, lastNode; - - if (node) { - if (offset === 0) { - var prevNode = this.getPreviousNode(node, true), - prevLeaf = prevNode ? wysihtml5.dom.domNode(prevNode).lastLeafNode((this.unselectableClass) ? {leafClasses: [this.unselectableClass]} : false) : null; - if (prevLeaf) { - var uneditables = this.getOwnUneditables(); - for (var i = 0, maxi = uneditables.length; i < maxi; i++) { - if (prevLeaf === uneditables[i]) { - return uneditables[i]; - } - } + // Returns object describing node/text before selection + // If includePrevLeaves is true returns also previous last leaf child if selection is in the beginning of current node + getBeforeSelection: function(includePrevLeaves) { + var sel = this.getSelection(), + startNode = (sel.isBackwards()) ? sel.focusNode : sel.anchorNode, + startOffset = (sel.isBackwards()) ? sel.focusOffset : sel.anchorOffset, + rng = this.createRange(), endNode, inTmpCaret; + + // Escape temproray helper nodes if selection in them + inTmpCaret = wysihtml5.dom.getParentElement(startNode, { query: '._wysihtml5-temp-caret-fix' }, 1); + if (inTmpCaret) { + startNode = inTmpCaret.parentNode; + startOffset = Array.prototype.indexOf.call(startNode.childNodes, inTmpCaret); + } + + if (startNode) { + if (startOffset > 0) { + if (startNode.nodeType === 3) { + rng.setStart(startNode, 0); + rng.setEnd(startNode, startOffset); + return { + type: "text", + range: rng, + offset : startOffset, + node: startNode + }; + } else { + rng.setStartBefore(startNode.childNodes[0]); + endNode = startNode.childNodes[startOffset - 1]; + rng.setEndAfter(endNode); + return { + type: "element", + range: rng, + offset : startOffset, + node: endNode + }; } } else { - range = selection.getRangeAt(0); - range.setStart(range.startContainer, range.startOffset - 1); - // TODO: make getting children on range a separate funtion - if (range) { - contentNodes = range.getNodes([1,3]); - for (var n = 0, max = contentNodes.length; n < max; n++) { - if (contentNodes[n].parentNode && contentNodes[n].parentNode === node) { - childNodes.push(contentNodes[n]); - } + rng.setStartAndEnd(startNode, 0); + + if (includePrevLeaves) { + var prevNode = this.getPreviousNode(startNode, true), + prevLeaf = prevNode ? wysihtml5.dom.domNode(prevNode).lastLeafNode() : null; + + if (prevLeaf) { + return { + type: "leafnode", + range: rng, + offset : startOffset, + node: prevLeaf + }; } } - lastNode = childNodes.length > 0 ? childNodes[childNodes.length -1] : null; - if (lastNode && lastNode.nodeType === 1 && wysihtml5.dom.hasClass(lastNode, this.unselectableClass)) { - return lastNode; - } + return { + type: "none", + range: rng, + offset : startOffset, + node: startNode + }; } } - return false; + return null; }, // TODO: Figure out a method from following 2 that would work universally @@ -9758,7 +9785,7 @@ wysihtml5.quirks.ensureProperClearing = (function() { } this.setSelection(newRange); for (var i = caretPlaceholder.length; i--;) { - caretPlaceholder[i].parentNode.removeChild(caretPlaceholder[i]); + caretPlaceholder[i].parentNode.removeChild(caretPlaceholder[i]); } } else { @@ -12414,7 +12441,7 @@ wysihtml5.Commands = Base.extend( for (row = 0; row < value.rows; row ++) { html += ''; for (col = 0; col < value.cols; col ++) { - html += " "; + html += ""; } html += ''; } @@ -13670,59 +13697,98 @@ wysihtml5.views.View = Base.extend( } }; + // Override for giving user ability to delete last line break in table cell + var fixLastBrDeletionInTable = function(composer, force) { + if (composer.selection.caretIsLastInSelection()) { + var sel = composer.selection.getSelection(), + aNode = sel.anchorNode; + if (aNode && aNode.nodeType === 1 && (wysihtml5.dom.getParentElement(aNode, {query: 'td, th'}, false, composer.element) || force)) { + var nextNode = aNode.childNodes[sel.anchorOffset]; + if (nextNode && nextNode.nodeType === 1 & nextNode.nodeName === "BR") { + nextNode.parentNode.removeChild(nextNode); + return true; + } + } + } + return false; + }; + + // If found an uneditable before caret then notify it before deletion + var handleUneditableDeletion = function(composer) { + var before = composer.selection.getBeforeSelection(true); + if (before && (before.type === "element" || before.type === "leafnode") && before.node.nodeType === 1 && before.node.classList.contains(composer.config.uneditableContainerClassname)) { + if (fixLastBrDeletionInTable(composer, true)) { + return true; + } + try { + var ev = new CustomEvent("wysihtml5:uneditable:delete"); + before.node.dispatchEvent(ev); + } catch (err) {} + before.node.parentNode.removeChild(before.node); + return true; + } + return false; + }; + + // Deletion with caret in the beginning of headings needs special attention + // Heading does not concate text to previous block node correctly (browsers do unexpected miracles here especially webkit) + var fixDeleteInTheBeginnigOfHeading = function(composer) { + var selection = composer.selection; + + if (selection.caretIsFirstInSelection() && + selection.getPreviousNode() && + selection.getPreviousNode().nodeName && + (/^H\d$/gi).test(selection.getPreviousNode().nodeName) + ) { + var prevNode = selection.getPreviousNode(); + if ((/^\s*$/).test(prevNode.textContent || prevNode.innerText)) { + // If heading is empty remove the heading node + prevNode.parentNode.removeChild(prevNode); + return true; + } else { + if (prevNode.lastChild) { + var selNode = prevNode.lastChild, + curNode = wysihtml5.dom.getParentElement(selection.getSelectedNode(), { query: "h1, h2, h3, h4, h5, h6, p, pre, div, blockquote" }, false, composer.element); + if (prevNode) { + if (curNode) { + while (curNode.firstChild) { + prevNode.appendChild(curNode.firstChild); + } + selection.setAfter(selNode); + return true; + } else if (selection.getSelectedNode().nodeType === 3) { + prevNode.appendChild(selection.getSelectedNode()); + selection.setAfter(selNode); + return true; + } + } + } + } + } + return false; + }; + var handleDeleteKeyPress = function(event, composer) { var selection = composer.selection, element = composer.element; if (selection.isCollapsed()) { if (selection.caretIsInTheBeginnig('li')) { + // delete in the beginnig of LI will outdent not delete event.preventDefault(); composer.commands.exec('outdentList'); - } else if (selection.caretIsInTheBeginnig()) { - event.preventDefault(); } else { - if (selection.caretIsFirstInSelection() && - selection.getPreviousNode() && - selection.getPreviousNode().nodeName && - (/^H\d$/gi).test(selection.getPreviousNode().nodeName) - ) { - var prevNode = selection.getPreviousNode(); - if ((/^\s*$/).test(prevNode.textContent || prevNode.innerText)) { - // heading is empty - event.preventDefault(); - prevNode.parentNode.removeChild(prevNode); - } else { - if (prevNode.lastChild) { - var selNode = prevNode.lastChild, - curNode = wysihtml5.dom.getParentElement(selection.getSelectedNode(), { query: "h1, h2, h3, h4, h5, h6, p, pre, div, blockquote" }, false, composer.element); - if (prevNode) { - if (curNode) { - event.preventDefault(); - while (curNode.firstChild) { - prevNode.appendChild(curNode.firstChild); - } - selection.setAfter(selNode); - } else if (selection.getSelectedNode().nodeType === 3) { - event.preventDefault(); - prevNode.appendChild(selection.getSelectedNode()); - selection.setAfter(selNode); - } - } - } - } + if (fixDeleteInTheBeginnigOfHeading(composer)) { + event.preventDefault(); + return; } - - var beforeUneditable = selection.caretIsBeforeUneditable(); - // Do a special delete if caret would delete uneditable - if (beforeUneditable) { + if (fixLastBrDeletionInTable(composer)) { event.preventDefault(); - // If customevents present notify element of being deleted - // TODO: Investigate if browser support can be extended - try { - var ev = new CustomEvent("wysihtml5:uneditable:delete"); - beforeUneditable.dispatchEvent(ev); - } catch (err) {} - beforeUneditable.parentNode.removeChild(beforeUneditable); + return; + } + if (handleUneditableDeletion(composer)) { + event.preventDefault(); + return; } } } else { @@ -14089,6 +14155,61 @@ wysihtml5.views.View = Base.extend( } }); })(wysihtml5); +;(function(wysihtml5) { + + wysihtml5.views.SourceView = Base.extend( + /** @scope wysihtml5.views.SourceView.prototype */ { + + constructor: function(editor, composer) { + this.editor = editor; + this.composer = composer; + + this._observe(); + }, + + switchToTextarea: function(shouldParseHtml) { + var composerStyles = this.composer.win.getComputedStyle(this.composer.element), + width = parseFloat(composerStyles.width), + height = Math.max(parseFloat(composerStyles.height), 100); + + if (!this.textarea) { + this.textarea = this.composer.doc.createElement('textarea'); + this.textarea.className = "wysihtml5-source-view"; + } + this.textarea.style.width = width + 'px'; + this.textarea.style.height = height + 'px'; + this.textarea.value = this.editor.getValue(shouldParseHtml, true); + this.composer.element.parentNode.insertBefore(this.textarea, this.composer.element); + this.editor.currentView = "source"; + this.composer.element.style.display = 'none'; + }, + + switchToComposer: function(shouldParseHtml) { + var textareaValue = this.textarea.value; + if (textareaValue) { + this.composer.setValue(textareaValue, shouldParseHtml); + } else { + this.composer.clear(); + this.editor.fire("set_placeholder"); + } + this.textarea.parentNode.removeChild(this.textarea); + this.editor.currentView = this.composer; + this.composer.element.style.display = ''; + }, + + _observe: function() { + this.editor.on("change_view", function(view) { + if (view === "composer") { + this.switchToComposer(true); + } else if (view === "textarea") { + this.switchToTextarea(true); + } + }.bind(this)); + } + + }); + +})(wysihtml5); ;wysihtml5.views.Textarea = wysihtml5.views.View.extend( /** @scope wysihtml5.views.Textarea.prototype */ { name: "textarea", @@ -14281,7 +14402,9 @@ wysihtml5.views.View = Base.extend( handleBeforeLoad: function() { if (!this.config.noTextarea) { - this.synchronizer = new wysihtml5.views.Synchronizer(this, this.textarea, this.composer); + this.synchronizer = new wysihtml5.views.Synchronizer(this, this.textarea, this.composer); + } else { + this.sourceView = new wysihtml5.views.SourceView(this, this.composer); } if (this.config.toolbar) { this.toolbar = new wysihtml5.toolbar.Toolbar(this, this.config.toolbar, this.config.showToolbarAfterInit); @@ -14847,12 +14970,10 @@ wysihtml5.views.View = Base.extend( execAction: function(action) { var editor = this.editor; if (action === "change_view") { - if (editor.textarea) { - if (editor.currentView === editor.textarea) { - editor.fire("change_view", "composer"); - } else { - editor.fire("change_view", "textarea"); - } + if (editor.currentView === editor.textarea || editor.currentView === "source") { + editor.fire("change_view", "composer"); + } else { + editor.fire("change_view", "textarea"); } } if (action == "showSource") { @@ -14917,17 +15038,15 @@ wysihtml5.views.View = Base.extend( editor.on("change_view", function(currentView) { // Set timeout needed in order to let the blur event fire first - if (editor.textarea) { - setTimeout(function() { - that.commandsDisabled = (currentView !== "composer"); - that._updateLinkStates(); - if (that.commandsDisabled) { - dom.addClass(container, CLASS_NAME_COMMANDS_DISABLED); - } else { - dom.removeClass(container, CLASS_NAME_COMMANDS_DISABLED); - } - }, 0); - } + setTimeout(function() { + that.commandsDisabled = (currentView !== "composer"); + that._updateLinkStates(); + if (that.commandsDisabled) { + dom.addClass(container, CLASS_NAME_COMMANDS_DISABLED); + } else { + dom.removeClass(container, CLASS_NAME_COMMANDS_DISABLED); + } + }, 0); }); }, @@ -15008,7 +15127,7 @@ wysihtml5.views.View = Base.extend( action = actionMapping[i]; if (action.name === "change_view") { - action.state = this.editor.currentView === this.editor.textarea; + action.state = this.editor.currentView === this.editor.textarea || this.editor.currentView === "source"; if (action.state) { dom.addClass(action.link, CLASS_NAME_ACTION_ACTIVE); } else { diff --git a/dist/wysihtml-toolbar.min.js b/dist/wysihtml-toolbar.min.js index 96aec16..2f5db73 100644 --- a/dist/wysihtml-toolbar.min.js +++ b/dist/wysihtml-toolbar.min.js @@ -1,10 +1,10 @@ -/*! wysihtml - v0.5.0-beta5 (2015-02-17) */ +/*! wysihtml - v0.5.0-beta6 (2015-03-03) */ -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) +var wysihtml5={version:"0.5.0-beta6",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); +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=wysihtml5.lang.object(c).isFunction()?c: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.className="_wysihtml5-temp-caret-fix",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(){var d=b.parentNode,f=d?d.childNodes[d.childNodes.length-1]:null;if(!e||f===b&&"block"===this.win.getComputedStyle(b).display)if(c){var g=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(g,b.nextSibling),this.selectNode(g),setTimeout(function(){g&&g.parentNode&&g.parentNode.removeChild(g)},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},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode():null;if(j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},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){if(b.selection.caretIsLastInSelection()){var d=b.selection.getSelection(),e=d.anchorNode;if(e&&1===e.nodeType&&(a.dom.getParentElement(e,{query:"td, th"},!1,b.element)||c)){var f=e.childNodes[d.anchorOffset];if(f&&1===f.nodeType&"BR"===f.nodeName)return f.parentNode.removeChild(f),!0}}return!1},h=function(a){var b=a.selection.getBeforeSelection(!0);if(b&&("element"===b.type||"leafnode"===b.type)&&1===b.node.nodeType&&b.node.classList.contains(a.config.uneditableContainerClassname)){if(g(a,!0))return!0;try{var c=new CustomEvent("wysihtml5:uneditable:delete");b.node.dispatchEvent(c)}catch(d){}return b.node.parentNode.removeChild(b.node),!0}return!1},i=function(b){var c=b.selection;if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=a.dom.getParentElement(c.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,b.element);if(d){if(f){for(;f.firstChild;)d.appendChild(f.firstChild);return c.setAfter(e),!0}if(3===c.getSelectedNode().nodeType)return d.appendChild(c.getSelectedNode()),c.setAfter(e),!0}}}return!1},j=function(a,b){{var c=b.selection;b.element}if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else{if(i(b))return void a.preventDefault();if(g(b))return void a.preventDefault();if(h(b))return void a.preventDefault()}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},k=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},l=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},m=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},n=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},o=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)},p=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)},q=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))},r=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},s=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)}},t=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)))},u=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)}},v=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(b){var c,e,f=b.keyCode,g=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&g&&(this.commands.exec(g),b.preventDefault()),f===a.BACKSPACE_KEY&&j(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(),k(this,this.element))},x=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"],l.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||l.call(this)},250)),this.config.handleTables&&x.call(this),e(d,["drop","paste","mouseup","focus","keyup"],m.bind(this)),d.addEventListener("focus",n.bind(this),!1),d.addEventListener("blur",o.bind(this),!1),e(this.element,["drop","paste","beforepaste"],p.bind(this),!1),this.element.addEventListener("copy",q.bind(this),!1),this.element.addEventListener("mousedown",s.bind(this),!1),this.element.addEventListener("mouseover",t.bind(this),!1),this.element.addEventListener("click",u.bind(this),!1),this.element.addEventListener("drop",v.bind(this),!1),this.element.addEventListener("keyup",r.bind(this),!1),this.element.addEventListener("keydown",w.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),function(a){a.views.SourceView=Base.extend({constructor:function(a,b){this.editor=a,this.composer=b,this._observe()},switchToTextarea:function(a){var b=this.composer.win.getComputedStyle(this.composer.element),c=parseFloat(b.width),d=Math.max(parseFloat(b.height),100);this.textarea||(this.textarea=this.composer.doc.createElement("textarea"),this.textarea.className="wysihtml5-source-view"),this.textarea.style.width=c+"px",this.textarea.style.height=d+"px",this.textarea.value=this.editor.getValue(a,!0),this.composer.element.parentNode.insertBefore(this.textarea,this.composer.element),this.editor.currentView="source",this.composer.element.style.display="none"},switchToComposer:function(a){var b=this.textarea.value;b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder")),this.textarea.parentNode.removeChild(this.textarea),this.editor.currentView=this.composer,this.composer.element.style.display=""},_observe:function(){this.editor.on("change_view",function(a){"composer"===a?this.switchToComposer(!0):"textarea"===a&&this.switchToTextarea(!0)}.bind(this))}})}(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.sourceView=new a.views.SourceView(this,this.composer):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.currentView===b.textarea||"source"===b.currentView?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(b){setTimeout(function(){a.commandsDisabled="composer"!==b,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||"source"===this.editor.currentView,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 3f369a0..3bdf75b 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":["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 +{"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","lastSibling","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","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","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","lastNode","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","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","curNode","handleDeleteKeyPress","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","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","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":";;AAWA,GAAIA,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,GAEjBnB,WAAUoB,UAAY,SAASC,EAAKC,GAQ9BC,OAAOC,UAAUC,OACpB,WAEE,GAAIC,GAAQ,oCACZH,QAAOC,UAAUC,KAAO,WACtB,MAAOE,MAAKC,QAAQF,EAAO,QAMjC,WACE,GAAIG,GAAQ,mBACRC,EAAQ,qBACRR,GAAIO,KACRR,EAAIU,QAAQP,UAAWK,GAAUR,EAAKQ,GAAUP,EAAKO,GAAU,SAAUG,EAAIC,EAAIC,GAC/E,OAAQA,EAAOP,MAAMQ,YAAa,KAAOH,EAAI,SAASI,GACpD,GAAIA,GAAIA,GAAKf,EAAIgB,KACjBD,GAAEE,OAASF,EAAEE,QAAUF,EAAEG,WACzBH,EAAEI,eAAkBJ,EAAEI,gBAAmB,WAAWJ,EAAEK,aAAc,GACpEL,EAAEM,gBAAkBN,EAAEM,iBAAmB,WAAWN,EAAEO,cAAe,GACrEP,EAAEQ,MAAQR,EAAES,OAAwB,IAAbT,EAAES,OAAe,EAAiB,IAAbT,EAAES,OAAe,EAAIT,EAAES,OAAWT,EAAEU,QAChFb,EAAGc,KAAKb,EAAME,MAGlBf,EAAIU,QAAQP,UAAWM,GAAUT,EAAKS,GAAUR,EAAKQ,GAAU,SAAUE,EAAIC,GAC3E,MAAON,MAAKqB,YAAa,KAAOhB,EAAIC,QAKpCgB,OAAOC,gBAAkBD,OAAOE,0BAA4BF,OAAOE,yBAAyB9B,EAAIU,QAAQP,UAAW,iBAAmByB,OAAOE,yBAAyB9B,EAAIU,QAAQP,UAAW,eAAe4B,MAC/M,WACC,GAAIC,GAAYJ,OAAOE,yBAAyB9B,EAAIU,QAAQP,UAAW,YACvEyB,QAAOC,eAAe7B,EAAIU,QAAQP,UAAW,eAE3C4B,IAAK,WACJ,MAAOC,GAAUD,IAAIL,KAAKpB,OAE3B2B,IAAK,SAASC,GACb,MAAOF,GAAUC,IAAIP,KAAKpB,KAAM4B,SAQjCC,MAAMC,UACRD,MAAMC,QAAU,SAASC,GACvB,MAA+C,mBAAxCT,OAAOzB,UAAUmC,SAASZ,KAAKW,KAKrCF,MAAMhC,UAAUoC,UACnBJ,MAAMhC,UAAUoC,QAAU,SAASC,EAAEC,GACnC,IAAI,GAAIC,GAAEpC,KAAKqC,OAAOC,EAAE,GAAGC,EAAEJ,IAAI,IAAKC,EAAEG,GAAID,EAAEtC,OAAOoC,KAAKF,EAAEE,EAAEE,GAC9D,MAAOA,KAMNE,SAAS3C,UAAU4C,OACtBD,SAAS3C,UAAU4C,KAAO,SAASC,GACjC,GAAoB,kBAAT1C,MAGT,KAAM,IAAI2C,WAAU,uEAGtB,IAAIC,GAAUf,MAAMhC,UAAUgD,MAAMzB,KAAK0B,UAAW,GAChDC,EAAU/C,KACVgD,EAAU,aACVC,EAAU,WACR,MAAOF,GAAQG,MAAMlD,eAAgBgD,IAAQN,EACpC1C,KACA0C,EACFE,EAAMO,OAAOtB,MAAMhC,UAAUgD,MAAMzB,KAAK0B,aAMrD,OAHAE,GAAKnD,UAAYG,KAAKH,UACtBoD,EAAOpD,UAAY,GAAImD,GAEhBC,IAKXvD,EAAIU,SAAW,SAASgD,GACtBA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,oBACjBH,EAAiBI,mBACjBJ,EAAiBK,kBACjBL,EAAiBM,uBACjB,SAAUC,GAER,IADA,GAAIC,GAAO5D,KAAM6D,GAASD,EAAKE,YAAcF,EAAKG,UAAUC,iBAAiBL,GAAWM,EAAI,GACrFJ,IAAQI,IAAMJ,EAAMI,IAAML,IACjC,QAASC,EAAMI,KAEjBvE,EAAIU,QAAQP,WAKV,YAAcH,KAEV,aAAeC,GAAIuE,cAAc,KAyJ5B,gBAAkBxE,KAK1B,WACC,YAEA,IAAIyE,GAAcxE,EAAIuE,cAAc,IAMpC,IAJAC,EAAYC,UAAUC,IAAI,KAAM,OAI3BF,EAAYC,UAAUE,SAAS,MAAO,CACzC,GAAIC,GAAe,SAASC,GAC1B,GAAIC,GAAW/E,EAAIgF,aAAa7E,UAAU2E,EAE1C9E,GAAIgF,aAAa7E,UAAU2E,GAAU,SAASG,GAC5C,GAAIV,GAAGW,EAAM9B,UAAUT,MAEvB,KAAK4B,EAAI,EAAOW,EAAJX,EAASA,IACnBU,EAAQ7B,UAAUmB,GAClBQ,EAASrD,KAAKpB,KAAM2E,IAI1BJ,GAAa,OACbA,EAAa,UAOf,GAJAJ,EAAYC,UAAUS,OAAO,MAAM,GAI/BV,EAAYC,UAAUE,SAAS,MAAO,CACxC,GAAIQ,GAAUpF,EAAIgF,aAAa7E,UAAUgF,MAEzCnF,GAAIgF,aAAa7E,UAAUgF,OAAS,SAASF,EAAOI,GAClD,MAAI,KAAKjC,aAAc9C,KAAKsE,SAASK,KAAYI,EACxCA,EAEAD,EAAQ1D,KAAKpB,KAAM2E,IAMhCR,EAAc,SAxMf,SAASa,GACR,YACA,IAAM,WAAaA,GAAnB,CAEA,GACEC,GAAgB,YAChBC,EAAY,YACZC,EAAeH,EAAK5E,QAAQ8E,GAC5BE,EAAS9D,OACT+D,EAAUzF,OAAOsF,GAAWpF,MAAQ,WAClC,MAAOE,MAAKC,QAAQ,aAAc,KAEpCqF,EAAazD,MAAMqD,GAAWjD,SAAW,SAASsD,GAIhD,IAHA,GACEtB,GAAI,EACJW,EAAM5E,KAAKqC,OACFuC,EAAJX,EAASA,IACd,GAAIA,IAAKjE,OAAQA,KAAKiE,KAAOsB,EAC3B,MAAOtB,EAGX,OAAO,IAETuB,EAAQ,SAASC,EAAMC,GACrB1F,KAAK2F,KAAOF,EACZzF,KAAK4F,KAAOC,aAAaJ,GACzBzF,KAAK0F,QAAUA,GAEjBI,EAAwB,SAAS1B,EAAWO,GAC1C,GAAc,KAAVA,EACF,KAAM,IAAIa,GACR,aAAc,6CAGlB,IAAI,KAAKO,KAAKpB,GACZ,KAAM,IAAIa,GACR,wBAAyB,uCAG7B,OAAOF,GAAWlE,KAAKgD,EAAWO,IAEpCqB,EAAY,SAASC,GAMnB,IALA,GACEC,GAAiBb,EAAQjE,KAAK6E,EAAKE,aAAa,UAAY,IAC5DC,EAAUF,EAAiBA,EAAeG,MAAM,UAChDpC,EAAI,EACJW,EAAMwB,EAAQ/D,OACLuC,EAAJX,EAASA,IACdjE,KAAKsG,KAAKF,EAAQnC,GAEpBjE,MAAKuG,iBAAmB,WACtBN,EAAKO,aAAa,QAASxG,KAAKgC,cAGpCyE,EAAiBT,EAAUd,MAC3BwB,EAAkB,WAChB,MAAO,IAAIV,GAAUhG,MA4EzB,IAxEAwF,EAAMN,GAAayB,MAAMzB,GACzBuB,EAAelB,KAAO,SAAStB,GAC7B,MAAOjE,MAAKiE,IAAM,MAEpBwC,EAAenC,SAAW,SAASK,GAEjC,MADAA,IAAS,GACqC,KAAvCmB,EAAsB9F,KAAM2E,IAErC8B,EAAepC,IAAM,WACnB,GAIEM,GAHAiC,EAAS9D,UACTmB,EAAI,EACJ4C,EAAID,EAAOvE,OACJyE,GAAU,CACnB,GACEnC,GAAQiC,EAAO3C,GAAK,GACuB,KAAvC6B,EAAsB9F,KAAM2E,KAC9B3E,KAAKsG,KAAK3B,GACVmC,GAAU,WAGL7C,EAAI4C,EAETC,IACF9G,KAAKuG,oBAGTE,EAAeM,OAAS,WACtB,GAIEpC,GACAqC,EAJAJ,EAAS9D,UACTmB,EAAI,EACJ4C,EAAID,EAAOvE,OACJyE,GAAU,CAEnB,GAGE,KAFAnC,EAAQiC,EAAO3C,GAAK,GACpB+C,EAAQlB,EAAsB9F,KAAM2E,GACnB,KAAVqC,GACLhH,KAAKiH,OAAOD,EAAO,GACnBF,GAAU,EACVE,EAAQlB,EAAsB9F,KAAM2E,WAG/BV,EAAI4C,EAETC,IACF9G,KAAKuG,oBAGTE,EAAe5B,OAAS,SAASF,EAAOI,GACtCJ,GAAS,EAET,IACEuC,GAASlH,KAAKsE,SAASK,GACvBH,EAAS0C,EACTnC,KAAU,GAAQ,SAClBA,KAAU,GAAS,KAMrB,OAJIP,IACFxE,KAAKwE,GAAQG,GAGXI,KAAU,GAAQA,KAAU,EACvBA,GAECmC,GAGZT,EAAezE,SAAW,WACxB,MAAOhC,MAAKmH,KAAK,MAGf/B,EAAO7D,eAAgB,CACzB,GAAI6F,IACF3F,IAAKiF,EACLW,YAAY,EACZC,cAAc,EAEhB,KACElC,EAAO7D,eAAe4D,EAAcF,EAAemC,GACnD,MAAOG,GACW,cAAdA,EAAGC,SACLJ,EAAkBC,YAAa,EAC/BjC,EAAO7D,eAAe4D,EAAcF,EAAemC,SAG9ChC,GAAOF,GAAWuC,kBAC3BtC,EAAasC,iBAAiBxC,EAAeyB,KAG/ChH,KA0DRrB,UAAUoB,UAAUiI,OAAQ3D,UAW5B,SAAU4D,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,GAAI5E,GAAI4E,EAAMxG,OACP4B,KACH,IAAK2E,EAAST,EAAGU,EAAM5E,IACnB,OAAO,CAGf,QAAO,GASf,QAAS6E,GAAYC,GACjB,MAAOA,IAASC,EAAeD,EAAOE,IAAqBC,EAAkBH,EAAOI,GAGxF,QAASC,GAAQzJ,GACb,MAAO6I,GAAa7I,EAAK,QAAUA,EAAI0J,KAAO1J,EAAI2J,qBAAqB,QAAQ,GAkCnF,QAASC,GAAWC,SACLC,UAAWf,GAAaR,EAAauB,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,GAAajD,GAClB,MAAOA,GAAG7B,SAAW6B,EAAGkD,aAAe7K,OAAO2H,GAIlD,QAASmD,KACL,GAAKb,IAAaI,EAAIC,YAAtB,CAGA,GAAIS,GACAC,GAAqB,EAAOC,GAAsB,CAIlD3C,GAAanE,SAAU,iBACvB4G,EAAY5G,SAAS+G,cACjB9B,EAAe2B,EAAWI,IAAoB7B,EAAkByB,EAAWK,KAC3EJ,GAAqB,GAI7B,IAAIvB,GAAOD,EAAQrF,SACnB,KAAKsF,GAAuC,QAA/BA,EAAK4B,SAASC,cAEvB,WADAnB,GAAK,wBAWT,IAPIV,GAAQnB,EAAamB,EAAM,qBAC3BsB,EAAYtB,EAAK8B,kBACbrC,EAAY6B,KACZE,GAAsB,KAIzBD,IAAuBC,EAExB,WADAd,GAAK,4CAITE,GAAIC,aAAc,EAClBD,EAAImB,UACAR,mBAAoBA,EACpBC,oBAAqBA,EAIzB,IAAI9C,GAAQsD,CACZ,KAAK,GAAIC,KAAcC,IACbxD,EAASwD,EAAQD,aAAwBE,IAC3CzD,EAAO2C,KAAK3C,EAAQkC,EAK5B,KAAK,GAAIhG,GAAI,EAAGW,EAAM6G,EAAcpJ,OAAYuC,EAAJX,IAAWA,EACnD,IACIwH,EAAcxH,GAAGgG,GACnB,MAAO1C,GACL8D,EAAe,+DAAiEb,EAAajD,GAC7FgC,EAAW8B,KAuBvB,QAASK,GAAKhM,GACVA,EAAMA,GAAOgI,OACbgD,GAGA,KAAK,GAAIzG,GAAI,EAAGW,EAAM+G,EAActJ,OAAYuC,EAAJX,IAAWA,EACnD0H,EAAc1H,GAAGvE,GAQzB,QAAS8L,GAAO7F,EAAMiG,EAAcC,GAChC7L,KAAK2F,KAAOA,EACZ3F,KAAK4L,aAAeA,EACpB5L,KAAKkK,aAAc,EACnBlK,KAAKmK,WAAY,EACjBnK,KAAK6L,YAAcA,EA6CvB,QAASC,GAAanG,EAAMiG,EAAcG,GACtC,GAAIC,GAAY,GAAIR,GAAO7F,EAAMiG,EAAc,SAAS7D,GACpD,IAAKA,EAAOmC,YAAa,CACrBnC,EAAOmC,aAAc,CACrB,KACI6B,EAAS9B,EAAKlC,GACdA,EAAOoC,WAAY,EACrB,MAAO5C,GACL,GAAI8D,GAAe,WAAa1F,EAAO,qBAAuB6E,EAAajD,EAC3EgC,GAAW8B,GACP9D,EAAG0E,OACH1C,EAAWhC,EAAG0E,UAM9B,OADAV,GAAQ5F,GAAQqG,EACTA,EA8BX,QAASE,MAIT,QAASC,MAvZT,GAAI5D,GAAS,SAAUD,EAAW,WAAYI,EAAY,YAItDsC,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,UAEhG5B,GAAuB,iBAAkB,eAAgB,cAAe,gBAAiB,WAAY,QAGrGF,GAAoB,WAAY,mBAAoB,YAAa,oBAAqB,gBAAiB,SACvG,cAAe,yBAiCfD,EAAiBL,EAA2BT,GAC5CkE,EAAiBzD,EAA2BH,GAC5CU,EAAoBP,EAA2BF,GAU/C8C,KAEA1B,QAAoBnC,SAAUgB,SAAoB3E,WAAY2E,EAE9D2D,GACAnE,aAAcA,EACdM,aAAcA,EACdC,eAAgBA,EAChBO,eAAgBA,EAChBoD,eAAgBA,EAChBlD,kBAAmBA,EACnBJ,YAAaA,EACbM,QAASA,GAGTa,GACA3L,QAAS,uBACT4L,aAAa,EACbL,UAAWA,EACXM,WAAW,EACXkC,KAAMA,EACNjB,YACAG,QAASA,EACTnB,QACIC,aAAa,EACbE,aAAa,EACb+B,iBAAiB,EACjBC,qBAAwBC,sBAAuB9D,GAAa,EAAO8D,qBAwB3EvC,GAAIF,KAAOA,EAMXE,EAAIK,KAAOA,CAGX,IAAImC,QACGC,gBACHL,EAAKI,OAASA,EAAS,SAASE,EAAK9D,EAAO+D,GACxC,GAAIzE,GAAGC,CACP,KAAK,GAAInE,KAAK4E,GACNA,EAAM6D,eAAezI,KACrBkE,EAAIwE,EAAI1I,GACRmE,EAAIS,EAAM5E,GACN2I,GAAc,OAANzE,GAA0B,gBAALA,IAAuB,OAANC,GAA0B,gBAALA,IACnEqE,EAAOtE,EAAGC,GAAG,GAEjBuE,EAAI1I,GAAKmE,EAOjB,OAHIS,GAAM6D,eAAe,cACrBC,EAAI3K,SAAW6G,EAAM7G,UAElB2K,GAGXN,EAAKQ,cAAgB,SAASC,EAAcC,GACxC,GAAIC,KAKJ,OAJAP,GAAOO,EAASD,GACZD,GACAL,EAAOO,EAASF,GAEbE,IAGXjD,EAAK,gCAIJF,GACDE,EAAK,mCAIT,WACI,GAAIkD,EAEJ,IAAIpD,EAAW,CACX,GAAIqD,GAAKnJ,SAASG,cAAc,MAChCgJ,GAAGC,YAAYpJ,SAASG,cAAc,QACtC,IAAIrB,MAAWA,KACf,KACoD,GAA5CA,EAAMzB,KAAK8L,EAAGE,WAAY,GAAG,GAAGC,WAChCJ,EAAU,SAASK,GACf,MAAOzK,GAAMzB,KAAKkM,EAAW,KAGvC,MAAO7M,KAGRwM,IACDA,EAAU,SAASK,GAEf,IAAK,GADDC,MACKtJ,EAAI,EAAGW,EAAM0I,EAAUjL,OAAYuC,EAAJX,IAAWA,EAC/CsJ,EAAItJ,GAAKqJ,EAAUrJ,EAEvB,OAAOsJ,KAIflB,EAAKY,QAAUA,IAKnB,IAAIO,EACA3D,KACI3B,EAAanE,SAAU,oBACvByJ,EAAc,SAASb,EAAKc,EAAWC,GACnCf,EAAIgB,iBAAiBF,EAAWC,GAAU,IAEvCxF,EAAanE,SAAU,eAC9ByJ,EAAc,SAASb,EAAKc,EAAWC,GACnCf,EAAInM,YAAY,KAAOiN,EAAWC,IAGtC3D,EAAK,0EAGTsC,EAAKmB,YAAcA,EAGvB,IAAI/B,KAmEJxB,GAAIS,KAAOA,EAGXT,EAAI2D,gBAAkB,SAASF,GACvBzD,EAAIC,YACJwD,EAASzD,GAETwB,EAAcnF,KAAKoH,GAI3B,IAAI/B,KAEJ1B,GAAI4D,gBAAkB,SAASH,GAC3B/B,EAAcrF,KAAKoH,IAanB7D,IACAI,EAAIyB,KAAOzB,EAAI6D,uBAAyBpC,GAW5CF,EAAO3L,WACH6K,KAAM,WAEF,IAAK,GAA6CqD,GAAgBzC,EAD9D0C,EAAsBhO,KAAK4L,iBACtB3H,EAAI,EAAGW,EAAMoJ,EAAoB3L,OAAwCuC,EAAJX,IAAWA,EAAG,CAIxF,GAHAqH,EAAa0C,EAAoB/J,GAEjC8J,EAAiBxC,EAAQD,KACpByC,GAAoBA,YAA0BvC,IAC/C,KAAM,IAAI7E,OAAM,oBAAsB2E,EAAa,cAKvD,IAFAyC,EAAerD,QAEVqD,EAAe5D,UAChB,KAAM,IAAIxD,OAAM,oBAAsB2E,EAAa,mBAK3DtL,KAAK6L,YAAY7L,OAGrB+J,KAAM,SAASC,GAGX,KAFAhK,MAAKkK,aAAc,EACnBlK,KAAKmK,WAAY,EACX,GAAIxD,OAAM,WAAa3G,KAAK2F,KAAO,qBAAuBqE,IAGpEM,KAAM,SAASd,GACXS,EAAIK,KAAK,UAAYtK,KAAK2F,KAAO,KAAO6D,IAG5CyE,kBAAmB,SAASC,EAAYC,GACpClE,EAAIK,KAAK,eAAiB4D,EAAa,cAAgBlO,KAAK2F,KAAO,6BAC/DwI,EAAc,aAGtBC,YAAa,SAAS5E,GAClB,MAAO,IAAI7C,OAAM,kBAAoB3G,KAAK2F,KAAO,YAAc6D,KAwBvES,EAAI6B,aAAe,SAASnG,GAExB,GAAIoG,GAAUH,CACU,IAApB9I,UAAUT,QACV0J,EAAWjJ,UAAU,GACrB8I,OAEAG,EAAWjJ,UAAU,GACrB8I,EAAe9I,UAAU,GAG7B,IAAIiF,GAAS+D,EAAanG,EAAMiG,EAAcG,EAG1C9B,GAAIC,aAAeD,EAAIE,WACvBpC,EAAO2C,QAIfT,EAAIoE,iBAAmB,SAAS1I,EAAMiG,EAAcG,GAChDD,EAAanG,EAAMiG,EAAcG,IAQrC9B,EAAIiC,eAAiBA,EACrBjC,EAAIqE,eAAiB,GAAIpC,GAGzBjC,EAAIsE,mBAAqB,GAAIpC,GAK7BlC,EAAIoE,iBAAiB,aAAe,SAASpE,EAAKlC,GAoD9C,QAASyG,GAAgB5K,GACrB,GAAI6K,EACJ,cAAc7K,GAAK8K,cAAgBC,GAAuC,QAA5BF,EAAK7K,EAAK8K,eAAgC,gCAAND,EAGtF,QAASG,GAAchL,GACnB,GAAIiL,GAASjL,EAAKE,UAClB,OAA2B,IAAnB+K,EAAOxB,SAAiBwB,EAAS,KAG7C,QAASC,GAAalL,GAElB,IADA,GAAIK,GAAI,EACAL,EAAOA,EAAKmL,mBACd9K,CAEN,OAAOA,GAGX,QAAS+K,GAAcpL,GACnB,OAAQA,EAAKyJ,UACT,IAAK,GACL,IAAK,IACD,MAAO,EACX,KAAK,GACL,IAAK,GACD,MAAOzJ,GAAKvB,MAChB,SACI,MAAOuB,GAAKwJ,WAAW/K,QAInC,QAAS4M,GAAkBC,EAAOC,GAC9B,GAAoBC,GAAhBC,IACJ,KAAKD,EAAIF,EAAOE,EAAGA,EAAIA,EAAEtL,WACrBuL,EAAU/I,KAAK8I,EAGnB,KAAKA,EAAID,EAAOC,EAAGA,EAAIA,EAAEtL,WACrB,GAAIwL,EAAcD,EAAWD,GACzB,MAAOA,EAIf,OAAO,MAGX,QAASG,GAAaC,EAAUC,EAAYC,GAExC,IADA,GAAIN,GAAIM,EAAiBD,EAAaA,EAAW3L,WAC1CsL,GAAG,CACN,GAAIA,IAAMI,EACN,OAAO,CAEPJ,GAAIA,EAAEtL,WAGd,OAAO,EAGX,QAAS6L,GAAiBH,EAAUC,GAChC,MAAOF,GAAaC,EAAUC,GAAY,GAG9C,QAASG,GAAqBhM,EAAM4L,EAAUE,GAE1C,IADA,GAAItH,GAAGgH,EAAIM,EAAiB9L,EAAOA,EAAKE,WACjCsL,GAAG,CAEN,GADAhH,EAAIgH,EAAEtL,WACFsE,IAAMoH,EACN,MAAOJ,EAEXA,GAAIhH,EAER,MAAO,MAGX,QAASyH,GAAoBjM,GACzB,GAAIyE,GAAIzE,EAAKyJ,QACb,OAAY,IAALhF,GAAe,GAALA,GAAe,GAALA,EAG/B,QAASyH,GAAoBlM,GACzB,IAAKA,EACD,OAAO,CAEX,IAAIyE,GAAIzE,EAAKyJ,QACb,OAAY,IAALhF,GAAe,GAALA,EAGrB,QAAS0H,GAAYnM,EAAMoM,GACvB,GAAIC,GAAWD,EAAcE,YAAarB,EAASmB,EAAclM,UAMjE,OALImM,GACApB,EAAOsB,aAAavM,EAAMqM,GAE1BpB,EAAO1B,YAAYvJ,GAEhBA,EAIX,QAASwM,GAAcxM,EAAMoD,EAAOqJ,GAChC,GAAIC,GAAU1M,EAAK2M,WAAU,EAM7B,IALAD,EAAQE,WAAW,EAAGxJ,GACtBpD,EAAK4M,WAAWxJ,EAAOpD,EAAKvB,OAAS2E,GACrC+I,EAAYO,EAAS1M,GAGjByM,EACA,IAAK,GAAWI,GAAPxM,EAAI,EAAawM,EAAWJ,EAAoBpM,MAEjDwM,EAAS7M,MAAQA,GAAQ6M,EAASC,OAAS1J,GAC3CyJ,EAAS7M,KAAO0M,EAChBG,EAASC,QAAU1J,GAGdyJ,EAAS7M,MAAQA,EAAKE,YAAc2M,EAASC,OAAS5B,EAAalL,MACtE6M,EAASC,MAIvB,OAAOJ,GAGX,QAASK,GAAY/M,GACjB,GAAqB,GAAjBA,EAAKyJ,SACL,MAAOzJ,EACJ,UAAWA,GAAKgN,eAAiBjC,EACpC,MAAO/K,GAAKgN,aACT,UAAWhN,GAAKG,UAAY4K,EAC/B,MAAO/K,GAAKG,QACT,IAAIH,EAAKE,WACZ,MAAO6M,GAAY/M,EAAKE,WAExB,MAAMiE,GAAOqG,YAAY,2CAIjC,QAASyC,GAAUjN,GACf,GAAIjE,GAAMgR,EAAY/M,EACtB,UAAWjE,GAAImR,aAAenC,EAC1B,MAAOhP,GAAImR,WACR,UAAWnR,GAAIoR,cAAgBpC,EAClC,MAAOhP,GAAIoR,YAEX,MAAMhJ,GAAOqG,YAAY,uCAIjC,QAAS4C,GAAkBC,GACvB,SAAWA,GAASC,iBAAmBvC,EACnC,MAAOsC,GAASC,eACb,UAAWD,GAASE,eAAiBxC,EACxC,MAAOsC,GAASE,cAAcpN,QAE9B,MAAMgE,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,GAAS1E,GACd,MAAOA,IAAON,EAAKnE,aAAayE,EAAK,eAAiBN,EAAK7D,aAAamE,EAAK,YAGjF,QAAS2E,GAAmB3E,EAAK5E,EAAQwJ,GACrC,GAAI5R,EAiBJ,IAfKgN,EAKIN,EAAK5D,eAAekE,EAAK,YAC9BhN,EAAuB,GAAhBgN,EAAIU,UAA8C,UAA7BV,EAAI6E,QAAQtG,cACpC8F,EAAkBrE,GAAOgE,EAAYhE,GAIpC0E,EAAS1E,KACdhN,EAAMgN,EAAI5I,UAXVpE,EAAMoE,UAcLpE,EACD,KAAMoI,GAAOqG,YAAYmD,EAAa,oDAG1C,OAAO5R,GAGX,QAAS8R,GAAiB7N,GAEtB,IADA,GAAIiL,GACKA,EAASjL,EAAKE,YACnBF,EAAOiL,CAEX,OAAOjL,GAGX,QAAS8N,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,IAAIjB,OAAM,qDAOpB,IAHAqL,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,GAAavO,GAClB,GAAIwL,EACJ,KAEI,MADAA,GAAIxL,EAAKE,YACF,EACT,MAAOrD,GACL,OAAO,GAgBf,QAAS2R,GAAYxO,GACjB,IAAKA,EACD,MAAO,WAEX,IAAIyO,GAAmBF,EAAavO,GAChC,MAAO,eAEX,IAAIiM,EAAoBjM,GACpB,MAAO,IAAMA,EAAK0O,KAAO,GAE7B,IAAqB,GAAjB1O,EAAKyJ,SAAe,CACpB,GAAIkF,GAAS3O,EAAK4O,GAAK,QAAU5O,EAAK4O,GAAK,IAAM,EACjD,OAAO,IAAM5O,EAAKqH,SAAWsH,EAAS,WAAazD,EAAalL,GAAQ,WAAaA,EAAKwJ,WAAW/K,OAAS,MAAQuB,EAAK6O,WAAa,6BAA6B5P,MAAM,EAAG,IAAM,IAExL,MAAOe,GAAKqH,SAGhB,QAASyH,GAAyB9O,GAE9B,IADA,GAA2D+O,GAAvDC,EAAWjC,EAAY/M,GAAMiP,yBACxBF,EAAQ/O,EAAKsO,YAClBU,EAASzF,YAAYwF,EAEzB,OAAOC,GAgBX,QAASE,GAAalL,GAClB5H,KAAK4H,KAAOA,EACZ5H,KAAK+S,MAAQnL,EAiCjB,QAASoL,GAAepL,GACpB,MAAO,IAAIkL,GAAalL,GAG5B,QAASqL,GAAYrP,EAAM8M,GACvB1Q,KAAK4D,KAAOA,EACZ5D,KAAK0Q,OAASA,EAiBlB,QAAS7K,GAAaqN,GAClBlT,KAAK4F,KAAO5F,KAAKkT,GACjBlT,KAAKkT,SAAWA,EAChBlT,KAAK0F,QAAU,iBAAmB1F,KAAKkT,SApa3C,GAAIvE,GAAQ,YACRtC,EAAOpC,EAAIoC,IAGVA,GAAKrD,eAAejF,UAAW,yBAA0B,gBAAiB,oBAC3EgE,EAAOgC,KAAK,2CAGXsC,EAAKnE,aAAanE,SAAU,yBAC7BgE,EAAOgC,KAAK,+CAGhB,IAAImD,GAAKnJ,SAASG,cAAc,MAC3BmI,GAAKrD,eAAekE,GAAK,eAAgB,cAAe,eACpDb,EAAKD,eAAec,GAAK,kBAAmB,cAAe,aAAc,iBAC9EnF,EAAOgC,KAAK,qCAIXsC,EAAK5D,eAAeyE,EAAI,cACzBnF,EAAOgC,KAAK,wCAGhB,IAAIoJ,GAAWpP,SAASqP,eAAe,OAClC/G,GAAKrD,eAAemK,GAAW,YAAa,aAAc,aAAc,aAAc,eAClF9G,EAAKD,eAAec,GAAK,kBAAmB,cAAe,aAAc,iBACzEb,EAAKnD,kBAAkBiK,GAAW,WACvCpL,EAAOgC,KAAK,sCAQhB,IAAIuF,GAKA,SAAS/B,EAAK8F,GAEV,IADA,GAAIpP,GAAIsJ,EAAIlL,OACL4B,KACH,GAAIsJ,EAAItJ,KAAOoP,EACX,OAAO,CAGf,QAAO,GA0PXhB,GAAkB,GAYtB,WACI,GAAInF,GAAKnJ,SAASG,cAAc,IAChCgJ,GAAGuF,UAAY,GACf,IAAIU,GAAWjG,EAAGgF,UAClBhF,GAAGuF,UAAY,OACfJ,EAAkBF,EAAagB,GAE/BlJ,EAAImB,SAASiH,gBAAkBA,IA8BnC,IAAIiB,SACO5L,QAAO6L,kBAAoB5E,EAClC2E,EAA2B,SAASpG,EAAIsG,GACpC,MAAO3C,GAAU3D,GAAIqG,iBAAiBrG,EAAI,MAAMsG,UAEtCzP,UAAS0P,gBAAgBC,cAAgB/E,EACvD2E,EAA2B,SAASpG,EAAIsG,GACpC,MAAOtG,GAAGwG,aAAaF,IAG3BzL,EAAOgC,KAAK,yDAQhB+I,EAAajT,WACT8T,SAAU,KAEVC,QAAS,WACL,QAAS5T,KAAK+S,OAGlBc,KAAM,WACF,GACIlB,GAAOkB,EADPzE,EAAIpP,KAAK2T,SAAW3T,KAAK+S,KAE7B,IAAI/S,KAAK2T,SAEL,GADAhB,EAAQvD,EAAE8C,WAENlS,KAAK+S,MAAQJ,MACV,CAEH,IADAkB,EAAO,KACCzE,IAAMpP,KAAK4H,QAAWiM,EAAOzE,EAAEc,cACnCd,EAAIA,EAAEtL,UAEV9D,MAAK+S,MAAQc,EAGrB,MAAO7T,MAAK2T,UAGhBG,OAAQ,WACJ9T,KAAK2T,SAAW3T,KAAK+S,MAAQ/S,KAAK4H,KAAO,OAajDqL,EAAYpT,WACRkU,OAAQ,SAASC,GACb,QAASA,GAAOhU,KAAK4D,OAASoQ,EAAIpQ,MAAQ5D,KAAK0Q,QAAUsD,EAAItD,QAGjEuD,QAAS,WACL,MAAO,gBAAkB7B,EAAYpS,KAAK4D,MAAQ,IAAM5D,KAAK0Q,OAAS,MAG1E1O,SAAU,WACN,MAAOhC,MAAKiU,YAUpBpO,EAAahG,WACTqU,eAAgB,EAChBC,sBAAuB,EACvBC,mBAAoB,EACpBC,4BAA6B,EAC7BC,cAAe,EACfC,kBAAmB,EACnBC,kBAAmB,GACnBC,sBAAuB,IAG3B5O,EAAahG,UAAUmC,SAAW,WAC9B,MAAOhC,MAAK0F,SAGhBuE,EAAIzL,KACA8Q,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,QAASiD,EAAKjD,QACdiI,SAAUA,EACVC,mBAAoBA,EACpBG,iBAAkBA,EAClBC,cAAeA,EACfS,aAAcA,EACdC,YAAaA,EACbkB,yBAA0BA,EAC1BZ,yBAA0BA,EAC1BM,eAAgBA,EAChBC,YAAaA,GAGjBhJ,EAAIpE,aAAeA,IAMvBoE,EAAIoE,iBAAiB,YAAa,WAAY,SAASpE,GAsBnD,QAASyK,GAA2B9Q,EAAMmF,GACtC,MAAyB,IAAjBnF,EAAKyJ,WACLsC,EAAiB/L,EAAMmF,EAAM4L,iBAAmBhF,EAAiB/L,EAAMmF,EAAM6L,eAGzF,QAASC,GAAiB9L,GACtB,MAAOA,GAAMhF,UAAY4M,EAAY5H,EAAM4L,gBAG/C,QAASG,GAAsBlR,GAC3B,MAAO,IAAIqP,GAAYrP,EAAKE,WAAYgL,EAAalL,IAGzD,QAASmR,GAAqBnR,GAC1B,MAAO,IAAIqP,GAAYrP,EAAKE,WAAYgL,EAAalL,GAAQ,GAGjE,QAASoR,GAAqBpR,EAAMwL,EAAGjH,GACnC,GAAI8M,GAAqC,IAAjBrR,EAAKyJ,SAAiBzJ,EAAKsO,WAAatO,CAYhE,OAXIiM,GAAoBT,GAChBjH,GAAKiH,EAAE/M,OACP7D,EAAIuR,YAAYnM,EAAMwL,GAEtBA,EAAEtL,WAAWqM,aAAavM,EAAW,GAALuE,EAASiH,EAAIgB,EAAchB,EAAGjH,IAE3DA,GAAKiH,EAAEhC,WAAW/K,OACzB+M,EAAEjC,YAAYvJ,GAEdwL,EAAEe,aAAavM,EAAMwL,EAAEhC,WAAWjF,IAE/B8M,EAGX,QAASC,GAAgBC,EAAQC,EAAQC,GAIrC,GAHAC,EAAiBH,GACjBG,EAAiBF,GAEbP,EAAiBO,IAAWP,EAAiBM,GAC7C,KAAM,IAAItP,GAAa,qBAG3B,IAAI0P,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,GACKjS,EAAwEkS,EAAlEC,EAAOlB,EAAiBe,EAAS7M,OAAO8J,yBAAuCjP,EAAOgS,EAAS/B,QAAU,CASpH,GARAgC,EAAoBD,EAASI,6BAC7BpS,EAAOA,EAAK2M,WAAWsF,GACnBA,IACAC,EAAcF,EAASK,qBACvBrS,EAAKuJ,YAAYwI,EAAaG,IAC9BA,EAAYhC,UAGK,IAAjBlQ,EAAKyJ,SACL,KAAM,IAAIxH,GAAa,wBAE3BkQ,GAAK5I,YAAYvJ,GAErB,MAAOmS,GAGX,QAASG,GAAeC,EAAeC,EAAMC,GACzC,GAAIC,GAAIlH,CACRiH,GAAgBA,IAAmBE,MAAM,EACzC,KAAK,GAAI3S,GAAM4S,EAAkB5S,EAAOuS,EAActC,QAClD,GAAIsC,EAAcH,6BAA8B,CAC5C,GAAII,EAAKxS,MAAU,EAEf,YADAyS,EAAcE,MAAO,EAQrB,IAHAC,EAAmBL,EAAcF,qBACjCC,EAAeM,EAAkBJ,EAAMC,GACvCG,EAAiB1C,SACbuC,EAAcE,KACd,WAOR,KADAD,EAAK9X,EAAIwU,eAAepP,GACfwL,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,EAAS7O,SAKrB,QAAS2P,GAAed,GACpB,IAAK,GAAIhS,GAAwEkS,EAAlEC,EAAOlB,EAAiBe,EAAS7M,OAAO8J,yBAAuCjP,EAAOgS,EAAS/B,QAAU,CAUpH,GARI+B,EAASI,8BACTpS,EAAOA,EAAK2M,WAAU,GACtBuF,EAAcF,EAASK,qBACvBrS,EAAKuJ,YAAYuJ,EAAeZ,IAChCA,EAAYhC,UAEZ8B,EAAS7O,SAEQ,IAAjBnD,EAAKyJ,SACL,KAAM,IAAIxH,GAAa,wBAE3BkQ,GAAK5I,YAAYvJ,GAErB,MAAOmS,GAGX,QAASY,GAAgB5N,EAAO6N,EAAWC,GACvC,GAAyDC,GAArDC,KAAqBH,IAAaA,EAAUvU,QAC5C2U,IAAiBH,CACjBE,KACAD,EAAQ,GAAIG,QAAO,KAAOL,EAAUzP,KAAK,KAAO,MAGpD,IAAItD,KAsBJ,OArBAqS,GAAe,GAAIgB,GAAcnO,GAAO,GAAQ,SAASnF,GACrD,KAAImT,IAAoBD,EAAM/Q,KAAKnC,EAAKyJ,WAGpC2J,IAAiBH,EAAOjT,IAA5B,CAKA,GAAIuT,GAAKpO,EAAM4L,cACf,IAAI/Q,GAAQuT,IAAMtH,EAAoBsH,IAAOpO,EAAMyM,aAAe2B,EAAG9U,OAArE,CAIA,GAAI+U,GAAKrO,EAAM6L,YACXhR,IAAQwT,GAAMvH,EAAoBuH,IAA0B,GAAnBrO,EAAM0M,WAInD5R,EAAMyC,KAAK1C,OAERC,EAGX,QAASoQ,GAAQlL,GACb,GAAIpD,GAAgC,mBAAjBoD,GAAMsO,QAA0B,QAAUtO,EAAMsO,SACnE,OAAO,IAAM1R,EAAO,IAAMnH,EAAI4T,YAAYrJ,EAAM4L,gBAAkB,IAAM5L,EAAMyM,YAAc,KACpFhX,EAAI4T,YAAYrJ,EAAM6L,cAAgB,IAAM7L,EAAM0M,UAAY,KAO1E,QAASyB,GAAcnO,EAAOuO,GAK1B,GAJAtX,KAAK+I,MAAQA,EACb/I,KAAKsX,gCAAkCA,GAGlCvO,EAAMwO,UAAW,CAClBvX,KAAKmX,GAAKpO,EAAM4L,eAChB3U,KAAKwX,GAAKzO,EAAMyM,YAChBxV,KAAKoX,GAAKrO,EAAM6L,aAChB5U,KAAKyX,GAAK1O,EAAM0M,SAChB,IAAI7N,GAAOmB,EAAM2O,uBAEb1X,MAAKmX,KAAOnX,KAAKoX,IAAMvH,EAAoB7P,KAAKmX,KAChDnX,KAAK2X,2BAA4B,EACjC3X,KAAK4X,OAAS5X,KAAK6X,MAAQ7X,KAAK+S,MAAQ/S,KAAKmX,KAE7CnX,KAAK4X,OAAS5X,KAAK+S,MAAS/S,KAAKmX,KAAOvP,GAASiI,EAAoB7P,KAAKmX,IACxCvH,EAAqB5P,KAAKmX,GAAIvP,GAAM,GAAlE5H,KAAKmX,GAAG/J,WAAWpN,KAAKwX,IAC5BxX,KAAK6X,MAAS7X,KAAKoX,KAAOxP,GAASiI,EAAoB7P,KAAKoX,IACtBxH,EAAqB5P,KAAKoX,GAAIxP,GAAM,GAAtE5H,KAAKoX,GAAGhK,WAAWpN,KAAKyX,GAAK,KAqG7C,QAASK,GAAqBlB,GAC1B,MAAO,UAAShT,EAAM8L,GAElB,IADA,GAAIrH,GAAG+G,EAAIM,EAAiB9L,EAAOA,EAAKE,WACjCsL,GAAG,CAEN,GADA/G,EAAI+G,EAAE/B,SACFiC,EAAcsH,EAAWvO,GACzB,MAAO+G,EAEXA,GAAIA,EAAEtL,WAEV,MAAO,OAQf,QAASiU,GAAsCnU,EAAMoU,GACjD,GAAIC,GAAiCrU,EAAMoU,GACvC,KAAM,IAAInS,GAAa,yBAI/B,QAASqS,GAAoBtU,EAAMuU,GAC/B,IAAK7I,EAAc6I,EAAcvU,EAAKyJ,UAClC,KAAM,IAAIxH,GAAa,yBAI/B,QAASuS,GAAkBxU,EAAM8M,GAC7B,GAAa,EAATA,GAAcA,GAAUb,EAAoBjM,GAAQA,EAAKvB,OAASuB,EAAKwJ,WAAW/K,QAClF,KAAM,IAAIwD,GAAa,kBAI/B,QAASwS,GAA6BnJ,EAAOC,GACzC,GAAImJ,GAA+BpJ,GAAO,KAAUoJ,GAA+BnJ,GAAO,GACtF,KAAM,IAAItJ,GAAa,sBAI/B,QAAS0S,GAAsB3U,GAC3B,GAAI4U,GAAoB5U,GAAM,GAC1B,KAAM,IAAIiC,GAAa,+BAI/B,QAAS4S,GAAW7U,EAAMsP,GACtB,IAAKtP,EACD,KAAM,IAAIiC,GAAaqN,GAI/B,QAASwF,GAAS9U,GACd,MAAQyO,IAAmB7T,EAAI2T,aAAavO,KACvC0L,EAAcqJ,EAAwB/U,EAAKyJ,YAAciL,GAA+B1U,GAAM,GAGvG,QAASgV,GAAchV,EAAM8M,GACzB,MAAOA,KAAWb,EAAoBjM,GAAQA,EAAKvB,OAASuB,EAAKwJ,WAAW/K,QAGhF,QAASwW,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,IAAIpC,OAAM,6DAA+DoC,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,EAAG/U,QAC7C+N,EAAcgH,EAAIK,EAAIpH,GAGtBR,EAAoBsH,IAAOK,EAAK,GAAKA,EAAKL,EAAG9U,SAC7C8U,EAAK/G,EAAc+G,EAAIK,EAAInH,GACvB0I,GACAtB,GAAMD,EACNJ,EAAKD,GACEC,GAAMD,EAAGrT,YAAc2T,GAAM3I,EAAaqI,IACjDM,IAEJD,EAAK,GAETzO,EAAMiQ,eAAe7B,EAAIK,EAAIJ,EAAIK,GAGrC,QAASwB,GAAYlQ,GACjBuM,EAAiBvM,EACjB,IAAImQ,GAAYnQ,EAAM2O,wBAAwB5T,WAAWyM,WAAU,EAEnE,OADA2I,GAAU/L,YAAapE,EAAMoQ,iBACtBD,EAAUzG,UA8WrB,QAAS2G,GAAgCzM,GACrCA,EAAI0M,eAAiBC,GACrB3M,EAAI4M,aAAeC,GACnB7M,EAAI8M,WAAaC,GACjB/M,EAAIgN,aAAeC,GAEnBjN,EAAIkN,YAAcC,GAClBnN,EAAIoN,WAAaC,GACjBrN,EAAIsN,sBAAwBC,GAC5BvN,EAAIwN,YAAcC,GAGtB,QAASC,GAAwBC,GAC7BlB,EAAgCkB,GAChClB,EAAgCkB,EAAYza,WAGhD,QAAS0a,GAA0BC,EAASC,GACxC,MAAO,YACHnF,EAAiBtV,KAEjB,IAKI4D,GAAM8W,EALNvD,EAAKnX,KAAK2U,eAAgB6C,EAAKxX,KAAKwV,YAAa5N,EAAO5H,KAAK0X,wBAE7D9B,EAAW,GAAIsB,GAAclX,MAAM,EAInCmX,KAAOvP,IACPhE,EAAOgM,EAAqBuH,EAAIvP,GAAM,GACtC8S,EAAW3F,EAAqBnR,GAChCuT,EAAKuD,EAAS9W,KACd4T,EAAKkD,EAAShK,QAIlBwF,EAAeN,EAAU2C,GAEzB3C,EAAS+E,OAGT,IAAI7Z,GAAc0Z,EAAQ5E,EAM1B,OALAA,GAAS9B,SAGT2G,EAAgBza,KAAMmX,EAAIK,EAAIL,EAAIK,GAE3B1W,GAIf,QAAS8Z,GAAqBN,EAAaG,GACvC,QAASI,GAA4BC,EAAUC,GAC3C,MAAO,UAASnX,GACZsU,EAAoBtU,EAAMoX,GAC1B9C,EAAoBzG,EAAiB7N,GAAO+U,EAE5C,IAAI+B,IAAYI,EAAWhG,EAAwBC,GAAsBnR,IACxEmX,EAAUE,EAAgBC,GAAalb,KAAM0a,EAAS9W,KAAM8W,EAAShK,SAI9E,QAASuK,GAAclS,EAAOnF,EAAM8M,GAChC,GAAI0G,GAAKrO,EAAM6L,aAAc6C,EAAK1O,EAAM0M,WACpC7R,IAASmF,EAAM4L,gBAAkBjE,IAAW3H,EAAMyM,gBAG9C/D,EAAiB7N,IAAS6N,EAAiB2F,IAA8C,GAAvC1F,EAAc9N,EAAM8M,EAAQ0G,EAAIK,MAClFL,EAAKxT,EACL6T,EAAK/G,GAET+J,EAAgB1R,EAAOnF,EAAM8M,EAAQ0G,EAAIK,IAIjD,QAASyD,GAAYnS,EAAOnF,EAAM8M,GAC9B,GAAIyG,GAAKpO,EAAM4L,eAAgB6C,EAAKzO,EAAMyM,aACtC5R,IAASmF,EAAM6L,cAAgBlE,IAAW3H,EAAM0M,cAG5ChE,EAAiB7N,IAAS6N,EAAiB0F,IAA8C,IAAvCzF,EAAc9N,EAAM8M,EAAQyG,EAAIK,MAClFL,EAAKvT,EACL4T,EAAK9G,GAET+J,EAAgB1R,EAAOoO,EAAIK,EAAI5T,EAAM8M,IAK7C,GAAIyK,GAAI,YACRA,GAAEtb,UAAYoK,EAAIqE,eAClBgM,EAAYza,UAAY,GAAIsb,GAE5B9O,EAAKI,OAAO6N,EAAYza,WACpBub,SAAU,SAASxX,EAAM8M,GACrBqH,EAAsCnU,GAAM,GAC5CwU,EAAkBxU,EAAM8M,GAExBuK,EAAcjb,KAAM4D,EAAM8M,IAG9B2K,OAAQ,SAASzX,EAAM8M,GACnBqH,EAAsCnU,GAAM,GAC5CwU,EAAkBxU,EAAM8M,GAExBwK,EAAYlb,KAAM4D,EAAM8M,IAW5BsI,eAAgB,WACZ,GAAIsC,GAAOxY,UACPqU,EAAKmE,EAAK,GAAI9D,EAAK8D,EAAK,GAAIlE,EAAKD,EAAIM,EAAKD,CAE9C,QAAQ8D,EAAKjZ,QACT,IAAK,GACDoV,EAAK6D,EAAK,EACV,MACJ,KAAK,GACDlE,EAAKkE,EAAK,GACV7D,EAAK6D,EAAK,GAIlBb,EAAgBza,KAAMmX,EAAIK,EAAIJ,EAAIK,IAGtC8D,YAAa,SAAS3X,EAAM8M,EAAQqK,GAChC/a,KAAK,OAAS+a,EAAU,QAAU,QAAQnX,EAAM8M,IAGpD8K,eAAgBX,GAA4B,GAAM,GAClDY,cAAeZ,GAA4B,GAAO,GAClDa,aAAcb,GAA4B,GAAM,GAChDc,YAAad,GAA4B,GAAO,GAEhDe,SAAU,SAASb,GACfzF,EAAiBtV,MACb+a,EACAN,EAAgBza,KAAMA,KAAK2U,eAAgB3U,KAAKwV,YAAaxV,KAAK2U,eAAgB3U,KAAKwV,aAEvFiF,EAAgBza,KAAMA,KAAK4U,aAAc5U,KAAKyV,UAAWzV,KAAK4U,aAAc5U,KAAKyV,YAIzFoG,mBAAoB,SAASjY,GACzBmU,EAAsCnU,GAAM,GAE5C6W,EAAgBza,KAAM4D,EAAM,EAAGA,EAAMoL,EAAcpL,KAGvDkY,WAAY,SAASlY,GACjBmU,EAAsCnU,GAAM,GAC5CsU,EAAoBtU,EAAMoX,EAE1B,IAAIe,GAAQjH,EAAsBlR,GAAOoY,EAAMjH,EAAqBnR,EACpE6W,GAAgBza,KAAM+b,EAAMnY,KAAMmY,EAAMrL,OAAQsL,EAAIpY,KAAMoY,EAAItL,SAGlEuL,gBAAiB1B,EAA0B7D,EAAgB+D,GAE3DyB,eAAgB3B,EAA0B9D,EAAegE,GAEzD0B,oBAAqB,WACjB7G,EAAiBtV,MACjBuY,EAAsBvY,KAAK2U,gBAC3B4D,EAAsBvY,KAAK4U,aAI3B,IAAIgB,GAAW,GAAIsB,GAAclX,MAAM,GACnCoc,EAAqBxG,EAASgC,QAAUlD,EAA2BkB,EAASgC,OAAQ5X,OAC/E4V,EAASiC,OAASnD,EAA2BkB,EAASiC,MAAO7X,KAEtE,OADA4V,GAAS9B,UACDsI,GAGZC,gBAAiB,WACbvD,EAAqB9Y,OAGzBsc,mCAAoC,SAASjM,GACzCyI,EAAqB9Y,KAAMqQ,IAG/BkM,oBAAqB,WACjBjH,EAAiBtV,KAEjB,IAAImX,GAAKnX,KAAK2U,eAAgB6C,EAAKxX,KAAKwV,YAAa4B,EAAKpX,KAAK4U,aAAc6C,EAAKzX,KAAKyV,UAEnF+G,EAAe,SAAS5Y,GACxB,GAAI6Y,GAAU7Y,EAAKsM,WACfuM,IAAWA,EAAQpP,UAAYzJ,EAAKyJ,WACpC+J,EAAKxT,EACL6T,EAAK7T,EAAKvB,OACVuB,EAAK8Y,WAAWD,EAAQnK,MACxBmK,EAAQ3Y,WAAW6Y,YAAYF,KAInCG,EAAgB,SAAShZ,GACzB,GAAI6Y,GAAU7Y,EAAKmL,eACnB,IAAI0N,GAAWA,EAAQpP,UAAYzJ,EAAKyJ,SAAU,CAC9C8J,EAAKvT,CACL,IAAIiZ,GAAajZ,EAAKvB,MAItB,IAHAmV,EAAKiF,EAAQpa,OACbuB,EAAKkZ,WAAW,EAAGL,EAAQnK,MAC3BmK,EAAQ3Y,WAAW6Y,YAAYF,GAC3BtF,GAAMC,EACNK,GAAMD,EACNJ,EAAKD,MACF,IAAIC,GAAMxT,EAAKE,WAAY,CAC9B,GAAIiZ,GAAYjO,EAAalL,EACzB6T,IAAMsF,GACN3F,EAAKxT,EACL6T,EAAKoF,GACEpF,EAAKsF,GACZtF,OAMZuF,GAAiB,CAErB,IAAInN,EAAoBuH,GAChBA,EAAG/U,QAAUoV,GACb+E,EAAapF,OAEd,CACH,GAAIK,EAAK,EAAG,CACR,GAAIwF,GAAU7F,EAAGhK,WAAWqK,EAAK,EAC7BwF,IAAWpN,EAAoBoN,IAC/BT,EAAaS,GAGrBD,GAAkBhd,KAAKuX,UAG3B,GAAIyF,GACA,GAAInN,EAAoBsH,GACV,GAANK,GACAoF,EAAczF,OAGlB,IAAIK,EAAKL,EAAG/J,WAAW/K,OAAQ,CAC3B,GAAI6a,GAAY/F,EAAG/J,WAAWoK,EAC1B0F,IAAarN,EAAoBqN,IACjCN,EAAcM,QAK1B/F,GAAKC,EACLI,EAAKC,CAGTgD,GAAgBza,KAAMmX,EAAIK,EAAIJ,EAAIK,IAGtC0F,gBAAiB,SAASvZ,EAAM8M,GAC5BqH,EAAsCnU,GAAM,GAC5CwU,EAAkBxU,EAAM8M,GACxB1Q,KAAKgZ,eAAepV,EAAM8M,MAIlC2J,EAAwBC,GAM5B,QAAS8C,GAAiCrU,GACtCA,EAAMwO,UAAaxO,EAAM4L,iBAAmB5L,EAAM6L,cAAgB7L,EAAMyM,cAAgBzM,EAAM0M,UAC9F1M,EAAM2O,wBAA0B3O,EAAMwO,UAClCxO,EAAM4L,eAAiBnW,EAAIyQ,kBAAkBlG,EAAM4L,eAAgB5L,EAAM6L,cAGjF,QAASyI,GAAiBtU,EAAO4L,EAAgBa,EAAaZ,EAAca,GACxE1M,EAAM4L,eAAiBA,EACvB5L,EAAMyM,YAAcA,EACpBzM,EAAM6L,aAAeA,EACrB7L,EAAM0M,UAAYA,EAClB1M,EAAMhF,SAAWvF,EAAImS,YAAYgE,GAEjCyI,EAAiCrU,GAGrC,QAASuU,GAAM3d,GACXK,KAAK2U,eAAiBhV,EACtBK,KAAKwV,YAAc,EACnBxV,KAAK4U,aAAejV,EACpBK,KAAKyV,UAAY,EACjBzV,KAAK+D,SAAWpE,EAChByd,EAAiCpd,MAhpCrC,GAAIxB,GAAMyL,EAAIzL,IACV6N,EAAOpC,EAAIoC,KACX4G,EAAczU,EAAIyU,YAClBpN,EAAeoE,EAAIpE,aAEnBgK,EAAsBrR,EAAIqR,oBAC1Bf,EAAetQ,EAAIsQ,aACnBa,EAAmBnR,EAAImR,iBACvBgB,EAAcnS,EAAImS,YAClBe,EAAgBlT,EAAIkT,cACpBtB,EAAgB5R,EAAI4R,cACpBR,EAAuBpR,EAAIoR,qBAC3BZ,EAAgBxQ,EAAIwQ,cACpBM,EAAgB9Q,EAAI8Q,cACpBmC,EAAmBjT,EAAIiT,iBACvBY,EAAkBpI,EAAImB,SAASiH,eA0MnC6E,GAAcrX,WACV8T,SAAU,KACVZ,MAAO,KACP6E,OAAQ,KACRC,MAAO,KACPF,2BAA2B,EAE3BgD,MAAO,WACH3a,KAAK2T,SAAW,KAChB3T,KAAK+S,MAAQ/S,KAAK4X,QAGtBhE,QAAS,WACL,QAAS5T,KAAK+S,OAGlBc,KAAM,WAEF,GAAI0J,GAAUvd,KAAK2T,SAAW3T,KAAK+S,KAenC,OAdIwK,KACAvd,KAAK+S,MAASwK,IAAYvd,KAAK6X,MAAS0F,EAAQrN,YAAc,KAG1DL,EAAoB0N,IAAYvd,KAAKsX,kCACjCiG,IAAYvd,KAAKoX,KAChBmG,EAAUA,EAAQhN,WAAU,IAAOC,WAAWxQ,KAAKyX,GAAI8F,EAAQlb,OAASrC,KAAKyX,IAE9EzX,KAAK2T,WAAa3T,KAAKmX,KACtBoG,EAAUA,EAAQhN,WAAU,IAAOC,WAAW,EAAGxQ,KAAKwX,MAK5D+F,GAGXxW,OAAQ,WACJ,GAA6BgV,GAAOC,EAAhCuB,EAAUvd,KAAK2T,UAEf9D,EAAoB0N,IAAaA,IAAYvd,KAAKmX,IAAMoG,IAAYvd,KAAKoX,GAOrEmG,EAAQzZ,YACRyZ,EAAQzZ,WAAW6Y,YAAYY,IAPnCxB,EAASwB,IAAYvd,KAAKmX,GAAMnX,KAAKwX,GAAK,EAC1CwE,EAAOuB,IAAYvd,KAAKoX,GAAMpX,KAAKyX,GAAK8F,EAAQlb,OAC5C0Z,GAASC,GACTuB,EAAQ/M,WAAWuL,EAAOC,EAAMD,KAW5C/F,2BAA4B,WACxB,GAAIuH,GAAUvd,KAAK2T,QACnB,OAAOe,GAA2B6I,EAASvd,KAAK+I,QAGpDkN,mBAAoB,WAChB,GAAIuH,EACJ,IAAIxd,KAAK2X,0BACL6F,EAAWxd,KAAK+I,MAAM0U,aACtBD,EAAS5B,UAAS,OACf,CACH4B,EAAW,GAAIF,GAAMzI,EAAiB7U,KAAK+I,OAC3C,IAAIwU,GAAUvd,KAAK2T,SACfgB,EAAiB4I,EAAS/H,EAAc,EAAGZ,EAAe2I,EAAS9H,EAAYzG,EAAcuO,EAE7F5N,GAAiB4N,EAASvd,KAAKmX,MAC/BxC,EAAiB3U,KAAKmX,GACtB3B,EAAcxV,KAAKwX,IAEnB7H,EAAiB4N,EAASvd,KAAKoX,MAC/BxC,EAAe5U,KAAKoX,GACpB3B,EAAYzV,KAAKyX,IAGrB4F,EAAiBG,EAAU7I,EAAgBa,EAAaZ,EAAca,GAE1E,MAAO,IAAIyB,GAAcsG,EAAUxd,KAAKsX,kCAG5CxD,OAAQ,WACJ9T,KAAK+I,MAAQ/I,KAAK2T,SAAW3T,KAAK+S,MAAQ/S,KAAK4X,OAAS5X,KAAK6X,MAAQ7X,KAAKmX,GAAKnX,KAAKwX,GAAKxX,KAAKoX,GAAKpX,KAAKyX,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,GAAU9Z,SAASG,cAAc,SACjC4Z,IAAsB,CAC1B,KACID,GAAQpL,UAAY,WACpBqL,GAAsD,GAA/BD,GAAQ3L,WAAW7E,SAC5C,MAAO5M,KAITwJ,EAAImB,SAAS0S,oBAAsBA,EAEnC,IAAIC,IAA2BD,GAM3B,SAASE,GAEL,GAAIpa,GAAO5D,KAAK2U,eACZhV,EAAMgR,EAAY/M,EAItB,KAAKA,EACD,KAAM,IAAIiC,GAAa,oBAK3B,IAAIqH,GAAK,IAuCT,OApCqB,IAAjBtJ,EAAKyJ,SACLH,EAAKtJ,EAGEiM,EAAoBjM,KAC3BsJ,EAAK1O,EAAIoQ,cAAchL,IAcvBsJ,EARO,OAAPA,GACe,QAAfA,EAAGjC,UACHzM,EAAIgQ,gBAAgBmC,EAAYzD,GAAIuG,kBACpCjV,EAAIgQ,gBAAgBtB,GAKfvN,EAAIuE,cAAc,QAElBgJ,EAAGqD,WAAU,GAOtBrD,EAAGuF,UAAYuL,EAQRxf,EAAIkU,yBAAyBxF,IAKxC,SAAS8Q,GACL,GAAIre,GAAMkV,EAAiB7U,MACvBkN,EAAKvN,EAAIuE,cAAc,OAG3B,OAFAgJ,GAAGuF,UAAYuL,EAERxf,EAAIkU,yBAAyBxF,IAmCxC+Q,IAAmB,iBAAkB,cAAe,eAAgB,YAAa,YACjF,2BAEA3E,GAAM,EAAGE,GAAM,EAAGE,GAAM,EAAGE,GAAM,EACjCE,GAAM,EAAGE,GAAM,EAAGE,GAAQ,EAAGE,GAAM,CAEvC/N,GAAKI,OAAOxC,EAAIqE,gBACZ4P,sBAAuB,SAASC,EAAKpV,GACjCuM,EAAiBtV,MACjBqY,EAA6BrY,KAAK2U,eAAgB5L,EAAM4L,eAExD,IAAIhD,GAAOC,EAASC,EAAOC,EACvBsM,EAAWD,GAAOvE,IAAOuE,GAAO7E,GAAO,QAAU,MACjD+E,EAAWF,GAAO3E,IAAO2E,GAAO7E,GAAO,QAAU,KAKrD,OAJA3H,GAAQ3R,KAAKoe,EAAU,aACvBxM,EAAU5R,KAAKoe,EAAU,UACzBvM,EAAQ9I,EAAMsV,EAAU,aACxBvM,EAAU/I,EAAMsV,EAAU,UACnB3M,EAAcC,EAAOC,EAASC,EAAOC,IAGhDwM,WAAY,SAAS1a,GAKjB,GAJA0R,EAAiBtV,MACjBkY,EAAoBtU,EAAM+Z,GAC1BpF,EAAsBvY,KAAK2U,gBAEvBhF,EAAiB/L,EAAM5D,KAAK2U,gBAC5B,KAAM,IAAI9O,GAAa,wBAO3B,IAAIoP,GAAoBD,EAAqBpR,EAAM5D,KAAK2U,eAAgB3U,KAAKwV,YAC7ExV,MAAKwb,eAAevG,IAGxBkE,cAAe,WACX7D,EAAiBtV,KAEjB,IAAIue,GAAOxI,CACX,IAAI/V,KAAKuX,UACL,MAAO1C,GAAiB7U,MAAM6S,wBAE9B,IAAI7S,KAAK2U,iBAAmB3U,KAAK4U,cAAgB/E,EAAoB7P,KAAK2U,gBAKtE,MAJA4J,GAAQve,KAAK2U,eAAepE,WAAU,GACtCgO,EAAMjM,KAAOiM,EAAMjM,KAAKzP,MAAM7C,KAAKwV,YAAaxV,KAAKyV,WACrDM,EAAOlB,EAAiB7U,MAAM6S,yBAC9BkD,EAAK5I,YAAYoR,GACVxI,CAEP,IAAIH,GAAW,GAAIsB,GAAclX,MAAM,EAI3C,OAHIue,GAAQ5I,EAAaC,GACrBA,EAAS9B,SAENyK,GAIfpC,oBAAqB,WACjB7G,EAAiBtV,MACjBuY,EAAsBvY,KAAK2U,gBAC3B4D,EAAsBvY,KAAK4U,aAI3B,IAAIgB,GAAW,GAAIsB,GAAclX,MAAM,GACnCoc,EAAqBxG,EAASgC,QAAWlD,EAA2BkB,EAASgC,OAAQ5X,OAChF4V,EAASiC,OAASnD,EAA2BkB,EAASiC,MAAO7X,KAEtE,OADA4V,GAAS9B,UACDsI,GAGZoC,iBAAkB,SAAS5a,GAGvB,GAFAsU,EAAoBtU,EAAMga,IAErB5d,KAAKmc,sBACN,KAAM,IAAItW,GAAa,oBAI3B,IAAI4Y,GAAUze,KAAKic,iBAGnB,IAAIrY,EAAK8a,gBACL,KAAO9a,EAAK+a,WACR/a,EAAK+Y,YAAY/Y,EAAK+a,UAK9B3J,GAAqBpR,EAAM5D,KAAK2U,eAAgB3U,KAAKwV,aACrD5R,EAAKuJ,YAAYsR,GAEjBze,KAAK8b,WAAWlY,IAGpB6Z,WAAY,WACRnI,EAAiBtV,KAGjB,KAFA,GACgC4e,GAD5B7V,EAAQ,GAAIuU,GAAMzI,EAAiB7U,OACnCiE,EAAIga,GAAgB5b,OACjB4B,KACH2a,EAAOX,GAAgBha,GACvB8E,EAAM6V,GAAQ5e,KAAK4e,EAEvB,OAAO7V,IAGX/G,SAAU,WACNsT,EAAiBtV,KACjB,IAAImX,GAAKnX,KAAK2U,cACd,IAAIwC,IAAOnX,KAAK4U,cAAgB/E,EAAoBsH,GAChD,MAAuB,IAAfA,EAAG9J,UAAgC,GAAf8J,EAAG9J,SAAiB8J,EAAG7E,KAAKzP,MAAM7C,KAAKwV,YAAaxV,KAAKyV,WAAa,EAElG,IAAIoJ,MAAgBjJ,EAAW,GAAIsB,GAAclX,MAAM,EAQvD,OAPAkW,GAAeN,EAAU,SAAShS,IAET,GAAjBA,EAAKyJ,UAAkC,GAAjBzJ,EAAKyJ,WAC3BwR,EAAUvY,KAAK1C,EAAK0O,QAG5BsD,EAAS9B,SACF+K,EAAU1X,KAAK,KAO9B2X,YAAa,SAASlb,GAClB0R,EAAiBtV,KAEjB,IAAI6O,GAASjL,EAAKE,WACdiZ,EAAYjO,EAAalL,EAE7B,KAAKiL,EACD,KAAM,IAAIhJ,GAAa,gBAG3B,IAAI0P,GAAkBvV,KAAK+e,aAAalQ,EAAQkO,GAC5CrH,EAAgB1V,KAAK+e,aAAalQ,EAAQkO,EAAY,EAE1D,OAAsB,GAAlBxH,EACQG,EAAgB,EAAKwE,GAAQJ,GAE7BpE,EAAgB,EAAKsE,GAAMI,IAI3C2E,aAAc,SAASnb,EAAM8M,GAKzB,MAJA4E,GAAiBtV,MACjByY,EAAW7U,EAAM,yBACjByU,EAA6BzU,EAAM5D,KAAK2U,gBAEpCjD,EAAc9N,EAAM8M,EAAQ1Q,KAAK2U,eAAgB3U,KAAKwV,aAAe,EAC9D,GACA9D,EAAc9N,EAAM8M,EAAQ1Q,KAAK4U,aAAc5U,KAAKyV,WAAa,EACjE,EAEJ,GAGXsI,yBAA0BA,GAE1BiB,OAAQ,WACJ,MAAO/F,GAAYjZ,OAKvBif,eAAgB,SAASrb,EAAMyR,GAG3B,GAFAC,EAAiBtV,MACjByY,EAAW7U,EAAM,iBACb+M,EAAY/M,KAAUiR,EAAiB7U,MACvC,OAAO,CAGX,IAAI6O,GAASjL,EAAKE,WAAY4M,EAAS5B,EAAalL,EACpD6U,GAAW5J,EAAQ,gBAEnB,IAAI0G,GAAkB7D,EAAc7C,EAAQ6B,EAAQ1Q,KAAK4U,aAAc5U,KAAKyV,WACxEC,EAAgBhE,EAAc7C,EAAQ6B,EAAS,EAAG1Q,KAAK2U,eAAgB3U,KAAKwV,YAEhF,OAAOH,GAA4C,GAAnBE,GAAwBG,GAAiB,EAAsB,EAAlBH,GAAuBG,EAAgB,GAGxHwJ,eAAgB,SAAStb,EAAM8M,GAK3B,MAJA4E,GAAiBtV,MACjByY,EAAW7U,EAAM,yBACjByU,EAA6BzU,EAAM5D,KAAK2U,gBAEhCjD,EAAc9N,EAAM8M,EAAQ1Q,KAAK2U,eAAgB3U,KAAKwV,cAAgB,GACtE9D,EAAc9N,EAAM8M,EAAQ1Q,KAAK4U,aAAc5U,KAAKyV,YAAc,GAM9E0J,gBAAiB,SAASpW,GACtB,MAAOmM,GAAgBlV,KAAM+I,GAAO,IAIxCqW,yBAA0B,SAASrW,GAC/B,MAAOmM,GAAgBlV,KAAM+I,GAAO,IAGxCsW,aAAc,SAAStW,GACnB,GAAI/I,KAAKmf,gBAAgBpW,GAAQ,CAC7B,GAAIwM,GAAkB7D,EAAc1R,KAAK2U,eAAgB3U,KAAKwV,YAAazM,EAAM4L,eAAgB5L,EAAMyM,aACnGE,EAAgBhE,EAAc1R,KAAK4U,aAAc5U,KAAKyV,UAAW1M,EAAM6L,aAAc7L,EAAM0M,WAE3F6J,EAAoBtf,KAAKyd,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,GAAI/I,KAAKof,yBAAyBrW,GAAQ,CACtC,GAAIyW,GAAaxf,KAAKyd,YAOtB,OANqG,IAAjG/L,EAAc3I,EAAM4L,eAAgB5L,EAAMyM,YAAaxV,KAAK2U,eAAgB3U,KAAKwV,cACjFgK,EAAWpE,SAASrS,EAAM4L,eAAgB5L,EAAMyM,aAEyC,GAAzF9D,EAAc3I,EAAM6L,aAAc7L,EAAM0M,UAAWzV,KAAK4U,aAAc5U,KAAKyV,YAC3E+J,EAAWnE,OAAOtS,EAAM6L,aAAc7L,EAAM0M,WAEzC+J,EAEP,KAAM,IAAI3Z,GAAa,4BAI/B4Z,aAAc,SAAS7b,EAAM8b,GACzB,MAAIA,GACO1f,KAAKif,eAAerb,GAAM,GAE1B5D,KAAK8e,YAAYlb,IAASwW,IAIzCuF,qBAAsB,SAAS/b,GAC3B,MAAO5D,MAAK+e,aAAanb,EAAM,IAAM,GAAK5D,KAAK+e,aAAanb,EAAMoL,EAAcpL,KAAU,GAG9Fgc,cAAe,SAAS7W,GACpB,GAAIsW,GAAerf,KAAKqf,aAAatW,EACrC,OAAwB,QAAjBsW,GAAyBtW,EAAMgL,OAAOsL,IAGjDQ,iBAAkB,SAASjc,GACvB,GAAIkc,GAAY9f,KAAKyd,YACrBqC,GAAUhE,WAAWlY,EACrB,IAAImc,GAAYD,EAAUE,UAAU,GACpC,IAAID,EAAU1d,OAAS,EAAG,CACtByd,EAAU1E,SAAS2E,EAAU,GAAI,EACjC,IAAIE,GAAeF,EAAUG,KAE7B,OADAJ,GAAUzE,OAAO4E,EAAcA,EAAa5d,QACrCrC,KAAK4f,cAAcE,GAE1B,MAAO9f,MAAK2f,qBAAqB/b,IAIzCoc,SAAU,SAASpJ,EAAWC,GAE1B,MADAvB,GAAiBtV,MACV2W,EAAgB3W,KAAM4W,EAAWC,IAG5ClG,YAAa,WACT,MAAOkE,GAAiB7U,OAG5BmgB,eAAgB,SAASvc,GACrB5D,KAAK0b,aAAa9X,GAClB5D,KAAK4b,UAAS,IAGlBwE,cAAe,SAASxc,GACpB5D,KAAKyb,cAAc7X,GACnB5D,KAAK4b,UAAS,IAGlByE,YAAa,SAASC,GAClB,GAAI3gB,GAAMkV,EAAiB7U,MACvBugB,EAAoBtW,EAAIa,YAAYnL,EACxC2gB,GAAgBA,GAAiB9hB,EAAI4K,QAAQzJ,GAC7C4gB,EAAkB1E,mBAAmByE,EACrC,IAAIvX,GAAQ/I,KAAKqf,aAAakB,GAC1BxE,EAAQ,EAAGC,EAAM,CAOrB,OANIjT,KACAwX,EAAkBlF,OAAOtS,EAAM4L,eAAgB5L,EAAMyM,aACrDuG,EAAQwE,EAAkBve,WAAWK,OACrC2Z,EAAMD,EAAQhT,EAAM/G,WAAWK,SAI/B0Z,MAAOA,EACPC,IAAKA,EACLsE,cAAeA,IAIvBE,eAAgB,SAASC,GACrB,GAAIH,GAAgBG,EAASH,cACzBI,EAAY,CAChB1gB,MAAKob,SAASkF,EAAe,GAC7BtgB,KAAK4b,UAAS,EAId,KAHA,GAAiChY,GAC7B+c,EAAe1c,EAAGmJ,EADlBwT,GAAaN,GAAsBO,GAAa,EAAOtK,GAAO,GAG1DA,IAAS3S,EAAOgd,EAAUV,QAC9B,GAAqB,GAAjBtc,EAAKyJ,SACLsT,EAAgBD,EAAY9c,EAAKvB,QAC5Bwe,GAAcJ,EAAS1E,OAAS2E,GAAaD,EAAS1E,OAAS4E,IAChE3gB,KAAKob,SAASxX,EAAM6c,EAAS1E,MAAQ2E,GACrCG,GAAa,GAEbA,GAAcJ,EAASzE,KAAO0E,GAAaD,EAASzE,KAAO2E,IAC3D3gB,KAAKqb,OAAOzX,EAAM6c,EAASzE,IAAM0E,GACjCnK,GAAO,GAEXmK,EAAYC,MAIZ,KAFAvT,EAAaxJ,EAAKwJ,WAClBnJ,EAAImJ,EAAW/K,OACR4B,KACH2c,EAAUta,KAAK8G,EAAWnJ,KAM1CoT,QAAS,WACL,MAAO,YAGXtD,OAAQ,SAAShL,GACb,MAAOuU,GAAMwD,YAAY9gB,KAAM+I,IAGnCgY,QAAS,WACL,MAAOlI,GAAa7Y,OAGxBiU,QAAS,WACL,MAAOA,GAAQjU,OAGnB8T,OAAQ,eAoTZ8G,EAAqB0C,EAAOD,GAE5BhR,EAAKI,OAAO6Q,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,aAIhCxL,EAAIiX,SAAW5D,IAMnBrT,EAAIoE,iBAAiB,gBAAiB,YAAa,SAASpE,EAAKlC,GAC7D,GAAIoZ,GAAcC,EACd5iB,EAAMyL,EAAIzL,IACV6N,EAAOpC,EAAIoC,KACX4G,EAAczU,EAAIyU,YAClBiO,EAAWjX,EAAIiX,SACf9X,EAAU5K,EAAI4K,QACdkI,EAAqB9S,EAAI8S,mBACzBzB,EAAsBrR,EAAIqR,mBAkQ9B,IA7PI5F,EAAImB,SAASR,qBAKb,WAII,QAASyW,GAAsBtY,GAE3B,IADA,GAAgC6V,GAA5B3a,EAAIga,EAAgB5b,OACjB4B,KACH2a,EAAOX,EAAgBha,GACvB8E,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,wCAE7BpO,MAAKshB,YAAcvY,EACnBsY,EAAsBrhB,OAG1BkhB,EAAStG,qBAAqBuG,EAAcI,GAE5CI,EAAaR,EAAathB,UAE1B8hB,EAAW7F,WAAa,SAASlY,GAC7B5D,KAAKshB,YAAYxF,WAAWlY,GAC5Byd,EAAsBrhB,OAG1B2hB,EAAWxI,cAAgB,WACvB,MAAOnZ,MAAKshB,YAAYnI,iBAM5BwI,EAAWnD,iBAAmB,SAAS5a,GACnC5D,KAAKshB,YAAY9C,iBAAiB5a,GAClCyd,EAAsBrhB,OAG1B2hB,EAAW/F,SAAW,SAASb,GAC3B/a,KAAKshB,YAAY1F,SAASb,GAC1BsG,EAAsBrhB,OAG1B2hB,EAAWlE,WAAa,WACpB,MAAO,IAAI0D,GAAanhB,KAAKshB,YAAY7D,eAG7CkE,EAAWC,QAAU,WACjBP,EAAsBrhB,OAG1B2hB,EAAW3f,SAAW,WAClB,MAAOhC,MAAKshB,YAAYtf,WAK5B,IAAI6f,GAAe9d,SAASqP,eAAe,OAC3ChK,GAAQrF,UAAUoJ,YAAY0U,EAC9B,IAAI9Y,GAAQhF,SAAS+G,aAOrB/B,GAAMqS,SAASyG,EAAc,GAC7B9Y,EAAMsS,OAAOwG,EAAc,EAE3B,KACI9Y,EAAMqS,SAASyG,EAAc,GAE7BF,EAAWvG,SAAW,SAASxX,EAAM8M,GACjC1Q,KAAKshB,YAAYlG,SAASxX,EAAM8M,GAChC2Q,EAAsBrhB,OAG1B2hB,EAAWtG,OAAS,SAASzX,EAAM8M,GAC/B1Q,KAAKshB,YAAYjG,OAAOzX,EAAM8M,GAC9B2Q,EAAsBrhB,OAG1B6a,EAA8B,SAASlV,GACnC,MAAO,UAAS/B,GACZ5D,KAAKshB,YAAY3b,GAAM/B,GACvByd,EAAsBrhB,QAIhC,MAAMuH,GAEJoa,EAAWvG,SAAW,SAASxX,EAAM8M,GACjC,IACI1Q,KAAKshB,YAAYlG,SAASxX,EAAM8M;CAClC,MAAOnJ,GACLvH,KAAKshB,YAAYjG,OAAOzX,EAAM8M,GAC9B1Q,KAAKshB,YAAYlG,SAASxX,EAAM8M,GAEpC2Q,EAAsBrhB,OAG1B2hB,EAAWtG,OAAS,SAASzX,EAAM8M,GAC/B,IACI1Q,KAAKshB,YAAYjG,OAAOzX,EAAM8M,GAChC,MAAOnJ,GACLvH,KAAKshB,YAAYlG,SAASxX,EAAM8M,GAChC1Q,KAAKshB,YAAYjG,OAAOzX,EAAM8M,GAElC2Q,EAAsBrhB,OAG1B6a,EAA8B,SAASlV,EAAMmc,GACzC,MAAO,UAASle,GACZ,IACI5D,KAAKshB,YAAY3b,GAAM/B,GACzB,MAAO2D,GACLvH,KAAKshB,YAAYQ,GAAcle,GAC/B5D,KAAKshB,YAAY3b,GAAM/B,GAE3Byd,EAAsBrhB,QAKlC2hB,EAAWnG,eAAiBX,EAA4B,iBAAkB,gBAC1E8G,EAAWlG,cAAgBZ,EAA4B,gBAAiB,eACxE8G,EAAWjG,aAAeb,EAA4B,eAAgB,kBACtE8G,EAAWhG,YAAcd,EAA4B,cAAe,iBAMpE8G,EAAW9F,mBAAqB,SAASjY,GACrC5D,KAAKgZ,eAAepV,EAAM,EAAGpF,EAAIwQ,cAAcpL,KAQnDmF,EAAM8S,mBAAmBgG,GACzB9Y,EAAMsS,OAAOwG,EAAc,EAE3B,IAAIE,GAAShe,SAAS+G,aACtBiX,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,SAAStc,EAAMsD,GAO9C,MANAA,GAAQA,EAAMuY,aAAevY,EACzBtD,GAAQsD,EAAMwQ,aACd9T,EAAOsD,EAAM4Q,aACNlU,GAAQsD,EAAM4Q,eACrBlU,EAAOsD,EAAMwQ,cAEVvZ,KAAKshB,YAAYpD,sBAAsBzY,EAAMsD,IAGrB,SAAStD,EAAMsD,GAC9C,MAAO/I,MAAKshB,YAAYpD,sBAAsBzY,EAAMsD,EAAMuY,aAAevY,GAQjF,IAAImE,GAAKnJ,SAASG,cAAc,MAChCgJ,GAAGuF,UAAY,KACf,IAAIU,GAAWjG,EAAGgF,WACd7I,EAAOD,EAAQrF,SACnBsF,GAAK8D,YAAYD,GAEjBnE,EAAMqS,SAASjI,EAAU,GACzBpK,EAAMsS,OAAOlI,EAAU,GACvBpK,EAAMmT,iBAEe,MAAjB/I,EAASb,OAGTqP,EAAWzF,eAAiB,WACxBlc,KAAKshB,YAAYpF,iBACjBmF,EAAsBrhB,OAG1B2hB,EAAW1F,gBAAkB,WACzB,GAAIlG,GAAO/V,KAAKshB,YAAYrF,iBAE5B,OADAoF,GAAsBrhB,MACf+V,IAKf1M,EAAKsT,YAAYzP,GACjB7D,EAAO,KAKHgD,EAAKnE,aAAaa,EAAO,8BACzB4Y,EAAW5D,yBAA2B,SAASC,GAC3C,MAAOhe,MAAKshB,YAAYvD,yBAAyBC,KAOzD5U,EAAQrF,UAAU4Y,YAAYkF,GAE9BF,EAAWtK,QAAU,WACjB,MAAO,gBAGXpN,EAAIkX,aAAeA,EAEnBlX,EAAI+X,kBAAoB,SAASriB,GAE7B,MADAA,GAAM2R,EAAmB3R,EAAKoI,EAAQ,qBAC/BpI,EAAImL,kBAKnBb,EAAImB,SAASP,oBAAqB,CAelC,GAAIoX,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,EAAU7jB,EAAIyQ,kBAAkBoT,EAASC,EAEtF,OAAOC,IAAqBJ,EAAWI,EAAoB/jB,EAAIyQ,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,IAPKpQ,EAAImR,iBAAiBgT,EAA4BI,KAClDA,EAAmBJ,IAMlBI,EAAiBC,YAAa,CAC/B,GAAIhP,GAAM,GAAIf,GAAY8P,EAAiBjf,WAAYtF,EAAIsQ,aAAaiU,GACxE,QACIE,iBAAkBjP,EAClBkP,UACInG,UAAW/I,EAAItD,OACfqS,iBAAkB/O,EAAIpQ,OAKlC,GAAIuf,GAAc3kB,EAAImS,YAAYoS,GAAkB7e,cAAc,OAI9Dif,GAAYrf,YACZqf,EAAYrf,WAAW6Y,YAAYwG,EAavC,KAVA,GAAIC,GACAC,EAAcpT,EAAUgT,EAAkBK,EAD9BC,EAAwBxI,EAAU,eAAiB,aAE/DgB,EAAS8G,GAAaA,EAAUE,kBAAoBA,EAAoBF,EAAU9F,UAAY,EAC9FyG,EAAiBT,EAAiB3V,WAAW/K,OAC7C2Z,EAAMwH,EAINzG,EAAYf,IAEH,CAQT,GAPIe,GAAayG,EACbT,EAAiB5V,YAAYgW,GAE7BJ,EAAiB5S,aAAagT,EAAaJ,EAAiB3V,WAAW2P,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,SAAS3K,KAAKud,EAAahR,MAAO,CA+BlC,GAAIuR,GAAYf,EAAaV,YACzB0B,EAAcD,EAAUE,KAAK9jB,QAAQ,QAAS,MAAMoC,MAGxD,KADAqO,EAASmT,EAAUG,UAAU,YAAaF,GACoC,KAArEV,EAAaS,EAAUpB,iBAAiB,aAAcoB,KAC3DnT,IACAmT,EAAUG,UAAU,YAAa,OAGrCtT,GAASoS,EAAaiB,KAAK1hB,MAE/B4gB,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,KAAKjQ,QAEhD,GAAI4Q,GAAY8P,EAAkBvkB,EAAIsQ,aAAaqU,GAO9E,OAFAA,GAAYrf,WAAW6Y,YAAYwG,IAG/BF,iBAAkBA,EAClBC,UACInG,UAAWA,EACXgG,iBAAkBA,KAQ1BkB,EAA0B,SAAShB,EAAkBlI,GACrD,GAAIuI,GAAcY,EAEdf,EAAa/V,EAFiB+W,EAAiBlB,EAAiBvS,OAChE/Q,EAAMnB,EAAImS,YAAYsS,EAAiBrf,MACdkf,EAAe1Z,EAAQzJ,GAAKwL,kBACrDiZ,EAAiBvU,EAAoBoT,EAAiBrf,KAqC1D,OAnCIwgB,IACAd,EAAeL,EAAiBrf,KAChCsgB,EAAiBZ,EAAaxf,aAE9BsJ,EAAa6V,EAAiBrf,KAAKwJ,WACnCkW,EAAgBa,EAAiB/W,EAAW/K,OAAU+K,EAAW+W,GAAkB,KACnFD,EAAiBjB,EAAiBrf,MAItCuf,EAAcxjB,EAAIuE,cAAc,QAIhCif,EAAY1Q,UAAY,UAIpB6Q,EACAY,EAAe/T,aAAagT,EAAaG,GAEzCY,EAAe/W,YAAYgW,GAG/BL,EAAaW,kBAAkBN,GAC/BL,EAAalH,UAAUb,GAGvBmJ,EAAevH,YAAYwG,GAGvBiB,GACAtB,EAAa/H,EAAU,YAAc,WAAW,YAAaoJ,GAG1DrB,EAQX1B,GAAmB,SAASc,GACxBliB,KAAKkiB,UAAYA,EACjBliB,KAAK4hB,WAGTR,EAAiBvhB,UAAY,GAAIqhB,GAASnd,UAE1Cqd,EAAiBvhB,UAAU+hB,QAAU,WACjC,GAAI7F,GAAOC,EAAKqI,EAGZC,EAAwBrC,EAA6BjiB,KAAKkiB,UAE1DM,GAAqBxiB,KAAKkiB,WAC1BlG,EAAMD,EAAQ2G,EAA6B1iB,KAAKkiB,UAAWoC,GAAuB,GAC9E,GAAMrB,kBAEVoB,EAAgB3B,EAA6B1iB,KAAKkiB,UAAWoC,GAAuB,GAAM,GAC1FvI,EAAQsI,EAAcpB,iBAKtBjH,EAAM0G,EAA6B1iB,KAAKkiB,UAAWoC,GAAuB,GAAO,EAC7ED,EAAcnB,UAAUD,kBAGhCjjB,KAAKob,SAASW,EAAMnY,KAAMmY,EAAMrL,QAChC1Q,KAAKqb,OAAOW,EAAIpY,KAAMoY,EAAItL,SAG9B0Q,EAAiBvhB,UAAUwX,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,IAASoC,iBAG5D,OAFA+W,GAAU0B,YAAY,eAAgBY,GACtCtC,EAAU0B,YAAY,WAAYa,GAC3BvC,EAcf,IAVAd,EAAiBmD,iBAAmBA,EAEpCnD,EAAiBvhB,UAAU6kB,YAAc,WACrC,MAAOH,GAAiBvkB,OAG5BiK,EAAImX,iBAAmBA,GAIlBnX,EAAImB,SAASR,oBAAsBX,EAAIG,OAAOkC,gBAAiB,CAEhE,GAAIqY,GAAY,SAAUxiB,GAAK,MAAOA,GAAE,mBAAsBK,SAChC,oBAAnBmiB,GAAUrH,QACjBqH,EAAUrH,MAAQ8D,GAGtBnX,EAAI+X,kBAAoB,SAASriB,GAE7B,MADAA,GAAM2R,EAAmB3R,EAAKoI,EAAQ,qBAC/BqB,EAAQzJ,GAAKwL,mBAGxBlB,EAAIkX,aAAeC,GAI3BnX,EAAIa,YAAc,SAASnL,GAEvB,MADAA,GAAM2R,EAAmB3R,EAAKoI,EAAQ,eAC/B,GAAIkC,GAAIkX,aAAalX,EAAI+X,kBAAkBriB,KAGtDsK,EAAI2a,iBAAmB,SAASjlB,GAE5B,MADAA,GAAM2R,EAAmB3R,EAAKoI,EAAQ,oBAC/B,GAAImZ,GAASvhB,IAGxBsK,EAAI4a,kBAAoB,SAAS5T,GAE7B,MADAlJ,GAAOkG,kBAAkB,sBAAuB,yBACzChE,EAAIa,YAAYmG,IAG3BhH,EAAI6a,uBAAyB,SAAS7T,GAElC,MADAlJ,GAAOkG,kBAAkB,2BAA4B,8BAC9ChE,EAAI2a,iBAAiB3T,IAGhChH,EAAI4D,gBAAgB,SAASnO,GACzB,GAAIC,GAAMD,EAAIqE,QACgB,oBAAnBpE,GAAImL,cACXnL,EAAImL,YAAc,WACd,MAAOb,GAAIa,YAAYnL,KAG/BA,EAAMD,EAAM,SAQpBuK,EAAIoE,iBAAiB,oBAAqB,WAAY,gBAAiB,SAASpE,EAAKlC,GAuBjF,QAASgd,GAAoBC,GACzB,MAAsB,gBAAPA,GAAmB,kBAAkBjf,KAAKif,KAASA,EAGtE,QAASnU,GAAUnR,EAAK6R,GACpB,GAAK7R,EAEE,CAAA,GAAIlB,EAAI6S,SAAS3R,GACpB,MAAOA,EACJ,IAAIA,YAAeulB,GACtB,MAAOvlB,GAAIA,GAEX,IAAIC,GAAMnB,EAAI8S,mBAAmB5R,EAAKqI,EAAQwJ,EAC9C,OAAO/S,GAAIqS,UAAUlR,GAPrB,MAAO+H,QAWf,QAASwd,GAAgBC,GACrB,MAAOtU,GAAUsU,EAAU,mBAAmBC,eAGlD,QAASC,GAAgBF,GACrB,MAAOtU,GAAUsU,EAAU,mBAAmBphB,SAASnF,UAG3D,QAAS0mB,GAAuBC,GAC5B,GAAIC,IAAW,CAIf,OAHID,GAAIE,aACJD,EAAmG,GAAvFhnB,EAAIkT,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,QAAQhkB,OAAS,EAGzB,QAASikB,GAAevd,GACpB,GAAIuY,EAUJ,OATIvY,aAAiBmY,IACjBI,EAAcrX,EAAI+X,kBAAkBjZ,EAAM4H,eAC1C2Q,EAAYjG,OAAOtS,EAAM6L,aAAc7L,EAAM0M,WAC7C6L,EAAYlG,SAASrS,EAAM4L,eAAgB5L,EAAMyM,cAC1CzM,YAAiBoY,GACxBG,EAAcvY,EAAMuY,YACblW,EAASR,oBAAuB7B,YAAiBvK,GAAIqS,UAAU9H,EAAM4L,gBAAgB2I,QAC5FgE,EAAcvY,GAEXuY,EAGX,QAASiF,GAA2BC,GAChC,IAAKA,EAAWnkB,QAAoC,GAA1BmkB,EAAW,GAAGnZ,SACpC,OAAO,CAEX,KAAK,GAAIpJ,GAAI,EAAGW,EAAM4hB,EAAWnkB,OAAYuC,EAAJX,IAAWA,EAChD,IAAKzF,EAAI+Q,aAAaiX,EAAW,GAAIA,EAAWviB,IAC5C,OAAO,CAGf,QAAO,EAGX,QAASwiB,GAA0B1d,GAC/B,GAAIlF,GAAQkF,EAAMiX,UAClB,KAAKuG,EAA2B1iB,GAC5B,KAAMkE,GAAOqG,YAAY,oCAAsCrF,EAAMkL,UAAY,uCAErF,OAAOpQ,GAAM,GAIjB,QAASiF,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,QAAQhkB,OAAS,EACQ,QAAzBkjB,EAAIsB,aAAaphB,KACjB0gB,EAAqBZ,OAClB,CACH,GAAIuB,GAAevB,EAAIsB,aAAa/b,aACpC,IAAIhC,EAAYge,GAIZJ,EAAoBnB,EAAKuB,OACtB,CACHvB,EAAIa,WAAaU,EAAazkB,MAE9B,KAAK,GADD0G,GAAOpJ,EAAMgR,EAAYmW,EAAavhB,KAAK,IACtCtB,EAAI,EAAGA,EAAIshB,EAAIa,aAAcniB,EAClC8E,EAAQkB,EAAIa,YAAYnL,GACxBoJ,EAAM+S,WAAWgL,EAAavhB,KAAKtB,IACnCshB,EAAIc,QAAQ/f,KAAKyC,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,aAAa/b,cAChCkc,EAAeP,EAA0B1d,GAIzCpJ,EAAMgR,EAAYmW,EAAavhB,KAAK,IACpC0hB,EAAkB7d,EAAQzJ,GAAKunB,qBAC1BjjB,EAAI,EAAGW,EAAMkiB,EAAazkB,OAAYuC,EAAJX,IAAWA,EAClDgjB,EAAgB5iB,IAAIyiB,EAAavhB,KAAKtB,GAE1C,KACIgjB,EAAgB5iB,IAAI2iB,GACtB,MAAOzf,GACL,KAAMQ,GAAOqG,YAAY,iHAE7B6Y,EAAgBE,SAGhBP,EAAuBrB,GAgC3B,QAASN,GAAiBrmB,EAAWioB,EAAcnnB,GAC/CM,KAAKkmB,gBAAkBtnB,EACvBoB,KAAK6mB,aAAeA,EACpB7mB,KAAKqmB,WACLrmB,KAAKN,IAAMA,EACXM,KAAK4hB,UAKT,QAASwF,GAAiB7B,GACtBA,EAAI7lB,IAAM6lB,EAAIE,WAAaF,EAAII,UAAYJ,EAAIc,QAAU,KACzDd,EAAIa,WAAab,EAAIG,aAAeH,EAAIK,YAAc,EACtDL,EAAI8B,UAAW,EAKnB,QAASC,GAAqB5nB,EAAK6nB,GAE/B,IADA,GAAsCC,GAAQjC,EAA1CthB,EAAIwjB,GAAsBplB,OACvB4B,KAGH,GAFAujB,EAASC,GAAsBxjB,GAC/BshB,EAAMiC,EAAO5oB,UACC,aAAV2oB,EACAH,EAAiB7B,OACd,IAAIiC,EAAO9nB,KAAOA,EACrB,MAAc,UAAV6nB,GACAE,GAAsBxgB,OAAOhD,EAAG,IACzB,GAEAshB,CAOnB,OAHc,aAAVgC,IACAE,GAAsBplB,OAAS,GAE5B,KAkCX,QAASqlB,GAAuBnC,EAAKoC,GAIjC,IAAK,GAAWza,GAFZvN,EAAMgR,EAAYgX,EAAO,GAAGhT,gBAC5BmS,EAAe1d,EAAQzJ,GAAKunB,qBACvBjjB,EAAI,EAAOW,EAAM+iB,EAAOtlB,OAAYuC,EAAJX,IAAWA,EAAG,CACnDiJ,EAAKuZ,EAA0BkB,EAAO1jB,GACtC,KACI6iB,EAAaziB,IAAI6I,GACnB,MAAO3F,GACL,KAAMQ,GAAOqG,YAAY,2HAGjC0Y,EAAaK,SAGbP,EAAuBrB,GAqT3B,QAASqC,GAAyBrC,EAAK3hB,GACnC,GAAI2hB,EAAI7lB,IAAIqE,UAAY4M,EAAY/M,GAChC,KAAM,IAAIiC,GAAa,sBA+F/B,QAASgiB,GAAuB9M,GAC5B,MAAO,UAASnX,EAAM8M,GAClB,GAAI3H,EACA/I,MAAKomB,YACLrd,EAAQ/I,KAAK8nB,WAAW,GACxB/e,EAAM,OAASgS,EAAU,QAAU,QAAQnX,EAAM8M,KAEjD3H,EAAQkB,EAAIa,YAAY9K,KAAKN,IAAIqE,UACjCgF,EAAMiQ,eAAepV,EAAM8M,IAE/B1Q,KAAK+nB,eAAehf,EAAO/I,KAAKgoB,eAkFxC,QAAS/T,GAAQsR,GACb,GAAI0C,MACAC,EAAS,GAAIjV,GAAYsS,EAAIE,WAAYF,EAAIG,cAC7CyC,EAAQ,GAAIlV,GAAYsS,EAAII,UAAWJ,EAAIK,aAC3CjgB,EAA8B,kBAAf4f,GAAIlO,QAAyBkO,EAAIlO,UAAY,WAEhE,IAA6B,mBAAlBkO,GAAIa,WACX,IAAK,GAAIniB,GAAI,EAAGW,EAAM2gB,EAAIa,WAAgBxhB,EAAJX,IAAWA,EAC7CgkB,EAAchkB,GAAKid,EAASjN,QAAQsR,EAAIuC,WAAW7jB,GAG3D,OAAO,IAAM0B,EAAO,YAAcsiB,EAAc9gB,KAAK,MAC7C,aAAe+gB,EAAOjU,UAAY,YAAckU,EAAMlU,UAAY,IAn8B9EhK,EAAIG,OAAOge,sBAAuB,CAElC,IASIC,GACAC,EAVAC,EAAU,UACVC,EAAS,SACThqB,EAAMyL,EAAIzL,IACV6N,EAAOpC,EAAIoC,KACXnE,EAAemE,EAAKnE,aACpBgZ,EAAWjX,EAAIiX,SACfC,EAAelX,EAAIkX,aACnBtb,EAAeoE,EAAIpE,aACnBoN,EAAczU,EAAIyU,YAGlB7H,EAAWnB,EAAImB,SACfqd,EAAU,UACV9X,EAAcnS,EAAImS,YAClBvH,EAAU5K,EAAI4K,QACd0X,EAAcI,EAASJ,YAwCvB4H,EAA4BxgB,EAAaR,OAAQ,gBACjDihB,EAAyBtc,EAAK7D,aAAazE,SAAU,YAEzDqH,GAASsd,0BAA4BA,EACrCtd,EAASud,uBAAyBA,CAElC,IAAIC,GAAuBD,KAA4BD,GAA6Bze,EAAIG,OAAOkC,gBAE3Fsc,IACAP,EAAqBhD,EACrBpb,EAAI4e,iBAAmB,SAAS1D,GAC5B,GAAIxlB,GAAMkR,EAAUsU,EAAU,oBAAoBphB,SAAUkiB,EAAYtmB,EAAIf,SAG5E,OAA0B,QAAlBqnB,EAAUxgB,MAAkBkL,EAAYsV,EAAUnb,cAAc8D,kBAAoBjP,IAEzF+oB,GACPL,EAAqBnD,EACrBjb,EAAI4e,iBAAmB,WACnB,OAAO,IAGX9gB,EAAOgC,KAAK,iEAGhBE,EAAIoe,mBAAqBA,CAEzB,IAAIS,GAAgBT,IAChB1d,EAAYV,EAAI+X,kBAAkBje,UAClCsF,EAAOD,EAAQrF,UAGfglB,EAA6B1c,EAAKnD,kBAAkB4f,GACnD,aAAc,YAAa,eAAgB,eAEhD1d,GAAS2d,2BAA6BA,CAGtC,IAAIC,GAAqB9gB,EAAa4gB,EAAe,SACrD1d,GAAS4d,mBAAqBA,CAG9B,IAAIC,SAAiCH,GAAc1C,YAAcoC,CACjEpd,GAAS6d,uBAAyBA,CAElC,IAAIC,IAAkC,EAClCC,GAA0C,EAE1CC,EAA2BJ,EAC3B,SAAS9C,EAAiBnd,GACtB,GAAIpJ,GAAMuhB,EAASrM,iBAAiB9L,GAChC0b,EAAWxa,EAAIa,YAAYnL,EAC/B8kB,GAAStH,gBAAgBpU,EAAM6L,aAAc7L,EAAM0M,WACnDyQ,EAAgBmD,SAAS/C,EAAe7B,IACxCyB,EAAgBzZ,OAAO1D,EAAM4L,eAAgB5L,EAAMyM,cACnD,IAEJnJ,GAAKrD,eAAe8f,GAAgB,WAAY,aAAc,2BACnDA,GAAc1C,YAAcoC,GAAUpd,EAASR,qBAE1D,WAQI,GAAI2a,GAAM7d,OAAO0d,cACjB,IAAIG,EAAK,CAML,IAAK,GAJD+D,GAA8B/D,EAAIa,WAClCmD,EAA8BD,EAA8B,EAC5DE,KACAC,EAA4BnE,EAAuBC,GAC9CthB,EAAI,EAAOqlB,EAAJrlB,IAAmCA,EAC/CulB,EAAwBvlB,GAAKshB,EAAIuC,WAAW7jB,EAIhD,IAAIoF,GAAOD,EAAQrF,UACf2lB,EAASrgB,EAAK8D,YAAapJ,SAASG,cAAc,OACtDwlB,GAAOC,gBAAkB,OACzB,IAAIxW,GAAWuW,EAAOvc,YAAapJ,SAASqP,eAAe,QAGvD4N,EAAKjd,SAAS+G,aASlB,IAPAkW,EAAG5F,SAASjI,EAAU,GACtB6N,EAAGpF,UAAS,GACZ2J,EAAI8D,SAASrI,GACbmI,EAA6D,GAAlB5D,EAAIa,WAC/Cb,EAAIqE,mBAGCL,EAA4B,CAM7B,GAAIM,GAAcniB,OAAOoiB,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,IAHA/c,EAAKsT,YAAY+M,GACjBnE,EAAIqE,kBAEC3lB,EAAI,EAAOqlB,EAAJrlB,IAAmCA,EAClC,GAALA,GAAUwlB,EACNL,EACAA,EAAyB7D,EAAKiE,EAAwBvlB,KAEtDgG,EAAIK,KAAK,yJACTib,EAAI8D,SAASG,EAAwBvlB,KAGzCshB,EAAI8D,SAASG,EAAwBvlB,QAOzDmH,EAAS8d,gCAAkCA,EAC3C9d,EAAS+d,wCAA0CA,CAGnD,IAAoCe,GAAhCC,GAAyB,CAEzB9gB,IAAQnB,EAAamB,EAAM,wBAC3B6gB,EAAmB7gB,EAAK6d,qBACpB7a,EAAKnD,kBAAkBghB,GAAmB,OAAQ,UAClDC,GAAyB,IAGjC/e,EAAS+e,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,EAAKve,GAChC,IACI,MAAOue,GAAIuC,WAAW9gB,GACxB,MAAOO,GACL,MAAO,QAGRwhB,IACPqB,GAAsB,SAAS7E,GAC3B,GAAI5lB,GAAMgR,EAAY4U,EAAIE,YACtB1c,EAAQkB,EAAIa,YAAYnL,EAS5B,OARAoJ,GAAMiQ,eAAeuM,EAAIE,WAAYF,EAAIG,aAAcH,EAAII,UAAWJ,EAAIK,aAItE7c,EAAMwO,YAAcvX,KAAK4iB,aACzB7Z,EAAMiQ,eAAeuM,EAAII,UAAWJ,EAAIK,YAAaL,EAAIE,WAAYF,EAAIG,cAGtE3c,IAYfkc,EAAiBplB,UAAYoK,EAAIsE,kBAQjC,IAAIkZ,OAwBArC,GAAe,SAAS1lB,GAExB,GAAIA,GAAOA,YAAeulB,GAEtB,MADAvlB,GAAIkiB,UACGliB,CAGXA,GAAMmR,EAAUnR,EAAK,qBAErB,IAAI6lB,GAAM+B,EAAqB5nB,GAC3BumB,EAAYoC,EAAmB3oB,GAAM2qB,EAAS1B,EAAyBtD,EAAgB3lB,GAAO,IASlG,OARI6lB,IACAA,EAAIW,gBAAkBD,EACtBV,EAAIsB,aAAewD,EACnB9E,EAAI3D,YAEJ2D,EAAM,GAAIN,GAAiBgB,EAAWoE,EAAQ3qB,GAC9C+nB,GAAsBnhB,MAAQ5G,IAAKA,EAAKd,UAAW2mB,KAEhDA,EAGXtb,GAAImb,aAAeA,GAEnBnb,EAAIqgB,mBAAqB,SAASrZ,GAE9B,MADAlJ,GAAOkG,kBAAkB,uBAAwB,0BAC1ChE,EAAImb,aAAa5mB,EAAI4S,gBAAgBH,IAGhD,IAAIsZ,IAAWtF,EAAiBplB,SAqBhC,KAAK+oB,GAAwBG,GAA8B1c,EAAKrD,eAAe8f,GAAgB,kBAAmB,aAAc,CAC5HyB,GAASX,gBAAkB,WACvB5pB,KAAKkmB,gBAAgB0D,kBACrBzD,EAAqBnmB,MAGzB,IAAIwqB,IAAmB,SAASjF,EAAKxc,GACjCqgB,EAAyB7D,EAAIW,gBAAiBnd,GAC9Cwc,EAAI3D,UAIJ2I,IAASlB,SADTJ,EACoB,SAASlgB,EAAO0hB,GAChC,GAAIN,GAA0BxB,GAA0B3oB,KAAK6mB,aAAaphB,MAAQgjB,EAC9E1B,EAA2B/mB,KAAM+I,OAEjC,IAAIgc,EAAoB0F,IAAczB,EAClCwB,GAAiBxqB,KAAM+I,OACpB,CACH,GAAI2hB,EACAxB,GACAwB,EAAqB1qB,KAAKomB,YAE1BpmB,KAAK4pB,kBACLc,EAAqB,EAKzB,IAAIC,GAAoBrE,EAAevd,GAAO0U,YAC9C,KACIzd,KAAKkmB,gBAAgBmD,SAASsB,GAChC,MAAOpjB,IAMT,GAFAvH,KAAKomB,WAAapmB,KAAKkmB,gBAAgBE,WAEnCpmB,KAAKomB,YAAcsE,EAAqB,EAAG,CAK3C,GAAIzgB,EAAIG,OAAOge,qBAAsB,CACjC,GAAI9G,GAAc8I,GAAoBpqB,KAAKkmB,gBAAiBlmB,KAAKomB,WAAa,EAC1E9E,KAAgBR,EAAYQ,EAAavY,KAEzCA,EAAQ,GAAIoY,GAAaG,IAGjCthB,KAAKqmB,QAAQrmB,KAAKomB,WAAa,GAAKrd,EACpC8c,EAA8B7lB,KAAM+I,EAAO6hB,GAAoB5qB,KAAKkmB,kBACpElmB,KAAK4iB,YAAc0F,EAAqBtoB,UAGxCA,MAAK4hB,YAMD,SAAS7Y,EAAO0hB,GAC5B1F,EAAoB0F,IAAczB,EAClCwB,GAAiBxqB,KAAM+I,IAEvB/I,KAAKkmB,gBAAgBmD,SAAS/C,EAAevd,IAC7C/I,KAAK4hB,YAKjB2I,GAASM,UAAY,SAASlD,GAC1B,GAAIwC,GAA0BxB,GAA0BhB,EAAOtlB,OAAS,EACpEqlB,EAAuB1nB,KAAM2nB,OAC1B,CACH3nB,KAAK4pB,iBACL,KAAK,GAAI3lB,GAAI,EAAGW,EAAM+iB,EAAOtlB,OAAYuC,EAAJX,IAAWA,EAC5CjE,KAAKqpB,SAAS1B,EAAO1jB,UAI9B,CAAA,KAAIiE,EAAa4gB,EAAe,UAAY5gB,EAAayC,EAAW,WAChEwf,GAA0BvB,GAqDjC,MADA7gB,GAAOgC,KAAK,yDACL,CAnDPwgB,IAASX,gBAAkB,WAEvB,IAII,GAHA5pB,KAAK6mB,aAAaiE,QAGY,QAA1B9qB,KAAK6mB,aAAaphB,KAAgB,CAGlC,GAAI9F,EACJ,IAAIK,KAAKylB,WACL9lB,EAAMgR,EAAY3Q,KAAKylB,gBACpB,IAAIzlB,KAAK6mB,aAAaphB,MAAQgjB,EAAS,CAC1C,GAAI3B,GAAe9mB,KAAK6mB,aAAa/b,aACjCgc,GAAazkB,SACb1C,EAAMgR,EAAamW,EAAavhB,KAAK,KAG7C,GAAI5F,EAAK,CACL,GAAIuiB,GAAY9Y,EAAQzJ,GAAKwL,iBAC7B+W,GAAUiF,SACVnnB,KAAK6mB,aAAaiE,UAG5B,MAAMvjB,IACR4e,EAAqBnmB,OAGzBuqB,GAASlB,SAAW,SAAStgB,GACrB/I,KAAK6mB,aAAaphB,MAAQgjB,EAC1B1B,EAA2B/mB,KAAM+I,IAEjCkB,EAAImX,iBAAiBmD,iBAAiBxb,GAAOoe,SAC7CnnB,KAAKqmB,QAAQ,GAAKtd,EAClB/I,KAAKomB,WAAa,EAClBpmB,KAAK4iB,YAAc5iB,KAAKqmB,QAAQ,GAAG9O,UACnCsO,EAA8B7lB,KAAM+I,GAAO,KAInDwhB,GAASM,UAAY,SAASlD,GAC1B3nB,KAAK4pB,iBACL,IAAIxD,GAAauB,EAAOtlB,MACpB+jB,GAAa,EACbsB,EAAuB1nB,KAAM2nB,GACtBvB,GACPpmB,KAAKqpB,SAAS1B,EAAO,KAQjC4C,GAASzC,WAAa,SAAS9gB,GAC3B,GAAY,EAARA,GAAaA,GAAShH,KAAKomB,WAC3B,KAAM,IAAIvgB,GAAa,iBAGvB,OAAO7F,MAAKqmB,QAAQrf,GAAOyW,aAInC,IAAIsN,GAEJ,IAAInC,EACAmC,GAAmB,SAASxF,GACxB,GAAIxc,EACAkB,GAAI4e,iBAAiBtD,EAAI7lB,KACzBqJ,EAAQwc,EAAIsB,aAAa/b,eAEzB/B,EAAQK,EAAQmc,EAAI7lB,IAAIqE,UAAUoH,kBAClCpC,EAAM6S,UAAS,IAGf2J,EAAIsB,aAAaphB,MAAQgjB,EACzB7B,EAAuBrB,GAChBzc,EAAYC,GACnB2d,EAAoBnB,EAAKxc,GAEzBod,EAAqBZ,QAG1B,IAAIrd,EAAa4gB,EAAe,qBAAwBA,GAAc1C,YAAcoC,EACvFuC,GAAmB,SAASxF,GACxB,GAAI4E,GAA0BxB,GAA0BpD,EAAIsB,aAAaphB,MAAQgjB,EAC7E7B,EAAuBrB,OAGvB,IADAA,EAAIc,QAAQhkB,OAASkjB,EAAIa,WAAab,EAAIW,gBAAgBE,WACtDb,EAAIa,WAAY,CAChB,IAAK,GAAIniB,GAAI,EAAGW,EAAM2gB,EAAIa,WAAgBxhB,EAAJX,IAAWA,EAC7CshB,EAAIc,QAAQpiB,GAAK,GAAIgG,GAAIkX,aAAaoE,EAAIW,gBAAgB4B,WAAW7jB,GAEzE4hB,GAA8BN,EAAKA,EAAIc,QAAQd,EAAIa,WAAa,GAAIwE,GAAoBrF,EAAIW,kBAC5FX,EAAI3C,YAAc0F,EAAqB/C,OAEvCY,GAAqBZ,QAI9B,CAAA,IAAIwD,SAAqCD,GAAclG,aAAe2F,SAAkB5d,GAAU4M,WAAagR,IAAWnd,EAASR,mBAetI,MADA7C,GAAOgC,KAAK,mFACL,CAdPghB,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,EAAkBhrB,KAAKqmB,QAAQxjB,MAAM,GAAK,KACtDqoB,EAAgBlrB,KAAKylB,WAAY0F,EAAkBnrB,KAAK0lB,YAG5D,IADAqF,GAAiB/qB,MACbgrB,EAAiB,CAEjB,GAAI/mB,GAAIgnB,EAAU5oB,MAClB,IAAI4B,GAAKjE,KAAKqmB,QAAQhkB,OAClB,OAAO,CAKX,IAAIrC,KAAKylB,YAAcyF,GAAiBlrB,KAAK0lB,cAAgByF,EACzD,OAAO,CAIX,MAAOlnB,KACH,IAAK6c,EAAYmK,EAAUhnB,GAAIjE,KAAKqmB,QAAQpiB,IACxC,OAAO,CAGf,QAAO,GAKf,IAAImnB,IAAsB,SAAS7F,EAAKxc,GACpC,GAAI4e,GAASpC,EAAI8F,cACjB9F,GAAIqE,iBACJ,KAAK,GAAI3lB,GAAI,EAAGW,EAAM+iB,EAAOtlB,OAAYuC,EAAJX,IAAWA,EACvC6c,EAAY/X,EAAO4e,EAAO1jB,KAC3BshB,EAAI8D,SAAS1B,EAAO1jB,GAGvBshB,GAAIa,YACLD,EAAqBZ,GAKzBgF,IAASe,YADTnB,GAA0BxB,EACH,SAAS5f,GAC5B,GAAI/I,KAAK6mB,aAAaphB,MAAQgjB,EAAS,CASnC,IAAK,GADDvb,GAPA4Z,EAAe9mB,KAAK6mB,aAAa/b,cACjCkc,EAAeP,EAA0B1d,GAIzCpJ,EAAMgR,EAAYmW,EAAavhB,KAAK,IACpC0hB,EAAkB7d,EAAQzJ,GAAKunB,qBAC3BqE,GAAU,EACTtnB,EAAI,EAAGW,EAAMkiB,EAAazkB,OAAYuC,EAAJX,IAAWA,EAClDiJ,EAAK4Z,EAAavhB,KAAKtB,GACnBiJ,IAAO8Z,GAAgBuE,EACvBtE,EAAgB5iB,IAAIyiB,EAAavhB,KAAKtB,IAEtCsnB,GAAU,CAGlBtE,GAAgBE,SAGhBP,EAAuB5mB,UAEvBorB,IAAoBprB,KAAM+I,IAIX,SAASA,GAC5BqiB,GAAoBprB,KAAM+I,GAKlC,IAAI6hB,KACChC,GAAwBG,GAA8B3d,EAASR,oBAChEggB,GAAsBtF,EAEtBiF,GAASvC,WAAa,WAClB,MAAO4C,IAAoB5qB,QAG/B4qB,GAAsBL,GAASvC,WAAa,WACxC,OAAO,GAKfuC,GAASiB,YAAcjB,GAASvC,WAKhCuC,GAASvoB,SAAW,WAEhB,IAAK,GADDypB,MACKxnB,EAAI,EAAGW,EAAM5E,KAAKomB,WAAgBxhB,EAAJX,IAAWA,EAC9CwnB,EAAWxnB,GAAK,GAAKjE,KAAKqmB,QAAQpiB,EAEtC,OAAOwnB,GAAWtkB,KAAK,KAU3BojB,GAAS3O,SAAW,SAAShY,EAAM8M,GAC/BkX,EAAyB5nB,KAAM4D,EAC/B,IAAImF,GAAQkB,EAAIa,YAAYlH,EAC5BmF,GAAMoU,gBAAgBvZ,EAAM8M,GAC5B1Q,KAAK+nB,eAAehf,GACpB/I,KAAK4iB,aAAc,GAGvB2H,GAASmB,gBAAkB,WACvB,IAAI1rB,KAAKomB,WAIL,KAAM,IAAIvgB,GAAa,oBAHvB,IAAIkD,GAAQ/I,KAAKqmB,QAAQ,EACzBrmB,MAAK4b,SAAS7S,EAAM4L,eAAgB5L,EAAMyM,cAMlD+U,GAASoB,cAAgB,WACrB,IAAI3rB,KAAKomB,WAIL,KAAM,IAAIvgB,GAAa,oBAHvB,IAAIkD,GAAQ/I,KAAKqmB,QAAQrmB,KAAKomB,WAAa,EAC3CpmB,MAAK4b,SAAS7S,EAAM6L,aAAc7L,EAAM0M,YAQhD8U,GAASqB,kBAAoB,SAAShoB,GAClCgkB,EAAyB5nB,KAAM4D,EAC/B,IAAImF,GAAQkB,EAAIa,YAAYlH,EAC5BmF,GAAM8S,mBAAmBjY,GACzB5D,KAAK+nB,eAAehf,IAGxBwhB,GAASsB,mBAAqB,WAE1B,GAAI1B,GAA0BxB,GAA0B3oB,KAAK6mB,aAAaphB,MAAQgjB,EAAS,CAGvF,IAFA,GACIqD,GADAhF,EAAe9mB,KAAK6mB,aAAa/b,cAE9Bgc,EAAazkB,QAChBypB,EAAUhF,EAAavhB,KAAK,GAC5BuhB,EAAa/f,OAAO+kB,GACpBA,EAAQhoB,WAAW6Y,YAAYmP,EAEnC9rB,MAAK4hB,cACF,IAAI5hB,KAAKomB,WAAY,CACxB,GAAIuB,GAAS3nB,KAAKqrB,cAClB,IAAI1D,EAAOtlB,OAAQ,CACfrC,KAAK4pB,iBACL,KAAK,GAAI3lB,GAAI,EAAGW,EAAM+iB,EAAOtlB,OAAYuC,EAAJX,IAAWA,EAC5C0jB,EAAO1jB,GAAGiY,gBAIdlc,MAAKqpB,SAAS1B,EAAO/iB,EAAM,OAMvC2lB,GAASwB,UAAY,SAAS3V,EAAMtV,GAChC,IAAK,GAAImD,GAAI,EAAGW,EAAM5E,KAAKqmB,QAAQhkB,OAAYuC,EAAJX,IAAWA,EAClD,GAAKmS,EAAMpW,KAAK8nB,WAAW7jB,IACvB,MAAOnD,IAKnBypB,GAASc,aAAe,WACpB,GAAI1D,KAIJ,OAHA3nB,MAAK+rB,UAAU,SAAShjB,GACpB4e,EAAOrhB,KAAKyC,KAET4e,GAGX4C,GAASxC,eAAiB,SAAShf,EAAO0hB,GACtCzqB,KAAK4pB,kBACL5pB,KAAKqpB,SAAStgB,EAAO0hB,IAGzBF,GAASyB,sBAAwB,SAASza,EAAY0a,GAClD,GAAIC,KAIJ,OAHAlsB,MAAK+rB,UAAW,SAAShjB,GACrBmjB,EAAQ5lB,KAAMyC,EAAMwI,GAAYrO,MAAM6F,EAAOkjB,MAE1CC,GAiBX3B,GAASnP,SAAWyM,GAAuB,GAC3C0C,GAASlP,OAASwM,GAAuB,GAGzC5d,EAAIqE,eAAe6Y,OAAS,SAASsD,GACjCrF,GAAcplB,KAAK2Q,eAAgBoX,eAAe/nB,KAAMyqB,IAG5DF,GAAS4B,gBAAkB,SAAS/V,GAChC,GAAIuR,MACAnC,EAAWxlB,KAAKgoB,YAEpBhoB,MAAK+rB,UAAU,SAAShjB,GACpBqN,EAAKrN,GACL4e,EAAOrhB,KAAKyC,KAGhB/I,KAAK4pB,kBACDpE,GAA6B,GAAjBmC,EAAOtlB,OACnBrC,KAAKqpB,SAAS1B,EAAO,GAAI,YAEzB3nB,KAAK6qB,UAAUlD,IAIvB4C,GAAS9K,aAAe,SAAS7b,EAAM8b,GACnC,MAAO1f,MAAK+rB,UAAW,SAAShjB,GAC5B,MAAOA,GAAM0W,aAAa7b,EAAM8b,KACjC,KAAU,GAGjB6K,GAASlK,YAAc,SAASC,GAC5B,OACIkF,SAAUxlB,KAAKgoB,aACfoE,eAAgBpsB,KAAKgsB,sBAAsB,eAAgB1L,MAInEiK,GAAS/J,eAAiB,SAASC,GAE/B,IAAK,GAAW4L,GAAetjB,EAD3BujB,KACKroB,EAAI,EAAyBooB,EAAgB5L,EAAS2L,eAAenoB,MAC1E8E,EAAQkB,EAAIa,YAAY9K,KAAKN,KAC7BqJ,EAAMyX,eAAe6L,GACrBC,EAAUhmB,KAAKyC,EAEf0X,GAAS+E,SACTxlB,KAAK+nB,eAAeuE,EAAU,GAAI,YAElCtsB,KAAK6qB,UAAUyB,IAIvB/B,GAASvL,OAAS,WACd,GAAIuN,KAIJ,OAHAvsB,MAAK+rB,UAAU,SAAShjB,GACpBwjB,EAAWjmB,KAAM4a,EAASlC,OAAOjW,MAE9BwjB,EAAWplB,KAAK,KAGvBiE,EAASP,sBACT0f,GAASiC,mBAAqB,WAC1B,GAAIjH,EACJ,IAAMA,EAAMvlB,KAAK6mB,aAAgB,CAC7B,GAAI9d,GAAQwc,EAAIza,aAChB,IAAIhC,EAAYC,GACZ,MAAOA,EAEP,MAAMhB,GAAOqG,YAAY,wDAE1B,GAAIpO,KAAKomB,WAAa,EACzB,MAAOnc,GAAImX,iBAAiBmD,iBAAkBvkB,KAAK8nB,WAAW,GAE9D,MAAM/f,GAAOqG,YAAY,qDAoBrCmc,GAASlT,QAAU,WACf,MAAO,oBAGXkT,GAAStW,QAAU,WACf,MAAOA,GAAQjU,OAGnBuqB,GAASzW,OAAS,WACdwT,EAAqBtnB,KAAKN,IAAK,UAC/B0nB,EAAiBpnB,OAGrBilB,EAAiBwH,UAAY,WACzBnF,EAAqB,KAAM,cAG/BrC,EAAiBhR,QAAUA,EAC3BgR,EAAiBF,oBAAsBA,EAEvC9a,EAAIyiB,UAAYzH,EAEhBhb,EAAIsE,mBAAqBgc,GAEzBtgB,EAAI4D,gBAAgB,SAASnO,GACM,mBAApBA,GAAI0lB,eACX1lB,EAAI0lB,aAAe,WACf,MAAOA,IAAa1lB,KAG5BA,EAAM,QAQd,IAAIitB,IAAW,EAEXC,EAAc,WACTD,IACDA,GAAW,GACN1iB,EAAIC,aAAeD,EAAIG,OAAOmC,gBAC/B7B,KAmBZ,OAdIb,KAE2B,YAAvB9F,SAAS8oB,WACTD,KAEI1kB,EAAanE,SAAU,qBACvBA,SAAS4J,iBAAiB,mBAAoBif,GAAa,GAI/Dpf,EAAY9F,OAAQ,OAAQklB,KAI7B3iB,GACRjK,MAcH,SAAU2H,EAASC,GACM,kBAAVC,SAAwBA,OAAOC,IAEtCD,QAAQ,gBAAiBF,GACD,mBAAVI,SAA2C,gBAAXC,SAE9CD,OAAOC,QAAUL,EAASmlB,QAAQ,UAGlCnlB,EAAQC,EAAKK,QAElB,SAASA,GACRA,EAAM6D,aAAa,eAAgB,gBAAiB,SAAS7B,EAAKlC,GAK9D,QAASglB,GAAKva,EAAI7S,GACd,OAAQA,GAAOoE,UAAUipB,eAAexa,GAG5C,QAASya,GAA0BlkB,EAAOmkB,GACtC,GACIC,GADAC,EAAW,uBAAyB,GAAIC,MAAU,KAAO,GAAK3J,KAAK4J,UAAUzqB,MAAM,GAEnFlD,EAAMnB,EAAImS,YAAY5H,EAAM4L,gBAG5B4Y,EAAgBxkB,EAAM0U,YAY1B,OAXA8P,GAAc3R,SAASsR,GAGvBC,EAAWxtB,EAAIuE,cAAc,QAC7BipB,EAAS3a,GAAK4a,EACdD,EAASK,MAAMC,WAAa,IAC5BN,EAASK,MAAME,QAAU,OACzBP,EAASQ,UAAY,yBACrBR,EAAShgB,YAAYxN,EAAIyT,eAAewa,IAExCL,EAAcjP,WAAW6O,GAClBA,EAGX,QAASU,GAAiBluB,EAAKoJ,EAAOqkB,EAAUF,GAC5C,GAAIC,GAAWJ,EAAKK,EAAUztB,EAC1BwtB,IACApkB,EAAMmkB,EAAU,iBAAmB,gBAAgBC,GACnDA,EAASrpB,WAAW6Y,YAAYwQ,IAEhCplB,EAAOuC,KAAK,8DAIpB,QAASwjB,GAAc9M,EAAIC,GACvB,MAAOA,GAAG/C,sBAAsB8C,EAAG3H,eAAgB2H,GAGvD,QAAS+M,GAAUhlB,EAAOyc,GACtB,GAAInD,GAASC,EAAO3iB,EAAMsK,EAAIiX,SAASrM,iBAAiB9L,GAAQgb,EAAOhb,EAAM/G,UAE7E,OAAI+G,GAAMwO,WACN+K,EAAQ2K,EAA0BlkB,GAAO,IAErChF,SAAUpE,EACVytB,SAAU9K,EAAM9P,GAChB+E,WAAW,KAGf+K,EAAQ2K,EAA0BlkB,GAAO,GACzCsZ,EAAU4K,EAA0BlkB,GAAO,IAGvChF,SAAUpE,EACVquB,cAAe3L,EAAQ7P,GACvByb,YAAa3L,EAAM9P,GACnB+E,WAAW,EACXiO,SAAUA,EACVxjB,SAAU,WACN,MAAO,mBAAqB+hB,EAAO,iBAAmBhb,EAAM/G,WAAa,OAMzF,QAASksB,GAAaC,EAAWC,GAC7B,GAAIzuB,GAAMwuB,EAAUpqB,QACI,oBAAbqqB,KACPA,GAAY,EAEhB,IAAIrlB,GAAQkB,EAAIa,YAAYnL,EAC5B,IAAIwuB,EAAU5W,UAAW,CACrB,GAAI4V,GAAWJ,EAAKoB,EAAUf,SAAUztB,EACxC,IAAIwtB,EAAU,CACVA,EAASK,MAAME,QAAU,QACzB,IAAIrK,GAAe8J,EAASpe,eAGxBsU,IAAyC,GAAzBA,EAAahW,UAC7B8f,EAASrpB,WAAW6Y,YAAYwQ,GAChCpkB,EAAMoU,gBAAgBkG,EAAcA,EAAahhB,UAEjD0G,EAAMoX,eAAegN,GACrBA,EAASrpB,WAAW6Y,YAAYwQ,QAGpCplB,GAAOuC,KAAK,kEAGhBujB,GAAiBluB,EAAKoJ,EAAOolB,EAAUH,eAAe,GACtDH,EAAiBluB,EAAKoJ,EAAOolB,EAAUF,aAAa,EAOxD,OAJIG,IACArlB,EAAMwT,sBAGHxT,EAGX,QAASslB,GAAW1G,EAAQnC,GACxB,GAAqBzc,GAAOpJ,EAAxB2uB,IAGJ3G,GAASA,EAAO9kB,MAAM,GACtB8kB,EAAO4G,KAAKT,EAEZ,KAAK,GAAI7pB,GAAI,EAAGW,EAAM+iB,EAAOtlB,OAAYuC,EAAJX,IAAWA,EAC5CqqB,EAAWrqB,GAAK8pB,EAAUpG,EAAO1jB,GAAIuhB,EAKzC,KAAKvhB,EAAIW,EAAM,EAAGX,GAAK,IAAKA,EACxB8E,EAAQ4e,EAAO1jB,GACftE,EAAMsK,EAAIiX,SAASrM,iBAAiB9L,GAChCA,EAAMwO,UACNxO,EAAMqX,cAAc2M,EAAKuB,EAAWrqB,GAAGmpB,SAAUztB,KAEjDoJ,EAAM2S,aAAaqR,EAAKuB,EAAWrqB,GAAGgqB,YAAatuB,IACnDoJ,EAAM0S,cAAcsR,EAAKuB,EAAWrqB,GAAG+pB,cAAeruB,IAI9D,OAAO2uB,GAGX,QAASE,GAAc9uB,GACnB,IAAKuK,EAAI4e,iBAAiBnpB,GAEtB,MADAqI,GAAOuC,KAAK,0HACL,IAEX,IAAIib,GAAMtb,EAAImb,aAAa1lB,GACvBioB,EAASpC,EAAI8F,eACb7F,EAA6B,GAAjBmC,EAAOtlB,QAAekjB,EAAIyC,aAEtCsG,EAAaD,EAAW1G,EAAQnC,EASpC,OANIA,GACAD,EAAIwC,eAAeJ,EAAO,GAAI,YAE9BpC,EAAIsF,UAAUlD,IAIdjoB,IAAKA,EACL4uB,WAAYA,EACZG,UAAU,GAIlB,QAASC,GAAcJ,GAOnB,IAAK,GAND3G,MAIAvB,EAAakI,EAAWjsB,OAEnB4B,EAAImiB,EAAa,EAAGniB,GAAK,EAAGA,IACjC0jB,EAAO1jB,GAAKiqB,EAAaI,EAAWrqB,IAAI,EAG5C,OAAO0jB,GAGX,QAASgH,GAAiBC,EAAgBC,GACtC,IAAKD,EAAeH,SAAU,CAC1B,GAAIH,GAAaM,EAAeN,WAC5B/I,EAAMtb,EAAImb,aAAawJ,EAAelvB,KACtCioB,EAAS+G,EAAcJ,GAAalI,EAAakI,EAAWjsB,MAE9C,IAAd+jB,GAAmByI,GAAqB5kB,EAAImB,SAAS4d,oBAAsBsF,EAAW,GAAG9I,UACzFD,EAAIqE,kBACJrE,EAAI8D,SAAS1B,EAAO,IAAI,IAExBpC,EAAIsF,UAAUlD,GAGlBiH,EAAeH,UAAW,GAIlC,QAASK,GAAoBnvB,EAAKytB,GAC9B,GAAID,GAAWJ,EAAKK,EAAUztB,EAC1BwtB,IACAA,EAASrpB,WAAW6Y,YAAYwQ,GAIxC,QAAS4B,GAAcH,GAEnB,IAAK,GAAoCT,GADrCG,EAAaM,EAAeN,WACvBrqB,EAAI,EAAGW,EAAM0pB,EAAWjsB,OAAuBuC,EAAJX,IAAWA,EAC3DkqB,EAAYG,EAAWrqB,GACnBkqB,EAAU5W,UACVuX,EAAoBF,EAAejvB,IAAKwuB,EAAUf,WAElD0B,EAAoBF,EAAejvB,IAAKwuB,EAAUH,eAClDc,EAAoBF,EAAejvB,IAAKwuB,EAAUF,cA3M9D,GAAIzvB,GAAMyL,EAAIzL,IAEVovB,EAAiB,GA8MrB3jB,GAAIoC,KAAKI,OAAOxC,GACZ8jB,UAAWA,EACXG,aAAcA,EACdG,WAAYA,EACZK,cAAeA,EACfF,cAAeA,EACfG,iBAAkBA,EAClBG,oBAAqBA,EACrBC,cAAeA,OAIxB/uB,KAMH,IAAIgvB,MAAO,YAIXA,MAAKviB,OAAS,SAASwiB,EAAWC,GACjC,GAAIziB,GAASuiB,KAAKnvB,UAAU4M,MAG5BuiB,MAAKG,cAAe,CACpB,IAAIC,GAAQ,GAAIpvB,KAChByM,GAAOrL,KAAKguB,EAAOH,GAClBG,EAAMC,KAAO,mBAGPL,MAAKG,YAIZ,IAAI7U,GAAc8U,EAAM9U,YACpBgV,EAAQF,EAAM9U,YAAc,WAC/B,IAAK0U,KAAKG,aACT,GAAInvB,KAAKuvB,eAAiBvvB,KAAKsa,aAAegV,EAC7CtvB,KAAKuvB,eAAgB,EACrBjV,EAAYpX,MAAMlD,KAAM8C,iBACjB9C,MAAKuvB,kBACN,IAAoB,MAAhBzsB,UAAU,GACpB,OAAQA,UAAU,GAAG2J,QAAUA,GAAQrL,KAAK0B,UAAU,GAAIssB,GAmB7D,OAbAE,GAAM9f,SAAWxP,KACjBsvB,EAAM7iB,OAASzM,KAAKyM,OACpB6iB,EAAME,QAAUxvB,KAAKwvB,QACrBF,EAAMG,UAAYzvB,KAAKyvB,UACvBH,EAAMzvB,UAAYuvB,EAClBE,EAAMttB,SAAWhC,KAAKgC,SACtBstB,EAAMI,QAAU,SAASjqB,GAExB,MAAgB,UAARA,EAAoB6pB,EAAQhV,EAAYoV,WAEjDjjB,EAAOrL,KAAKkuB,EAAOJ,GAEM,kBAAdI,GAAM5kB,MAAoB4kB,EAAM5kB,OACpC4kB,GAGRN,KAAKnvB,WACJ4M,OAAQ,SAASkjB,EAAQC,GACxB,GAAI9sB,UAAUT,OAAS,EAAG,CACzB,GAAImN,GAAWxP,KAAK2vB,EACpB,IAAIngB,GAA6B,kBAATogB,MAErBpgB,EAASkgB,SAAWlgB,EAASkgB,WAAaE,EAAMF,YAClD,WAAW3pB,KAAK6pB,GAAQ,CAExB,GAAIprB,GAASorB,EAAMF,SAEnBE,GAAQ,WACP,GAAIC,GAAW7vB,KAAKqvB,MAAQL,KAAKnvB,UAAUwvB,IAC3CrvB,MAAKqvB,KAAO7f,CACZ,IAAI1O,GAAc0D,EAAOtB,MAAMlD,KAAM8C,UAErC,OADA9C,MAAKqvB,KAAOQ,EACL/uB,GAGR8uB,EAAMF,QAAU,SAASjqB,GACxB,MAAgB,UAARA,EAAoBmqB,EAAQprB,GAErCorB,EAAM5tB,SAAWgtB,KAAKhtB,SAEvBhC,KAAK2vB,GAAUC,MACT,IAAID,EAAQ,CAClB,GAAIljB,GAASuiB,KAAKnvB,UAAU4M,MAEvBuiB,MAAKG,cAA+B,kBAARnvB,QAChCyM,EAASzM,KAAKyM,QAAUA,EAOzB,KALA,GAAI2iB,IAASU,SAAU,MAEnBC,GAAU,cAAe,WAAY,WAErC9rB,EAAI+qB,KAAKG,aAAe,EAAI,EACzBa,EAAMD,EAAO9rB,MACf0rB,EAAOK,IAAQZ,EAAMY,IACxBvjB,EAAOrL,KAAKpB,KAAMgwB,EAAKL,EAAOK,GAKhC,KAAK,GAAIA,KAAOL,GACVP,EAAMY,IAAMvjB,EAAOrL,KAAKpB,KAAMgwB,EAAKL,EAAOK,IAGjD,MAAOhwB,QAKTgvB,KAAOA,KAAKviB,QACX6N,YAAa,WACZta,KAAKyM,OAAO3J,UAAU,OAGvB0M,SAAUlO,OACVhD,QAAS,MAETkxB,QAAS,SAASS,EAAQC,EAAOC,GAChC,IAAK,GAAIH,KAAOC,GACaG,SAAxBpwB,KAAKH,UAAUmwB,IAClBE,EAAM9uB,KAAK+uB,EAASF,EAAOD,GAAMA,EAAKC,IAKzCR,UAAW,WACV,IAAK,GAAIxrB,GAAI,EAAGA,EAAInB,UAAUT,OAAQ4B,IACV,kBAAhBnB,WAAUmB,GAEpBnB,UAAUmB,GAAGjE,KAAKH,WAGlBG,KAAKH,UAAU4M,OAAO3J,UAAUmB,GAGlC,OAAOjE,OAGRgC,SAAU,WACT,MAAOpC,QAAOI,KAAK0vB,cAKrBrxB,UAAUgyB,QAAU,WASlB,QAASC,GAAWC,GAClB,QAAU,mBAAmBxqB,KAAKwqB,IAAcA,EAAUvG,MAAM,gCAAmCoG,OAAW,IAAI,GAGpH,QAASI,GAAeD,GACtB,QAASA,EAAUvG,MAAM,mBAAqBoG,OAAW,IAAI,GAG/D,QAASK,GAAKnyB,EAASoyB,GACrB,GACIC,GADAC,EAAK,EAaT,OAVyB,+BAArB9G,UAAU+G,QACZF,EAAK,GAAI1Z,QAAO,8BACc,YAArB6S,UAAU+G,UACnBF,EAAK,GAAI1Z,QAAO,uCAGd0Z,GAAsC,MAAhCA,EAAGG,KAAKhH,UAAUyG,aAC1BK,EAAKG,WAAW9Z,OAAO+Z,KAGd,KAAPJ,GAAoB,EACnBtyB,EACAoyB,EACY,MAAbA,EAAqCE,EAAVtyB,EACd,MAAboyB,EAA2BpyB,EAAUsyB,EACxB,OAAbF,EAAuCE,GAAXtyB,EACf,OAAboyB,EAA4BpyB,GAAWsyB,EAA3C,OAJwBtyB,IAAYsyB,GADb,EA/BzB,GAAIL,GAAczG,UAAUyG,UACxBpsB,EAAcJ,SAASG,cAAc,OAErC+sB,EAAoD,KAAtCV,EAAUtuB,QAAQ,UAAyD,KAA/BsuB,EAAUtuB,QAAQ,SAC5EivB,EAAoD,KAAtCX,EAAUtuB,QAAQ,gBAChCkvB,EAAoD,KAAtCZ,EAAUtuB,QAAQ,WAChCmvB,EAAoD,KAAtCb,EAAUtuB,QAAQ,SAiCpC,QAEEovB,WAAYd,EAUZpmB,UAAW,WACT,GAAIomB,GAA8BvwB,KAAKqxB,WAAWnmB,cAE9ComB,EAA8B,mBAAqBntB,GAEnDotB,EAA8BxtB,SAASytB,aAAeztB,SAAS0tB,uBAAyB1tB,SAAS2tB,kBAEjGC,EAA8B5tB,SAAS6tB,eAAiB7tB,SAASC,iBAEjE6tB,EAA+B7xB,KAAK8xB,SAAWxB,EAAWC,GAAa,GAAOvwB,KAAK+xB,aAAevB,EAAeD,GAAa,GAA0C,KAApCA,EAAUtuB,QAAQ,eAAwD,KAAhCsuB,EAAUtuB,QAAQ,SACpM,OAAOqvB,IACFC,GACAI,IACCE,GAGRG,cAAe,WACb,MAAOhyB,MAAKiyB,cAAc,cAG5BH,MAAO,WACL,MAAO,oBAAsB/rB,KAAK/F,KAAKqxB,aAGzCU,UAAW,WACT,MAA8C,KAAvC/xB,KAAKqxB,WAAWpvB,QAAQ,YAYjCiwB,yBAA0B,WACxB,MAAOzB,MAQT0B,8CAA+C,WAC7C,QAAS,iBAAmBpuB,YAO9BquB,6CAA8C,WAC5C,MAAO3B,MAQT4B,wBAAyB,WACvB,MAAO,gBAAkBluB,IAM3BmuB,0BAA2B,WACzB,MAAOrB,IAGTsB,+BAAgC,SAASzG,GACvC,MAAO,eAAiBA,IAG1BmG,cAAe,SAASO,GACtB,MAAO,KAAOA,IAAaruB,IAAe,WAExC,MADAA,GAAYqC,aAAa,KAAOgsB,EAAW,WACM,kBAAnCruB,GAAY,KAAOquB,OAOrCC,gCAAiC,WAC/B,OAAQrB,GAWVsB,kBAAmB,SAASvC,GAC1B,GAAIrE,GAAUqE,EAAQjsB,cAAc,OAChCyuB,EAAU,wBAEd,OADA7G,GAAQrZ,UAAYkgB,EACb7G,EAAQrZ,UAAUvH,gBAAkBynB,GAe7CC,gBAAiB,WAEf,GAAIC,IAEFC,YAAwBrC,EAAK,GAAI,MAIjCsC,oBAAwBtC,IACxBuC,kBAAwBvC,KAItBtmB,GACF8oB,WAAchC,EAGhB,OAAO,UAAStxB,EAAKuzB,GACnB,GAAIC,GAAUN,EAAcK,EAC5B,KAAKC,EAAS,CAEZ,IACE,MAAOxzB,GAAI8xB,sBAAsByB,GACjC,MAAME,IAER,IACE,MAAOzzB,GAAI0zB,oBAAoBH,GAC/B,MAAMI,GACN,QAASnpB,EAAU+oB,IAGvB,OAAO,MAcXK,iCAAkC,WAChC,MAAO9C,MAOT+C,sBAAuB,WACrB,MAAOxzB,MAAK4yB,gBAAgB7uB,SAAU,kBAOxC0vB,+BAAgC,WAC9B,MAAOxC,IAAWG,GAAWF,GAM/BwC,8BAA+B,WAC7B,GAAIC,GAAK5vB,SAASG,cAAc,KAChC,OAAqC,KAA9ByvB,EAAGxtB,aAAa,YAOzBytB,iCAAkC,WAChC,MAAO3C,IAAWR,KAAUW,GAM9ByC,mBAAoB,WAClB,OAAQ3C,GAMV4C,uBAAwB,WACtB,GACIhzB,GACA2R,EAFAshB,EAAoB5vB,EAAYoM,WAAU,EAW9C,OAPAwjB,GAAkBthB,UAAY,iBAC9BA,EAA8BshB,EAAkBthB,UAAUvH,cAC1DpK,EAA4C,uBAAd2R,GAAoD,uBAAdA,EAGpEzS,KAAK8zB,uBAAyB,WAAa,MAAOhzB,IAE3CA,GAMTkzB,qCAAsC,WACpC,MAA4E,KAArEp0B,OAAOmE,SAASkwB,wBAAwBhyB,QAAQ,kBAOzDiyB,wBAAyB,WACvB,MAAO,gBAAkBxsB,SAAU,UAAYA,QAAO0d,gBAMxD+O,yBAA0B,WACxB,MAAO/C,IAaTgD,oBAAqB,SAASC,GAC5B,GAAIC,GAAgB/D,EAAUvG,MAAM,mBAAqBoG,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,iBAAmBrtB,SAQ7BstB,mBAAoB,WAClB,QAAS,iBAAmBttB,UAK9ButB,YAAa,SAASjF,GACpB,MAAY,aAARA,EACM,cAAgBjsB,UAASG,cAAc,OAAOspB,MAAS,aAAe,WAEzEwC,OAIZ3xB,UAAUM,KAAKu2B,MAAQ,SAAS3nB,GAC/B,OAUEjJ,SAAU,SAAS6wB,GACjB,GAAItzB,MAAMC,QAAQqzB,GAAS,CACzB,IAAK,GAAIlxB,GAAIkxB,EAAO9yB,OAAQ4B,KAC1B,GAAqD,KAAjD5F,UAAUM,KAAKu2B,MAAM3nB,GAAKtL,QAAQkzB,EAAOlxB,IAC3C,OAAO,CAGX,QAAO,EAEP,MAAqD,KAA9C5F,UAAUM,KAAKu2B,MAAM3nB,GAAKtL,QAAQkzB,IAY7ClzB,QAAS,SAASkzB,GACd,GAAI5nB,EAAItL,QACN,MAAOsL,GAAItL,QAAQkzB,EAEnB,KAAK,GAAIlxB,GAAE,EAAG5B,EAAOkL,EAAIlL,OAAUA,EAAF4B,EAAUA,IACzC,GAAIsJ,EAAItJ,KAAOkxB,EAAU,MAAOlxB,EAElC,OAAO,IAWbmxB,QAAS,SAASC,GAChBA,EAAmBh3B,UAAUM,KAAKu2B,MAAMG,EAIxC,KAHA,GAAIC,MACArxB,EAAU,EACV5B,EAAUkL,EAAIlL,OACTA,EAAF4B,EAAUA,IACVoxB,EAAiB/wB,SAASiJ,EAAItJ,KACjCqxB,EAAOhvB,KAAKiH,EAAItJ,GAGpB,OAAOqxB,IAUT7zB,IAAK,WAIH,IAHA,GAAIwC,GAAW,EACX5B,EAAWkL,EAAIlL,OACfkzB,KACKlzB,EAAF4B,EAAUA,IACfsxB,EAASjvB,KAAKiH,EAAItJ,GAEpB,OAAOsxB,IAaTC,IAAK,SAASC,EAAUC,GACtB,GAAI7zB,MAAMhC,UAAU21B,IAClB,MAAOjoB,GAAIioB,IAAIC,EAAUC,EAKzB,KAHA,GAAI9wB,GAAM2I,EAAIlL,SAAW,EACrBszB,EAAI,GAAI9zB,OAAM+C,GACdX,EAAI,EACGW,EAAJX,EAASA,IACb0xB,EAAE1xB,GAAKwxB,EAASr0B,KAAKs0B,EAASnoB,EAAItJ,GAAIA,EAAGsJ,EAE5C,OAAOooB,IAUXC,OAAQ,WAKN,IAJA,GAAIC,MACAC,EAAMvoB,EAAIlL,OACV0zB,EAAM,EAEGD,EAANC,GACA13B,UAAUM,KAAKu2B,MAAMW,GAAMvxB,SAASiJ,EAAIwoB,KAC3CF,EAAKvvB,KAAKiH,EAAIwoB,IAEhBA,GAEF,OAAOF,MAKZx3B,UAAUM,KAAKq3B,WAAahH,KAAKviB,QAEhCpM,GAAI,SAASmyB,EAAWyD,GAItB,MAHAj2B,MAAKk2B,OAASl2B,KAAKk2B,WACnBl2B,KAAKk2B,OAAO1D,GAAaxyB,KAAKk2B,OAAO1D,OACrCxyB,KAAKk2B,OAAO1D,GAAWlsB,KAAK2vB,GACrBj2B,MAGTm2B,IAAK,SAAS3D,EAAWyD,GACvBj2B,KAAKk2B,OAASl2B,KAAKk2B,UACnB,IACIE,GACAC,EAFApyB,EAAI,CAGR,IAAIuuB,EAAW,CAGb,IAFA4D,EAAcp2B,KAAKk2B,OAAO1D,OAC1B6D,KACOpyB,EAAEmyB,EAAS/zB,OAAQ4B,IACpBmyB,EAASnyB,KAAOgyB,GAAWA,GAC7BI,EAAY/vB,KAAK8vB,EAASnyB,GAG9BjE,MAAKk2B,OAAO1D,GAAa6D,MAGzBr2B,MAAKk2B,SAEP,OAAOl2B,OAGTs2B,KAAM,SAAS9D,EAAW+D,GACxBv2B,KAAKk2B,OAASl2B,KAAKk2B,UAGnB,KAFA,GAAIE,GAAWp2B,KAAKk2B,OAAO1D,OACvBvuB,EAAW,EACRA,EAAEmyB,EAAS/zB,OAAQ4B,IACxBmyB,EAASnyB,GAAG7C,KAAKpB,KAAMu2B,EAEzB,OAAOv2B,OAITw2B,QAAS,WACP,MAAOx2B,MAAKK,GAAG6C,MAAMlD,KAAM8C,YAI7B2zB,cAAe,WACb,MAAOz2B,MAAKm2B,IAAIjzB,MAAMlD,KAAM8C,cAG/BzE,UAAUM,KAAKsxB,OAAS,SAAStjB,GAChC,OAME+pB,MAAO,SAASC,GACd,IAAK,GAAI1yB,KAAK0yB,GACZhqB,EAAI1I,GAAK0yB,EAAS1yB,EAEpB,OAAOjE,OAGTyB,IAAK,WACH,MAAOkL,IAUT4R,MAAO,SAAS3R,GACd,GACI3I,GADA2yB,IAGJ,IAAY,OAARjqB,IAAiBtO,UAAUM,KAAKsxB,OAAOtjB,GAAKkqB,gBAC9C,MAAOlqB,EAGT,KAAK1I,IAAK0I,GACLA,EAAID,eAAezI,KAElB2yB,EAAO3yB,GADL2I,EACUvO,UAAUM,KAAKsxB,OAAOtjB,EAAI1I,IAAIsa,MAAM3R,GAEpCD,EAAI1I,GAItB,OAAO2yB,IAQT90B,QAAS,WACP,MAA+C,mBAAxCR,OAAOzB,UAAUmC,SAASZ,KAAKuL,IAQxCmqB,WAAY,WACV,MAA+C,sBAAxCx1B,OAAOzB,UAAUmC,SAASZ,KAAKuL,IAGxCkqB,cAAe,WACb,MAA+C,oBAAxCv1B,OAAOzB,UAAUmC,SAASZ,KAAKuL,MAI3C,WACC,GAAIoqB,GAAoB,OACpBC,EAAoB,OACpBC,EAAoB,YACpBC,GACEC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,UAEXl5B,WAAUM,KAAK64B,OAAS,SAASC,GAE/B,MADAA,GAAM73B,OAAO63B,IAOX33B,KAAM,WACJ,MAAO23B,GAAIx3B,QAAQ82B,EAAmB,IAAI92B,QAAQ+2B,EAAiB,KAQrEU,YAAa,SAASC,GACpB,IAAK,GAAI1zB,KAAK0zB,GACZF,EAAMz3B,KAAKC,QAAQ,KAAOgE,EAAI,KAAK2zB,GAAGD,EAAK1zB,GAE7C,OAAOwzB,IAQTx3B,QAAS,SAAS43B,GAChB,OACED,GAAI,SAAS33B,GACX,MAAOw3B,GAAIpxB,MAAMwxB,GAAQ1wB,KAAKlH,MAUpC63B,WAAY,SAASC,EAAYC,GAC/B,GAAIC,GAAOR,EAAIx3B,QAAQg3B,EAAgB,SAAS70B,GAAK,MAAO80B,GAAW90B,IAOvE,OANI21B,KACFE,EAAOA,EAAKh4B,QAAQ,kBAAmB,WAErC+3B,IACFC,EAAOA,EAAKh4B,QAAQ,OAAQ,YAEvBg4B,QAef,SAAU55B,GAoBR,QAAS65B,GAASpM,EAASqM,GACzB,MAAIC,GAA8BtM,EAASqM,GAClCrM,GAGLA,IAAYA,EAAQlb,cAAc6C,kBACpCqY,EAAUA,EAAQlb,cAAcvH,MAG3BgvB,EAAWvM,EAASqM,IAO7B,QAASG,GAAoBb,GAC3B,MAAOA,GAAIx3B,QAAQs4B,EAAa,SAASvO,EAAOwO,GAC9C,GAAIC,IAAeD,EAAIxO,MAAM0O,QAA8B,IAAM,GAC7DC,EAAcC,EAASH,EAC3BD,GAAMA,EAAIv4B,QAAQy4B,EAAuB,IAErCF,EAAInyB,MAAMsyB,GAASt2B,OAASm2B,EAAInyB,MAAMoyB,GAAap2B,SACrDm2B,GAAYC,EACZA,EAAc,GAEhB,IAAII,GAAaL,EACbM,EAAaN,CASjB,OARIA,GAAIn2B,OAAS02B,IACfD,EAAaA,EAAWE,OAAO,EAAGD,GAAsB,OAG7B,SAAzBF,EAAQG,OAAO,EAAG,KACpBH,EAAU,UAAYA,GAGjB,YAAcA,EAAU,KAAOC,EAAa,OAASL,IAQhE,QAASQ,GAAgB9I,GACvB,GAAI+I,GAAc/I,EAAQgJ,sBAI1B,OAHKD,KACHA,EAAc/I,EAAQgJ,uBAAyBhJ,EAAQjsB,cAAc,QAEhEg1B,EAMT,QAASE,GAAmBjmB,GAC1B,GAAIrP,GAAcqP,EAASrP,WACvBu1B,EAAch7B,EAAUM,KAAK64B,OAAOrkB,EAASb,MAAMwlB,aACnDoB,EAAcD,EAAgBn1B,EAAW8M,cAO7C,KAHAsoB,EAAYzmB,UAAY,gBAAkB6lB,EAAoBe,GAC9DH,EAAYvc,YAAYuc,EAAYhnB,YAE7BgnB,EAAYhnB,YAEjBpO,EAAWqM,aAAa+oB,EAAYhnB,WAAYiB,EAElDrP,GAAW6Y,YAAYxJ,GAGzB,QAASilB,GAA8Bx0B,EAAMu0B,GAE3C,IADA,GAAIltB,GACGrH,EAAKE,YAAY,CAGtB,GAFAF,EAAOA,EAAKE,WACZmH,EAAWrH,EAAKqH,SACZrH,EAAK+pB,WAAatvB,EAAUM,KAAKu2B,MAAMtxB,EAAK+pB,UAAUtnB,MAAM,MAAM/B,SAAS6zB,GAC7E,OAAO,CAET,IAAImB,EAAeh1B,SAAS2G,GAC1B,OAAO,CACF,IAAiB,SAAbA,EACT,OAAO,EAGX,OAAO,EAGT,QAASotB,GAAWvM,EAASqM,GAC3B,KAAImB,EAAeh1B,SAASwnB,EAAQ7gB,WAIhC6gB,EAAQ6B,WAAatvB,EAAUM,KAAKu2B,MAAMpJ,EAAQ6B,UAAUtnB,MAAM,MAAM/B,SAAS6zB,IAArF,CAIA,GAAIrM,EAAQze,WAAahP,EAAUa,WAAa4sB,EAAQxZ,KAAK0X,MAAMuO,GAEjE,WADAa,GAAmBtN,EAQrB,KAJA,GAAI1e,GAAoB/O,EAAUM,KAAKu2B,MAAMpJ,EAAQ1e,YAAY3L,MAC7D83B,EAAoBnsB,EAAW/K,OAC/B4B,EAAoB,EAEfs1B,EAAFt1B,EAAoBA,IACzBo0B,EAAWjrB,EAAWnJ,GAAIk0B,EAG5B,OAAOrM,IAlIT,GAGIwN,GAAwBj7B,EAAUM,KAAKu2B,OAAO,OAAQ,MAAO,IAAK,SAAU,OAAQ,QAAS,UAW7FqD,EAAwB,oCACxBG,EAAwB,oBACxBK,EAAwB,IACxBH,GAA0BY,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAoHvDr7B,GAAUG,IAAI05B,SAAWA,EAGzB75B,EAAUG,IAAI05B,SAASK,YAAcA,GACpCl6B,WACF,SAAUA,GACT,GAAI4L,GAAM5L,EAAUG,GAEpByL,GAAI0vB,SAAW,SAAS7N,EAAS6B,GAC/B,GAAIvpB,GAAY0nB,EAAQ1nB,SACxB,OAAIA,GACKA,EAAUC,IAAIspB,QAEnB1jB,EAAI2vB,SAAS9N,EAAS6B,KAG1B7B,EAAQ6B,WAAa,IAAMA,KAG7B1jB,EAAI4vB,YAAc,SAAS/N,EAAS6B,GAClC,GAAIvpB,GAAY0nB,EAAQ1nB,SACxB,OAAIA,GACKA,EAAU2C,OAAO4mB,QAG1B7B,EAAQ6B,UAAY7B,EAAQ6B,UAAU1tB,QAAQ,GAAIgX,QAAO,WAAa0W,EAAY,YAAa,OAGjG1jB,EAAI2vB,SAAW,SAAS9N,EAAS6B,GAC/B,GAAIvpB,GAAY0nB,EAAQ1nB,SACxB;GAAIA,EACF,MAAOA,GAAUE,SAASqpB,EAG5B,IAAImM,GAAmBhO,EAAQ6B,SAC/B,OAAQmM,GAAiBz3B,OAAS,IAAMy3B,GAAoBnM,GAAa,GAAI1W,QAAO,UAAY0W,EAAY,WAAW5nB,KAAK+zB,MAE7Hz7B,WACFA,UAAUG,IAAI8F,SAAW,WACxB,GAAImP,GAAkB1P,SAAS0P,eAC/B,OAAIA,GAAgBnP,SACX,SAAS4U,EAAW4S,GAIzB,MAHIA,GAAQze,WAAahP,UAAUY,eACjC6sB,EAAUA,EAAQhoB,YAEboV,IAAc4S,GAAW5S,EAAU5U,SAASwnB,IAE5CrY,EAAgBsmB,wBAClB,SAAS7gB,EAAW4S,GAEzB,SAAuD,GAA7C5S,EAAU6gB,wBAAwBjO,KAHzC,UAiCTztB,UAAUG,IAAIw7B,cAAgB,WAC5B,QAASC,GAAgBt6B,EAAKu6B,GAC5B,GAAIC,GAAWx6B,EAAIuE,cAAc,KAEjC,OADAg2B,GAAK/sB,YAAYgtB,GACVA,EAGT,QAASC,GAAYz6B,EAAK8F,GACxB,MAAO9F,GAAIuE,cAAcuB,GAG3B,QAASu0B,GAAclO,EAASuO,EAAUC,GACxC,GAAyB,OAArBxO,EAAQ7gB,UAA0C,OAArB6gB,EAAQ7gB,UAA0C,SAArB6gB,EAAQ7gB,SAEpE,MAAO6gB,EAGT,IAII1e,GACAmsB,EACAgB,EACAC,EACA12B,EACA22B,EACAC,EACAC,EACA12B,EAZAtE,EAAoBmsB,EAAQlb,cAC5BspB,EAAoBE,EAAYz6B,EAAK06B,GACrCO,EAAoB9O,EAAQ9nB,iBAAiB,MAC7C62B,EAAoBD,EAAWv4B,MAYnC,KAAK4B,EAAE,EAAK42B,EAAF52B,EAAoBA,IAE5B,IADAu2B,EAAYI,EAAW32B,IACfH,EAAa02B,EAAU12B,aAAeA,IAAegoB,GAAWhoB,EAAW6a,YAAc6b,GAAW,CAC1G,GAA2D,UAAvDn8B,UAAUG,IAAIs8B,SAAS,WAAWC,KAAKj3B,GAAyB,CAClEA,EAAW6Y,YAAY6d,EACvB,OAEFn8B,UAAUG,IAAIw8B,OAAOR,GAAWS,MAAMT,EAAU12B,YAOpD,IAHAsJ,EAAoB/O,UAAUM,KAAKu2B,MAAMpJ,EAAQ1e,YAAY3L,MAC7D83B,EAAoBnsB,EAAW/K,OAE1B4B,EAAE,EAAKs1B,EAAFt1B,EAAoBA,IAC5B02B,EAAoBA,GAAmBV,EAAgBt6B,EAAKu6B,GAC5DK,EAAoBntB,EAAWnJ,GAC/Bw2B,EAA0E,UAAtDp8B,UAAUG,IAAIs8B,SAAS,WAAWC,KAAKR,GAC3DG,EAA2C,OAAvBH,EAAUtvB,UAG1BwvB,GAAoBH,GAAoBj8B,UAAUG,IAAIo7B,SAASW,EAAWD,GAQ1EI,EAEFC,EAAkBA,EAAgBzoB,WAAa,KAAOyoB,EAIxDA,EAAgBxtB,YAAYotB,IAZ1BI,EAAkBA,EAAgBzoB,WAAa+nB,EAAgBt6B,EAAKu6B,GAAQS,EAC5EA,EAAgBxtB,YAAYotB,GAC5BI,EAAkB,KAkBtB,OAL0B,KAAtBvtB,EAAW/K,QACb43B,EAAgBt6B,EAAKu6B,GAGvBpO,EAAQhoB,WAAWo3B,aAAahB,EAAMpO,GAC/BoO,EAGT,MAAOF,MAiBT37B,UAAUG,IAAI28B,eAAiB,SAASC,GACtC,OACEL,KAAM,SAASM,GACb,OACEC,GAAI,SAASC,GAIX,IAHA,GAAIC,GACAv3B,EAAY,EACZ5B,EAAY+4B,EAAiB/4B,OACxBA,EAAF4B,EAAUA,IACfu3B,EAAYJ,EAAiBn3B,GACgB,mBAAlCo3B,GAAkBG,IAAgE,KAAjCH,EAAkBG,KAC5ED,EAAgBC,GAAaH,EAAkBG,GAGnD,QAASC,MAAO34B,UAAU44B,aAyBpC,SAAUl9B,GASR,GAAIm9B,IAAyB,qBAAsB,kBAAmB,iBAAkB,cAEpFC,EAAiC,SAAS9P,GAC5C,MAAI+P,GAAsB/P,GAChB7B,SAASzrB,EAAIs8B,SAAS,SAASC,KAAKjP,GAAU,IAAMA,EAAQgQ,aAE/D,GAGLD,EAAwB,SAAS/P,GAGnC,IAFA,GAAI7nB,GAAU,EACV5B,EAAUs5B,EAAsBt5B,OAC3BA,EAAF4B,EAAUA,IACf,GAA6D,eAAzDzF,EAAIs8B,SAASa,EAAsB13B,IAAI82B,KAAKjP,GAC9C,MAAO6P,GAAsB13B,GAKnCzF,GAAIu9B,WAAa,SAASC,GACxB,OACEjB,KAAM,SAASjP,GACT8P,EAA+B9P,KACjCkQ,EAAe39B,UAAUM,KAAKu2B,MAAM8G,GAAc5G,QAAQuG,GAO5D,KAJA,GAGInH,GAHAyH,EAAU,GACV55B,EAAU25B,EAAa35B,OACvB4B,EAAU,EAEL5B,EAAF4B,EAAUA,IACfuwB,EAAWwH,EAAa/3B,GACxBg4B,GAAWzH,EAAW,IAAMh2B,EAAIs8B,SAAStG,GAAUuG,KAAKjP,GAAW,GAGrE,QACEwP,GAAI,SAASxP,GAEX,MADAttB,GAAI09B,UAAUD,GAAS57B,GAAGyrB,IACjB2P,MAAO34B,UAAU44B,cAMnCr9B,UAAUG,KASb,SAAUH,GACRA,EAAUG,IAAI29B,SAAW,SAASjjB,EAAWvV,EAAU6uB,EAAWyD,GAChE,GAAIR,GAAW,SAAS/0B,GAKtB,IAAK,GAJDC,GAASD,EAAMC,OACfmrB,EAA+B,IAApBnrB,EAAO0M,SAAkB1M,EAAOmD,WAAanD,EACxD0C,EAAW6V,EAAUlV,iBAAiBL,GAEjCM,EAAI,EAAG6xB,EAAMzyB,EAAQhB,OAAYyzB,EAAJ7xB,EAASA,IACzCZ,EAAQY,GAAGK,SAASwnB,IACtBmK,EAAQ70B,KAAKiC,EAAQY,GAAIvD,GAM/B,OADAwY,GAAUvL,iBAAiB6kB,EAAWiD,GAAU,IAE9Clf,KAAM,WACJ2C,EAAUkjB,oBAAoB5J,EAAWiD,GAAU,OAIxDp3B,WAEH,SAAUA,GACRA,EAAUG,IAAI69B,QAAU,SAASz4B,GAC/B,GAAI04B,IAAoBj+B,EAAUY,aAAcZ,EAAUa,WAEtDq9B,EAAe,SAAS34B,GAC1B,MAAOA,GAAKyJ,WAAahP,EAAUa,WAAa,SAAW6G,KAAKnC,EAAK0O,MAGvE,QAGEkqB,KAAM,SAASxvB,GACb,GAAIyvB,GAAW74B,EAAKmL,gBAChB2tB,EAAS1vB,GAAWA,EAAQ4J,UAAa5J,EAAQ4J,UAAY0lB,CAEjE,OAAKG,IAKDp+B,EAAUM,KAAKu2B,MAAMwH,GAAOp4B,SAASm4B,EAASpvB,WAC/CL,GAAWA,EAAQ2vB,kBAAoBJ,EAAaE,GAE9Cp+B,EAAUG,IAAI69B,QAAQI,GAAUD,KAAKxvB,GAGvCyvB,EAVE,MAcX5oB,KAAM,SAAS7G,GACb,GAAIiD,GAAWrM,EAAKsM,YAChBwsB,EAAS1vB,GAAWA,EAAQ4J,UAAa5J,EAAQ4J,UAAY0lB,CAEjE,OAAKrsB,IAKD5R,EAAUM,KAAKu2B,MAAMwH,GAAOp4B,SAAS2L,EAAS5C,WAC/CL,GAAWA,EAAQ2vB,kBAAoBJ,EAAatsB,GAE9C5R,EAAUG,IAAI69B,QAAQpsB,GAAU4D,KAAK7G,GAGvCiD,EAVE,MAgBX2sB,aAAc,SAAS5vB,GACrB,GAAI2R,EAGJ,IAAsB,IAAlB/a,EAAKyJ,SACP,MAAOzJ,EAKT,IADA+a,EAAY/a,EAAK+a,WACZA,EACH,MAAO/a,EAIT,IAAIoJ,GAAWA,EAAQ6vB,YACrB,IAAK,GAAI54B,GAAI+I,EAAQ6vB,YAAYx6B,OAAQ4B,KACvC,GAAI5F,EAAUG,IAAIo7B,SAASh2B,EAAMoJ,EAAQ6vB,YAAY54B,IACnD,MAAOL,EAKb,OAAOvF,GAAUG,IAAI69B,QAAQ1d,GAAWie,aAAa5vB,IAsBvDjH,KAAM,SAAS+2B,GACb,GAAIle,EAGJ,KAAKke,EACH,OAAO,CAIT,IAAsB,IAAlBl5B,EAAKyJ,SACP,OAAO,CAGT,IAAIyvB,EAAWC,QACRn5B,EAAKP,QAAQy5B,EAAWC,OAC3B,OAAO,CAIX,IAAID,EAAW7xB,UAAYrH,EAAKqH,WAAa6xB,EAAW7xB,SACtD,OAAO,CAGT,IAAI6xB,EAAWnP,YAAc/pB,EAAKQ,UAAUE,SAASw4B,EAAWnP,WAC9D,OAAO,CAIT,IAAImP,EAAWE,YAAa,CAC1B,GAAI35B,IAAWO,EAAK+pB,WAAa,IAAI3D,MAAM8S,EAAWE,gBACtD,IAAuB,IAAnB35B,EAAQhB,OACV,OAAO,EAKX,GAAIy6B,EAAWG,eAAiBH,EAAWG,cAAc56B,OAAS,EAGhE,IAAK,GAFD66B,IAAc,EACdC,EAAUt7B,MAAMC,QAAQg7B,EAAWG,eAAkBH,EAAWG,eAAiBH,EAAWG,eACvFG,EAAI,EAAGC,EAAYF,EAAO96B,OAAYg7B,EAAJD,EAAeA,IAAK,CAG7D,GADAxe,EAAOvgB,EAAUgyB,QAAQ4E,YAAYkI,EAAOC,IACxCx5B,EAAK4pB,MAAM5O,GAAO,CACpB,IAAIke,EAAWQ,WAqBR,CACLJ,GAAc,CACd,OArBA,GAAIJ,EAAWQ,qBAAsBrmB,SAEnC,GAAIrT,EAAK4pB,MAAM5O,GAAM9e,OAAOkqB,MAAM8S,EAAWQ,YAAYj7B,OAAS,EAAG,CACnE66B,GAAc,CACd,YAEG,IAAIr7B,MAAMC,QAAQg7B,EAAWQ,aAElC,GAAIR,EAAWQ,WAAWr7B,QAAQ2B,EAAK4pB,MAAM5O,GAAM9e,QAAS,CAC1Do9B,GAAc,CACd,YAIF,IAAIJ,EAAWQ,aAAe15B,EAAK4pB,MAAM5O,GAAM9e,OAAQ,CACrDo9B,GAAc,CACd,QAQR,IAAKA,EACH,OAAO,EAKb,OAAO,MAKZ7+B,WAaHA,UAAUG,IAAI++B,SAAW,WAEvB,GAAIC,GAAiB,SAASvF,EAAM9H,GAClC,GAAI+I,GAAc/I,EAAQjsB,cAAc,MACxCg1B,GAAY1L,MAAME,QAAU,OAC5ByC,EAAQ9mB,KAAK8D,YAAY+rB,EAEzB,KAAMA,EAAYzmB,UAAYwlB,EAAQ,MAAMx3B,IAE5C,MADA0vB,GAAQ9mB,KAAKsT,YAAYuc,GAClBA,GAMLuE,EAA4B,SAAStN,GACvC,IAAIA,EAAQuN,6BAAZ,CAGA,IAAK,GAAIz5B,GAAE,EAAG5B,EAAOs7B,EAAet7B,OAAUA,EAAF4B,EAAUA,IACpDksB,EAAQjsB,cAAcy5B,EAAe15B,GAEvCksB,GAAQuN,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,EAAM9H,GACpBA,EAAUA,GAAWpsB,QACrB,IAAIm1B,EAWJ,OAVqB,gBAAX,IAAuBjB,EAAK5qB,UACpC6rB,EAAc/I,EAAQjsB,cAAc,OACpCg1B,EAAY/rB,YAAY8qB,IACf55B,UAAUgyB,QAAQqC,kBAAkBvC,IAC7C+I,EAAc/I,EAAQjsB,cAAc,OACpCg1B,EAAYzmB,UAAYwlB,IAExBwF,EAA0BtN,GAC1B+I,EAAcsE,EAAevF,EAAM9H,IAE9B+I,MAoBX76B,UAAUG,IAAIo/B,iBAAmB,WAE/B,MAAO,UAASh6B,EAAMk5B,EAAYe,EAAQ3kB,GAExC,IADA2kB,EAASA,GAAU,GACZA,KAAYj6B,GAA0B,SAAlBA,EAAKqH,YAAyBiO,GAAatV,IAASsV,IAAY,CACzF,GAAI7a,UAAUG,IAAI69B,QAAQz4B,GAAMmC,KAAK+2B,GACnC,MAAOl5B,EAETA,GAAOA,EAAKE,WAEd,MAAO,UAcXzF,UAAUG,IAAIs8B,SAAW,WAMvB,QAASgD,GAASrG,GAChB,MAAOA,GAAIx3B,QAAQ89B,EAAkB,SAAS/T,GAC5C,MAAOA,GAAMgU,OAAO,GAAGC,gBAP3B,GAAIC,IACEC,QAAU,cAAgBp6B,UAASG,cAAc,OAAOspB,MAAS,aAAe,YAElFuQ,EAAmB,UAQvB,OAAO,UAASvJ,GACd,OACEuG,KAAM,SAASjP,GACb,GAAIA,EAAQze,WAAahP,UAAUY,aAAnC,CAIA,GAAIU,GAAoBmsB,EAAQlb,cAC5BwtB,EAAoBF,EAAqB1J,IAAasJ,EAAStJ,GAC/DhH,EAAoB1B,EAAQ0B,MAC5B9Z,EAAoBoY,EAAQpY,aAC5B4pB,EAAoB9P,EAAM4Q,EAC9B,IAAId,EACF,MAAOA,EAQT,IAAI5pB,EACF,IACE,MAAOA,GAAa0qB,GACpB,MAAM39B,IAKV,GAEI49B,GACAv9B,EAHApB,EAAsBC,EAAImR,aAAenR,EAAIoR,aAC7CutB,GAAoC,WAAb9J,GAAsC,UAAbA,IAA8C,aAArB1I,EAAQ7gB,QAIrF,OAAIvL,GAAI6T,kBAGF+qB,IACFD,EAAmB7Q,EAAM+Q,SACzB/Q,EAAM+Q,SAAW,UAEnBz9B,EAAcpB,EAAI6T,iBAAiBuY,EAAS,MAAM0S,iBAAiBhK,GAC/D8J,IACF9Q,EAAM+Q,SAAWF,GAAoB,IAEhCv9B,GAXT,cAiBPzC,UAAUG,IAAIigC,aAAe,SAAS76B,EAAM86B,GAC3C,GAAIC,KACJ,KAAK/6B,EAAKA,EAAKsO,WAAWtO,EAAKA,EAAKA,EAAKsM,YAClB,GAAjBtM,EAAKyJ,SACFqxB,GAAgB,QAAU34B,KAAKnC,EAAKlC,WAAakC,EAAKg7B,cACzDD,EAAIr4B,KAAK1C,GAGX+6B,EAAMA,EAAIx7B,OAAO9E,UAAUG,IAAIigC,aAAa76B,EAAM86B,GAGtD,OAAOC,IAYTtgC,UAAUG,IAAIqgC,sBAAwB,WAIpC,QAASC,GAAuBn/B,GAC9B,MAAOA,GAAIo/B,wBAA0Bp/B,EAAIo/B,sBAAwBC,KAJnE,GAAIC,MACAD,EAAsB,CAM1B,OAAO,UAASr/B,EAAK6R,GACnB,GAAIwe,GAAc8O,EAAuBn/B,GAAO,IAAM6R,EAClD0tB,EAAcD,EAAWjP,EAK7B,OAJKkP,KACHA,EAAaD,EAAWjP,GAAOrwB,EAAI2J,qBAAqBkI,IAGnD0tB,EAAW78B,OAAS,MAa/B,SAAUhE,GAIR,QAASygC,GAAuBn/B,GAC9B,MAAOA,GAAIo/B,wBAA0Bp/B,EAAIo/B,sBAAwBC,KAJnE,GAAIC,MACAD,EAAsB,CAM1B3gC,GAAUG,IAAI2gC,wBAA0B,SAASx/B,EAAKguB,GAGpD,IAAKtvB,EAAUgyB,QAAQ2D,uCACrB,QAASr0B,EAAIiyB,cAAc,IAAMjE,EAGnC,IAAIqC,GAAc8O,EAAuBn/B,GAAO,IAAMguB,EAClDuR,EAAcD,EAAWjP,EAK7B,OAJKkP,KACHA,EAAaD,EAAWjP,GAAOrwB,EAAIs0B,uBAAuBtG,IAGrDuR,EAAW78B,OAAS,IAE5BhE,WACFA,UAAUG,IAAIw8B,OAAS,SAASoE,GAC/B,OACEnE,MAAO,SAASnP,GACdA,EAAQhoB,WAAWqM,aAAaivB,EAAiBtT,EAAQ5b,cAG3DmvB,OAAQ,SAASvT,GACfA,EAAQhoB,WAAWqM,aAAaivB,EAAiBtT,IAGnDwT,KAAM,SAASxT,GACbA,EAAQ3e,YAAYiyB,MAIzB/gC,UAAUG,IAAI+gC,UAAY,SAASC,GAGlC,MAFAA,GAAQA,EAAMr4B,KAAK,OAGjBm4B,KAAM,SAAS3/B,GACb,GAAI8/B,GAAe9/B,EAAIuE,cAAc,QACrCu7B,GAAah6B,KAAO,WAEhBg6B,EAAaC,WACfD,EAAaC,WAAWzD,QAAUuD,EAElCC,EAAatyB,YAAYxN,EAAIyT,eAAeosB,GAG9C,IAAIG,GAAOhgC,EAAIiyB,cAAc,YAC7B,IAAI+N,EAEF,WADAA,GAAK77B,WAAWqM,aAAasvB,EAAcE,EAG3C,IAAIC,GAAOjgC,EAAIiyB,cAAc,OACzBgO,IACFA,EAAKzyB,YAAYsyB,MAO3B,SAAUphC,GACRA,EAAUG,IAAIo8B,WAAa,SAASh3B,GAElC,QAASi8B,GAAazwB,GACpB,MAAsB,OAAfA,EAAEnE,SAOX,QAAS60B,GAA2BhU,GAClC,MAAI+T,GAAa/T,IACR,EAG+C,UAApDztB,EAAUG,IAAIs8B,SAAS,WAAWC,KAAKjP,IAClC,GAGF,EAGT,OAOEznB,IAAK,WACH,GAAI1E,GAAkBiE,EAAKgN,cACzBV,EAAkB7R,EAAUG,IAAI69B,QAAQz4B,GAAMiQ,MAAM8oB,kBAAkB,IACtE5tB,EAAkB1Q,EAAUG,IAAI69B,QAAQz4B,GAAM44B,MAAMG,kBAAkB,GAEpEzsB,KAAgB4vB,EAA2B5vB,IAC7C7R,EAAUG,IAAIw8B,OAAOr7B,EAAIuE,cAAc,OAAO+2B,MAAMr3B,GAElDmL,IAAoB+wB,EAA2B/wB,IACjD1Q,EAAUG,IAAIw8B,OAAOr7B,EAAIuE,cAAc,OAAOm7B,OAAOz7B,IAQzDmD,OAAQ,WACN,GAAImJ,GAAkB7R,EAAUG,IAAI69B,QAAQz4B,GAAMiQ,MAAM8oB,kBAAkB,IACtE5tB,EAAkB1Q,EAAUG,IAAI69B,QAAQz4B,GAAM44B,MAAMG,kBAAkB,GAEtEzsB,IAAe2vB,EAAa3vB,IAC9BA,EAAYpM,WAAW6Y,YAAYzM,GAEjCnB,GAAmB8wB,EAAa9wB,IAClCA,EAAgBjL,WAAW6Y,YAAY5N,OAK9C1Q,WAMHA,UAAUG,IAAIg4B,QAAU,SAAS1K,EAASiU,EAAY9J,GACpD8J,EAAoC,gBAAjB,IAA6BA,GAAcA,CAO9D,KALA,GAAIC,GACAxN,EACAvuB,EAAU,EACV5B,EAAU09B,EAAW19B,OAEhBA,EAAF4B,EAAUA,IACfuuB,EAAYuN,EAAW97B,GACnB6nB,EAAQne,iBACVme,EAAQne,iBAAiB6kB,EAAWyD,GAAS,IAE7C+J,EAAiB,SAASt/B,GAClB,UAAYA,KAChBA,EAAMC,OAASD,EAAME,YAEvBF,EAAMG,eAAiBH,EAAMG,gBAAkB,WAC7Cb,KAAKc,aAAc,GAErBJ,EAAMK,gBAAkBL,EAAMK,iBAAmB,WAC/Cf,KAAKgB,cAAe,GAEtBi1B,EAAQ70B,KAAK0qB,EAASprB,IAExBorB,EAAQtrB,YAAY,KAAOgyB,EAAWwN,GAI1C,QACEzpB,KAAM,WAIJ,IAHA,GAAIic,GACAvuB,EAAU,EACV5B,EAAU09B,EAAW19B,OAChBA,EAAF4B,EAAUA,IACfuuB,EAAYuN,EAAW97B,GACnB6nB,EAAQsQ,oBACVtQ,EAAQsQ,oBAAoB5J,EAAWyD,GAAS,GAEhDnK,EAAQzqB,YAAY,KAAOmxB,EAAWwN,MA0DhD3hC,UAAUG,IAAIyhC,MAAQ,SAASC,EAAuBC,GA6BnD,QAASF,GAAMG,EAAeh2B,GAC7B/L,UAAUM,KAAKsxB,OAAOoQ,GAAc3J,MAAM4J,GAAc5J,MAAMtsB,EAAOo1B,OAAO/9B,KAE5E,IAIIqqB,GACAxb,EACA4B,EANAie,EAAgB/lB,EAAO+lB,SAAWiQ,EAAcxvB,eAAiB7M,SACjE6O,EAAgBud,EAAQtd,yBACxB0tB,EAA0C,gBAApB,GACtBC,GAAiB,CAmBrB,KAdIp2B,EAAOo2B,kBAAmB,IAC5BA,GAAiB,GAIjB1U,EADEyU,EACQliC,UAAUG,IAAI++B,SAAS6C,EAAejQ,GAEtCiQ,EAGRC,EAAaI,WACfC,EAAoB5U,EAASuU,EAAaI,WAGrC3U,EAAQ5Z,YACbA,EAAa4Z,EAAQ5Z,WACrB5B,EAAUqwB,EAASzuB,EAAY9H,EAAOw2B,QAASJ,EAAgBp2B,EAAOkwB,iBAClEhqB,GACFsC,EAASzF,YAAYmD,GAEnB4B,IAAe5B,GACjBwb,EAAQnP,YAAYzK,EAIxB,IAAI9H,EAAOy2B,YAGT,IAAK,GADDC,GAAWziC,UAAUG,IAAIigC,aAAa7rB,GACjCxD,EAAI0xB,EAASz+B,OAAQ+M,KAC5B0xB,EAAS1xB,GAAGiqB,UAAYyH,EAAS1xB,GAAGiqB,UAAUp5B,QAAQ,uBAAwB,MAUlF,OALA6rB,GAAQrZ,UAAY,GAGpBqZ,EAAQ3e,YAAYyF,GAEb2tB,EAAWliC,UAAUI,OAAOsiC,oBAAoBjV,GAAWA,EAGpE,QAAS6U,GAASK,EAASJ,EAASJ,EAAgBlG,GAClD,GAKI1nB,GACAtC,EACA2wB,EACAC,EARAC,EAAkBH,EAAQ3zB,SAC1B+zB,EAAkBJ,EAAQ5zB,WAC1Bi0B,EAAkBD,EAAU/+B,OAC5BmC,EAAkB88B,EAAkBH,GACpCl9B,EAAkB,CAOtB,IAAIq2B,GAAmC,IAAhB6G,GAAqB9iC,UAAUG,IAAIo7B,SAASoH,EAAS1G,GACxE,MAAO0G,EAMX,IAHA1wB,EAAU9L,GAAUA,EAAOw8B,EAASR,IAG/BlwB,EAAS,CACV,GAAIA,KAAY,EAAO,CAInB,IAFAsC,EAAWouB,EAAQpwB,cAAciC,yBAE5B5O,EAAIo9B,EAAiBp9B,KACpBm9B,EAAUn9B,KACZg9B,EAAWN,EAASS,EAAUn9B,GAAI28B,EAASJ,EAAgBlG,GACvD2G,IACEG,EAAUn9B,KAAOg9B,GACnBh9B,IAEF2O,EAASzC,aAAa8wB,EAAUruB,EAASV,aAiC/C,OA5BAgvB,GAAc7iC,UAAUG,IAAIs8B,SAAS,WAAWC,KAAKiG,GAEjC,KAAhBE,IAEFA,EAAc7iC,UAAUM,KAAKu2B,MAAMqM,GAAej9B,SAAS08B,EAAQxvB,SAAW,QAAU,IAEtFnT,UAAUM,KAAKu2B,OAAO,QAAS,OAAQ,UAAU5wB,SAAS48B,IAC5DtuB,EAASzF,YAAY6zB,EAAQpwB,cAAc1M,cAAc,OAIvD7F,UAAUM,KAAKu2B,OACf,MAAO,MAAO,IACd,QAAS,KAAM,KACf,KAAM,KAAM,KACZ,KAAM,KACN,SAAU,SAAU,UACpB,KAAM,KAAM,KAAM,KAAM,KAAM,OAC/B5wB,SAAS08B,EAAQ/1B,SAASC,gBAAkB81B,EAAQl9B,WAAW6a,YAAcqiB,IAEvEA,EAAQ9wB,aAAgD,IAAjC8wB,EAAQ9wB,YAAY7C,UAAmB,MAAQtH,KAAKi7B,EAAQ9wB,YAAYmpB,YAClGzmB,EAASzF,YAAY6zB,EAAQpwB,cAAcwC,eAAe,OAI5DR,EAASwb,WACXxb,EAASwb,YAEJxb,EAGT,MAAO,MAKb,IAAK3O,EAAE,EAAKo9B,EAAFp9B,EAAmBA,IACvBm9B,EAAUn9B,KACZg9B,EAAWN,EAASS,EAAUn9B,GAAI28B,EAASJ,EAAgBlG,GACvD2G,IACEG,EAAUn9B,KAAOg9B,GACnBh9B,IAEFqM,EAAQnD,YAAY8zB,IAM1B,IAAIL,GACAtwB,EAAQrF,SAASC,gBAAkBs2B,KACjClxB,EAAQlD,WAAW/K,QACnB,UAAY0D,KAAKuK,EAAQmC,aAAe+tB,GAAyC,gCAAtBQ,EAAQrT,WAAqE,2BAAtBqT,EAAQrT,aAC1Hrd,EAAQmxB,WAAWp/B,QACnB,CAEJ,IADAuQ,EAAWtC,EAAQM,cAAciC,yBAC1BvC,EAAQ4B,YACbU,EAASzF,YAAYmD,EAAQ4B,WAK/B,OAHIU,GAASwb,WACXxb,EAASwb,YAEJxb,EAMT,MAHItC,GAAQ8d,WACV9d,EAAQ8d,YAEH9d,EAGT,QAASowB,GAAqB5U,EAAS4V,GACrC,GAAInc,GAAK/gB,EAAQm9B,CAEjB,KAAKpc,IAAOmc,GACV,GAAIA,EAAch1B,eAAe6Y,GAAM,CACjClnB,UAAUM,KAAKsxB,OAAOyR,EAAcnc,IAAMuR,aAC5CtyB,EAASk9B,EAAcnc,GACiB,gBAAxBmc,GAAcnc,IAAsBqc,EAAuBF,EAAcnc,MACzF/gB,EAASo9B,EAAuBF,EAAcnc,KAEhDoc,EAAM7V,EAAQ9nB,iBAAiBuhB,EAC/B,KAAK,GAAIthB,GAAI09B,EAAIt/B,OAAQ4B,KACvBO,EAAOm9B,EAAI19B,KAMnB,QAAS49B,GAAeb,EAASR,GAC/B,GAAIsB,GACAxxB,EAIAyxB,EAHAC,EAAc3B,EAAa4B,KAC3Bh3B,EAAc+1B,EAAQ/1B,SAASC,cAC/Bg3B,EAAclB,EAAQkB,SAO1B,IAAIlB,EAAQmB,WACV,MAAO,KAIT,IAFAnB,EAAQmB,WAAa,EAEK,mBAAtBnB,EAAQrT,UACV,MAAO,KAyBT,IAhBIuU,GAA0B,QAAbA,IACfj3B,EAAWi3B,EAAY,IAAMj3B,GAO3B,aAAe+1B,KACZ3iC,UAAUgyB,QAAQyD,0BACE,MAArBkN,EAAQ/1B,UACsC,SAA9C+1B,EAAQoB,UAAUv/B,MAAM,IAAIqI,gBAC9BD,EAAW,QAIXA,IAAY+2B,GAAU,CAExB,GADAF,EAAOE,EAAS/2B,IACX62B,GAAQA,EAAK/6B,OAChB,MAAO,KACF,IAAI+6B,EAAKO,OACd,OAAO,CAETP,GAAwB,gBAAX,IAAwBQ,WAAYR,GAASA,MACrD,CAAA,IAAId,EAAQ9uB,WAIjB,MAAO,KAHP4vB,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,MAPAlxB,GAAU0wB,EAAQpwB,cAAc1M,cAAc69B,GAAaD,EAAKQ,YAAcr3B,GAC9E03B,EAAkB3B,EAAS1wB,EAASwxB,EAAMtB,GAC1CoC,EAAc5B,EAAS1wB,EAASwxB,GAEhCd,EAAU,KAEN1wB,EAAQ8d,WAAa9d,EAAQ8d,YAC1B9d,EAGT,QAASkyB,GAAWxB,EAASxB,EAAO9C,EAAO8D,GACzC,GAAIqC,GAAYp9B,CAGhB,IAAyB,SAArBu7B,EAAQ/1B,WAAwBu1B,IAAyC,gCAAtBQ,EAAQrT,WAAqE,2BAAtBqT,EAAQrT,WACpH,OAAO,CAGT,KAAKloB,IAAQi3B,GACX,GAAIA,EAAMhwB,eAAejH,IAAS+5B,EAAMsD,kBAAoBtD,EAAMsD,iBAAiBr9B,KACjFo9B,EAAarD,EAAMsD,iBAAiBr9B,GAChCs9B,EAAU/B,EAAS6B,IACrB,OAAO,CAIb,QAAO,EAaT,QAASE,GAAU/B,EAAS6B,GAE1B,GAEIG,GAAephC,EAAgBM,EAAG+gC,EAAoBC,EAFtDC,EAAcnC,EAAQ76B,aAAa,SACnCi9B,EAAcpC,EAAQ76B,aAAa,QAIvC,IAAI08B,EAAWQ,QACb,IAAK,GAAIC,KAAKT,GAAWQ,QACvB,GAAIR,EAAWQ,QAAQ32B,eAAe42B,IAAMC,EAAgBD,IAEtDC,EAAgBD,GAAGtC,GACrB,OAAO,CAOf,IAAImC,GAAeN,EAAWz8B,QAAS,CACrC+8B,EAAcA,EAAYljC,QAAQ,QAAS,IAAIA,QAAQ,QAAS,IAAIoG,MAAMm9B,GAC1ER,EAAgBG,EAAY9gC,MAC5B,KAAK,GAAI4B,GAAI,EAAO++B,EAAJ/+B,EAAmBA,IACjC,GAAI4+B,EAAWz8B,QAAQ+8B,EAAYl/B,IACjC,OAAO,EAMb,GAAIm/B,GAAcP,EAAW1F,OAAQ,CAEnCiG,EAAaA,EAAW/8B,MAAM,IAC9B,KAAKzE,IAAKihC,GAAW1F,OACnB,GAAI0F,EAAW1F,OAAOzwB,eAAe9K,GACnC,IAAK,GAAI6hC,GAAKL,EAAW/gC,OAAQohC,KAG/B,GAFAP,EAAYE,EAAWK,GAAIp9B,MAAM,KAE7B68B,EAAU,GAAGjjC,QAAQ,MAAO,IAAIiL,gBAAkBtJ,IAChDihC,EAAW1F,OAAOv7B,MAAO,GAAiC,IAAzBihC,EAAW1F,OAAOv7B,IAAYvD,UAAUM,KAAKu2B,MAAM2N,EAAW1F,OAAOv7B,IAAI0C,SAAS4+B,EAAU,GAAGjjC,QAAQ,MAAO,IAAIiL,gBACrJ,OAAO,EASnB,GAAI23B,EAAWa,MACX,IAAKxhC,IAAK2gC,GAAWa,MACjB,GAAIb,EAAWa,MAAMh3B,eAAexK,KAChC+gC,EAAO5kC,UAAUG,IAAI2H,aAAa66B,EAAS9+B,GACtB,gBAAX,IACF+gC,EAAKpL,OAAOgL,EAAWa,MAAMxhC,IAAM,IACnC,OAAO,CAM3B,QAAO,EAGT,QAAS0gC,GAAc5B,EAAS1wB,EAASwxB,GACvC,GAAIlgC,GAAG+hC,CACP,IAAG7B,GAAQA,EAAK8B,YACd,IAAKhiC,IAAKkgC,GAAK8B,YACb,GAAI9B,EAAK8B,YAAYl3B,eAAe9K,GAAI,CAGtC,GAFA+hC,EAAW,UAAN/hC,EAAiBo/B,EAAQxT,MAAMqW,YAAc7C,EAAQxT,MAAMsW,SAAW9C,EAAQxT,MAAM5rB,GAErFkgC,EAAK8B,YAAYhiC,YAAcqV,UAAY6qB,EAAK8B,YAAYhiC,GAAGmE,KAAK49B,GACtE,QAEQ,WAAN/hC,EAEF0O,EAAQkd,MAAOwT,EAAQxT,MAAgB,WAAI,aAAc,YAAcmW,EAC7D3C,EAAQxT,MAAM5rB,KACvB0O,EAAQkd,MAAM5rB,GAAK+hC,IAO9B,QAASI,GAA4BC,EAAWvC,GAC9C,GAAIwC,KACJ,KAAK,GAAIhB,KAAQxB,GACXA,EAAW/0B,eAAeu2B,IAAqC,IAA5BA,EAAKhhC,QAAQ+hC,IAClDC,EAAiB39B,KAAK28B,EAG1B,OAAOgB,GAGT,QAASC,GAAgBC,EAAeC,EAAgB7yB,EAAYtG,GAClE,GACIo5B,GADA7/B,EAASnG,UAAUM,KAAKsxB,OAAO1e,GAAYulB,aAAevlB,EAAa+yB,EAAsB/yB,EAGjG,OAAI/M,KACE4/B,GAAqC,QAAlBD,GAAuC,OAAZl5B,KAChDo5B,EAAoB7/B,EAAO4/B,GACO,gBAAxB,IACDC,GAKN,EAGT,QAASE,GAAiBvD,EAASwD,GACjC,GAIIL,GAAeM,EAAUC,EAJzBC,EAAoBtmC,UAAUM,KAAKsxB,OAAOoQ,EAAaoB,gBAAkBljB,QACzEqmB,EAAoBvmC,UAAUM,KAAKsxB,OAAO0U,GAAkBjO,MAAOr4B,UAAUM,KAAKsxB,OAAOuU,OAAwBjmB,SAAS9c,MAC1HggC,KACAoD,EAAoBxmC,UAAUG,IAAIsmC,cAAc9D,EAGpD,KAAKmD,IAAiBS,GACpB,GAAI,MAAQ7+B,KAAKo+B,GAAgB,CAE/BO,EAAqBX,EAA4BI,EAActhC,MAAM,EAAE,IAAKgiC,EAC5E,KAAK,GAAI5gC,GAAI,EAAG8gC,EAAOL,EAAmBriC,OAAY0iC,EAAJ9gC,EAAUA,IAE1DwgC,EAAWP,EAAgBQ,EAAmBzgC,GAAI4gC,EAAcH,EAAmBzgC,IAAK2gC,EAAgBT,GAAgBnD,EAAQ/1B,UAC5Hw5B,KAAa,IACfhD,EAAWiD,EAAmBzgC,IAAMwgC,OAIxCA,GAAWP,EAAgBC,EAAeU,EAAcV,GAAgBS,EAAgBT,GAAgBnD,EAAQ/1B,UAC5Gw5B,KAAa,IACfhD,EAAW0C,GAAiBM,EAKlC,OAAOhD,GAIT,QAASkB,GAAkB3B,EAAS1wB,EAASwxB,EAAMtB,GACjD,GAWIwC,GAEAgC,EACAC,EACAd,EACA3/B,EAhBAi9B,KACAyD,EAAsBpD,EAAKqD,UAC3BxL,EAAsBmI,EAAKsD,UAC3BC,EAAsBvD,EAAKwD,UAC3BC,EAAsBzD,EAAK0D,eAC3BC,EAAsBpF,EAAaj6B,QACnCnC,EAAsB,EACtBmC,KACA+2B,KACAuI,KACAC,IAmBJ,IAXIJ,IACF9D,EAAapjC,UAAUM,KAAKsxB,OAAOsV,GAAehnB,SAIpDkjB,EAAapjC,UAAUM,KAAKsxB,OAAOwR,GAAY/K,MAAM6N,EAAiBvD,EAAUc,EAAK8D,mBAAmBnkC,MAEpGyjC,GACF9+B,EAAQE,KAAK4+B,GAGXvL,EACF,IAAKwK,IAAiBxK,GACpBn1B,EAASqhC,EAAgBlM,EAASwK,IAC7B3/B,IAGLygC,EAAWzgC,EAAOnG,UAAUG,IAAI2H,aAAa66B,EAASmD,IAC7B,gBAAf,IACR/9B,EAAQE,KAAK2+B,GAKnB,IAAII,EACF,IAAKlB,IAAiBkB,GACpB7gC,EAASshC,EAAgBT,EAASlB,IAC7B3/B,IAILuhC,SAAWvhC,EAAOnG,UAAUG,IAAI2H,aAAa66B,EAASmD,IAC7B,gBAAf,WACRhH,EAAO72B,KAAKy/B,UAMlB,IAA+B,gBAArB,IAAoD,QAAnBN,GAA4BzE,EAAQ76B,aAAa,SAC1F,GAAIk6B,EAAa2F,kBAAmB,CAOlC,IANAL,EAAa3E,EAAQ76B,aAAa,SAC9Bw/B,IACFv/B,EAAUA,EAAQjD,OAAOwiC,EAAWt/B,MAAMm9B,KAG5CR,EAAgB58B,EAAQ/D,OACf2gC,EAAF/+B,EAAiBA,IACtB+gC,EAAe5+B,EAAQnC,GAClBo8B,EAAa2F,kBAAkBhB,IAClCU,EAAWp/B,KAAK0+B,EAIhBU,GAAWrjC,SACbo/B,EAAW,SAAWpjC,UAAUM,KAAKu2B,MAAMwQ,GAAY9P,SAASzuB,KAAK,UAIvEs6B,GAAW,SAAWT,EAAQ76B,aAAa,aAExC,CAcL,IAZKq6B,IACHiF,EAAe,+BAAiC,EAChDA,EAAwC,wBAAI,EAC5CA,EAAe,6BAA+B,GAIhDE,EAAa3E,EAAQ76B,aAAa,SAC9Bw/B,IACFv/B,EAAUA,EAAQjD,OAAOwiC,EAAWt/B,MAAMm9B,KAE5CR,EAAgB58B,EAAQ/D,OACf2gC,EAAF/+B,EAAiBA,IACtB+gC,EAAe5+B,EAAQnC,GACnBwhC,EAAeT,IACjBU,EAAWp/B,KAAK0+B,EAIhBU,GAAWrjC,SACbo/B,EAAW,SAAWpjC,UAAUM,KAAKu2B,MAAMwQ,GAAY9P,SAASzuB,KAAK,MAKrEs6B,EAAW,UAAYjB,IACzBiB,EAAW,SAAWA,EAAW,SAASxhC,QAAQ,4BAA6B,IAC3E,SAAW8F,KAAK07B,EAAW,iBACtBA,GAAW,UAIlBtE,EAAO96B,SACTo/B,EAAkB,MAAIpjC,UAAUM,KAAKu2B,MAAMiI,GAAQvH,SAASzuB,KAAK,KAInE,KAAKg9B,IAAiB1C,GAIpB,IACEnxB,EAAQ9J,aAAa29B,EAAe1C,EAAW0C,IAC/C,MAAM1jC,IAKNghC,EAAWwE,MACoB,mBAAtBxE,GAAgB,OACzBnxB,EAAQ9J,aAAa,QAASi7B,EAAWyE,OAET,mBAAvBzE,GAAiB,QAC1BnxB,EAAQ9J,aAAa,SAAUi7B,EAAW0E,SAKhD,QAASC,GAAYpF,GACnB,GAAI9wB,GAAc8wB,EAAQ9wB,WAC1B,KAAIA,GAAeA,EAAY7C,WAAahP,UAAUa,UAG/C,CAEL,GAAIoT,GAAO0uB,EAAQ1uB,KAAKrS,QAAQ5B,UAAUU,wBAAyB,GACnE,OAAOiiC,GAAQpwB,cAAcwC,eAAed,GAJ5CpC,EAAYoC,KAAO0uB,EAAQ1uB,KAAKrS,QAAQ5B,UAAUU,wBAAyB,IAAMmR,EAAYoC,KAAKrS,QAAQ5B,UAAUU,wBAAyB,IAQjJ,QAASsnC,GAAerF,GACtB,MAAIX,GAAaiG,SACRtF,EAAQpwB,cAAc21B,cAAcvF,EAAQ3H,WADrD,OA1lBF,GAAIiI,IACEkF,EAAK3E,EACL4E,EAAKL,EACLM,EAAKL,GAGP7E,EAAsB,OACtBgC,EAAsB,MACtBlD,GAAwB2B,QAAU77B,YAClCi6B,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,EAAepa,MAAM2c,GAGtCvC,EAAenkC,QAAQ0mC,EAAS,SAAS3c,GAC9C,MAAOA,GAAM9e,gBAHN,SAQb+6B,IAAK,WACH,GAAIU,GAAU,oBACd,OAAO,UAASvC,GACd,MAAKA,IAAmBA,EAAepa,MAAM2c,GAGtCvC,EAAenkC,QAAQ0mC,EAAS,SAAS3c,GAC9C,MAAOA,GAAM9e,gBAHN,SAQb07B,KAAM,WACJ,GAAID,GAAU,mCACd,OAAO,UAASvC,GACd,MAAKA,IAAmBA,EAAepa,MAAM2c,GAGtCvC,EAAenkC,QAAQ0mC,EAAS,SAAS3c,GAC9C,MAAOA,GAAM9e,gBAHN,SAQb27B,IAAK,WACH,GAAIF,GAAU,iBACd,OAAO,UAASvC,GACd,MAAKA,GAGEA,EAAenkC,QAAQ0mC,EAAS,IAF9B,OAObG,QAAS,WACP,GAAIH,GAAU,KACd,OAAO,UAASvC,GAEd,MADAA,IAAkBA,GAAkB,IAAInkC,QAAQ0mC,EAAS,IAClDvC,GAAkB,SAK7B2C,UAAW,WACT,GAAIJ,GAAU,4BACd,OAAO,UAASvC,GAEd,MADAA,IAAkBA,GAAkB,IAAInkC,QAAQ0mC,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,GAAQtnC,OAAOwkC,GAAgBl5B,oBAMxC26B,GACFyB,UAAW,WACT,GAAIJ,IACFC,KAAQ,qBACRC,MAAQ,sBAEV,OAAO,UAAShD,GACd,MAAO8C,GAAQtnC,OAAOwkC,GAAgBl5B,mBAI1C+7B,WAAY,WACV,GAAIC,IACFC,KAAU,0BACVC,MAAU,2BACVC,OAAU,4BACVE,QAAU,6BAEZ,OAAO,UAASnD,GACd,MAAO8C,GAAQtnC,OAAOwkC,GAAgBl5B,mBAI1Cs8B,SAAU,WACR,GAAIN,IACFC,KAAQ,qBACRC,MAAQ,sBACRK,KAAQ,qBACR9I,IAAQ,qBAEV,OAAO,UAASyF,GACd,MAAO8C,GAAQtnC,OAAOwkC,GAAgBl5B,mBAI1Cw8B,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,GAAQtnC,OAAOwkC,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,UAASl7B,GAId,GADAi7B,GAAOj7B,EAAGxL,WAAawL,EAAG0xB,aAAa3+B,QAAQ,MAAO,IAClDkoC,GAAOA,EAAI9lC,OAAS,EACtB,OAAO,CAIT,KAAK,GAAI4B,GAAImkC,EAAgB/lC,OAAQ4B,KACnC,GAAIiJ,EAAG0kB,cAAcwW,EAAgBnkC,IACnC,OAAO,CAKX,OAAIiJ,GAAG4uB,aAAe5uB,EAAG4uB,YAAc,GAAK5uB,EAAGm7B,cAAgBn7B,EAAGm7B,aAAe,GACxE,GAGF,OAKTzG,GACFS,OAAQ,SAAUvW,GAChBztB,UAAUG,IAAI6jC,OAAOvW,IAGvB/kB,OAAQ,SAAU+kB,GAChBA,EAAQhoB,WAAW6Y,YAAYmP,IAInC,OAAOmU,GAAMC,EAAuBC,IAStC9hC,UAAUG,IAAI8pC,qBAAuB,SAAS1kC,GAK5C,IAJA,GAAI22B,GACAntB,EAAoB/O,UAAUM,KAAKu2B,MAAMtxB,EAAKwJ,YAAY3L,MAC1D83B,EAAoBnsB,EAAW/K,OAC/B4B,EAAoB,EACfs1B,EAAFt1B,EAAoBA,IACzBs2B,EAAYntB,EAAWnJ,GACnBs2B,EAAUltB,WAAahP,UAAUa,WAAgC,KAAnBq7B,EAAUjoB,MAC1DioB,EAAUz2B,WAAW6Y,YAAY4d,IA6BvCl8B,UAAUG,IAAI+pC,cAAgB,SAASzc,EAAS0c,GAG9C,IAFA,GACIt2B,GADAu2B,EAAa3c,EAAQlb,cAAc1M,cAAcskC,GAE9Ct2B,EAAa4Z,EAAQ5Z,YAC1Bu2B,EAAWt7B,YAAY+E,EAQzB,OANA7T,WAAUG,IAAI28B,gBAAgB,QAAS,cAAcJ,KAAKjP,GAASwP,GAAGmN,GAElE3c,EAAQhoB,YACVgoB,EAAQhoB,WAAWo3B,aAAauN,EAAY3c,GAGvC2c,GAeTpqC,UAAUG,IAAIkqC,sBAAwB,SAAS9kC,GAC7C,GAAKA,EAAKE,WAAV,CAIA,IAAKF,EAAKsO,WAER,WADAtO,GAAKE,WAAW6Y,YAAY/Y,EAK9B,KADA,GAAIgP,GAAWhP,EAAKgN,cAAciC,yBAC3BjP,EAAKsO,YACVU,EAASzF,YAAYvJ,EAAKsO,WAE5BtO,GAAKE,WAAWo3B,aAAatoB,EAAUhP,GACvCA,EAAOgP,EAAW,OAwBpB,SAAUpU,GACR,QAASmqC,GAAgB/kC,GACvB,MAA8C,UAAvCpF,EAAIs8B,SAAS,WAAWC,KAAKn3B,GAGtC,QAASi8B,GAAaj8B,GACpB,MAAyB,OAAlBA,EAAKqH,SAGd,QAAS29B,GAAiB9c,GACxB,GAAI0O,GAAY1O,EAAQlb,cAAc1M,cAAc,KACpD4nB,GAAQ3e,YAAYqtB,GAGtB,QAASqO,GAAY3O,EAAM4O,GACzB,GAAK5O,EAAKjvB,SAAS+e,MAAM,kBAAzB,CAIA,GAGI9X,GACAyM,EACAoqB,EACAC,EACAC,EACA9O,EARAx6B,EAAkBu6B,EAAKtpB,cACvBgC,EAAkBjT,EAAIkT,yBACtB9D,EAAkB1Q,UAAUG,IAAI69B,QAAQnC,GAAMsC,MAAMG,kBAAkB,GAQ1E,IAAImM,EAMF,KAJI/5B,GAAoB45B,EAAgB55B,IAAqB8wB,EAAa9wB,IACxE65B,EAAiBh2B,GAGZunB,EAAYD,EAAKgP,mBAAqBhP,EAAKhoB,YAAa,CAE7D,IADAyM,EAAYwb,EAASxb,UACdzM,EAAaioB,EAASjoB,YAC3B62B,EAAwB72B,IAAeyM,EAEvCqqB,EAAwBD,IAAgBJ,EAAgBz2B,KAAgB2tB,EAAa3tB,GACrFU,EAASzF,YAAY+E,GACjB82B,GACFJ,EAAiBh2B,EAIrBunB,GAASr2B,WAAW6Y,YAAYwd,OAGlC,MAAOA,EAAYD,EAAKgP,mBAAqBhP,EAAKhoB,YAAa,CAC7D,GAAIioB,EAASvI,eAAiBuI,EAASvI,cAAc,4DACnD,KAAO1f,EAAaioB,EAASjoB,YAC3BU,EAASzF,YAAY+E,OAElB,CAEL,IADA+2B,EAAYtpC,EAAIuE,cAAc,KACvBgO,EAAaioB,EAASjoB,YAC3B+2B,EAAU97B,YAAY+E,EAExBU,GAASzF,YAAY87B,GAEvB9O,EAASr2B,WAAW6Y,YAAYwd,GAIpCD,EAAKp2B,WAAWo3B,aAAatoB,EAAUsnB,IAGzC17B,EAAIqqC,YAAcA,GACjBxqC,UAAUG,KAuBb,SAAUH,GACR,GAGIsB,GAAsBoE,SAItBolC,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,QAGvBhrC,GAAUG,IAAI8qC,QAAUta,KAAKviB,QAG3B6N,YAAa,SAASivB,EAAen/B,GACnCpK,KAAKy1B,SAAW8T,GAAiBlrC,EAAUW,eAC3CgB,KAAKoK,OAAW/L,EAAUM,KAAKsxB,WAAWyG,MAAMtsB,GAAQ3I,MACxDzB,KAAKwpC,aAAiBxpC,KAAKypC,iBAG7BC,WAAY,SAAS5d,GACK,gBAAd,KACRA,EAAUnsB,EAAIqtB,eAAelB,IAG/BA,EAAQ3e,YAAYnN,KAAKwpC,eAG3BG,UAAW,WACT,MAAO3pC,MAAKwpC,cAGd34B,UAAW,WACT7Q,KAAK4pC,eAGPj5B,YAAa,WACX3Q,KAAK4pC,eAGPC,QAAS,WACP,GAAIC,GAAS9pC,KAAK2pC,WAClBG,GAAOhmC,WAAW6Y,YAAYmtB,IAGhCF,YAAa,WACX,KAAM,IAAIjjC,OAAM,uDAsBlB8iC,cAAe,WACb,GAAIM,GAAS/pC,KACT8pC,EAASnqC,EAAIuE,cAAc,SA6B/B,OA5BA4lC,GAAOnc,UAAY,oBACnBtvB,EAAUG,IAAI+mC,eACZyE,SAAsB,aACtBC,kBAAsB,OACtBC,YAAsB,EACtBhE,MAAsB,EACtBC,OAAsB,EACtBgE,YAAsB,EACtBC,aAAsB,IACrB/pC,GAAGypC,GAGFzrC,EAAUgyB,QAAQ8B,kDACpB2X,EAAO7D,IAAM,8BAGf6D,EAAOO,OAAS,WACdP,EAAOQ,mBAAqBR,EAAOO,OAAS,KAC5CN,EAAKQ,cAAcT,IAGrBA,EAAOQ,mBAAqB,WACtB,kBAAkBvkC,KAAK+jC,EAAOjd,cAChCid,EAAOQ,mBAAqBR,EAAOO,OAAS,KAC5CN,EAAKQ,cAAcT,KAIhBA,GAMTS,cAAe,SAAST,GAEtB,GAAKzrC,EAAUG,IAAI8F,SAAS3E,EAAI8T,gBAAiBq2B,GAAjD,CAIA,GAAIC,GAAiB/pC,KACjBwqC,EAAiBV,EAAO34B,cACxBs5B,EAAiBX,EAAO34B,cAAcpN,SACtC2mC,EAAiB/qC,EAAIgrC,cAAgBhrC,EAAI+qC,SAAW,QACpDE,EAAiB5qC,KAAK6qC,UACpBH,QAAcA,EACdI,YAAc9qC,KAAKoK,OAAO0gC,aAkBhC,IAdAL,EAAeM,KAAK,YAAa,WACjCN,EAAeO,MAAMJ,GACrBH,EAAeQ,QAEfjrC,KAAK6Q,UAAY,WAAa,MAAOi5B,GAAO34B,eAC5CnR,KAAK2Q,YAAc,WAAa,MAAOm5B,GAAO34B,cAAcpN,UAK5DymC,EAAaU,QAAU,SAAS7/B,EAAc8/B,EAAUC,GACtD,KAAM,IAAIzkC,OAAM,sBAAwB0E,EAAc8/B,EAAUC,KAG7D/sC,EAAUgyB,QAAQ6B,2BAA4B,CAOjD,GAAIjuB,GAAG5B,CACP,KAAK4B,EAAE,EAAG5B,EAAO8mC,EAAiB9mC,OAAUA,EAAF4B,EAAUA,IAClDjE,KAAKqrC,OAAOb,EAAcrB,EAAiBllC,GAE7C,KAAKA,EAAE,EAAG5B,EAAO+mC,EAAkB/mC,OAAUA,EAAF4B,EAAUA,IACnDjE,KAAKqrC,OAAOb,EAAcpB,EAAkBnlC,GAAI5F,EAAUW,eAE5D,KAAKiF,EAAE,EAAG5B,EAAOgnC,EAAmBhnC,OAAUA,EAAF4B,EAAUA,IACpDjE,KAAKqrC,OAAOZ,EAAgBpB,EAAmBplC,GAIjDjE,MAAKqrC,OAAOZ,EAAgB,SAAU,IAAI,GAGxCpsC,EAAUoB,WACZpB,EAAUoB,UAAU+qC,EAAcC,GAGpCzqC,KAAKsrC,QAAS,EAGdC,WAAW,WAAaxB,EAAKtU,SAASsU,IAAU,KAGlDc,SAAU,SAASW,GACjB,GAGInpC,GAHAyoC,EAAcU,EAAaV,YAC3B7S,EAAc,GACdh0B,EAAc,CAGlB,IADA6mC,EAAsC,gBAAlB,IAA8BA,GAAeA,EAG/D,IADAzoC,EAASyoC,EAAYzoC,OACZA,EAAF4B,EAAUA,IACfg0B,GAAQ,gCAAkC6S,EAAY7mC,GAAK,IAK/D,OAFAunC,GAAaV,YAAc7S,EAEpB55B,EAAUM,KAAK64B,OACpB,mGAGAE,YAAY8T,IAShBH,OAAQ,SAASpb,EAAQuE,EAAU5E,EAAO6b,GACxC,IAAMxb,EAAOuE,GAAY5E,EAAS,MAAMnvB,IAExC,IAAMwvB,EAAOxoB,iBAAiB+sB,EAAU,WAAa,MAAO5E,KAAa,MAAMnvB,IAC/E,GAAIgrC,EACF,IAAMxb,EAAOyb,iBAAiBlX,EAAU,cAAkB,MAAM/zB,IAGlE,IAAKpC,EAAUgyB,QAAQkE,0BAA0BC,GAC/C,IACE,GAAIpqB,IACF3I,IAAK,WAAa,MAAOmuB,IAEvB6b,KACFrhC,EAAOzI,IAAM,cAEfL,OAAOC,eAAe0uB,EAAQuE,EAAUpqB,GACxC,MAAM3J,SAIbpC,WACF,SAAUA,GACT,GAAIsB,GAAMoE,QACV1F,GAAUG,IAAImtC,oBAAsB3c,KAAKviB,QACrCm/B,mBAAoB,WAClB,MAAO5rC,MAAK8rB,SAGdjb,UAAW,WACT,MAAO7Q,MAAK8rB,QAAQlb,cAAcE,aAAe9Q,KAAK8rB,QAAQlb,cAAcG,cAG9EJ,YAAa,WACX,MAAO3Q,MAAK8rB,QAAQlb,eAGtB0J,YAAa,SAASivB,EAAen/B,EAAQuf,GAC3C3pB,KAAKy1B,SAAW8T,GAAiBlrC,EAAUW,eAC3CgB,KAAKoK,OAAW/L,EAAUM,KAAKsxB,WAAWyG,MAAMtsB,GAAQ3I,MAEpDzB,KAAK8rB,QADLnC,EACe3pB,KAAK6rC,aAAaliB,GAElB3pB,KAAK8rC,kBAK1BA,eAAgB,WACd,GAAIhgB,GAAUnsB,EAAIuE,cAAc,MAGhC,OAFA4nB,GAAQ6B,UAAY,oBACpB3tB,KAAK+rC,aAAajgB,GACXA,GAIT+f,aAAc,SAASliB,GAGrB,MAFAA,GAAgBgE,UAAahE,EAAgBgE,WAA2C,KAA9BhE,EAAgBgE,UAAoBhE,EAAgBgE,UAAY,qBAAuB,oBACjJ3tB,KAAK+rC,aAAapiB,GAAiB,GAC5BA,GAGToiB,aAAc,SAASjgB,EAASkgB,GAC9B,GAAIjC,GAAO/pC,IAEX,KAAKgsC,EAAe,CAChB,GAAIC,GAAYjsC,KAAK6qC,UACrB/e,GAAQrZ,UAAYw5B,EAGxBjsC,KAAKsrC,QAAS,EAEdC,WAAW,WAAaxB,EAAKtU,SAASsU,IAAU,IAGlDc,SAAU,WACR,MAAO,OAIZxsC,WACF,WACC,GAAI6oC,IACFvZ,UAAa,QAEftvB,WAAUG,IAAI+mC,cAAgB,SAAS9D,GACrC,OACEphC,GAAI,SAASyrB,GACX,IAAK,GAAI7nB,KAAKw9B,GACZ3V,EAAQtlB,aAAa0gC,EAAQjjC,IAAMA,EAAGw9B,EAAWx9B,UAM1D5F,UAAUG,IAAI09B,UAAY,SAASiB,GAClC,OACE98B,GAAI,SAASyrB,GACX,GAAI0B,GAAQ1B,EAAQ0B,KACpB,IAAuB,gBAAb,GAER,YADAA,EAAMyO,SAAW,IAAMkB,EAGzB,KAAK,GAAIl5B,KAAKk5B,GACF,UAANl5B,GACFupB,EAAMsW,SAAW3G,EAAOl5B,GACxBupB,EAAMqW,WAAa1G,EAAOl5B,IAE1BupB,EAAMvpB,GAAKk5B,EAAOl5B,MAoB5B,SAAUzF,GACRA,EAAI0tC,oBAAsB,SAASC,EAAQnnC,EAAMonC,GAC/C,GAAIC,GAAa,cACbC,EAAQ,WACN,GAAIC,GAAsBvnC,EAAK8mB,QAAQgQ,YAAc,GAAK92B,EAAK8mB,QAAQuc,aAAe,CAClFrjC,GAAKwnC,sBACPxnC,EAAKynC,QACLznC,EAAK8mB,QAAQ3D,QACTokB,GACFhB,WAAW,WACT,GAAIhmB,GAAMvgB,EAAKpG,UAAUwmB,cACpBG,GAAII,WAAcJ,EAAIE,YACzBzgB,EAAKpG,UAAUkd,WAAW9W,EAAK8mB,QAAQ5Z,YAAclN,EAAK8mB,UAE3D,IAGP9mB,EAAK0nC,gBAAiB,EACtBluC,EAAIq7B,YAAY70B,EAAK8mB,QAASugB,IAEhC1qC,EAAM,WACAqD,EAAK2nC,YAAc3nC,EAAK0nC,iBAC1B1nC,EAAK0nC,gBAAiB,EACtB1nC,EAAK4nC,SAASR,GACd5tC,EAAIm7B,SAAS30B,EAAK8mB,QAASugB,IAInCF,GACG9rC,GAAG,kBAAmBsB,GACtBtB,GAAG,oBAAqBisC,GACxBjsC,GAAG,iBAAkBisC,GACrBjsC,GAAG,iBAAkBisC,GACrBjsC,GAAG,gBAAiBsB,GAEvBA,MAEDtD,UAAUG,KACZ,SAAUA,GACT,GAAIiV,GAAkB1P,SAAS0P,eAC3B,gBAAiBA,IACnBjV,EAAIquC,eAAiB,SAAS/gB,EAAS/H,GACrC+H,EAAQ8S,YAAc7a,GAGxBvlB,EAAIsuC,eAAiB,SAAShhB,GAC5B,MAAOA,GAAQ8S,cAER,aAAenrB,IACxBjV,EAAIquC,eAAiB,SAAS/gB,EAAS/H,GACrC+H,EAAQpqB,UAAYqiB,GAGtBvlB,EAAIsuC,eAAiB,SAAShhB,GAC5B,MAAOA,GAAQpqB,aAGjBlD,EAAIquC,eAAiB,SAAS/gB,EAAS/H,GACrC+H,EAAQuN,UAAYtV,GAGtBvlB,EAAIsuC,eAAiB,SAAShhB,GAC5B,MAAOA,GAAQuN,aAGlBh7B,UAAUG,KAWbH,UAAUG,IAAI2H,aAAe,SAASvC,EAAMugC,GAC1C,GAAI4I,IAAyB1uC,UAAUgyB,QAAQqD,+BAC/CyQ,GAAgBA,EAAcj5B,aAC9B,IAAID,GAAWrH,EAAKqH,QACpB,IAAgB,OAAZA,GAAsC,OAAjBk5B,GAA0B9lC,UAAUG,IAAIwuC,cAAcppC,MAAU,EAKvF,MAAOA,GAAKqiC,GACP,IAAI8G,GAAyB,aAAenpC,GAAM,CAEvD,GAAIw+B,GAAiBx+B,EAAKw+B,UAAUl3B,cAEhC+hC,EAAkE,IAAjD7K,EAAUngC,QAAQ,IAAMkiC,EAAiB,IAE9D,OAAO8I,GAAerpC,EAAKuC,aAAag+B,GAAiB,KAEzD,MAAOvgC,GAAKuC,aAAag+B,IAa7B9lC,UAAUG,IAAIsmC,cAAgB,SAASlhC,GACrC,GAGIq/B,GAHA8J,GAAyB1uC,UAAUgyB,QAAQqD,gCAC3CzoB,EAAWrH,EAAKqH,SAChBw2B,IAGJ,KAAKwB,IAAQr/B,GAAK69B,YACX79B,EAAK69B,WAAW/0B,gBAAkB9I,EAAK69B,WAAW/0B,eAAeu2B,KAAYr/B,EAAK69B,WAAW/0B,gBAAkBpL,OAAOzB,UAAU6M,eAAetL,KAAKwC,EAAK69B,WAAYwB,KACpKr/B,EAAK69B,WAAWwB,GAAMiK,YACR,OAAZjiC,GAAiE,OAA5CrH,EAAK69B,WAAWwB,GAAMt9B,KAAKuF,eAA0B7M,UAAUG,IAAIwuC,cAAcppC,MAAU,EAClH69B,EAAgB,IAAI79B,EAAKqiC,IAChB5nC,UAAUM,KAAKu2B,OAAO,UAAW,YAAY5wB,SAASV,EAAK69B,WAAWwB,GAAMt9B,KAAKuF,gBAAkB6hC,EACxE,IAAhCnpC,EAAK69B,WAAWwB,GAAMrT,QACxB6R,EAAW79B,EAAK69B,WAAWwB,GAAMt9B,MAAQ/B,EAAK69B,WAAWwB,GAAMrT,OAGjE6R,EAAW79B,EAAK69B,WAAWwB,GAAMt9B,MAAQ/B,EAAK69B,WAAWwB,GAAMrT,MAKvE,OAAO6R,IAOTpjC,UAAUG,IAAIwuC,cAAgB,SAAUppC,GACtC,IACE,MAAOA,GAAKupC,WAAavpC,EAAKL,mBAAmB,gBACjD,MAAM9C,GACN,GAAImD,EAAKupC,UAAgC,aAApBvpC,EAAKipB,WACxB,OAAO,IAIZ,SAAUxuB,GA2BT,QAAS+uC,GAAYlT,EAAM6C,GAGzB,IAAK,GADHsQ,GADEC,KAEK7sC,EAAI,EAAGmE,EAAMs1B,EAAK73B,OAAYuC,EAAJnE,EAASA,IAE1C,GADA4sC,EAAInT,EAAKz5B,GAAGuD,iBAAiB+4B,GAE3B,IAAI,GAAI94B,GAAIopC,EAAEhrC,OAAQ4B,IAAKqpC,EAAIC,QAAQF,EAAEppC,KAG7C,MAAOqpC,GAGT,QAASE,GAActgC,GACrBA,EAAGpJ,WAAW6Y,YAAYzP,GAG5B,QAAS6C,GAAY09B,EAAen9B,GAClCm9B,EAAc3pC,WAAWqM,aAAaG,EAASm9B,EAAcv9B,aAG/D,QAASD,GAASrM,EAAM8pC,GAEtB,IADA,GAAI5hB,GAAUloB,EAAKsM,YACO,GAAnB4b,EAAQze,UAEb,GADAye,EAAUA,EAAQ5b,aACbw9B,GAAOA,GAAO5hB,EAAQta,QAAQtG,cACjC,MAAO4gB,EAGX,OAAO,MArDT,GAAI7hB,GAAM5L,EAAUG,IAEhBmvC,EAAU,SAASC,GACrB5tC,KAAKkN,GAAK0gC,EACV5tC,KAAK6tC,WAAW,EAChB7tC,KAAK8tC,WAAW,EAChB9tC,KAAK+tC,UAAU,EACf/tC,KAAKguC,SAAS,EACdhuC,KAAKiuC,UAAU,EACfjuC,KAAKkuC,SAAS,EACdluC,KAAKmuC,QAAQ,EACbnuC,KAAKouC,kBACLpuC,KAAKquC,UAAW,GAGdC,EAAsB,SAAUV,EAAMW,GACpCX,GACF5tC,KAAK4tC,KAAOA,EACZ5tC,KAAKuuC,MAAQtkC,EAAI2zB,iBAAiBgQ,GAAQ7Q,MAAO,WACxCwR,IACTvuC,KAAKuuC,MAAQA,EACbvuC,KAAK4tC,KAAO5tC,KAAKuuC,MAAMvqC,iBAAiB,UAAU,IAmCtDsqC,GAAoBzuC,WAElB2uC,oBAAqB,SAASZ,EAAMpY,EAAKlzB,EAAGF,EAAGqsC,EAAOC,GAKpD,IAAK,GAJDC,MACFC,EAAOtsC,GAAK,EAAU2nB,SAASykB,EAAO,IAAM,EAAI,GAChDG,EAAOzsC,GAAK,EAAU6nB,SAASwkB,EAAO,IAAM,EAAI,GAEzCK,EAAKxsC,EAASssC,GAANE,EAAYA,IAAM,CACX,mBAAXtZ,GAAIsZ,KAAsBtZ,EAAIsZ,MACzC,KAAK,GAAIC,GAAK3sC,EAASysC,GAANE,EAAYA,IAC3BvZ,EAAIsZ,GAAIC,GAAM,GAAIpB,GAAQC,GAC1BpY,EAAIsZ,GAAIC,GAAIlB,UAAaY,GAASxkB,SAASwkB,EAAO,IAAM,EACxDjZ,EAAIsZ,GAAIC,GAAIjB,UAAaY,GAASzkB,SAASykB,EAAO,IAAM,EACxDlZ,EAAIsZ,GAAIC,GAAIhB,SAAWgB,GAAM3sC,EAC7BozB,EAAIsZ,GAAIC,GAAIf,QAAUe,GAAMF,EAC5BrZ,EAAIsZ,GAAIC,GAAId,SAAWa,GAAMxsC,EAC7BkzB,EAAIsZ,GAAIC,GAAIb,QAAUY,GAAMF,EAC5BpZ,EAAIsZ,GAAIC,GAAIZ,OAASY,GAAM3sC,GAAK0sC,GAAMxsC,EACtCkzB,EAAIsZ,GAAIC,GAAIX,eAAiBO,EAE7BA,EAAYroC,KAAKkvB,EAAIsZ,GAAIC,MAK/BC,kBAAmB,SAASpB,GAE1B,GADAA,EAAKS,UAAW,EACZT,EAAKQ,eAAe/rC,OAAS,EAC/B,IAAK,GAAIT,GAAI,EAAGqtC,EAAOrB,EAAKQ,eAAe/rC,OAAY4sC,EAAJrtC,EAAUA,IAC7DgsC,EAAKQ,eAAexsC,GAAGysC,UAAW,GAKtCa,YAAa,WACX,GAEEC,GAAMC,EAAKC,EAAOC,EAAM1B,EACxBxrC,EACAqsC,EAAOC,EAJLlZ,KACA+Z,EAAYvvC,KAAKwvC,cAKrB,KAAKL,EAAO,EAAGA,EAAOI,EAAUltC,OAAQ8sC,IAKtC,IAJAC,EAAMG,EAAUJ,GAChBE,EAAQrvC,KAAKyvC,YAAYL,GACzBhtC,EAAI,EACoB,mBAAbozB,GAAI2Z,KAAwB3Z,EAAI2Z,OACtCG,EAAO,EAAGA,EAAOD,EAAMhtC,OAAQitC,IAAQ,CAK1C,IAJA1B,EAAOyB,EAAMC,GAIiB,mBAAhB9Z,GAAI2Z,GAAM/sC,IAAqBA,GAE7CqsC,GAAQxkC,EAAI9D,aAAaynC,EAAM,WAC/Bc,EAAQzkC,EAAI9D,aAAaynC,EAAM,WAE3Ba,GAASC,GACX1uC,KAAKwuC,oBAAoBZ,EAAMpY,EAAK2Z,EAAM/sC,EAAGqsC,EAAOC,GACpDtsC,GAAS,EAAU6nB,SAASwkB,EAAO,IAAM,IAEzCjZ,EAAI2Z,GAAM/sC,GAAK,GAAIurC,GAAQC,GAC3BxrC,KAKN,MADApC,MAAKw1B,IAAMA,EACJA,GAGTia,YAAa,SAASL,GACpB,GAAIM,GAAe1vC,KAAKuuC,MAAMvqC,iBAAiB,SAC7C2rC,EAAc,EAAiBvC,EAAYsC,EAAc,aACzDE,EAAWR,EAAIprC,iBAAiB,UAChC6rC,EAAcF,EAAYttC,OAAS,EAAKhE,EAAUM,KAAKu2B,MAAM0a,GAAUxa,QAAQua,GAAeC,CAEhG,OAAOC,IAGTL,aAAc,WACZ,GAAIE,GAAe1vC,KAAKuuC,MAAMvqC,iBAAiB,SAC7C8rC,EAAa,EAAiB1C,EAAYsC,EAAc,SACxDK,EAAU/vC,KAAKuuC,MAAMvqC,iBAAiB,MACtCurC,EAAaO,EAAWztC,OAAS,EAAKhE,EAAUM,KAAKu2B,MAAM6a,GAAS3a,QAAQ0a,GAAcC,CAE5F,OAAOR,IAGTS,YAAa,SAASpC,GAIpB,IAAK,GAHDqC,GAAWjwC,KAAKw1B,IAAInzB,OACtB6tC,EAAYlwC,KAAKw1B,KAAOx1B,KAAKw1B,IAAI,GAAMx1B,KAAKw1B,IAAI,GAAGnzB,OAAS,EAErD8tC,EAAQ,EAAUF,EAARE,EAAkBA,IACnC,IAAK,GAAIC,GAAQ,EAAUF,EAARE,EAAkBA,IACnC,GAAIpwC,KAAKw1B,IAAI2a,GAAOC,GAAOljC,KAAO0gC,EAChC,OAAQwB,IAAOe,EAAOE,IAAOD,EAInC,QAAO,GAGTE,kBAAmB,SAASva,GAE1B,MADA/1B,MAAKkvC,cACDlvC,KAAKw1B,IAAIO,EAAIqZ,MAAQpvC,KAAKw1B,IAAIO,EAAIqZ,KAAKrZ,EAAIsa,MAAQrwC,KAAKw1B,IAAIO,EAAIqZ,KAAKrZ,EAAIsa,KAAKnjC,GACzElN,KAAKw1B,IAAIO,EAAIqZ,KAAKrZ,EAAIsa,KAAKnjC,GAE7B,MAGTqjC,YAAa,SAASC,GACpB,GAAI7O,KAMJ,IALA3hC,KAAKkvC,cACLlvC,KAAKywC,UAAYzwC,KAAKgwC,YAAYhwC,KAAK4tC,MACvC5tC,KAAK0wC,QAAU1wC,KAAKgwC,YAAYQ,GAG5BxwC,KAAKywC,UAAUrB,IAAMpvC,KAAK0wC,QAAQtB,KAAQpvC,KAAKywC,UAAUrB,KAAOpvC,KAAK0wC,QAAQtB,KAAOpvC,KAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAAM,CAC9H,GAAIM,GAAW3wC,KAAKywC,SACpBzwC,MAAKywC,UAAYzwC,KAAK0wC,QACtB1wC,KAAK0wC,QAAUC,EAEjB,GAAI3wC,KAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAAK,CACzC,GAAIO,GAAY5wC,KAAKywC,UAAUJ,GAC/BrwC,MAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAClCrwC,KAAK0wC,QAAQL,IAAMO,EAGrB,GAAsB,MAAlB5wC,KAAKywC,WAAqC,MAAhBzwC,KAAK0wC,QACjC,IAAK,GAAItB,GAAMpvC,KAAKywC,UAAUrB,IAAKyB,EAAO7wC,KAAK0wC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACvE,IAAK,GAAIiB,GAAMrwC,KAAKywC,UAAUJ,IAAKS,EAAO9wC,KAAK0wC,QAAQL,IAAYS,GAAPT,EAAaA,IACvE1O,EAAIr7B,KAAKtG,KAAKw1B,IAAI4Z,GAAKiB,GAAKnjC,GAIlC,OAAOy0B,IAGToP,mBAAoB,SAASC,GAM3B,GALAhxC,KAAKkvC,cACLlvC,KAAKywC,UAAYzwC,KAAKgwC,YAAYhwC,KAAK4tC,MACvC5tC,KAAK0wC,QAAU1wC,KAAKgwC,YAAYgB,GAG5BhxC,KAAKywC,UAAUrB,IAAMpvC,KAAK0wC,QAAQtB,KAAQpvC,KAAKywC,UAAUrB,KAAOpvC,KAAK0wC,QAAQtB,KAAOpvC,KAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAAM,CAC9H,GAAIM,GAAW3wC,KAAKywC,SACpBzwC,MAAKywC,UAAYzwC,KAAK0wC,QACtB1wC,KAAK0wC,QAAUC,EAEjB,GAAI3wC,KAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAAK,CACzC,GAAIO,GAAY5wC,KAAKywC,UAAUJ,GAC/BrwC,MAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAClCrwC,KAAK0wC,QAAQL,IAAMO,EAGrB,OACE70B,MAAS/b,KAAKw1B,IAAIx1B,KAAKywC,UAAUrB,KAAKpvC,KAAKywC,UAAUJ,KAAKnjC,GAC1D8O,IAAOhc,KAAKw1B,IAAIx1B,KAAK0wC,QAAQtB,KAAKpvC,KAAK0wC,QAAQL,KAAKnjC,KAIxD+jC,YAAa,SAASvD,EAAKwD,EAAIxN,GAI7B,IAAK,GADHkK,GAFEjuC,EAAMK,KAAKuuC,MAAM39B,cACnBmF,EAAOpW,EAAIkT,yBAEJ5O,EAAI,EAAOitC,EAAJjtC,EAAQA,IAAK,CAG3B,GAFA2pC,EAAOjuC,EAAIuE,cAAcwpC,GAErBhK,EACF,IAAK,GAAIT,KAAQS,GACXA,EAAMh3B,eAAeu2B,IACvB2K,EAAKpnC,aAAay8B,EAAMS,EAAMT,GAMpC2K,GAAKzgC,YAAYpJ,SAASqP,eAAe,MACzC2C,EAAK5I,YAAYygC,GAEnB,MAAO73B,IAITo7B,0BAA2B,SAASd,EAAKjB,GAGvC,IAAK,GAFD9sC,GAAItC,KAAKw1B,IAAI4Z,GACfgC,EAAU,GACHntC,EAAI,EAAkBosC,EAAJpsC,EAASA,IAC9B3B,EAAE2B,GAAGkqC,QACPiD,GAGJ,OAAOA,IAGTC,oBAAqB,SAASjC,EAAKkC,GAIjC,IAAK,GAFH1D,GAAM7X,EADJsZ,EAAQrvC,KAAKyvC,YAAYL,GAGpBE,EAAO,EAAGT,EAAOQ,EAAMhtC,OAAewsC,EAAPS,EAAaA,IAGnD,GAFA1B,EAAOyB,EAAMC,GACbvZ,EAAM/1B,KAAKgwC,YAAYpC,GACnB7X,KAAQ,GAA6B,mBAAZub,IAA2Bvb,EAAIqZ,KAAOkC,EACjE,MAAO1D,EAGX,OAAO,OAGT2D,iBAAkB,WAChB,GAAIlC,GAAQrvC,KAAKuuC,MAAMvqC,iBAAiB,SACxC,OAAKqrC,IAAyB,GAAhBA,EAAMhtC,QAIX,GAHPmrC,EAAcxtC,KAAKuuC,QACZ,IAOXiD,gBAAiB,SAAS5D,GACxB,GAAIA,EAAKC,UAAW,CAClB,GAAI4D,GAAUxnB,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,YAAc,EAAG,IAChEwkC,EAAQ9D,EAAK1gC,GAAGsE,QAAQtG,aAC1B,IAAIumC,EAAU,EAAG,CACf,GAAIE,GAAW3xC,KAAKixC,YAAYS,EAAOD,EAAS,EAChD1hC,GAAY69B,EAAK1gC,GAAIykC,GAEvB/D,EAAK1gC,GAAG0kC,gBAAgB,aAI5BC,aAAc,SAAS9sC,EAAOgxB,GAC5B,GAAIzzB,GAAI,KACNF,EAAI,IAEN2zB,GAAMA,GAAO/1B,KAAK+1B,GAElB,KAAK,GAAIuZ,GAAO,EAAGT,EAAO7uC,KAAKw1B,IAAIO,EAAIqZ,KAAK/sC,OAAewsC,EAAPS,EAAaA,IAE/D,GADAltC,EAAIpC,KAAKw1B,IAAIO,EAAIqZ,KAAKE,GAClBltC,EAAE+rC,SACJ7rC,EAAI2H,EAAI2zB,iBAAiBx7B,EAAE8K,IAAM6vB,MAAO,QAEtC,MAAOz6B,EASb,OAJU,QAANA,GAAcyC,IAChBzC,EAAI2H,EAAI2zB,iBAAiB59B,KAAKw1B,IAAIO,EAAIqZ,KAAKrZ,EAAIsa,KAAKnjC,IAAM6vB,MAAO,QAAW,MAGvEz6B,GAGTwvC,YAAa,SAAS1C,EAAKiB,EAAKoB,EAASC,EAAOtvC,GAC9C,GAAIE,GAAItC,KAAK6xC,cAAa,GAAQzC,IAAOA,EAAKiB,IAAOA,IACnD0B,EAAY/xC,KAAKixC,YAAYS,EAAOD,EAEtC,IAAInvC,EAAG,CACL,GAAI0vC,GAAShyC,KAAKmxC,0BAA0Bd,EAAKjB,EAC7C4C,IAAU,EACZjiC,EAAY/P,KAAKyvC,YAAYntC,GAAG0vC,GAASD,GAEzCzvC,EAAE6N,aAAa4hC,EAAWzvC,EAAE4P,gBAEzB,CACL,GAAI48B,GAAK9uC,KAAKuuC,MAAM39B,cAAc1M,cAAc,KAChD4qC,GAAG3hC,YAAY4kC,GACfhiC,EAAY9F,EAAI2zB,iBAAiBx7B,EAAE8K,IAAM6vB,MAAO,OAAS+R,KAI7DmD,SAAU,SAAS3W,GAOjB,GANAt7B,KAAKs7B,GAAKA,EACVt7B,KAAKkvC,cACLlvC,KAAKywC,UAAYzwC,KAAKgwC,YAAYhwC,KAAK4tC,MACvC5tC,KAAK0wC,QAAU1wC,KAAKgwC,YAAYhwC,KAAKs7B,IAGjCt7B,KAAKywC,UAAUrB,IAAMpvC,KAAK0wC,QAAQtB,KAAQpvC,KAAKywC,UAAUrB,KAAOpvC,KAAK0wC,QAAQtB,KAAOpvC,KAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAAM,CAC9H,GAAIM,GAAW3wC,KAAKywC,SACpBzwC,MAAKywC,UAAYzwC,KAAK0wC,QACtB1wC,KAAK0wC,QAAUC,EAEjB,GAAI3wC,KAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAAK,CACzC,GAAIO,GAAY5wC,KAAKywC,UAAUJ,GAC/BrwC,MAAKywC,UAAUJ,IAAMrwC,KAAK0wC,QAAQL,IAClCrwC,KAAK0wC,QAAQL,IAAMO,EAGrB,IAAK,GAAIxB,GAAMpvC,KAAKywC,UAAUrB,IAAKyB,EAAO7wC,KAAK0wC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACvE,IAAK,GAAIiB,GAAMrwC,KAAKywC,UAAUJ,IAAKS,EAAO9wC,KAAK0wC,QAAQL,IAAYS,GAAPT,EAAaA,IACvE,GAAIrwC,KAAKw1B,IAAI4Z,GAAKiB,GAAKxC,WAAa7tC,KAAKw1B,IAAI4Z,GAAKiB,GAAKvC,UACrD,OAAO,CAIb,QAAO,GAGToE,iBAAkB,SAAStE,EAAMuE,GAC/B,GAAIjB,GAAKjnB,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAIilC,GAAO,IAAM,CACrDjB,IAAM,EACRtD,EAAK1gC,GAAG1G,aAAa2rC,EAAMjB,IAE3BtD,EAAK1gC,GAAG0kC,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,IADAryC,KAAKkvC,cACDlvC,KAAKw1B,IAAK,CAGZ,IAFA2Z,EAAO,EACPP,EAAO5uC,KAAKw1B,IAAInzB,OACHusC,EAAPO,EAAaA,IAAQ,CAKzB,IAJAC,EAAMpvC,KAAKw1B,IAAI2Z,GACfkD,GAAa,EACb/C,EAAO,EACPT,EAAOO,EAAI/sC,OACGwsC,EAAPS,EAAaA,IAElB,GADA1B,EAAOwB,EAAIE,KACLrlC,EAAI9D,aAAaynC,EAAK1gC,GAAI,YAAc+c,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,GAAK0gC,EAAKK,YAAa,GAAO,CAC/HoE,GAAa,CACb,OAGJ,GAAIA,EAEF,IADA/C,EAAO,EACOT,EAAPS,EAAaA,IAClBtvC,KAAKkyC,iBAAiB9C,EAAIE,GAAO,WAMvC,GAAIC,GAAYvvC,KAAKwvC,cAGrB,KAFAL,EAAO,EACPP,EAAOW,EAAUltC,OACJusC,EAAPO,EAAaA,IACjBC,EAAMG,EAAUJ,GACa,GAAzBC,EAAIhiC,WAAW/K,QAAgB,QAAQ0D,KAAKqpC,EAAIxQ,aAAewQ,EAAI1tC,YACrE8rC,EAAc4B,KAMtBkD,iBAAkB,WAChB,GAAIC,GAAQ,EACVC,EAAQ,EACRC,EAAW,IAGb,IADAzyC,KAAKkvC,cACDlvC,KAAKw1B,IAAK,CAGZ+c,EAAQvyC,KAAKw1B,IAAInzB,MACjB,KAAK,GAAI8sC,GAAO,EAAUoD,EAAPpD,EAAcA,IAC3BnvC,KAAKw1B,IAAI2Z,GAAM9sC,OAASmwC,IAASA,EAAQxyC,KAAKw1B,IAAI2Z,GAAM9sC,OAG9D,KAAK,GAAI+sC,GAAM,EAASmD,EAANnD,EAAaA,IAC7B,IAAK,GAAIiB,GAAM,EAASmC,EAANnC,EAAaA,IACzBrwC,KAAKw1B,IAAI4Z,KAASpvC,KAAKw1B,IAAI4Z,GAAKiB,IAC9BA,EAAM,IACRrwC,KAAKw1B,IAAI4Z,GAAKiB,GAAO,GAAI1C,GAAQ3tC,KAAKixC,YAAY,KAAM,IACxDwB,EAAWzyC,KAAKw1B,IAAI4Z,GAAKiB,EAAI,GACzBoC,GAAYA,EAASvlC,IAAMulC,EAASvlC,GAAG2B,QACzCkB,EAAY/P,KAAKw1B,IAAI4Z,GAAKiB,EAAI,GAAGnjC,GAAIlN,KAAKw1B,IAAI4Z,GAAKiB,GAAKnjC,OAStEwlC,QAAS,WACP,MAAK1yC,MAAKuxC,oBAKD,GAJPvxC,KAAKoyC,qBACLpyC,KAAKsyC,oBACE;EAMXK,QAAS,WACP,GAAI3yC,KAAK0yC,YACP1yC,KAAKkvC,cACLlvC,KAAK+1B,IAAM/1B,KAAKgwC,YAAYhwC,KAAK4tC,MAE7B5tC,KAAK+1B,KAAK,CACZ,GAAI6c,GAAW5yC,KAAKw1B,IAAIx1B,KAAK+1B,IAAIqZ,KAAKpvC,KAAK+1B,IAAIsa,KAC7CoB,EAAWxnC,EAAI9D,aAAaysC,EAAS1lC,GAAI,WAAc+c,SAAShgB,EAAI9D,aAAaysC,EAAS1lC,GAAI,WAAY,IAAM,EAChHwkC,EAAQkB,EAAS1lC,GAAGsE,QAAQtG,aAE9B,IAAI0nC,EAAS9E,UAAW,CACtB,GAAI+E,GAAU5oB,SAAShgB,EAAI9D,aAAaysC,EAAS1lC,GAAI,WAAY,GACjE,IAAI2lC,EAAU,EACZ,IAAK,GAAI3B,GAAK,EAAGL,EAAOgC,EAAU,EAAShC,GAANK,EAAYA,IAC/ClxC,KAAK8xC,YAAY9xC,KAAK+1B,IAAIqZ,IAAM8B,EAAIlxC,KAAK+1B,IAAIsa,IAAKoB,EAASC,EAAOkB,EAGtEA,GAAS1lC,GAAG0kC,gBAAgB,WAE9B5xC,KAAKwxC,gBAAgBoB,KAM3Blc,MAAO,SAAS4E,GACd,GAAIt7B,KAAK0yC,UACP,GAAI1yC,KAAKiyC,SAAS3W,GAAK,CAIrB,IAAK,GAHDuX,GAAU7yC,KAAK0wC,QAAQtB,IAAMpvC,KAAKywC,UAAUrB,IAAM,EACpDqC,EAAUzxC,KAAK0wC,QAAQL,IAAMrwC,KAAKywC,UAAUJ,IAAM,EAE3CjB,EAAMpvC,KAAKywC,UAAUrB,IAAKyB,EAAO7wC,KAAK0wC,QAAQtB,IAAYyB,GAAPzB,EAAaA,IACvE,IAAK,GAAIiB,GAAMrwC,KAAKywC,UAAUJ,IAAKS,EAAO9wC,KAAK0wC,QAAQL,IAAYS,GAAPT,EAAaA,IAEnEjB,GAAOpvC,KAAKywC,UAAUrB,KAAOiB,GAAOrwC,KAAKywC,UAAUJ,KACjDwC,EAAU,GACZ7yC,KAAKw1B,IAAI4Z,GAAKiB,GAAKnjC,GAAG1G,aAAa,UAAWqsC,GAE5CpB,EAAU,GACZzxC,KAAKw1B,IAAI4Z,GAAKiB,GAAKnjC,GAAG1G,aAAa,UAAWirC,KAI1C,kBAAkB1rC,KAAK/F,KAAKw1B,IAAI4Z,GAAKiB,GAAKnjC,GAAGuF,UAAUvH,iBAC3DlL,KAAKw1B,IAAIx1B,KAAKywC,UAAUrB,KAAKpvC,KAAKywC,UAAUJ,KAAKnjC,GAAGuF,WAAa,IAAMzS,KAAKw1B,IAAI4Z,GAAKiB,GAAKnjC,GAAGuF,WAE/F+6B,EAAcxtC,KAAKw1B,IAAI4Z,GAAKiB,GAAKnjC,IAKvClN,MAAK0yC,cAEDhrC,QAAO+B,SACTA,QAAQC,IAAI,oDAQpBopC,sBAAuB,SAASlF,GAC9B,GAAImF,GAAU/yC,KAAKgwC,YAAYpC,EAAK1gC,IAClC8lC,EAAYD,EAAQ3D,IAAM,EAC1B6D,GAAU7D,IAAO4D,EAAW3C,IAAO0C,EAAQ1C,IAE7C,IAAI2C,EAAYhzC,KAAKw1B,IAAInzB,OAAQ,CAE/B,GAAI+sC,GAAMpvC,KAAK6xC,cAAa,EAAOoB,EACnC,IAAY,OAAR7D,EAAc,CAChB,GAAI4C,GAAShyC,KAAKmxC,0BAA0B8B,EAAO5C,IAAK4C,EAAO7D,IAC/D,IAAI4C,GAAU,EACZjiC,EAAY/P,KAAKyvC,YAAYL,GAAK4C,GAASpE,EAAK1gC,QAC3C,CACL,GAAIgmC,GAAWlzC,KAAKqxC,oBAAoBjC,EAAK4D,EAC5B,QAAbE,EACFnjC,EAAYmjC,EAAUtF,EAAK1gC,IAE3BkiC,EAAIj/B,aAAay9B,EAAK1gC,GAAIkiC,EAAIl9B,YAG9B+X,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,EACvD0gC,EAAK1gC,GAAG1G,aAAa,UAAWyjB,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,GAErF0gC,EAAK1gC,GAAG0kC,gBAAgB,cAShCuB,cAAe,SAASvF,GAClBA,EAAKO,OACHP,EAAKE,UACP9tC,KAAK8yC,sBAAsBlF,GAE3BJ,EAAcI,EAAK1gC,IAGjB+c,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,EACvD0gC,EAAK1gC,GAAG1G,aAAa,UAAWyjB,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,GAErF0gC,EAAK1gC,GAAG0kC,gBAAgB,YAK9BwB,qBAAsB,WACpB,GAAI/D,KAGJ,IAFArvC,KAAKkvC,cACLlvC,KAAK+1B,IAAM/1B,KAAKgwC,YAAYhwC,KAAK4tC,MAC7B5tC,KAAK+1B,OAAQ,EAEf,IAAK,GADDsd,GAASrzC,KAAKw1B,IAAIx1B,KAAK+1B,IAAIqZ,KACtBE,EAAO,EAAGT,EAAOwE,EAAOhxC,OAAewsC,EAAPS,EAAaA,IAChD+D,EAAO/D,GAAMnB,QACfkB,EAAM/oC,KAAK+sC,EAAO/D,GAAMpiC,GAI9B,OAAOmiC,IAGTiE,wBAAyB,WACvB,GAAIjE,KAGJ,IAFArvC,KAAKkvC,cACLlvC,KAAK+1B,IAAM/1B,KAAKgwC,YAAYhwC,KAAK4tC,MAC7B5tC,KAAK+1B,OAAQ,EACf,IAAK,GAAIoZ,GAAO,EAAGP,EAAO5uC,KAAKw1B,IAAInzB,OAAeusC,EAAPO,EAAaA,IAClDnvC,KAAKw1B,IAAI2Z,GAAMnvC,KAAK+1B,IAAIsa,MAAQrwC,KAAKw1B,IAAI2Z,GAAMnvC,KAAK+1B,IAAIsa,KAAKlC,QAC/DkB,EAAM/oC,KAAKtG,KAAKw1B,IAAI2Z,GAAMnvC,KAAK+1B,IAAIsa,KAAKnjC,GAI9C,OAAOmiC,IAITkE,UAAW,WACT,GAAIC,GAASvpC,EAAI2zB,iBAAiB59B,KAAK4tC,MAAQ7Q,MAAO,MACtD,IAAIyW,EAAQ,CAGV,GAFAxzC,KAAKkvC,cACLlvC,KAAK+1B,IAAM/1B,KAAKgwC,YAAYhwC,KAAK4tC,MAC7B5tC,KAAK+1B,OAAQ,EAEf,IAAK,GADDsd,GAASrzC,KAAKw1B,IAAIx1B,KAAK+1B,IAAIqZ,KACtBE,EAAO,EAAGT,EAAOwE,EAAOhxC,OAAewsC,EAAPS,EAAaA,IAC/C+D,EAAO/D,GAAMjB,WAChBruC,KAAKgvC,kBAAkBqE,EAAO/D,IAC9BtvC,KAAKmzC,cAAcE,EAAO/D,IAIhC9B,GAAcgG,KAIlBC,cAAe,SAAS7F,GAClBA,EAAKC,UACH5jB,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,EACvD0gC,EAAK1gC,GAAG1G,aAAa,UAAWyjB,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,GAErF0gC,EAAK1gC,GAAG0kC,gBAAgB,WAEjBhE,EAAKO,QACdX,EAAcI,EAAK1gC,KAIvBwmC,aAAc,WAGZ,GAFA1zC,KAAKkvC,cACLlvC,KAAK+1B,IAAM/1B,KAAKgwC,YAAYhwC,KAAK4tC,MAC7B5tC,KAAK+1B,OAAQ,EACf,IAAK,GAAIoZ,GAAO,EAAGP,EAAO5uC,KAAKw1B,IAAInzB,OAAeusC,EAAPO,EAAaA,IACjDnvC,KAAKw1B,IAAI2Z,GAAMnvC,KAAK+1B,IAAIsa,KAAKhC,WAChCruC,KAAKgvC,kBAAkBhvC,KAAKw1B,IAAI2Z,GAAMnvC,KAAK+1B,IAAIsa,MAC/CrwC,KAAKyzC,cAAczzC,KAAKw1B,IAAI2Z,GAAMnvC,KAAK+1B,IAAIsa,QAOnDtpC,OAAQ,SAAS4sC,GACf,GAAI3zC,KAAK0yC,UAAW,CAClB,OAAQiB,GACN,IAAK,MACH3zC,KAAKuzC,WACP,MACA,KAAK,SACHvzC,KAAK0zC,eAGT1zC,KAAK0yC,YAITkB,OAAQ,SAASC,GACf,GAAIl0C,GAAMK,KAAKuuC,MAAM39B,aAQrB,IANA5Q,KAAKkvC,cACLlvC,KAAK+1B,IAAM/1B,KAAKgwC,YAAYhwC,KAAK4tC,MACpB,SAATiG,GAAoB5pC,EAAI9D,aAAanG,KAAK4tC,KAAM,aAClD5tC,KAAK+1B,IAAIqZ,IAAMpvC,KAAK+1B,IAAIqZ,IAAMnlB,SAAShgB,EAAI9D,aAAanG,KAAK4tC,KAAM,WAAY,IAAM,GAGnF5tC,KAAK+1B,OAAQ,EAAO,CAItB,IAAK,GAHDsd,GAASrzC,KAAKw1B,IAAIx1B,KAAK+1B,IAAIqZ,KAC7B0E,EAASn0C,EAAIuE,cAAc,MAEpBirC,EAAO,EAAGP,EAAOyE,EAAOhxC,OAAeusC,EAAPO,EAAaA,IAC/CkE,EAAOlE,GAAMd,WAChBruC,KAAKgvC,kBAAkBqE,EAAOlE,IAC9BnvC,KAAK+zC,WAAWV,EAAOlE,GAAO2E,EAAQD,GAI1C,QAAQA,GACN,IAAK,QACH9jC,EAAY/P,KAAK6xC,cAAa,GAAOiC,EACvC,MACA,KAAK,QACH,GAAIE,GAAK/pC,EAAI2zB,iBAAiB59B,KAAKw1B,IAAIx1B,KAAK+1B,IAAIqZ,KAAKpvC,KAAK+1B,IAAIsa,KAAKnjC,IAAM6vB,MAAO,MAC5EiX,IACFA,EAAGlwC,WAAWqM,aAAa2jC,EAAQE,MAO7CD,WAAY,SAASnG,EAAMwB,EAAKyE,GAC9B,GAAII,GAAerG,EAAc,WAAK6D,QAAYxnC,EAAI9D,aAAaynC,EAAK1gC,GAAI,YAAc,IACtF0gC,GAAKO,OACM,SAAT0F,GAAoBjG,EAAKE,UAC3BF,EAAK1gC,GAAG1G,aAAa,UAAWyjB,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAG,WAAY,IAAM,GAEpFkiC,EAAIjiC,YAAYnN,KAAKixC,YAAY,KAAM,EAAGgD,IAG/B,SAATJ,GAAoBjG,EAAKE,WAAaF,EAAKM,QAC7CkB,EAAIjiC,YAAYnN,KAAKixC,YAAY,KAAM,EAAGgD,IACjC7xC,EAAE0rC,WACXF,EAAK1gC,GAAG+1B,KAAK,UAAWhZ,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,IAKnF7I,IAAK,SAASwvC,GACR7zC,KAAK0yC,aACM,SAATmB,GAA6B,SAATA,IACtB7zC,KAAK4zC,OAAOC,IAED,UAATA,GAA8B,SAATA,IACvB7zC,KAAKk0C,UAAUL,KAKrBM,WAAY,SAAUvG,EAAMuB,EAAM0E,GAChC,GAAIO,GACF1C,EAAQ9D,EAAK1gC,GAAGsE,QAAQtG,aAI1B,QAAQ2oC,GACN,IAAK,SACHO,GAAUxG,EAAKC,WAAaD,EAAKG,QACnC,MACA,KAAK,QACHqG,GAAUxG,EAAKC,WAAaD,EAAKI,SAAYJ,EAAKC,WAAazrC,EAAE8K,IAAMlN,KAAK4tC,KAIhF,GAAIwG,EAAM,CAER,OAAQP,GACN,IAAK,SACHjG,EAAK1gC,GAAGpJ,WAAWqM,aAAanQ,KAAKixC,YAAYS,EAAO,GAAI9D,EAAK1gC,GACnE,MACA,KAAK,QACH6C,EAAY69B,EAAK1gC,GAAIlN,KAAKixC,YAAYS,EAAO,IAK7C9D,EAAKE,WACP9tC,KAAKq0C,yBAAyBzG,EAAMuB,EAAK,EAAG0E,OAK9CjG,GAAK1gC,GAAG1G,aAAa,UAAYyjB,SAAShgB,EAAI9D,aAAaynC,EAAK1gC,GAAI,WAAY,IAAM,IAI1FgnC,UAAW,SAASL,GAClB,GAAIzE,GAAKkF,CAQT,IANAt0C,KAAKkvC,cACLlvC,KAAK+1B,IAAM/1B,KAAKgwC,YAAYhwC,KAAK4tC,MACpB,SAATiG,GAAoB5pC,EAAI9D,aAAanG,KAAK4tC,KAAM,aAClD5tC,KAAK+1B,IAAIsa,IAAMrwC,KAAK+1B,IAAIsa,IAAMpmB,SAAShgB,EAAI9D,aAAanG,KAAK4tC,KAAM,WAAY,IAAM,GAGnF5tC,KAAK+1B,OAAQ,EACf,IAAK,GAAIoZ,GAAO,EAAGP,EAAO5uC,KAAKw1B,IAAInzB,OAAeusC,EAAPO,EAAaA,IACtDC,EAAMpvC,KAAKw1B,IAAI2Z,GACXC,EAAIpvC,KAAK+1B,IAAIsa,OACfiE,EAAUlF,EAAIpvC,KAAK+1B,IAAIsa,KAClBiE,EAAQjG,WACXruC,KAAKgvC,kBAAkBsF,GACvBt0C,KAAKm0C,WAAWG,EAASnF,EAAO0E,MAO1CQ,yBAA0B,SAAUzG,EAAMuB,EAAM0E,GAQ9C,IAAK,GAJHvE,GAAMiF,EAENC,EALEC,EAAYxqB,SAAShgB,EAAI9D,aAAanG,KAAK4tC,KAAM,WAAY,IAAM,EACrE8G,EAAOzqC,EAAI2zB,iBAAiBgQ,EAAK1gC,IAAM6vB,MAAO,OAC9C2U,EAAQ9D,EAAK1gC,GAAGsE,QAAQtG,cAExBvL,EAAMK,KAAKuuC,MAAM39B,cAGV3M,EAAI,EAAOwwC,EAAJxwC,EAAeA,IAG7B,GAFAqrC,EAAOtvC,KAAKmxC,0BAA0BnxC,KAAK+1B,IAAIsa,IAAMlB,EAAOlrC,GAC5DywC,EAAOzkC,EAASykC,EAAM,MAEpB,GAAIpF,EAAO,EACT,OAAQuE,GACN,IAAK,SACHU,EAAev0C,KAAKyvC,YAAYiF,GAC5BpF,EAAO,GAAKtvC,KAAKw1B,IAAI2Z,EAAOlrC,GAAGjE,KAAK+1B,IAAIsa,KAAKnjC,IAAMqnC,EAAajF,IAASA,GAAQiF,EAAalyC,OAAS,EACxG0N,EAAYwkC,EAAajF,GAAOtvC,KAAKixC,YAAYS,EAAO,IAEzD6C,EAAajF,GAAMxrC,WAAWqM,aAAanQ,KAAKixC,YAAYS,EAAO,GAAI6C,EAAajF,GAGxF,MACA,KAAK,QACHv/B,EAAY/P,KAAKyvC,YAAYiF,GAAMpF,GAAOtvC,KAAKixC,YAAYS,EAAO,QAItEgD,GAAKvkC,aAAanQ,KAAKixC,YAAYS,EAAO,GAAIgD,EAAKxiC,gBAGrDsiC,GAAO70C,EAAIuE,cAAc,MACzBswC,EAAKrnC,YAAYnN,KAAKixC,YAAYS,EAAO,IACzC1xC,KAAKuuC,MAAMphC,YAAYqnC,KAM/BvqC,EAAIskC,OACFoG,gBAAiB,SAASC,EAAOC,GAC/B,GAAIC,GAAK,GAAIxG,GAAoBsG,EACjC,OAAOE,GAAGvE,YAAYsE,IAGxBE,SAAU,SAASnH,EAAMiG,GACvB,GAAIzxC,GAAI,GAAIksC,GAAoBV,EAChCxrC,GAAEiC,IAAIwvC,IAGRmB,YAAa,SAASpH,EAAM+F,GAC1B,GAAIvxC,GAAI,GAAIksC,GAAoBV,EAChCxrC,GAAE2E,OAAO4sC,IAGXsB,kBAAmB,SAASL,EAAOC,GACjC,GAAIC,GAAK,GAAIxG,GAAoBsG,EACjCE,GAAGpe,MAAMme,IAGXK,YAAa,SAAStH,GACpB,GAAIxrC,GAAI,GAAIksC,GAAoBV,EAChCxrC,GAAEuwC,WAGJ5B,mBAAoB,SAASnD,EAAMiH,GACjC,GAAIzyC,GAAI,GAAIksC,GAAoBV,EAChC,OAAOxrC,GAAE2uC,mBAAmB8D,IAG9B5yC,QAAS,SAAS2rC,GAChB,GAAIxrC,GAAI,GAAIksC,GAAoBV,EAEhC,OADAxrC,GAAE8sC,cACK9sC,EAAE4tC,YAAYpC,IAGvBuH,SAAU,SAAS5G,EAAOxY,GACxB,GAAI3zB,GAAI,GAAIksC,GAAoB,KAAMC,EACtC,OAAOnsC,GAAEkuC,kBAAkBva,IAG7Bqf,cAAe,SAASxH,GACtB,GAAIxrC,GAAI,GAAIksC,GAAoBV,EAChC,OAAOxrC,GAAEgxC,wBAGXiC,iBAAkB,SAASzH,GACzB,GAAIxrC,GAAI,GAAIksC,GAAoBV,EAChC,OAAOxrC,GAAEkxC,2BAGXrB,SAAU,SAAS2C,EAAOC,GACxB,GAAIzyC,GAAI,GAAIksC,GAAoBsG,EAChC,OAAOxyC,GAAE6vC,SAAS4C,MAIrBx2C,WAEHA,UAAUG,IAAIu+B,MAAQ,SAASuY,EAAUvY,GACrC,GACIsQ,GADAC,IAGAgI,GAASjoC,WACTioC,GAAYA,GAGhB,KAAK,GAAI70C,GAAI,EAAGmE,EAAM0wC,EAASjzC,OAAYuC,EAAJnE,EAASA,IAE5C,GADA4sC,EAAIiI,EAAS70C,GAAGuD,iBAAiB+4B,GAE7B,IAAI,GAAI94B,GAAIopC,EAAEhrC,OAAQ4B,IAAKqpC,EAAIC,QAAQF,EAAEppC,KAGjD,MAAOqpC,IAEVjvC,UAAUG,IAAIu7B,wBAA0B,WACvC,GAAItmB,GAAkB1P,SAAS0P,eAC/B,OAAIA,GAAgBsmB,wBACX,SAAS7gB,EAAW4S,GACzB,MAAO5S,GAAU6gB,wBAAwBjO,IAGpC,SAAU5S,EAAW4S,GAE1B,GAAIypB,GAAWC,CAYf,IATED,EADyB,IAAvBr8B,EAAU7L,SACA6L,EAEAA,EAAUtI,cAGtB4kC,EADuB,IAArB1pB,EAAQze,SACGye,EAEAA,EAAQlb,cAEnBsI,IAAc4S,EAAU,MAAO,EACnC,IAAI5S,IAAc4S,EAAQlb,cAAgB,MAAO,GACjD,IAAIsI,EAAUtI,gBAAkBkb,EAAU,MAAO,GACjD,IAAIypB,IAAcC,EAAa,MAAO,EAGtC,IAA2B,IAAvBt8B,EAAU7L,UAA0C6L,EAAU9L,YAAgF,KAAlE/O,UAAUM,KAAKu2B,MAAMhc,EAAU9L,YAAYnL,QAAS6pB,GAClI,MAAO,GAET,IAAyB,IAArBA,EAAQze,UAA0Cye,EAAQ1e,YAAgF,KAAlE/O,UAAUM,KAAKu2B,MAAMpJ,EAAQ1e,YAAYnL,QAASiX,GAC5H,MAAO,GAKT,KAHA,GAAIu8B,GAAQv8B,EACRw8B,KACA7lB,EAAW,KACR4lB,GAAQ,CACb,GAAIA,GAAS3pB,EAAU,MAAO,GAC9B4pB,GAAQpvC,KAAMmvC,GACdA,EAAQA,EAAM3xC,WAIhB,IAFA2xC,EAAQ3pB,EACR+D,EAAW,KACJ4lB,GAAQ,CACb,GAAIA,GAASv8B,EAAY,MAAO,GAChC,IAAIy8B,GAAiBt3C,UAAUM,KAAKu2B,MAAMwgB,GAASzzC,QAASwzC,EAC5D,IAAuB,KAAnBE,EAAuB,CAC1B,GAAIC,GAA2BF,EAASC,GACpCE,EAAax3C,UAAUM,KAAKu2B,MAAM0gB,EAAyBxoC,YAAYnL,QAASyzC,EAAQC,EAAiB,IACzGG,EAAcz3C,UAAUM,KAAKu2B,MAAM0gB,EAAyBxoC,YAAYnL,QAAS4tB,EACrF,OAAIgmB,GAAaC,EACJ,EAGJ,EAGVjmB,EAAW4lB,EACXA,EAAQA,EAAM3xC,WAEhB,MAAO,OAUbzF,UAAUG,IAAI6jC,OAAS,SAASz+B,GAC9B,GAAImyC,KACJ,IAAInyC,EAAKE,WAAY,CACnB,KAAOF,EAAK+a,WACVo3B,EAASxI,QAAQ3pC,EAAK+a,WACtBtgB,UAAUG,IAAIw8B,OAAOp3B,EAAK+a,WAAWsc,MAAMr3B,EAE7CA,GAAKE,WAAW6Y,YAAY/Y,GAE9B,MAAOmyC,IAUT13C,UAAUG,IAAIw3C,cAAgB,SAASt1C,GACrC,GAAIu3B,EAQJ,OAPIv3B,GAAMu1C,gBACJ53C,UAAUM,KAAKu2B,MAAMx0B,EAAMu1C,cAAcvZ,OAAOp4B,SAAS,aAC3D2zB,EAAOv3B,EAAMu1C,cAAcC,QAAQ,aAC1B73C,UAAUM,KAAKu2B,MAAMx0B,EAAMu1C,cAAcvZ,OAAOp4B,SAAS,gBAClE2zB,EAAO55B,UAAUM,KAAK64B,OAAO92B,EAAMu1C,cAAcC,QAAQ,eAAepe,YAAW,GAAM,KAGtFG,GAIT55B,UAAUG,IAAI23C,qBAAuB,SAAUC,EAAUj0C,GACvD,GAAIk0C,GAAcD,EAASx3C,UAAUyhB,cACjC1gB,EAAMy2C,EAAStqB,QAAQlb,cACvB0lC,EAAa32C,EAAIuE,cAAc,OAC/BqyC,EAAYH,EAASI,cAEzB72C,GAAI0J,KAAK8D,YAAYmpC,GAErBA,EAAW9oB,MAAM0Y,MAAQ,MACzBoQ,EAAW9oB,MAAM2Y,OAAS,MAC1BmQ,EAAW9oB,MAAM+Q,SAAW,SAC5B+X,EAAW9oB,MAAM/c,SAAW,WAC5B6lC,EAAW9oB,MAAMipB,IAAMF,EAAUG,EAAI,KACrCJ,EAAW9oB,MAAM2Z,KAAOoP,EAAUI,EAAI,KAEtCL,EAAW9vC,aAAa,kBAAmB,QAC3C8vC,EAAWnuB,QAEXojB,WAAW,WACT,GAAItT,EAEJme,GAASx3C,UAAUg4C,YAAYP,GAC/Bpe,EAAOqe,EAAW7jC,UACdwlB,GAAQ,aAAelyB,KAAKkyB,EAAKn4B,UACnCm4B,GAAO,GAET91B,EAAE81B,GACFqe,EAAWxyC,WAAW6Y,YAAY25B,IACjC,IAEJj4C,UAAUG,IAAIq4C,sBAAwB,SAASjzC,GAE9C,IAAK,GADDmc,GAAY1hB,UAAUG,IAAIigC,aAAa76B,GAClCwL,EAAI2Q,EAAU1d,OAAQ+M,KAC7B2Q,EAAU3Q,GAAGiqB,UAAYtZ,EAAU3Q,GAAGiqB,UAAUp5B,QAAQ5B,UAAUU,wBAAyB,KAS/FV,UAAUI,OAAOq4C,gBAAkB,WAEjC,GAAIC,GAAe,SAAUC,GAC3B,GAAIC,GAAa54C,UAAUM,KAAK64B,OAAOwf,GAAUl3C,OAC7Co3C,EAAaD,EAAWh3C,QAAQ,sCAAuC,OAE3E,OAAO,IAAIgX,QAAO,SAAWigC,EAAa,SAAU,MAGlDC,EAAiC,SAAU3X,EAAO4X,GACpD,GACI1J,GAAKlgB,EADL6pB,EAAWh5C,UAAUM,KAAKsxB,OAAOuP,GAAOjhB,OAAM,EAGlD,KAAKmvB,IAAO2J,GAASpV,KAEnB,GAAIoV,EAASpV,KAAKv1B,eAAeghC,IAC3B2J,EAASpV,KAAKyL,GAAK9J,YACrB,IAAKpW,IAAS6pB,GAASpV,KAAKyL,GAAK9J,YAC3ByT,EAASpV,KAAKyL,GAAK9J,YAAYl3B,eAAe8gB,IAC5C4pB,EAAa5pB,KACf6pB,EAASpV,KAAKyL,GAAK9J,YAAYpW,GAASupB,EAAaK,EAAa5pB,IAQ9E,OAAO6pB,IAGLC,EAAc,SAASC,EAAStf,GAClC,GAAeuf,EAEf,KAAKD,EACH,MAAO,KAGT,KAAK,GAAItzC,GAAI,EAAG6xB,EAAMyhB,EAAQl1C,OAAYyzB,EAAJ7xB,EAASA,IAI7C,GAHKszC,EAAQtzC,GAAGwzC,YACdD,EAAaD,EAAQtzC,GAAGtC,KAEtB41C,EAAQtzC,GAAGwzC,WAAaF,EAAQtzC,GAAGwzC,UAAU1xC,KAAKkyB,GACpD,MAAOsf,GAAQtzC,GAAGtC,GAItB,OAAO61C,GAGT,OAAO,UAASvf,EAAMjrB,GACpB,GAKI0qC,GALAN,GACEO,MAASt5C,UAAUG,IAAIs8B,SAAS,SAASC,KAAK/tB,EAAQygC,eACtDmK,SAAYv5C,UAAUG,IAAIs8B,SAAS,aAAaC,KAAK/tB,EAAQygC,gBAE/DjO,EAAQ2X,EAA+BG,EAAYtqC,EAAQwyB,MAAOvH,OAAamf,EAYnF,OATAM,GAAUr5C,UAAUG,IAAIyhC,MAAMhI,GAC5BuH,MAASA,EACToB,SAAW,EACXzQ,QAAWnjB,EAAQygC,cAAc78B,cACjC0pB,gBAAmBttB,EAAQstB,gBAC3BkG,gBAAmB,EACnBK,aAAgB,QActBxiC,UAAUI,OAAOo5C,qBAAuB,WACtC,GAAIC,GAAmB,WACrB,GAAIhsB,GAAU9rB,IACdurC,YAAW,WACT,GAAI94B,GAAYqZ,EAAQrZ,UAAUvH,eACjB,iBAAbuH,GACa,8BAAbA,KACFqZ,EAAQrZ,UAAY,KAErB,GAGL,OAAO,UAAS2jC,GACd/3C,UAAUG,IAAIg4B,QAAQ4f,EAAStqB,SAAU,MAAO,WAAYgsB,OAYhE,SAAUz5C,GACR,GAAI05C,GAAgB,KACpB15C,GAAUI,OAAOsiC,oBAAsB,SAASjV,GAC9C,GAAIrZ,GAAYqZ,EAAQrZ,SACxB,IAAyC,KAArCA,EAAUxQ,QAAQ81C,GACpB,MAAOtlC,EAGT,IACI+lB,GACAwf,EACA31C,EACA4B,EAJAg0C,EAAoBnsB,EAAQ9nB,iBAAiB,0BAKjD,KAAKC,EAAE,EAAG5B,EAAO41C,EAAkB51C,OAAUA,EAAF4B,EAAUA,IACnDu0B,EAAcyf,EAAkBh0C,GAAG2iC,MAAQqR,EAAkBh0C,GAAGgiC,IAChE+R,EAAc35C,EAAUM,KAAK64B,OAAOgB,GAAKv4B,QAAQ,KAAK23B,GAAGmgB,GACzDtlC,EAAcpU,EAAUM,KAAK64B,OAAO/kB,GAAWxS,QAAQ+3C,GAAapgB,GAAGY,EAEzE,OAAO/lB,KAERpU,WASH,SAAUA,GACR,GAAIguC,GAAa,yBAEjBhuC,GAAUI,OAAOy5C,OAAS,SAASpsB,GACjCztB,EAAUG,IAAIm7B,SAAS7N,EAASugB,GAChChuC,EAAUG,IAAIq7B,YAAY/N,EAASugB,EAGnC,KACE,GAAI1sC,GAAMmsB,EAAQlb,aAClBjR,GAAI6xB,YAAY,UAAU,EAAO,MACjC7xB,EAAI6xB,YAAY,UAAU,EAAO,MACjC,MAAM/wB,OAETpC,WACFA,UAAUI,OAAO05C,oBAAsB,SAASC,EAAUjM,GAYzD,QAASzhC,KAEP,MADA0tC,GAASzqC,iBAAiB,YAAa0qC,GAChClxB,EAUT,QAASmxB,GAA0B33C,GACjCwmB,EAAOpL,MAAQpb,EACfwmB,EAAOnL,IAAMrb,EACbwmB,EAAOkoB,OAAS1uC,GAChBwmB,EAAOonB,MAAQ/vC,EAAIo/B,iBAAiBzW,EAAOpL,OAASghB,MAAO,UAEvD5V,EAAOonB,QACTgK,IACA/5C,EAAIm7B,SAASh5B,EAAQ63C,GACrBJ,EAASzqC,iBAAiB,YAAa8qC,GACvCL,EAASzqC,iBAAiB,UAAW+qC,GACrCvM,EAAO7V,KAAK,oBAAoBA,KAAK,8BAKzC,QAASiiB,KACP,GAAIH,EAAU,CACZ,GAAIO,GAAgBP,EAASp0C,iBAAiB,IAAMw0C,EACpD,IAAIG,EAAct2C,OAAS,EACzB,IAAK,GAAI4B,GAAI,EAAGA,EAAI00C,EAAct2C,OAAQ4B,IACxCzF,EAAIq7B,YAAY8e,EAAc10C,GAAIu0C,IAM1C,QAASI,GAAevJ,GACtB,IAAK,GAAIprC,GAAI,EAAGA,EAAIorC,EAAMhtC,OAAQ4B,IAChCzF,EAAIm7B,SAAS0V,EAAMprC,GAAIu0C,GAI3B,QAASC,GAAiB/3C,GACxB,GAEEm4C,GAFEC,EAAW,KACblL,EAAOpvC,EAAIo/B,iBAAiBl9B,EAAMC,QAAUo8B,MAAO,UAGjD6Q,IAAQzmB,EAAOonB,OAASpnB,EAAOpL,QACjC+8B,EAAYt6C,EAAIo/B,iBAAiBgQ,GAAQ7Q,MAAO,UAC5C+b,GAAYA,IAAa3xB,EAAOonB,QAClCgK,IACAM,EAAS1xB,EAAOnL,IAChBmL,EAAOnL,IAAM4xB,EACbzmB,EAAOkoB,MAAQ7wC,EAAI+vC,MAAMoG,gBAAgBxtB,EAAOpL,MAAO6xB,GACnDzmB,EAAOkoB,MAAMhtC,OAAS,GACxB8pC,EAAOiK,SAASx3C,UAAUm6C,WAE5BH,EAAczxB,EAAOkoB,OACjBloB,EAAOnL,MAAQ68B,GACjB1M,EAAO7V,KAAK,qBAAqBA,KAAK,gCAM9C,QAASoiB,KACPN,EAAShc,oBAAoB,YAAaqc,GAC1CL,EAAShc,oBAAoB,UAAWsc,GACxCvM,EAAO7V,KAAK,eAAeA,KAAK,wBAChCiV,WAAW,WACTyN,KACA,GAcJ,QAASA,KACPZ,EAASxnC,cAAcjD,iBAAiB,QAASsrC,GAGnD,QAASC,GAAan9B,EAAOC,GAC3BmL,EAAOpL,MAAQA,EACfoL,EAAOnL,IAAMA,EACbmL,EAAOonB,MAAQ/vC,EAAIo/B,iBAAiBzW,EAAOpL,OAASghB,MAAO,UAC3D4b,cAAgBn6C,EAAI+vC,MAAMoG,gBAAgBxtB,EAAOpL,MAAOoL,EAAOnL,KAC/D48B,EAAcD,eACdK,IACA7M,EAAO7V,KAAK,eAAeA,KAAK,wBA7GlC,GAAI93B,GAAMH,UAAUG,IAClB2oB,GACEonB,MAAO,KACPxyB,MAAO,KACPC,IAAK,KACLqzB,MAAO,KACPloB,OAAQ+xB,GAEVV,EAAkB,4BAOhBH,EAAkB,SAAS33C,GAC7B,GAAIC,GAAStC,UAAUG,IAAIo/B,iBAAiBl9B,EAAMC,QAAUo8B,MAAO,UAC/Dp8B,IACF23C,EAAyB33C,IAqEzBs4C,EAAmB,SAASv4C,GAC9B03C,EAASxnC,cAAcwrB,oBAAoB,QAAS6c,GAChDz6C,EAAIo/B,iBAAiBl9B,EAAMC,QAAUo8B,MAAO,WAAc5V,EAAOonB,QACnEgK,IACApxB,EAAOonB,MAAQ,KACfpnB,EAAOpL,MAAQ,KACfoL,EAAOnL,IAAM,KACbmwB,EAAO7V,KAAK,iBAAiBA,KAAK,2BAkBtC,OAAO5rB,MAGR,SAAUrM,GACT,GAAI86C,GAAiB,4EACjBC,EAAiB,2DACjBC,EAAiB,4DACjBC,EAAiB,oCAEjBC,EAAa,SAAUnxC,GACzB,MAAO,IAAI6O,QAAO,YAAc7O,EAAI,kBAAoB,MAG1D/J,GAAUI,OAAO+6C,aAEfC,WAAY,SAASC,EAAWC,GAC9B,GAGIliB,GAAKmiB,EAHLC,EAAaN,EAAWI,GACxB1tB,EAASytB,EAAU1vB,MAAM6vB,GACzBC,EAAQ,EAGZ,IAAI7tB,EAAQ,CACV,IAAK,GAAIhoB,GAAIgoB,EAAO5pB,OAAQ4B,KAC1BgoB,EAAOhoB,GAAK5F,EAAUM,KAAK64B,OAAOvL,EAAOhoB,GAAGoC,MAAM,KAAK,IAAIvG,MAI7D,IAFA23B,EAAMxL,EAAOA,EAAO5pB,OAAO,GAEvB82C,EAAWpzC,KAAK0xB,GAClBmiB,EAAaniB,EAAIzN,MAAMmvB,OAClB,IAAIC,EAAUrzC,KAAK0xB,GACxBmiB,EAAaniB,EAAIzN,MAAMovB,OAClB,IAAIC,EAAWtzC,KAAK0xB,GACzBmiB,EAAaniB,EAAIzN,MAAMqvB,GACvBS,EAAQ,OACH,IAAIR,EAAWvzC,KAAK0xB,GAIzB,MAHAmiB,GAAaniB,EAAIzN,MAAMsvB,GACvBM,EAAWG,QACXH,EAAWtzC,KAAK,GACTjI,EAAUM,KAAKu2B,MAAM0kB,GAAYpkB,IAAI,SAASjzB,EAAGwzB,GACtD,MAAc,GAANA,EAA8B,GAAlB9L,SAAS1nB,EAAG,IAAY0nB,SAAS1nB,EAAG,IAAKwuB,WAAWxuB,IAI5E,IAAIq3C,EAKF,MAJAA,GAAWG,QACNH,EAAW,IACdA,EAAWtzC,KAAK,GAEXjI,EAAUM,KAAKu2B,MAAM0kB,GAAYpkB,IAAI,SAASjzB,EAAGwzB,GACtD,MAAc,GAANA,EAAW9L,SAAS1nB,EAAGu3C,GAAQ/oB,WAAWxuB,KAIxD,OAAO,GAGTy3C,aAAc,SAAS3mC,EAAKxK,GAC1B,GAAIA,EAAO,CACT,GAAa,OAATA,EACF,MAAQwK,GAAI,GAAGrR,SAAS,IAAIi8B,cAAkB5qB,EAAI,GAAGrR,SAAS,IAAIi8B,cAAkB5qB,EAAI,GAAGrR,SAAS,IAAIi8B,aACnG,IAAa,QAATp1B,EACT,MAAO,IAAOwK,EAAI,GAAGrR,SAAS,IAAIi8B,cAAkB5qB,EAAI,GAAGrR,SAAS,IAAIi8B,cAAkB5qB,EAAI,GAAGrR,SAAS,IAAIi8B,aACzG,IAAa,OAATp1B,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,KAI3D4mC,cAAe,SAASP,GACtB,GAAIztB,GAASytB,EAAU1vB,MAAMuvB,EAAW,aACxC,OAAIttB,GACK5tB,EAAUM,KAAK64B,OAAOvL,EAAOA,EAAO5pB,OAAS,GAAGgE,MAAM,KAAK,IAAIvG,QAEjE,KAIVzB,WAOH,SAAUA,GAGR,QAAS67C,GAAwBpuB,GAC/B,GAAI2qB,GAAM,CACV,IAAI3qB,EAAQhoB,WACV,EACE2yC,IAAO3qB,EAAQquB,WAAa,EAC5BruB,EAAUA,EAAQsuB,mBACXtuB,EAEX,OAAO2qB,GAIT,QAAS4D,GAAS7qC,EAAUC,GAExB,IADA,GAAI69B,GAAM,EACH79B,IAAeD,GAGlB,GAFA89B,IACA79B,EAAaA,EAAW3L,YACnB2L,EACD,KAAM,IAAI9I,OAAM,gCAExB,OAAO2mC,GAKX,QAASgN,GAAsBvxC,GAC3B,IAAIA,EAAMoT,sBAMV,IAJA,GAAIo+B,GAASxxC,EAAM2O,wBACf8iC,EAAcH,EAASE,EAAQxxC,EAAM4L,gBACrC8lC,EAAYJ,EAASE,EAAQxxC,EAAM6L,eAEhC7L,EAAMoT,uBAEPq+B,EAAcC,GACd1xC,EAAMyS,eAAezS,EAAM4L,gBAC3B6lC,EAAcH,EAASE,EAAQxxC,EAAM4L,kBAGrC5L,EAAM4S,YAAY5S,EAAM6L,cACxB6lC,EAAYJ,EAASE,EAAQxxC,EAAM6L,eA1C7C,GAAIpW,GAAMH,EAAUG,GA+CpBH,GAAUquB,UAAYsC,KAAKviB,QAEzB6N,YAAa,SAAS6xB,EAAQuO,EAASC,GAErCjzC,OAAOO,MAAMyC,OAEb1K,KAAKmsC,OAAWA,EAChBnsC,KAAKo2C,SAAWjK,EAAOiK,SACvBp2C,KAAKL,IAAWK,KAAKo2C,SAASz2C,IAC9BK,KAAKN,IAAWM,KAAKo2C,SAAS12C,IAC9BM,KAAK06C,QAAUA,EACf16C,KAAK26C,kBAAoBA,IAAqB,GAQhDt6B,YAAa,WACX,GAAItX,GAAQ/I,KAAK46C,UAEjB,OADI7xC,IAAOuxC,EAAsBvxC,GAC1BA,GAASA,EAAM0U,cAQxBm5B,YAAa,SAASn2B,GACfA,GAILzgB,KAAK66C,aAAap6B,IAUpBq6B,UAAW,SAASl3C,GAClB,GAAImF,GAAQd,MAAM6C,YAAY9K,KAAKL,IAGnC,OAFAoJ,GAAMyS,eAAe5X,GACrBmF,EAAM2S,aAAa9X,GACZ5D,KAAK66C,aAAa9xC,IAK3BgyC,+BAAgC,SAAUn3C,GACxC,GAAIo3C,GAAmBh7C,KAAKL,IAAIuE,cAAc,QAC1C+2C,EAAuBj7C,KAAKL,IAAIyT,eAAe/U,EAAUS,iBACzDo8C,EAAqB,WAEnB,GAAIv8B,EAEJ3e,MAAK06C,QAAQte,oBAAoB,UAAW8e,GAC5Cl7C,KAAK06C,QAAQte,oBAAoB,UAAW+e,GAC5Cn7C,KAAK06C,QAAQte,oBAAoB,aAAc8e,GAC/Cl7C,KAAK06C,QAAQte,oBAAoB,QAAS8e,GAC1Cl7C,KAAK06C,QAAQte,oBAAoB,OAAQ8e,GACzCl7C,KAAK06C,QAAQte,oBAAoB,QAASgf,GAC1Cp7C,KAAK06C,QAAQte,oBAAoB,OAAQgf,GACzCp7C,KAAK06C,QAAQte,oBAAoB,cAAegf,GAI5CJ,GAAoBA,EAAiBl3C,aACvCk3C,EAAiBvoC,UAAYuoC,EAAiBvoC,UAAUxS,QAAQ5B,EAAUU,wBAAyB,IAC/F,SAAWgH,KAAKi1C,EAAiBvoC,YACnCkM,EAAYq8B,EAAiBr8B,UAC7BtgB,EAAUG,IAAI6jC,OAAO2Y,GACrBh7C,KAAKq7C,SAAS18B,IAEdq8B,EAAiBl3C,WAAW6Y,YAAYq+B,KAI3Cv4C,KAAKzC,MACRo7C,EAA4B,WACtBJ,GAAoBA,EAAiBl3C,YACvCynC,WAAW2P,EAAoB,IAGnCC,EAAiB,SAASz6C,GACJ,IAAhBA,EAAMO,OAA+B,KAAhBP,EAAMO,OAAgC,KAAhBP,EAAMO,OAAiC,KAAhBP,EAAMO,QAAkBP,EAAM46C,SAAY56C,EAAM66C,UACpHL,IAwBR,OApBAF,GAAiBrtB,UAAY,4BAC7BqtB,EAAiBxtB,MAAM/c,SAAW,WAClCuqC,EAAiBxtB,MAAME,QAAU,QACjCstB,EAAiBxtB,MAAMguB,SAAW,MAClCR,EAAiBxtB,MAAMiuB,OAAS,QAChCT,EAAiB7tC,YAAY8tC,GAE7Br3C,EAAKE,WAAWqM,aAAa6qC,EAAkBp3C,EAAKsM,aACpDlQ,KAAK86C,UAAUG,GAGfj7C,KAAK06C,QAAQ/sC,iBAAiB,UAAWutC,GACzCl7C,KAAK06C,QAAQ/sC,iBAAiB,UAAWwtC,GACzCn7C,KAAK06C,QAAQ/sC,iBAAiB,aAAcutC,GAC5Cl7C,KAAK06C,QAAQ/sC,iBAAiB,QAASutC,GACvCl7C,KAAK06C,QAAQ/sC,iBAAiB,OAAQutC,GACtCl7C,KAAK06C,QAAQ/sC,iBAAiB,QAASytC,GACvCp7C,KAAK06C,QAAQ/sC,iBAAiB,OAAQytC,GACtCp7C,KAAK06C,QAAQ/sC,iBAAiB,cAAeytC,GAEtCJ,GAWTK,SAAU,SAASz3C,EAAM83C,EAAWjmB,GAClC,GAuBIlQ,GAvBAxc,EAAQd,MAAM6C,YAAY9K,KAAKL,KAC/Bg8C,EAAqB,WAGnB,GAAI9sC,GAASjL,EAAKE,WACd83C,EAAc/sC,EAASA,EAAOzB,WAAWyB,EAAOzB,WAAW/K,OAAS,GAAK,IAC7E,KAAKkjB,GAAQq2B,IAAgBh4C,GAAoD,UAA5C5D,KAAKN,IAAI6T,iBAAiB3P,GAAM8pB,QACnE,GAAIguB,EAAW,CAGb,GAAIV,GAAmBh7C,KAAKL,IAAIyT,eAAe/U,EAAUS,gBACzD8E,GAAKE,WAAWqM,aAAa6qC,EAAkBp3C,EAAKsM,aACpDlQ,KAAK8b,WAAWk/B,GAChBzP,WAAW,WACLyP,GAAoBA,EAAiBl3C,YACvCk3C,EAAiBl3C,WAAW6Y,YAAYq+B,IAEzC,OAEHh7C,MAAK+6C,+BAA+Bn3C,IAGxCnB,KAAKzC,KAQX,IALA+I,EAAM0S,cAAc7X,GACpBmF,EAAM4S,YAAY/X,GAIbG,SAAS83C,eAAiB93C,SAAS83C,gBAAkB77C,KAAKo2C,SAAStqB,QAYtEvG,EAAMvlB,KAAK66C,aAAa9xC,GACxB4yC,IACIlmB,GACFA,EAASlQ,OAfoE,CAC/E,GAAIgxB,GAAYv2C,KAAKo2C,SAASI,cAC9Bx2C,MAAKo2C,SAAStqB,QAAQ3D,QACtBnoB,KAAKo2C,SAAS0F,aAAavF,GAC3BhL,WAAW,WACThmB,EAAMvlB,KAAK66C,aAAa9xC,GACxB4yC,IACIlmB,GACFA,EAASlQ,IAEX9iB,KAAKzC,MAAO,KAiBlB8b,WAAY,SAASlY,EAAMm4C,GACzB,GAAIhzC,GAAkBd,MAAM6C,YAAY9K,KAAKL,KACzCq8C,EAAkBp4C,EAAKyJ,WAAahP,EAAUY,aAC9C+jB,EAAkB,eAAiBpf,GAAOA,EAAKof,YAAiC,QAAlBpf,EAAKqH,SACnEwT,EAAkBu9B,EAAYp4C,EAAK6O,UAAY7O,EAAK0O,KACpDq6B,EAA+B,KAAZluB,GAAkBA,IAAYpgB,EAAUS,gBAC3Dm9C,EAAkBz9C,EAAIs8B,SAAS,WAAWC,KAAKn3B,GAC/C62B,EAAoC,UAAjBwhB,GAA6C,cAAjBA,CAEnD,IAAItP,GAAWqP,GAAah5B,IAAgB+4B,EAE1C,IAAMn4C,EAAK6O,UAAYpU,EAAUS,gBAAmB,MAAM2B,IAExDuiB,EACFja,EAAM8S,mBAAmBjY,GAEzBmF,EAAM+S,WAAWlY,GAGfof,GAAe2pB,GAAWqP,EAC5BjzC,EAAM6S,SAAS6e,GACNzX,GAAe2pB,IACxB5jC,EAAM0S,cAAc7X,GACpBmF,EAAM4S,YAAY/X,IAGpB5D,KAAK66C,aAAa9xC,IAWpBmzC,gBAAiB,SAASp1B,GACxB,GAAIloB,GACAmK,CAEJ,OAAI+d,IAAgB9mB,KAAKL,IAAIf,WAAyC,YAA5BoB,KAAKL,IAAIf,UAAU6G,OAC3DsD,EAAQ/I,KAAKL,IAAIf,UAAUkM,cACvB/B,GAASA,EAAM1G,QACV0G,EAAMxD,KAAK,IAItB3G,EAAYoB,KAAKolB,aAAaplB,KAAKL,KAC/Bf,EAAU+mB,YAAc/mB,EAAU6mB,WAC7B7mB,EAAU+mB,WAEjB5c,EAAQ/I,KAAK46C,SAAS56C,KAAKL,KACpBoJ,EAAQA,EAAM2O,wBAA0B1X,KAAKL,IAAI0J,QAI5D8yC,cAAe,WACb,GAAIpzC,GAAQ/I,KAAK46C,UACjBN,GAAsBvxC,GACtB/I,KAAK66C,aAAa9xC,IAGpBqzC,oBAAqB,WAKnB,IAAK,GAHDz0B,GAAS3nB,KAAKq8C,eACdC,KAEKr4C,EAAI,EAAGs4C,EAAO50B,EAAOtlB,OAAYk6C,EAAJt4C,EAAUA,IAC5Cq4C,EAASh2C,KAAKqhB,EAAO1jB,GAAGyT,yBAA2B1X,KAAKL,IAAI0J,KAEhE,OAAOizC,IAGTE,qBAAsB,SAAS5lC,GAG7B,IAAK,GADW6lC,GADZ90B,EAAS3nB,KAAKq8C,eACdx4C,KACKI,EAAI,EAAGs4C,EAAO50B,EAAOtlB,OAAYk6C,EAAJt4C,EAAUA,IAC9Cw4C,EAAW90B,EAAO1jB,GAAG+b,UAAU,GAAI,SAASpc,GACxC,MAAOvF,GAAUM,KAAKu2B,MAAMte,GAAWtS,SAASV,EAAKqH,YAEzDpH,EAAQA,EAAMV,OAAOs5C,EAEvB,OAAO54C,IAGT64C,eAAgB,SAAS7lC,GAIvB,IAAK,GAFW4lC,GADZ90B,EAAS3nB,KAAKq8C,eACdx4C,KAEKI,EAAI,EAAGs4C,EAAO50B,EAAOtlB,OAAYk6C,EAAJt4C,EAAUA,IAC9Cw4C,EAAW90B,EAAO1jB,GAAG+b,UAAU,GAAI,SAAS8L,GAC1C,MAAOjV,GAAOiV,EAASnE,EAAO1jB,MAEhCJ,EAAQA,EAAMV,OAAOs5C,EAEvB,OAAO54C,IAGT84C,mBAAoB,WAIlB,IAAK,GAHDC,GAAc58C,KAAK68C,oBACnBj+C,EAAYoB,KAAKolB,eAEZnhB,EAAI,EAAGs4C,EAAOK,EAAYv6C,OAAYk6C,EAAJt4C,EAAUA,IACnD,GAAIrF,EAAU6gB,aAAam9B,EAAY34C,IACrC,OAAO,CAIX,QAAO,GAKTiY,eAAgB,WACd,GACI4gC,GAAaC,EAAWH,EAAaI,EADrCj0C,EAAQ/I,KAAK46C,UAGjB,IAAI56C,KAAK26C,kBAAmB,EACrBmC,EAAcz+C,EAAUG,IAAIo/B,iBAAiB70B,EAAM4L,gBAAkBooB,MAAO,IAAM/8B,KAAK26C,oBAAqB,EAAO36C,KAAK06C,WAC3H3xC,EAAMyS,eAAeshC,IAElBC,EAAY1+C,EAAUG,IAAIo/B,iBAAiB70B,EAAM6L,cAAgBmoB,MAAO,IAAM/8B,KAAK26C,oBAAqB,EAAO36C,KAAK06C,WACvH3xC,EAAM4S,YAAYohC,GAIpBH,EAAc7zC,EAAMiX,UAAU,GAAI,SAAWpc,GAC3C,MAAOvF,GAAUG,IAAIo7B,SAASh2B,EAAM5D,KAAK26C,oBACxCl4C,KAAKzC,MACR,KAAK,GAAIiE,GAAI24C,EAAYv6C,OAAQ4B,KAC/B,IACE+4C,EAAK,GAAIC,aAAY,+BACrBL,EAAY34C,GAAGi5C,cAAcF,GAC7B,MAAOG,KAIbp0C,EAAMmT,iBACNlc,KAAK66C,aAAa9xC,IAGpBq0C,gBAAiB,SAASx5C,EAAMy5C,GAC9B,GAAIpB,EACJ,KAAKr4C,EAAM,CACT,GAAIhF,GAAYoB,KAAKolB,cACrBxhB,GAAOhF,EAAU6mB,WAGnB,GAAI7hB,IAAS5D,KAAK06C,QACd,OAAO,CAGX,IACI7rC,GADAy+B,EAAM1pC,EAAKmL,eAGf,OAAIu+B,KAAQttC,KAAK06C,SACN,GAGPpN,GAAwB,IAAjBA,EAAIjgC,UAAmC,IAAjBigC,EAAIjgC,SAElCigC,EAAMttC,KAAKo9C,gBAAgB9P,EAAK+P,GACxB/P,GAAwB,IAAjBA,EAAIjgC,UAAkB,QAAUtH,KAAKunC,EAAI1O,aAEzD0O,EAAMttC,KAAKo9C,gBAAgB9P,EAAK+P,GACvBA,GAAe/P,GAAwB,IAAjBA,EAAIjgC,UAGnC4uC,EAAe59C,EAAUG,IAAIs8B,SAAS,WAAWC,KAAKuS,GAEjDjvC,EAAUM,KAAKu2B,OAAO,KAAM,KAAM,QAAQ5wB,SAASgpC,EAAIriC,WACvD5M,EAAUM,KAAKu2B,OAAO,QAAS,eAAgB,OAAQ,YAAa,UAAU5wB,SAAS23C,KACxF,UAAYl2C,KAAKunC,EAAI76B,aAErB66B,EAAMttC,KAAKo9C,gBAAgB9P,EAAK+P,KAE1B/P,GAAO1pC,IAAS5D,KAAK06C,UAC/B7rC,EAASjL,EAAKE,WACV+K,IAAW7O,KAAK06C,UAChBpN,EAAMttC,KAAKo9C,gBAAgBvuC,EAAQwuC,KAIjC/P,IAAQttC,KAAK06C,QAAWpN,GAAM,IAGxCgQ,yBAA0B,WAIxB,IAAK,GAFDC,GADA15C,EAAQ7D,KAAKo8C,sBACN1G,KAEFzxC,EAAI,EAAGs4C,EAAO14C,EAAMxB,OAAYk6C,EAAJt4C,EAAUA,IAC7Cs5C,EAAS15C,EAAMI,GAAGgH,UAAmC,OAAtBpH,EAAMI,GAAGgH,SAAqBpH,EAAMI,GAAK5F,EAAUG,IAAIo/B,iBAAiB/5B,EAAMI,IAAM84B,MAAO,OAAO,EAAO/8B,KAAK06C,SACzI6C,GACF7H,EAAQpvC,KAAKi3C,EAGjB,OAAQ7H,GAAc,OAAIA,EAAU,MAGtC8H,kBAAmB,WACjB,GAAIx9C,KAAK4iB,cAAe,CACtB,GAAI7Z,GAAQ/I,KAAK46C,WACb6C,EAAQ10C,EAAM4L,eACdX,EAAMjL,EAAMyM,YACZkoC,EAAQz1C,MAAM6C,YAAY9K,KAAKL,IAInC,OAFA+9C,GAAM7hC,mBAAmB4hC,GACzBC,EAAMtiC,SAASqiC,EAAOzpC,GACf0pC,IAIXC,uBAAwB,WACtB,GAEIC,IAFI31C,MAAM6C,YAAY9K,KAAKL,KACvBK,KAAKolB,eACFplB,KAAKw9C,oBAAoBrkC,iBAChC0kC,EAASD,EAAKhf,WAElB,OAAO,QAAU74B,KAAK83C,IAGxBC,wBAAyB,WACvB,GAAIx7C,GAAI2F,MAAM6C,YAAY9K,KAAKL,KAC3BiC,EAAI5B,KAAKolB,eACTrc,EAAQ/I,KAAK46C,WACb19B,EAAYnU,EAAM4L,cAEtB,OAAIuI,GACEA,EAAU7P,WAAahP,EAAUa,UAC5Bc,KAAK4iB,eAAkB1F,EAAU7P,WAAahP,EAAUa,WAAa,QAAU6G,KAAKmX,EAAU5K,KAAK0mB,OAAO,EAAEjwB,EAAMyM,eAEzHlT,EAAEuZ,mBAAmB7b,KAAK46C,WAAWljC,yBACrCpV,EAAEsZ,UAAS,GACH5b,KAAK4iB,gBAAkBtgB,EAAEqS,iBAAmB/S,EAAE6jB,YAAcnjB,EAAEsS,eAAiBhT,EAAE6jB,aAAenjB,EAAEkT,cAAgB5T,EAAE8jB,cANhI,QAWFq4B,qBAAsB,SAASC,GAC3B,GAAIp/C,GAAYoB,KAAKolB,eACjBxhB,EAAOhF,EAAU6mB,WACjB/U,EAAS9R,EAAU8mB,YACvB,OAAIs4B,IAAUp6C,EACO,IAAX8M,IAAiB9M,EAAKqH,UAAYrH,EAAKqH,WAAa+yC,EAAO/f,eAAiB5/B,EAAUG,IAAIo/B,iBAAiBh6B,EAAKE,YAAci5B,MAAOihB,GAAU,IAC9Ip6C,EACU,IAAX8M,IAAiB1Q,KAAKo9C,gBAAgBx5C,GAAM,GAD/C,QAOXq6C,mBAAoB,SAASC,GAC3B,GAG8BjhC,GAASkhC,EAHnC54B,EAAMvlB,KAAKolB,eACXlI,EAAaqI,EAAIiG,cAAiBjG,EAAII,UAAYJ,EAAIE,WACtDjQ,EAAe+P,EAAIiG,cAAiBjG,EAAIK,YAAcL,EAAIG,aAC1D04B,EAAMp+C,KAAK8K,aASf,IANAqzC,EAAa9/C,EAAUG,IAAIo/B,iBAAiB1gB,GAAa6f,MAAO,8BAAgC,GAC5FohB,IACFjhC,EAAYihC,EAAWr6C,WACvB0R,EAAc3T,MAAMhC,UAAUoC,QAAQb,KAAK8b,EAAU9P,WAAY+wC,IAG/DjhC,EAAW,CACb,GAAI1H,EAAc,EAChB,MAA2B,KAAvB0H,EAAU7P,UACZ+wC,EAAIhjC,SAAS8B,EAAW,GACxBkhC,EAAI/iC,OAAO6B,EAAW1H,IAEpB/P,KAAM,OACNsD,MAAOq1C,EACP1tC,OAAS8E,EACT5R,KAAMsZ,KAGRkhC,EAAI5iC,eAAe0B,EAAU9P,WAAW,IACxC6P,EAAUC,EAAU9P,WAAWoI,EAAc,GAC7C4oC,EAAIziC,YAAYsB,IAEdxX,KAAM,UACNsD,MAAOq1C,EACP1tC,OAAS8E,EACT5R,KAAMqZ,GAMV,IAFAmhC,EAAIplC,eAAekE,EAAW,GAE1BghC,EAAmB,CACrB,GAAIzhB,GAAWz8B,KAAKo9C,gBAAgBlgC,GAAW,GAC7CmhC,EAAW5hB,EAAWp+B,EAAUG,IAAI69B,QAAQI,GAAUG,eAAiB,IAEzE,IAAIyhB,EACF,OACE54C,KAAM,WACNsD,MAAOq1C,EACP1tC,OAAS8E,EACT5R,KAAMy6C,GAKZ,OACE54C,KAAM,OACNsD,MAAOq1C,EACP1tC,OAAS8E,EACT5R,KAAMsZ,GAIZ,MAAO,OAITohC,uBAAwB,SAAS95C,GAC/B,GAAI+gB,GAAMtd,MAAMumB,cAAcxuB,KAAKN,IACnC,IAAK6lB,EAGH,IACE/gB,IACA,MAAM/D,GACN8qC,WAAW,WAAa,KAAM9qC,IAAM,OALtC+D,IAQFyD,OAAM0mB,iBAAiBpJ,IAIzBg5B,kBAAmB,SAAS/5C,EAAQg6C,GAClC,GAMIxD,GACAyD,EACAvuC,EAAawuC,EACb96C,EAAMuL,EAAO4S,EACb48B,EAVAt1C,EAAwBrJ,KAAKL,IAAI0J,KACjCu1C,EAAwBJ,GAAyBn1C,EAAKw1C,UACtDC,EAAwBN,GAAyBn1C,EAAK01C,WACtDpxB,EAAwB,8BACxBqxB,EAAwB,gBAAkBrxB,EAAY,KAAOtvB,EAAUS,gBAAkB,UACzFiK,EAAwB/I,KAAK46C,UAAS,EAQ1C,KAAK7xC,EAEH,WADAvE,GAAO6E,EAAMA,EAIVN,GAAMwO,YACTwK,EAAShZ,EAAM0U,aACftO,EAAQ4S,EAAOhE,yBAAyBihC,GACxCj9B,EAAOnG,UAAS,GAChBmG,EAAOzD,WAAWnP,GAClB4S,EAAOjO,UAGTlQ,EAAOmF,EAAMgV,yBAAyBihC,GACtCj2C,EAAMuV,WAAW1a,GAEbuL,IACF6rC,EAAmBh7C,KAAK06C,QAAQ12C,iBAAiB,IAAM2pB,GACvD5kB,EAAMyS,eAAew/B,EAAiB,IACtCjyC,EAAM4S,YAAYq/B,EAAiBA,EAAiB34C,OAAQ,KAE9DrC,KAAK66C,aAAa9xC,EAGlB,KACEvE,EAAOuE,EAAM4L,eAAgB5L,EAAM6L,cACnC,MAAMnU,GACN8qC,WAAW,WAAa,KAAM9qC,IAAM,GAGtC,GADAu6C,EAAmBh7C,KAAK06C,QAAQ12C,iBAAiB,IAAM2pB,GACnDqtB,GAAoBA,EAAiB34C,OAAQ,CAC/Cs8C,EAAW12C,MAAM6C,YAAY9K,KAAKL,KAClCuQ,EAAc8qC,EAAiB,GAAG9qC,YAC9B8qC,EAAiB34C,OAAS,IAC5Bq8C,EAAc1D,EAAiBA,EAAiB34C,OAAQ,GAAG0M,iBAEzD2vC,GAAexuC,GACjByuC,EAASnjC,eAAetL,GACxByuC,EAAShjC,YAAY+iC,KAErBD,EAAsBz+C,KAAKL,IAAIyT,eAAe/U,EAAUS,iBACxDN,EAAIw8B,OAAOyjB,GAAqBxjB,MAAM+f,EAAiB,IACvD2D,EAASnjC,eAAeijC,GACxBE,EAAShjC,YAAY8iC,IAEvBz+C,KAAK66C,aAAa8D,EAClB,KAAK,GAAI16C,GAAI+2C,EAAiB34C,OAAQ4B,KACpC+2C,EAAiB/2C,GAAGH,WAAW6Y,YAAYq+B,EAAiB/2C,QAK9DjE,MAAK06C,QAAQvyB,OAGXq2B,KACFn1C,EAAKw1C,UAAaD,EAClBv1C,EAAK01C,WAAaD,EAIpB,KACE9D,EAAiBl3C,WAAW6Y,YAAYq+B,GACxC,MAAM1nB,MAGV3xB,IAAK,SAASiC,EAAM8M,GAClB,GAAIiuC,GAAW12C,MAAM6C,YAAY9K,KAAKL,IACtCg/C,GAASvjC,SAASxX,EAAM8M,GAAU,GAClC1Q,KAAK66C,aAAa8D,IAUpB1rB,WAAY,SAASgF,GACnB,GAGItZ,GAFA/a,GADYqE,MAAM6C,YAAY9K,KAAKL,KAC5BK,KAAKL,IAAIuE,cAAc,QAC9B0O,EAAW5S,KAAKL,IAAIkT,wBAMxB,KAHAjP,EAAK6O,UAAYwlB,EACjBtZ,EAAY/a,EAAK+a,UAEV/a,EAAKsO,YACVU,EAASzF,YAAYvJ,EAAKsO,WAE5BlS,MAAKse,WAAW1L,GAEZ+L,GACF3e,KAAKq7C,SAAS18B,IAWlBL,WAAY,SAAS1a,GACnB,GAAImF,GAAQ/I,KAAK46C,UACb7xC,IACFA,EAAMuV,WAAW1a,IAIrBq7C,oBAAqB,SAAUnzB,EAASxN,GACtC,GACIvV,GAAOm2C,EACPhtC,EAAYyM,EAFZ4G,EAAMvlB,KAAKolB,cAIXG,GAAIa,WAAa,IACnBrd,EAAQwc,EAAIuC,WAAW,GAAGrK,aAE1B1U,EAAM4S,YAAYmQ,GAClBozB,EAAyBn2C,EAAMkT,kBAE/B6P,EAAQhoB,WAAWqM,aAAa+uC,EAAwBpzB,EAAQ5b,aAEhEgC,EAAaoM,EAAWpM,WACxByM,EAAYL,EAAWK,UAEvBmN,EAAQhoB,WAAWqM,aAAamO,EAAYwN,EAAQ5b,aAGhDgC,GAAcyM,IACf5V,EAAMyS,eAAetJ,GACrBnJ,EAAM4S,YAAYgD,GAClB3e,KAAK66C,aAAa9xC,MAUzBo2C,SAAU,SAASC,GACjB,GACIx7C,GADA+jB,EAAS3nB,KAAKq8C,eACRx4C,IACV,IAAqB,GAAjB8jB,EAAOtlB,OACT,MAAOwB,EAGT,KAAK,GAAII,GAAI0jB,EAAOtlB,OAAQ4B,KAAM,CAChCL,EAAO5D,KAAKL,IAAIuE,cAAck7C,EAAYn0C,UAC1CpH,EAAMyC,KAAK1C,GACPw7C,EAAYzxB,YACd/pB,EAAK+pB,UAAYyxB,EAAYzxB,WAE3ByxB,EAAYC,UACdz7C,EAAK4C,aAAa,QAAS44C,EAAYC,SAEzC,KAEE13B,EAAO1jB,GAAGua,iBAAiB5a,GAC3B5D,KAAK8b,WAAWlY,GAChB,MAAMnD,GAENmD,EAAKuJ,YAAYwa,EAAO1jB,GAAGgY,mBAC3B0L,EAAO1jB,GAAGqa,WAAW1a,IAGzB,MAAOC,IAGTy7C,mBAAoB,SAASF,GAC3B,GAEIG,GACAC,EACAttC,EAJAgnB,EAAcl5B,KAAKL,IAAIuE,cAAc,OACrC6E,EAAQd,MAAM6C,YAAY9K,KAAKL,IASnC,IAJAu5B,EAAYvL,UAAYyxB,EAAYzxB,UAEpC3tB,KAAKo2C,SAAS73C,SAASuyB,KAAK,cAAesuB,GAC3CG,EAAkBv/C,KAAK06C,QAAQ12C,iBAAiB,IAAMo7C,EAAYzxB,WAC9D4xB,EAAgB,GAOlB,IANAA,EAAgB,GAAGz7C,WAAWqM,aAAa+oB,EAAaqmB,EAAgB,IAExEx2C,EAAMyS,eAAe+jC,EAAgB,IACrCx2C,EAAM4S,YAAY4jC,EAAgBA,EAAgBl9C,OAAS,IAC3Dm9C,EAAez2C,EAAMkT,kBAEdujC,EAAattC,YAElB,GADAA,EAAastC,EAAattC,WACC,GAAvBA,EAAW7E,UAAiBhP,EAAUG,IAAIo7B,SAAS1nB,EAAYktC,EAAYzxB,WAAY,CACzF,KAAOzb,EAAWA,YAChBgnB,EAAY/rB,YAAY+E,EAAWA,WAET,QAAxBA,EAAWjH,UAAqBiuB,EAAY/rB,YAAYnN,KAAKL,IAAIuE,cAAc,OACnFs7C,EAAa7iC,YAAYzK,OAEzBgnB,GAAY/rB,YAAY+E,OAI5BgnB,GAAc,IAGhB,OAAOA,IAUTumB,eAAgB,WACd,GASItF,GATAx6C,EAAgBK,KAAKL,IACrB+/C,EAAgB,EAChBC,EAAgBhgD,EAAI8T,gBAAgBmsC,aAAejgD,EAAI8T,gBAAgB40B,aACvEnP,EAAgBv5B,EAAIkgD,gCAAkClgD,EAAIkgD,iCAAmC,WAC3F,GAAI/zB,GAAUnsB,EAAIuE,cAAc,OAGhC,OADA4nB,GAAQrZ,UAAYpU,EAAUS,gBACvBgtB,IAIT6zB,KACF3/C,KAAKse,WAAW4a,GAChBihB,EAAYD,EAAwBhhB,GACpCA,EAAYp1B,WAAW6Y,YAAYuc,GAC/BihB,GAAcx6C,EAAI0J,KAAKw1C,UAAYl/C,EAAI8T,gBAAgB40B,aAAeqX,IACxE//C,EAAI0J,KAAKw1C,UAAY1E,KAQ3B2F,WAAY,WACNzhD,EAAUgyB,QAAQ6D,0BACpBl0B,KAAK+/C,kBACI//C,KAAKL,IAAIf,WAClBoB,KAAKggD,oBAOTD,gBAAiB,WACf,GAAInhD,GAAYoB,KAAKN,IAAI0lB,cACzBxmB,GAAUqhD,OAAO,OAAQ,OAAQ,gBACjCrhD,EAAUqhD,OAAO,SAAU,QAAS,iBAItCC,eAAgB,SAAUC,EAAUvkC,GAElC,GADAA,EAAgC,mBAAbA,IAA4B,EAAQA,EACnDvd,EAAUgyB,QAAQ6D,0BAA2B,CAC/C,GAAIt1B,GAAYoB,KAAKN,IAAI0lB,cAEzBxmB,GAAUqhD,OAAO,SAAUE,EAAU,gBACjCvkC,IACe,SAAbukC,EACFvhD,EAAU8sB,kBACY,UAAby0B,GACTvhD,EAAU+sB,mBAMlBq0B,iBAAkB,WAChB,GAGII,GACAC,EACAC,EACAr8C,EACAm5B,EAPAr0B,EAAc/I,KAAKL,IAAIf,UAAUkM,cACjCy1C,EAAcx3C,EAAMy3C,YACpBC,EAAczgD,KAAKL,IAAI0J,KAAKo3C,WAOhC,IAAK13C,EAAM23C,YAAX,CAeA,IAXiB,IAAbH,IAGFD,EAActgD,KAAKL,IAAIuE,cAAc,QACrClE,KAAKse,WAAWgiC,GAChBC,EAAWD,EAAYnG,UACvBmG,EAAYx8C,WAAW6Y,YAAY2jC,IAGrCC,GAAY,EAEPt8C,EAAE,IAAOw8C,EAAFx8C,EAAeA,GAAG,EAC5B,IACE8E,EAAM23C,YAAYz8C,EAAGs8C,EACrB,OACA,MAAMntB,IAOV,IAFAgtB,EAAcG,EACdF,EAAWrgD,KAAKL,IAAIf,UAAUkM,cACzBsyB,EAAEqjB,EAAarjB,GAAG,EAAGA,IACxB,IACEijB,EAASK,YAAYtjB,EAAGgjB,EACxB,OACA,MAAM9sB,IAGVvqB,EAAM6a,YAAY,WAAYy8B,GAC9Bt3C,EAAMoe,WAGRw5B,QAAS,WACP,GAAI/hD,GAAYoB,KAAKolB,cACrB,OAAOxmB,GAAYA,EAAUoD,WAAa,IAG5Cge,SAAU,SAAS3S,EAAUwJ,GAC3B,GAAI9N,GAAQ/I,KAAK46C,UACjB,OAAI7xC,GACKA,EAAMiX,SAASne,MAAMC,QAAQuL,GAAYA,GAAYA,GAAWwJ,OAM3E+pC,iBAAkB,SAAS73C,GACzB,GAAI/I,KAAK06C,SAAW16C,KAAK06C,QAAQxoC,YAAcnJ,EAAO,CACpD,GAAI83C,GAAc93C,EAAM+V,YAAY9e,KAAK06C,QACzC,IAAoB,IAAhBmG,EACkB,IAAhBA,GACF93C,EAAMyS,eAAexb,KAAK06C,QAAQxoC,YAEhB,IAAhB2uC,GACF93C,EAAM4S,YAAY3b,KAAK06C,QAAQ/7B,WAEb,IAAhBkiC,IACF93C,EAAMyS,eAAexb,KAAK06C,QAAQxoC,YAClCnJ,EAAM4S,YAAY3b,KAAK06C,QAAQ/7B,gBAE5B,IAAI3e,KAAK8gD,2BAA2B/3C,GAAQ,CACjD,GAAIg4C,GAAyBh4C,EAAM6L,aAAamsC,sBAC5CA,IACFh4C,EAAMsS,OAAO0lC,EAAwB/gD,KAAKghD,kBAAkBD,OAMpEC,kBAAmB,SAASp9C,GAC1B,GAAImF,GAAQhF,SAAS+G,aAErB,OADA/B,GAAM8S,mBAAmBjY,GAClBmF,EAAM0M,WAGfqrC,2BAA4B,SAAS/3C,GACnC,GAAI0H,GAAWjS,EAAIu7B,wBAAwBhxB,EAAM4L,eAAgB5L,EAAM6L,aACvE,OACqB,IAAnB7L,EAAM0M,WACK,EAAXhF,GAIJmqC,SAAU,SAASqG,GACjB,GAAIriD,GAAYoB,KAAKolB,eACjBrc,EAAQnK,GAAaA,EAAUwnB,YAAcxnB,EAAUkpB,WAAW,EAMtE,OAJIm5B,MAAY,GACdjhD,KAAK4gD,iBAAiB73C,GAGjBA,GAGT8zC,kBAAmB,WACjB,GAAIqE,GAAiB1iD,EAAIu+B,MAAM/8B,KAAK06C,QAAS,IAAM16C,KAAK26C,mBACpDwG,EAAkB3iD,EAAIu+B,MAAMmkB,EAAgB,IAAMlhD,KAAK26C,kBAE3D,OAAOt8C,GAAUM,KAAKu2B,MAAMgsB,GAAgB9rB,QAAQ+rB,IAMtD9E,aAAc,WACZ,GAEI+E,GAFAz5B,KACArlB,EAAItC,KAAK46C,UAKb,IAFIt4C,GAAKqlB,EAAOrhB,KAAKhE,GAEjBtC,KAAK26C,mBAAqB36C,KAAK06C,SAAWp4C,EAAG,CAC/C,GACI++C,GADAzE,EAAc58C,KAAK68C,mBAEvB,IAAID,EAAYv6C,OAAS,EACvB,IAAK,GAAI4B,GAAI,EAAG8gC,EAAO6X,EAAYv6C,OAAY0iC,EAAJ9gC,EAAUA,IAAK,CACxDm9C,IACA,KAAK,GAAIhkB,GAAI,EAAGkkB,EAAO35B,EAAOtlB,OAAYi/C,EAAJlkB,EAAUA,IAAK,CACnD,GAAIzV,EAAOyV,GACT,OAAQzV,EAAOyV,GAAGte,YAAY89B,EAAY34C,KACxC,IAAK,GAEL,KACA,KAAK,GAEHo9C,EAAW15B,EAAOyV,GAAG3f,aACrB4jC,EAAS3lC,aAAakhC,EAAY34C,IAClCm9C,EAAU96C,KAAK+6C,GAEfA,EAAW15B,EAAOyV,GAAG3f,aACrB4jC,EAAS5lC,cAAcmhC,EAAY34C,IACnCm9C,EAAU96C,KAAK+6C,EACjB,MACA,SAEED,EAAU96C,KAAKqhB,EAAOyV,IAG5BzV,EAASy5B,IAKjB,MAAOz5B,IAGTvC,aAAc,WACZ,MAAOnd,OAAMmd,aAAaplB,KAAKN,MAMjCm7C,aAAc,SAAS9xC,GACrB,GAAInK,GAAYqJ,MAAMmd,aAAaplB,KAAKN,IAExC,OADAd,GAAUmpB,eAAehf,GACjBnK,GAAaA,EAAU6mB,YAAc7mB,EAAU+mB,UAAa/mB,EAAY,MAGlFkM,YAAa,WACX,MAAO7C,OAAM6C,YAAY9K,KAAKL,MAGhCijB,YAAa,WACT,MAAO5iB,MAAKolB,eAAexC,aAG/B2+B,QAAS,WACP,MAAOvhD,MAAKolB,eAAepG,UAG7BwiC,aAAc,WACZ,MAAOxhD,MAAKolB,eAAepjB,YAG7By/C,iBAAkB,SAASC,GACzB,GAAI34C,GAAQ/I,KAAK46C,WACbhsC,EAAgB7F,EAAM2O,wBACtBwF,EAAYnU,EAAM4L,eAClBsI,EAAUlU,EAAM6L,YAOlB,IAJIhG,EAAcvB,WAAahP,EAAUa,YACvC0P,EAAgBA,EAAc9K,YAG5BoZ,EAAU7P,WAAahP,EAAUa,YAAc,QAAU6G,KAAKmX,EAAU5K,KAAK0mB,OAAOjwB,EAAMyM,cAC5F,OAAO,CAGT,IAAIyH,EAAQ5P,WAAahP,EAAUa,YAAc,QAAU6G,KAAKkX,EAAQ3K,KAAK0mB,OAAOjwB,EAAM0M,YACxF,OAAO,CAGT,MAAOyH,GAAaA,IAActO,GAAe,CAC/C,GAAIsO,EAAU7P,WAAahP,EAAUa,YAAcb,EAAUG,IAAI8F,SAASsK,EAAesO,GACvF,OAAO,CAET,IAAI7e,EAAUG,IAAI69B,QAAQnf,GAAWsf,MAAMG,kBAAkB,IAC3D,OAAO,CAETzf,GAAYA,EAAUpZ,WAGxB,KAAOmZ,GAAWA,IAAYrO,GAAe,CAC3C,GAAIqO,EAAQ5P,WAAahP,EAAUa,YAAcb,EAAUG,IAAI8F,SAASsK,EAAeqO,GACrF,OAAO,CAET,IAAI5e,EAAUG,IAAI69B,QAAQpf,GAASpJ,MAAM8oB,kBAAkB,IACzD,OAAO,CAET1f,GAAUA,EAAQnZ,WAGpB,MAAQzF,GAAUM,KAAKu2B,MAAMwsB,GAAWp9C,SAASsK,EAAc3D,UAAa2D,GAAgB,GAGhGmqC,SAAU,WACR,GAAIxzB,GAAMvlB,KAAKolB,cACfG,IAAOA,EAAIqE,sBAIdvrB,WASH,SAAUA,EAAW4J,GAKnB,QAAS2xB,GAAS1sB,EAAIy0C,EAAUC,GAC9B,IAAK10C,EAAGygB,UACN,OAAO,CAGT,IAAIk0B,GAAqB30C,EAAGygB,UAAU3D,MAAM43B,MAC5C,OAAOC,GAAmBA,EAAmBx/C,OAAS,KAAOs/C,EAG/D,QAASG,GAAa50C,EAAI00C,GACxB,IAAK10C,EAAG/G,eAAiB+G,EAAG/G,aAAa,SACvC,OAAO,CAEY+G,GAAG/G,aAAa,SAAS6jB,MAAM43B,EACpD,OAAS10C,GAAG/G,aAAa,SAAS6jB,MAAM43B,IAAW,GAAO,EAG5D,QAASvc,GAASn4B,EAAImyC,EAAUuC,GAC1B10C,EAAG/G,aAAa,UAClB47C,EAAY70C,EAAI00C,GACZ10C,EAAG/G,aAAa,WAAa,QAAUJ,KAAKmH,EAAG/G,aAAa,UAC9D+G,EAAG1G,aAAa,QAAS64C,EAAW,IAAMnyC,EAAG/G,aAAa,UAE1D+G,EAAG1G,aAAa,QAAS64C,IAG3BnyC,EAAG1G,aAAa,QAAS64C,GAI7B,QAAS1lB,GAASzsB,EAAIy0C,EAAUC,GAC1B10C,EAAGygB,WACLkM,EAAY3sB,EAAI00C,GAChB10C,EAAGygB,WAAa,IAAMg0B,GAEtBz0C,EAAGygB,UAAYg0B,EAInB,QAAS9nB,GAAY3sB,EAAI00C,GACnB10C,EAAGygB,YACLzgB,EAAGygB,UAAYzgB,EAAGygB,UAAU1tB,QAAQ2hD,EAAQ,KAIhD,QAASG,GAAY70C,EAAI00C,GACvB,GAAIhgD,GACAogD,IACJ,IAAI90C,EAAG/G,aAAa,SAAU,CAC5BvE,EAAIsL,EAAG/G,aAAa,SAASE,MAAM,IACnC,KAAK,GAAIpC,GAAIrC,EAAES,OAAQ4B,KAChBrC,EAAEqC,GAAG+lB,MAAM43B,IAAY,QAAU77C,KAAKnE,EAAEqC,KAC3C+9C,EAAG17C,KAAK1E,EAAEqC,GAGV+9C,GAAG3/C,OACL6K,EAAG1G,aAAa,QAASw7C,EAAG76C,KAAK,MAEjC+F,EAAG0kC,gBAAgB,UAKzB,QAASqQ,GAAuB/0C,EAAIsgB,GAClC,GAAI00B,MACAC,EAAS30B,EAAMnnB,MAAM,KACrB+7C,EAAUl1C,EAAG/G,aAAa,QAE9B,IAAIi8C,EAAS,CACXA,EAAUA,EAAQniD,QAAQ,OAAQ,IAAIiL,cACtCg3C,EAAQ57C,KAAK,GAAI2Q,QAAO,YAAcuW,EAAMvtB,QAAQ,OAAQ,IAAIA,QAAQ,aAAc,QAAQiL,cAAcjL,QAAQ,IAAK,MAAMA,QAAQ,iCAAkC,iCAAkC,MAE3M,KAAK,GAAIgE,GAAIk+C,EAAO9/C,OAAQ4B,IAAM,GAC3B,QAAU8B,KAAKo8C,EAAOl+C,KACzBi+C,EAAQ57C,KAAK,GAAI2Q,QAAO,YAAckrC,EAAOl+C,GAAGhE,QAAQ,OAAQ,IAAIA,QAAQ,aAAc,QAAQiL,cAAcjL,QAAQ,IAAK,MAAMA,QAAQ,iCAAkC,iCAAkC,MAGnN,KAAK,GAAIm9B,GAAI,EAAGkkB,EAAOY,EAAQ7/C,OAAYi/C,EAAJlkB,EAAUA,IAC/C,GAAIglB,EAAQp4B,MAAMk4B,EAAQ9kB,IACxB,MAAO8kB,GAAQ9kB,GAKrB,OAAO,EAGT,QAASilB,GAAmBz+C,EAAMq+B,EAAMzU,EAAOG,GAC7C,MAAIH,GACKy0B,EAAuBr+C,EAAM4pB,GAC3BG,EACFtvB,EAAUG,IAAIo7B,SAASh2B,EAAM+pB,GAE7B1lB,EAAMzJ,IAAI8Q,cAAc2yB,EAAMr+B,EAAK4N,QAAQtG,eAItD,QAASo3C,GAAoBz+C,EAAOo+B,EAAMzU,EAAOG,GAC/C,IAAK,GAAI1pB,GAAIJ,EAAMxB,OAAQ4B,KACzB,IAAKo+C,EAAmBx+C,EAAMI,GAAIg+B,EAAMzU,EAAOG,GAC7C,OAAO,CAGX,OAAO9pB,GAAMxB,QAAS,GAAO,EAG/B,QAASkgD,GAAoBr1C,EAAIsgB,EAAOo0B,GAEtC,GAAIY,GAAaP,EAAuB/0C,EAAIsgB,EAC5C,OAAIg1B,IAEFT,EAAY70C,EAAIs1C,GACT,WAGPnd,EAASn4B,EAAIsgB,EAAOo0B,GACb,UAIX,QAASa,GAAeC,EAAKC,GAC3B,MAAOD,GAAI/0B,UAAU1tB,QAAQ2iD,EAAqB,MAAQD,EAAIh1B,UAAU1tB,QAAQ2iD,EAAqB,KAGvG,QAASC,GAAuB31C,GAE9B,IADA,GAAI2B,GAAS3B,EAAGpJ,WACToJ,EAAGgF,YACRrD,EAAOsB,aAAajD,EAAGgF,WAAYhF,EAErC2B,GAAO8N,YAAYzP,GAGrB,QAAS41C,GAAmCJ,EAAKC,GAC/C,GAAID,EAAIjhB,WAAWp/B,QAAUsgD,EAAIlhB,WAAWp/B,OAC1C,OAAO,CAET,KAAK,GAAwC0gD,GAAOC,EAAOr9C,EAAlD1B,EAAI,EAAGW,EAAM89C,EAAIjhB,WAAWp/B,OAAgCuC,EAAJX,IAAWA,EAG1E,GAFA8+C,EAAQL,EAAIjhB,WAAWx9B,GACvB0B,EAAOo9C,EAAMp9C,KACD,SAARA,EAAiB,CAEnB,GADAq9C,EAAQL,EAAIlhB,WAAWwhB,aAAat9C,GAChCo9C,EAAM7V,WAAa8V,EAAM9V,UAC3B,OAAO,CAET,IAAI6V,EAAM7V,WAAa6V,EAAM1pB,YAAc2pB,EAAM3pB,UAC/C,OAAO,EAIb,OAAO,EAGT,QAAS6pB,GAAat/C,EAAM8M,GAC1B,MAAIzI,GAAMzJ,IAAIqR,oBAAoBjM,GAClB,GAAV8M,IACO9M,EAAKmL,gBACL2B,GAAU9M,EAAKvB,SACfuB,EAAKsM,aAEP,EAIJQ,EAAS,GAAKA,EAAS9M,EAAKwJ,WAAW/K,OAGhD,QAAS8gD,GAAYv/C,EAAMw/C,EAAgBC,EAAkBnqC,GAC3D,GAAI5I,EAYJ,IAXIrI,EAAMzJ,IAAIqR,oBAAoBuzC,KACR,GAApBC,GACFA,EAAmBp7C,EAAMzJ,IAAIsQ,aAAas0C,GAC1CA,EAAiBA,EAAet/C,YACvBu/C,GAAoBD,EAAe/gD,QAC5CghD,EAAmBp7C,EAAMzJ,IAAIsQ,aAAas0C,GAAkB,EAC5DA,EAAiBA,EAAet/C,YAEhCwM,EAAUrI,EAAMzJ,IAAI4R,cAAcgzC,EAAgBC,MAGjD/yC,GACE4I,GAAakqC,IAAmBlqC,GAAW,CAE9C5I,EAAU8yC,EAAe7yC,WAAU,GAC/BD,EAAQkC,IACVlC,EAAQshC,gBAAgB,KAG1B,KADA,GAAIj/B,GACIA,EAAQywC,EAAeh2C,WAAWi2C,IACxC/yC,EAAQnD,YAAYwF,EAEtB1K,GAAMzJ,IAAIuR,YAAYO,EAAS8yC,GAInC,MAAQA,IAAkBx/C,EAAQ0M,EAAW6yC,EAAYv/C,EAAM0M,EAAQxM,WAAYmE,EAAMzJ,IAAIsQ,aAAawB,GAAU4I,GAGtH,QAASoqC,GAAMC,GACbvjD,KAAKwjD,eAAkBD,EAAUl2C,UAAYhP,EAAUY,aACvDe,KAAKyjD,cAAgBzjD,KAAKwjD,eAAiBD,EAAU5kC,UAAY4kC,EACjEvjD,KAAK+f,WAAa/f,KAAKyjD,eAsCzB,QAASC,GAAYC,EAAUhC,EAAUiC,EAAoBx1B,EAAWixB,EAAUwE,EAAoB3qC,GACpGlZ,KAAK2jD,SAAWA,IAAaG,GAC7B9jD,KAAK2hD,SAAWA,IAAcA,KAAa,GAAS,EAAQ,IAC5D3hD,KAAK4jD,mBAAqBA,EAC1B5jD,KAAKq/C,SAAWA,GAAY,GAC5Br/C,KAAK6jD,mBAAqBA,EAC1B7jD,KAAKouB,UAAYA,EACjBpuB,KAAK+jD,mBAAoB,EACzB/jD,KAAKkZ,UAAYA,EA1PnB,GAAI4qC,GAAiB,OAEjBlB,EAAsB,MA6M1BU,GAAMzjD,WACJmkD,QAAS,WAEP,IAAK,GADc7wC,GAAUtE,EAAQkV,EAAjCkgC,KACKhgD,EAAI,EAAGW,EAAM5E,KAAK+f,UAAU1d,OAAYuC,EAAJX,IAAWA,EACtDkP,EAAWnT,KAAK+f,UAAU9b,GAC1B4K,EAASsE,EAASrP,WAClBmgD,EAAShgD,GAAKkP,EAASb,KACnBrO,IACF4K,EAAO8N,YAAYxJ,GACdtE,EAAO6P,iBACV7P,EAAO/K,WAAW6Y,YAAY9N,GAKpC;MADA7O,MAAKyjD,cAAcnxC,KAAOyR,EAAOkgC,EAAS98C,KAAK,IACxC4c,GAGTmgC,UAAW,WAET,IADA,GAAIjgD,GAAIjE,KAAK+f,UAAU1d,OAAQuC,EAAM,EAC9BX,KACLW,GAAO5E,KAAK+f,UAAU9b,GAAG5B,MAE3B,OAAOuC,IAGT5C,SAAU,WAER,IAAK,GADDiiD,MACKhgD,EAAI,EAAGW,EAAM5E,KAAK+f,UAAU1d,OAAYuC,EAAJX,IAAWA,EACtDggD,EAAShgD,GAAK,IAAMjE,KAAK+f,UAAU9b,GAAGqO,KAAO,GAE/C,OAAO,UAAY2xC,EAAS98C,KAAK,KAAO,OAe5Cu8C,EAAY7jD,WACVskD,qBAAsB,SAASvgD,GAE7B,IADA,GAAIwgD,GACGxgD,GAAM,CAEX,GADAwgD,EAAgBpkD,KAAK2hD,SAAW/nB,EAASh2B,EAAM5D,KAAK2hD,SAAU3hD,KAAK4jD,oBAAyC,KAAlB5jD,KAAKq/C,UAAmB,GAAQ,EACtHz7C,EAAKyJ,UAAYhP,EAAUY,cAAwD,SAAxC2E,EAAKuC,aAAa,oBAAkC8B,EAAMzJ,IAAI8Q,cAActP,KAAK2jD,SAAU//C,EAAK4N,QAAQtG,gBAAkBk5C,EACvK,MAAOxgD,EAETA,GAAOA,EAAKE,WAEd,OAAO,GAITugD,qBAAsB,SAASzgD,GAE7B,IADA,GAAI0gD,GACG1gD,GAAM,CAGX,GAFA0gD,EAAgBtkD,KAAKq/C,SAAWyC,EAAal+C,EAAM5D,KAAK6jD,qBAAsB,EAE1EjgD,EAAKyJ,UAAYhP,EAAUY,cAAwD,SAAxC2E,EAAKuC,aAAa,oBAAiC8B,EAAMzJ,IAAI8Q,cAActP,KAAK2jD,SAAU//C,EAAK4N,QAAQtG,gBAAkBo5C,EACtK,MAAO1gD,EAETA,GAAOA,EAAKE,WAEd,OAAO,GAGTygD,oBAAqB,SAAS3gD,GAC5B,GAAI4L,GAAWxP,KAAKmkD,qBAAqBvgD,GACrC4gD,GAAY,CAahB,OAXKh1C,GAMCxP,KAAKq/C,WACPmF,EAAY,UANdh1C,EAAWxP,KAAKqkD,qBAAqBzgD,GACjC4L,IACFg1C,EAAY,WASd14B,QAAWtc,EACX/J,KAAQ++C,IAKZC,UAAW,SAAS1kC,EAAWhX,GAU7B,IAAK,GAPY27C,GAKbvxC,EAAUwxC,EAPVpB,EAAYxjC,EAAU,GAAI6kC,EAAW7kC,EAAUA,EAAU1d,OAAS,GAElEwiD,KAEAC,EAAiBvB,EAAWwB,EAAeH,EAC3CI,EAAmB,EAAGC,EAAiBL,EAASviD,OAI3C4B,EAAI,EAAGW,EAAMmb,EAAU1d,OAAYuC,EAAJX,IAAWA,EACjDkP,EAAW4M,EAAU9b,GACrB0gD,EAAoB,KAChBxxC,GAAYA,EAASrP,aACvB6gD,EAAoB3kD,KAAKklD,6BAA6B/xC,EAASrP,YAAY,IAEzE6gD,GACGD,IACHA,EAAe,GAAIpB,GAAMqB,GACzBE,EAAOv+C,KAAKo+C,IAEdA,EAAa3kC,UAAUzZ,KAAK6M,GACxBA,IAAaowC,IACfuB,EAAiBJ,EAAajB,cAC9BuB,EAAmBF,EAAeziD,QAEhC8Q,IAAayxC,IACfG,EAAeL,EAAajB,cAC5BwB,EAAiBP,EAAaR,cAGhCQ,EAAe,IAInB,IAAGE,GAAYA,EAAS9gD,WAAY,CAClC,GAAIqhD,GAAenlD,KAAKklD,6BAA6BN,EAAS9gD,YAAY,EACtEqhD,KACGT,IACHA,EAAe,GAAIpB,GAAMsB,GACzBC,EAAOv+C,KAAKo+C,IAEdA,EAAa3kC,UAAUzZ,KAAK6+C,IAIhC,GAAIN,EAAOxiD,OAAQ,CACjB,IAAK4B,EAAI,EAAGW,EAAMigD,EAAOxiD,OAAYuC,EAAJX,IAAWA,EAC1C4gD,EAAO5gD,GAAG+/C,SAGZj7C,GAAMqS,SAAS0pC,EAAgBE,GAC/Bj8C,EAAMsS,OAAO0pC,EAAcE,KAI/BC,6BAA8B,SAASthD,EAAMwhD,GAC3C,GAEIC,GAFAC,EAAc1hD,EAAKyJ,UAAYhP,EAAUa,UACzCgO,EAAKo4C,EAAa1hD,EAAKE,WAAaF,EAEpC4P,EAAW4xC,EAAU,cAAgB,iBACzC,IAAIE,GAGF,GADAD,EAAezhD,EAAK4P,GAChB6xC,GAAgBA,EAAah4C,UAAYhP,EAAUa,UACrD,MAAOmmD,OAKT,IADAA,EAAen4C,EAAGsG,GACd6xC,GAAgBrlD,KAAKulD,qBAAqB3hD,EAAMyhD,GAClD,MAAOA,GAAaD,EAAU,aAAe,YAGjD,OAAO,OAGTG,qBAAsB,SAAS7C,EAAKC,GAClC,MAAO16C,GAAMzJ,IAAI8Q,cAActP,KAAK2jD,UAAWjB,EAAIlxC,SAAW,IAAItG,gBAC7DjD,EAAMzJ,IAAI8Q,cAActP,KAAK2jD,UAAWhB,EAAInxC,SAAW,IAAItG,gBAC3Du3C,EAAeC,EAAKC,IACpBG,EAAmCJ,EAAKC,IAG/C6C,gBAAiB,SAAS7lD,GACxB,GAAIuN,GAAKvN,EAAIuE,cAAclE,KAAK2jD,SAAS,GAOzC,OANI3jD,MAAK2hD,WACPz0C,EAAGygB,UAAY3tB,KAAK2hD,UAElB3hD,KAAKq/C,UACPnyC,EAAG1G,aAAa,QAASxG,KAAKq/C,UAEzBnyC,GAGTu4C,gBAAiB,SAAStyC,GACxB,GAAItE,GAASsE,EAASrP,UACtB,IAAgC,GAA5B+K,EAAOzB,WAAW/K,QAAe4F,EAAMzJ,IAAI8Q,cAActP,KAAK2jD,SAAU90C,EAAO2C,QAAQtG,eAErFlL,KAAK2hD,UACPhoB,EAAS9qB,EAAQ7O,KAAK2hD,SAAU3hD,KAAK4jD,oBAEnC5jD,KAAKq/C,UACPha,EAASx2B,EAAQ7O,KAAKq/C,SAAUr/C,KAAK6jD,wBAElC,CACL,GAAI32C,GAAKlN,KAAKwlD,gBAAgBv9C,EAAMzJ,IAAImS,YAAYwC,GACpDA,GAASrP,WAAWqM,aAAajD,EAAIiG,GACrCjG,EAAGC,YAAYgG,KAInBuyC,YAAa,SAASx4C,GACpB,MAAOjF,GAAMzJ,IAAI8Q,cAActP,KAAK2jD,SAAUz2C,EAAGsE,QAAQtG,gBACF,KAA/C7M,EAAUM,KAAK64B,OAAOtqB,EAAGygB,WAAW7tB,UAEjCoN,EAAG/G,aAAa,UAC0C,KAA3D9H,EAAUM,KAAK64B,OAAOtqB,EAAG/G,aAAa,UAAUrG,SAI5D6lD,eAAgB,SAASxyC,EAAUpK,EAAO68C,EAAmBC,GAC3D,GAAIC,GAAY,GAAsB,GAAQ,EAC1Ct2C,EAAWo2C,GAAqBC,EAChCE,GAAe,CACnB,KAAKh9C,EAAM0W,aAAajQ,GAAW,CAEjC,GAAIw2C,GAAgBj9C,EAAM0U,YACtBuoC,GAAclqC,WAAWtM,GAEzBw2C,EAAc9mC,eAAenW,EAAM6L,aAAc7L,EAAM0M,YAAcytC,EAAan6C,EAAM6L,aAAc7L,EAAM0M,aAC5G0tC,EAAY3zC,EAAUzG,EAAM6L,aAAc7L,EAAM0M,UAAWzV,KAAKkZ,WAChEnQ,EAAM4S,YAAYnM,IAElBw2C,EAAc9mC,eAAenW,EAAM4L,eAAgB5L,EAAMyM,cAAgB0tC,EAAan6C,EAAM4L,eAAgB5L,EAAMyM,eAClHhG,EAAW2zC,EAAY3zC,EAAUzG,EAAM4L,eAAgB5L,EAAMyM,YAAaxV,KAAKkZ,aAIhF4sC,GAAa9lD,KAAK4jD,oBACrB/pB,EAAYrqB,EAAUxP,KAAK4jD,oBAGzBkC,GAAa9lD,KAAK6jD,qBACpBkC,EAA0F,WAA1ExD,EAAoB/yC,EAAUxP,KAAKq/C,SAAUr/C,KAAK6jD,qBAEhE7jD,KAAK0lD,YAAYl2C,KAAcu2C,GACjClD,EAAuBrzC,IAI3By2C,aAAc,SAASl9C,GAErB,IAAK,GADDgX,GACKmmC,EAAKn9C,EAAM1G,OAAQ6jD,KAAO,CAGjC,GAFEnmC,EAAYhX,EAAMm9C,GAAIlmC,UAAU3hB,EAAUa,aAEvC6gB,EAAU1d,OACb,IACE,GAAIuB,GAAO5D,KAAKwlD,gBAAgBz8C,EAAMm9C,GAAItxC,aAAahE,cAGvD,OAFA7H,GAAMm9C,GAAI1nC,iBAAiB5a,OAC3B5D,MAAK8b,WAAW/S,EAAMm9C,GAAKtiD,GAE3B,MAAMnD,IAKV,GAFAsI,EAAMm9C,GAAI7pC,kBACV0D,EAAYhX,EAAMm9C,GAAIlmC,UAAU3hB,EAAUa,YACtC6gB,EAAU1d,OAAQ,CAGpB,IAAK,GAFD8Q,GAEKlP,EAAI,EAAGW,EAAMmb,EAAU1d,OAAYuC,EAAJX,IAAWA,EACjDkP,EAAW4M,EAAU9b,GAChBjE,KAAKukD,oBAAoBpxC,GAAU2Y,SACtC9rB,KAAKylD,gBAAgBtyC,EAIzBpK,GAAMm9C,GAAI9qC,SAAS2E,EAAU,GAAI,GACjC5M,EAAW4M,EAAUA,EAAU1d,OAAS,GACxC0G,EAAMm9C,GAAI7qC,OAAOlI,EAAUA,EAAS9Q,QAEhCrC,KAAKouB,WACPpuB,KAAKykD,UAAU1kC,EAAWhX,EAAMm9C,OAOxCC,YAAa,SAASp9C,GAEpB,IAAK,GADDgX,GAAW5M,EAAgD3D,EACtD02C,EAAKn9C,EAAM1G,OAAQ6jD,KAAO,CAGjC,GADAnmC,EAAYhX,EAAMm9C,GAAIlmC,UAAU3hB,EAAUa,YACtC6gB,EAAU1d,OACZ0G,EAAMm9C,GAAI7pC,kBACV0D,EAAYhX,EAAMm9C,GAAIlmC,UAAU3hB,EAAUa,gBACrC,CACL,GAAIS,GAAMoJ,EAAMm9C,GAAItxC,aAAahE,cAC7BhN,EAAOjE,EAAIyT,eAAe/U,EAAUS,gBACxCiK,GAAMm9C,GAAI5nC,WAAW1a,GACrBmF,EAAMm9C,GAAIpqC,WAAWlY,GACrBmc,GAAanc,GAGf,IAAK,GAAIK,GAAI,EAAGW,EAAMmb,EAAU1d,OAAYuC,EAAJX,IAAWA,EAC7C8E,EAAMm9C,GAAInlC,YACZ5N,EAAW4M,EAAU9b,GAErBuL,EAAWxP,KAAKukD,oBAAoBpxC,GACd,UAAlB3D,EAAS/J,KACXzF,KAAK2lD,eAAexyC,EAAUpK,EAAMm9C,IAAK,EAAO12C,EAASsc,SAChDtc,EAASsc,SAClB9rB,KAAK2lD,eAAexyC,EAAUpK,EAAMm9C,GAAK12C,EAASsc,SAK7C,IAAPlnB,EACF5E,KAAK8b,WAAW/S,EAAMm9C,GAAKnmC,EAAU,KAErChX,EAAMm9C,GAAI9qC,SAAS2E,EAAU,GAAI,GACjC5M,EAAW4M,EAAUA,EAAU1d,OAAS,GACxC0G,EAAMm9C,GAAI7qC,OAAOlI,EAAUA,EAAS9Q,QAEhCrC,KAAKouB,WACPpuB,KAAKykD,UAAU1kC,EAAWhX,EAAMm9C,OAOxCpqC,WAAY,SAAS/S,EAAOnF,GAC1B,GAAIo4C,GAAkBp4C,EAAKyJ,WAAahP,EAAUY,aAC9C+jB,EAAkB,eAAiBpf,GAAOA,EAAKof,aAAc,EAC7DvE,EAAkBu9B,EAAYp4C,EAAK6O,UAAY7O,EAAK0O,KACpDq6B,EAA+B,KAAZluB,GAAkBA,IAAYpgB,EAAUS,eAE/D,IAAI6tC,GAAWqP,GAAah5B,EAE1B,IAAMpf,EAAK6O,UAAYpU,EAAUS,gBAAmB,MAAM2B,IAE5DsI,EAAM8S,mBAAmBjY,GACrB+oC,GAAWqP,EACbjzC,EAAM6S,UAAS,GACN+wB,IACT5jC,EAAM0S,cAAc7X,GACpBmF,EAAM4S,YAAY/X,KAItBwiD,uBAAwB,SAASjzC,EAAUpK,GACzC,GAAImZ,GAAYnZ,EAAM0U,YACtByE,GAAUrG,mBAAmB1I,EAE7B,IAAImM,GAAoB4C,EAAU7C,aAAatW,GAC3Cgb,EAAOzE,EAAoBA,EAAkBtd,WAAa,EAG9D,OAFAkgB,GAAUpO,SAEHiQ,GAGTsiC,iBAAkB,SAASt9C,GAKzB,IAAK,GAFDyG,GAAyBuQ,EAFzB1Q,KACAi3C,EAAc,OAGTJ,EAAKn9C,EAAM1G,OAAQ6jD,KAAO,CAGjC,GADAnmC,EAAYhX,EAAMm9C,GAAIlmC,UAAU3hB,EAAUa,aACrC6gB,EAAU1d,OAGb,MAFAmN,GAAWxP,KAAKukD,oBAAoBx7C,EAAMm9C,GAAIvxC,gBAAgBmX,QAEvD,GACLwpB,UAAa9lC,GACb+2C,SAAYD,IACV,CAGN,KAAK,GAAmCE,GAA/BviD,EAAI,EAAGW,EAAMmb,EAAU1d,OAA0BuC,EAAJX,IAAWA,EAC/DuiD,EAAexmD,KAAKomD,uBAAuBrmC,EAAU9b,GAAI8E,EAAMm9C,IAC/D12C,EAAWxP,KAAKukD,oBAAoBxkC,EAAU9b,IAAI6nB,QAC9Ctc,GAA4B,IAAhBg3C,GACdn3C,EAAU/I,KAAKkJ,GAE2C,IAAtDnR,EAAUG,IAAIigC,aAAajvB,GAAU,GAAMnN,OAC7CikD,EAAc,OACW,SAAhBA,IACTA,EAAc,WAEN92C,IACV82C,EAAc,WAMpB,MAAQj3C,GAAgB,QACtBimC,SAAYjmC,EACZk3C,SAAYD,IACV,GAGNG,YAAa,SAAS19C,GACpB,GACI29C,GADAC,EAAY3mD,KAAKqmD,iBAAiBt9C,EAGlC49C,GACyB,SAAvBA,EAAUJ,SACZvmD,KAAKmmD,YAAYp9C,GACe,WAAvB49C,EAAUJ,UACnBG,EAAoBpE,EAAoBqE,EAAUrR,SAAUt1C,KAAK2jD,SAAU3jD,KAAKq/C,SAAUr/C,KAAK2hD,UAC/F3hD,KAAKmmD,YAAYp9C,GACZ29C,GACH1mD,KAAKimD,aAAal9C,KAIfu5C,EAAoBqE,EAAUrR,SAAUt1C,KAAK2jD,SAAU3jD,KAAKq/C,SAAUr/C,KAAK2hD,WAC9E3hD,KAAKmmD,YAAYp9C,GAEnB/I,KAAKimD,aAAal9C,IAGpB/I,KAAKimD,aAAal9C,KAKxB1K,EAAUO,UAAU8kD,YAAcA,GAEjCrlD,UAAW4J,OAOd5J,UAAUuoD,SAAW53B,KAAKviB,QAExB6N,YAAa,SAAS6xB,GACpBnsC,KAAKmsC,OAAWA,EAChBnsC,KAAKo2C,SAAWjK,EAAOiK,SACvBp2C,KAAKL,IAAWK,KAAKo2C,SAASz2C,KAUhCknD,QAAS,SAAS3zB,GAChB,MAAO70B,WAAUgyB,QAAQuC,gBAAgB5yB,KAAKL,IAAKuzB,IAWrDpC,KAAM,SAASoC,EAAStD,GACtB,GAAIjjB,GAAUtO,UAAUE,SAAS20B,GAC7B5X,EAAUjd,UAAUM,KAAKu2B,MAAMpyB,WAAWrB,MAC1C+C,EAAUmI,GAAOA,EAAImkB,KACrB5pB,EAAU,IAWd,IAPIlH,KAAKo2C,SAAS5J,sBAAwBnuC,UAAUM,KAAKu2B,OAAO,eAAgB,uBAAwB,6BAA6B5wB,SAAS4uB,KAC5IlzB,KAAKo2C,SAAStqB,QAAQrZ,UAAY,GAClCzS,KAAKo2C,SAASx3C,UAAUkd,WAAW9b,KAAKo2C,SAAStqB,UAGnD9rB,KAAKmsC,OAAO7V,KAAK,0BAEb9xB,EACF8W,EAAKiyB,QAAQvtC,KAAKo2C,UAClBlvC,EAAS1C,EAAOtB,MAAMyJ,EAAK2O,OAE3B,KAEEpU,EAASlH,KAAKL,IAAI6xB,YAAY0B,GAAS,EAAOtD,GAC9C,MAAMnvB,IAIV,MADAT,MAAKmsC,OAAO7V,KAAK,yBACVpvB,GAaT4/C,MAAO,SAAS5zB,GACd,GAAIvmB,GAAUtO,UAAUE,SAAS20B,GAC7B5X,EAAUjd,UAAUM,KAAKu2B,MAAMpyB,WAAWrB,MAC1C+C,EAAUmI,GAAOA,EAAIm6C,KACzB,IAAItiD,EAEF,MADA8W,GAAKiyB,QAAQvtC,KAAKo2C,UACX5xC,EAAOtB,MAAMyJ,EAAK2O,EAEzB,KAEE,MAAOtb,MAAKL,IAAI+xB,kBAAkBwB,GAClC,MAAMzyB,GACN,OAAO,IAMbsmD,WAAY,SAAS7zB,GACnB,GAAIvmB,GAAUtO,UAAUE,SAAS20B,GAC7B5X,EAAUjd,UAAUM,KAAKu2B,MAAMpyB,WAAWrB,MAC1C+C,EAAUmI,GAAOA,EAAIo6C,UACzB,OAAIviD,IACF8W,EAAKiyB,QAAQvtC,KAAKo2C,UACX5xC,EAAOtB,MAAMyJ,EAAK2O,KAElB,KAIX,SAASjd,GACTA,EAAUE,SAASyoD,MACjBl2B,KAAM,SAASslB,EAAUljB,GACvB70B,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,MAGpE4zB,MAAO,SAAS1Q,EAAUljB,GAMxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,QAGpE70B,WACD,SAAUA,GAKT,QAAS8oD,GAAQ/Q,EAAU3U,GACzB,GAIIp/B,GACA+kD,EACAl/B,EACAm/B,EACA1a,EACA2a,EACA1oB,EACA2oB,EACAnqB,EAZAz9B,EAAkBy2C,EAASz2C,IAC3B6nD,EAAkB,qBAAuB,GAAIn6B,MAC7Co6B,EAAkB,sBAClBxjD,EAAkB,CAatB,KAHA5F,EAAUE,SAAS0oD,aAAan2B,KAAKslB,EAAUsR,EAAOC,EAAWH,EAAWC,EAAiBC,EAAOA,GAAO,GAAM,GACjHN,EAAUznD,EAAIqE,iBAAiB2jD,EAAY,IAAMH,GACjDnlD,EAAU+kD,EAAQ/kD,OACTA,EAAF4B,EAAUA,IAAK,CACpBikB,EAASk/B,EAAQnjD,GACjBikB,EAAO0pB,gBAAgB,QACvB,KAAKxU,IAAKqE,GAEE,SAANrE,GACFlV,EAAO1hB,aAAa42B,EAAGqE,EAAWrE,IAKxCkqB,EAAyBp/B,EACV,IAAX7lB,IACFu8B,EAAcpgC,EAAIsuC,eAAe5kB,GACjCm/B,IAAoBn/B,EAAO0J,cAAc,KACzC+a,EAA0B,KAAhB/N,GAAsBA,IAAgBvgC,EAAUS,iBACrDuoD,GAAmB1a,IACtBnuC,EAAIquC,eAAe3kB,EAAQuZ,EAAW1d,MAAQmE,EAAO0e,MACrD2gB,EAAa5nD,EAAIyT,eAAe,KAChCgjC,EAASx3C,UAAUy8C,SAASnzB,GAC5B1pB,EAAIw8B,OAAOusB,GAAYtsB,MAAM/S,GAC7Bo/B,EAAyBC,IAG7BnR,EAASx3C,UAAUy8C,SAASiM,GAI9B,QAASM,GAAaxR,EAAUgR,EAAS3lB,GAEvC,IAAK,GADDomB,GACK3lD,EAAIklD,EAAQ/kD,OAAQH,KAAM,CAGjC2lD,EAAWT,EAAQllD,GAAGu/B,UACtB,KAAK,GAAIqmB,GAAKD,EAASxlD,OAAQylD,KAC7BV,EAAQllD,GAAG0vC,gBAAgBiW,EAAStiD,KAAKuiD,GAAIniD,KAI/C,KAAK,GAAIy3B,KAAKqE,GACRA,EAAW/0B,eAAe0wB,IAC5BgqB,EAAQllD,GAAGsE,aAAa42B,EAAGqE,EAAWrE,KA9D9C,GAAIsqB,GACAC,EAAY,IACZnpD,EAAYH,EAAUG,GAmE1BH,GAAUE,SAASwpD,YAajBj3B,KAAM,SAASslB,EAAUljB,EAAStD,GAChC,GAAIw3B,GAAUpnD,KAAK8mD,MAAM1Q,EAAUljB,EACnC,IAAIk0B,EAAS,CAEX,KAAMx3B,IAAUA,EAAMgX,OAA4B,OAAnBwgB,EAAQ/kD,QAAsC+tB,SAAnBg3B,EAAQ/kD,QAAwB+kD,EAAQ/kD,OAAS,EAC3G,CACE,IAAI,GAAI4B,GAAE,EAAGA,EAAImjD,EAAQ/kD,OAAQ4B,IAE/B5F,EAAUG,IAAI6jC,OAAO+kB,EAAQnjD,GAE/B,QAIFmyC,EAASx3C,UAAU2/C,kBAAkB,WACnCqJ,EAAaxR,EAAUgR,EAASx3B,SAI9BA,IAASA,EAAMgX,OACjBhX,EAA0B,gBAAZ,GAAuBA,GAAUgX,KAAMhX,GACrDu3B,EAAQ/Q,EAAUxmB,KAKxBk3B,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,QAGnE70B,WACF,SAAUA,GAGT,QAAS2pD,GAAc5R,EAAUgR,GAM/B,IALA,GAEIl/B,GACA+/B,EACArpB,EAJAv8B,EAAU+kD,EAAQ/kD,OAClB4B,EAAU,EAIL5B,EAAF4B,EAAUA,IACfikB,EAAck/B,EAAQnjD,GACtBgkD,EAAczpD,EAAIo/B,iBAAiB1V,GAAU6U,MAAO,SACpD6B,EAAcpgC,EAAIsuC,eAAe5kB,GAI7B0W,EAAY5U,MAAMxrB,EAAI05B,SAASK,eAAiB0vB,EAElDA,EAAczpD,EAAI+pC,cAAcrgB,EAAQ,QAExC1pB,EAAIkqC,sBAAsBxgB,GAnBhC,GAAI1pB,GAAMH,EAAUG,GAwBpBH,GAAUE,SAAS2pD,YASjBp3B,KAAM,SAASslB,EAAUljB,GACvB,GAAIk0B,GAAUpnD,KAAK8mD,MAAM1Q,EAAUljB,EAC/Bk0B,IACFhR,EAASx3C,UAAU2/C,kBAAkB,WACnCyJ,EAAc5R,EAAUgR,MAK9BN,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,QAGnE70B,WAMH,SAAUA,GACR,GAAIsoC,GAAU,gCAEdtoC,GAAUE,SAASq5C,UACjB9mB,KAAM,SAASslB,EAAUljB,EAASi1B,GAChC9pD,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,OAAQ,qBAAuBi1B,EAAMxhB,IAGzGmgB,MAAO,SAAS1Q,EAAUljB,EAASi1B,GACjC,MAAO9pD,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,OAAQ,qBAAuBi1B,EAAMxhB,MAGxGtoC,WAEH,SAAUA,GACR,GAAIsoC,GAAU,mCAEdtoC,GAAUE,SAAS6pD,eACjBt3B,KAAM,SAASslB,EAAUljB,EAASi1B,GAChCA,EAAwB,gBAAV,GAAsBA,EAAKA,KAAOA,EAC3C,QAAUpiD,KAAKoiD,IAClB9pD,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,QAAQ,GAAO,EAAO,aAAei1B,EAAMxhB,IAIjHmgB,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,QAAQ,GAAO,EAAO,YAAayT,IAGrGogB,WAAY,SAAS3Q,EAAUljB,GAC7B,GACI8jB,GADAqR,EAAKroD,KAAK8mD,MAAM1Q,EAAUljB,EAO9B,OAHIm1B,IAAMhqD,EAAUM,KAAKsxB,OAAOo4B,GAAIvmD,YAChCumD,EAAKA,EAAG,IAERA,IACFrR,EAAWqR,EAAGliD,aAAa,UAElB9H,EAAUI,OAAO+6C,YAAYS,cAAcjD,IAG/C,KAGV34C,WAMH,SAAUA,GACR,GAAIsoC,GAAU,0BAEdtoC,GAAUE,SAAS+pD,WACjBx3B,KAAM,SAASslB,EAAUljB,EAASykB,GAChCt5C,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,OAAQ,iBAAmBykB,EAAOhR,IAGtGmgB,MAAO,SAAS1Q,EAAUljB,EAASykB,GACjC,MAAOt5C,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,OAAQ,iBAAmBykB,EAAOhR,MAGrGtoC,WAMH,SAAUA,GACR,GAAIsoC,GAAU,+BAEdtoC,GAAUE,SAASgqD,gBACjBz3B,KAAM,SAASslB,EAAUljB,EAASykB,GAChC,GACI6Q,GADAC,EAAapqD,EAAUI,OAAO+6C,YAAYC,WAA6B,gBAAX,GAAuB,SAAW9B,EAAMA,MAAQ,SAAWA,EAAO,QAG9H8Q,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,MAE9GpqD,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,QAAQ,GAAO,EAAOs1B,EAAW7hB,KAIvGmgB,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,QAAQ,GAAO,EAAO,QAASyT,IAGjGogB,WAAY,SAAS3Q,EAAUljB,EAASrqB,GACtC,GACI6/C,GADAL,EAAKroD,KAAK8mD,MAAM1Q,EAAUljB,EAO9B,OAJIm1B,IAAMhqD,EAAUM,KAAKsxB,OAAOo4B,GAAIvmD,YAClCumD,EAAKA,EAAG,IAGNA,IACFK,EAAWL,EAAGliD,aAAa,SACvBuiD,GACEA,IACFr1C,IAAMhV,EAAUI,OAAO+6C,YAAYC,WAAWiP,EAAU,SACjDrqD,EAAUI,OAAO+6C,YAAYQ,aAAa3mC,IAAKxK,KAIrD,KAIVxK,WAEH,SAAUA,GACR,GAAIsoC,GAAU,0CAEdtoC,GAAUE,SAASoqD,cACjB73B,KAAM,SAASslB,EAAUljB,EAASykB,GAChC,GACI6Q,GADAC,EAAapqD,EAAUI,OAAO+6C,YAAYC,WAA6B,gBAAX,GAAuB,oBAAsB9B,EAAMA,MAAQ,oBAAsBA,EAAO,mBAGpJ8Q,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,MAEzHpqD,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,QAAQ,GAAO,EAAOs1B,EAAW7hB,KAIvGmgB,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,QAAQ,GAAO,EAAO,mBAAoByT,IAG5GogB,WAAY,SAAS3Q,EAAUljB,EAASrqB,GACtC,GACI6/C,GADAL,EAAKroD,KAAK8mD,MAAM1Q,EAAUljB,GAE1B7f,GAAM,CAMV,OAJIg1C,IAAMhqD,EAAUM,KAAKsxB,OAAOo4B,GAAIvmD,YAClCumD,EAAKA,EAAG,IAGNA,IACFK,EAAWL,EAAGliD,aAAa,WAEzBkN,EAAMhV,EAAUI,OAAO+6C,YAAYC,WAAWiP,EAAU,oBACjDrqD,EAAUI,OAAO+6C,YAAYQ,aAAa3mC,EAAKxK,KAGnD,KAIVxK,WAMH,SAAUA,GASR,QAASuqD,GAAQxS,GAMf,IAAK,GALDl9B,GAAYk9B,EAAStqB,QACrB+8B,EAAc3vC,EAAUlV,iBAAiB8kD,gBACzClM,EAAc1jC,EAAUlV,iBAAiBoyC,EAAShsC,OAAO2+C,8BACzDzT,EAAWj3C,EAAUM,KAAKu2B,MAAM2zB,GAAazzB,QAAQwnB,GAEhD34C,EAAIqxC,EAASjzC,OAAQ4B,KACE,KAA1BqxC,EAASrxC,GAAGwO,WACd6iC,EAASrxC,GAAGH,WAAW6Y,YAAY24B,EAASrxC,IAKlD,QAAS+kD,GAAgB5S,GACvB,MAAOA,GAAShsC,OAAO0+B,cAAgB,MAAQ,IAIjD,QAASmgB,GAAerlD,EAAMsV,EAAWgwC,GAIvC,IAHA,GAAI95C,GAAIxL,EACJssB,EAAQ,KAEL9gB,GAAK8J,GAAa9J,IAAM8J,GACV,IAAf9J,EAAE/B,UAAkB+B,EAAE/L,QAAQ6lD,EAAYJ,eAAiBK,KAC7Dj5B,EAAQ9gB,GAEVA,EAAIA,EAAEtL,UAGR,OAAOosB,GAMT,QAASk5B,GAAsBt9B,EAAS9e,EAASopC,GAwB/C,MAtBKtqB,KACHA,EAAUsqB,EAASz2C,IAAIuE,cAAc8I,EAAQ/B,UAAY+9C,EAAgB5S,IAEzEtqB,EAAQ3e,YAAYipC,EAASz2C,IAAIyT,eAAe/U,EAAUS,mBAGxDkO,EAAQ/B,UAAY6gB,EAAQ7gB,WAAa+B,EAAQ/B,WACnD6gB,EAAUttB,EAAI+pC,cAAczc,EAAS9e,EAAQ/B,WAI3C+B,EAAQgwB,cACVlR,EAAQ6B,UAAY7B,EAAQ6B,UAAU1tB,QAAQ+M,EAAQgwB,YAAa,KAEjEhwB,EAAQ2gB,WACV7B,EAAQ1nB,UAAUC,IAAI2I,EAAQ2gB,WAG5B3gB,EAAQiwB,eAA+C,mBAAvBjwB,GAAQswB,aAC1CxR,EAAQ0B,MAAMnvB,EAAUgyB,QAAQ4E,YAAYjoB,EAAQiwB,gBAAkBjwB,EAAQswB,YAGzExR,EAKT,QAASu9B,GAAyBv9B,EAAS9e,EAASopC,GAClD,GAAI5oB,EAEAxgB,GAAQiwB,gBACVnR,EAAQ0B,MAAMnvB,EAAUgyB,QAAQ4E,YAAYjoB,EAAQiwB,gBAAkB,IAEpEjwB,EAAQ2gB,WACV7B,EAAQ1nB,UAAU2C,OAAOiG,EAAQ2gB,WAG/B3gB,EAAQgwB,cACVlR,EAAQ6B,UAAY7B,EAAQ6B,UAAU1tB,QAAQ+M,EAAQgwB,YAAa,KAI/B,OAAlClR,EAAQ3lB,aAAa,UAA8D,KAAzC2lB,EAAQ3lB,aAAa,SAASrG,QAC1EgsB,EAAQ8lB,gBAAgB,SAGtB5kC,EAAQ/B,UAAY6gB,EAAQ7gB,WAAa+B,EAAQ/B,WACnDuiB,EAAQ1B,EAAQ3lB,aAAa,SACxBqnB,GAA0B,KAAjBA,EAAM1tB,OAGlBgsB,EAAUttB,EAAI+pC,cAAczc,EAASk9B,EAAgB5S,IAFrD53C,EAAI6jC,OAAOvW,IAOuB,OAAlCA,EAAQ3lB,aAAa,UAA8D,KAAzC2lB,EAAQ3lB,aAAa,SAASrG,QAC1EgsB,EAAQ8lB,gBAAgB,SAM5B,QAAS0X,GAAwBx9B,GAG/B,IAAK,GAFDy9B,GAAgBz9B,EAAQ9nB,iBAAiB8kD,oBAEpC7kD,EAAIslD,EAAclnD,OAAQ4B,KAC5BslD,EAActlD,GAAGiM,aAAyD,IAA1Cq5C,EAActlD,GAAGiM,YAAY7C,UAA4D,OAA1Ck8C,EAActlD,GAAGiM,YAAYjF,UACrC,MAArEs+C,EAActlD,GAAGwO,WAAa82C,EAActlD,GAAGo1B,WAAWv5B,QAC7DypD,EAActlD,GAAGH,WAAWqM,aAAao5C,EAActlD,GAAG2M,cAAc1M,cAAc,MAAOqlD,EAActlD,GAAGiM,aAGlH7R,EAAUG,IAAI6jC,OAAOknB,EAActlD,IAKvC,QAASulD,GAAiBzgD,EAAOqtC,GAC/B,GAAIxyC,EAEJ,OAAImF,GAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAetH,UAAkBtE,EAAM4L,iBAAmB5L,EAAM6L,kBAC5F7L,EAAM4L,eAAezC,aAAenJ,EAAM4L,eAAegK,WAAiC,IAApB5V,EAAM0M,WAC1E1M,EAAM4L,iBAAmByhC,EAAStqB,UACpC/iB,EAAMyS,eAAezS,EAAM4L,gBAC3B5L,EAAM4S,YAAY5S,EAAM6L,gBAM1B7L,EAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAetH,UAAkD,IAAhCtE,EAAM6L,aAAavH,cAChFtE,EAAM4L,eAAezC,aAAenJ,EAAM6L,cAAoC,IAApB7L,EAAM0M,WAC9D1M,EAAM4L,iBAAmByhC,EAAStqB,SACpC/iB,EAAM4S,YAAY5S,EAAM4L,iBAM1B5L,EAAM6L,cAAgD,IAAhC7L,EAAM6L,aAAavH,UAAoD,IAAlCtE,EAAM4L,eAAetH,cAC9EtE,EAAM6L,aAAa1C,aAAenJ,EAAM4L,gBAAsC,IAApB5L,EAAM0M,WAC9D1M,EAAM6L,eAAiBwhC,EAAStqB,SAClC/iB,EAAMyS,eAAezS,EAAM6L,eAO7B7L,EAAM4L,gBAAoD,IAAlC5L,EAAM4L,eAAetH,UAAkBtE,EAAM4L,iBAAmB5L,EAAM6L,cAAgB7L,EAAM4L,eAAe7Q,gBACjIiF,EAAM4L,eAAe7Q,WAAWoO,aAAenJ,EAAM4L,gBAAkB5L,EAAM0M,WAAa1M,EAAM6L,aAAavS,QAAgC,IAAtB0G,EAAMyM,cAC/H5R,EAAOmF,EAAM4L,eAAe7Q,WACxBF,IAASwyC,EAAStqB,UACpB/iB,EAAMyS,eAAe5X,GACrBmF,EAAM4S,YAAY/X,MALxB,OAcF,QAAS6lD,GAAqB1gD,EAAOiE,EAAS08C,EAAatT,GACzD,GAAIuT,GAAiB,EAAYtrD,EAAUM,KAAKsxB,OAAOjjB,GAASuR,OAAM,GAAQ,IAC1EorC,KACFA,EAAe1+C,SAAW0+C,EAAe1+C,UAAYy+C,GAAeV,EAAgB5S,IAEtFoT,EAAiBzgD,EAAOqtC,EAExB,IAMIwT,GAASC,EAAQ9T,EANjBzzC,EAAIyG,EAAM0U,aACVqsC,EAAsBxnD,EAAEqS,eACxB8J,EAAUnc,EAAE2Z,kBACZrJ,EAAWwjC,EAASz2C,IAAIkT,yBACxBk3C,GAAkBJ,GAAmC,eAAhBD,GAAgCC,EAAe1+C,UAAwC,eAA5B0+C,EAAe1+C,SAC/G++C,EAAkBf,EAAea,EAAqB1T,EAAStqB,QAASi+B,EAG5E,IAAI/8C,GAAWA,EAAQ/B,UAAiC,eAArB+B,EAAQ/B,SAA2B,CACpE,GAAIg/C,GAAQb,EAAsB,KAAMp8C,EAASopC,EACjD6T,GAAM98C,YAAYsR,GAClB7L,EAASzF,YAAY88C,GACrBJ,GAAUI,OACL,CAEL,GAAKxrC,EAAQvM,WAIX,KAAMuM,EAAQvM,YAEZ,GAAmC,GAA/BuM,EAAQvM,WAAW7E,UAAiBoR,EAAQvM,WAAW7O,QAAQylD,gBAEjE,GAAI97C,EAEFo8C,EAAsB3qC,EAAQvM,WAAYlF,EAASopC,GAC/C33B,EAAQvM,WAAW7O,QAAQ8lD,IAC7BG,EAAwB7qC,EAAQvM,YAElCU,EAASzF,YAAYsR,EAAQvM,gBAExB,CAELo3C,EAAwB7qC,EAAQvM,YAChC6jC,EAAW13C,EAAUG,IAAI6jC,OAAO5jB,EAAQvM,WACxC,KAAK,GAAI9P,GAAI,EAAGysC,EAAOkH,EAAS1zC,OAAYwsC,EAAJzsC,EAAUA,IAChDwQ,EAASzF,YAAY4oC,EAAS3zC,GAG5BwQ,GAASxF,WAAW/K,OAAS,GAC/BuQ,EAASzF,YAAYipC,EAASz2C,IAAIuE,cAAc,WAKpD,IAAI8I,EAAS,CAGX,IADA48C,EAAUR,EAAsB,KAAMO,EAAgBvT,GAChD33B,EAAQvM,aAA+C,IAAhCuM,EAAQvM,WAAW7E,WAAmBoR,EAAQvM,WAAW7O,QAAQylD,kBACzD,GAA/BrqC,EAAQvM,WAAW7E,UAAiBu8C,EAAQvmD,QAAQ8lD,IACtDG,EAAwB7qC,EAAQvM,YAElC03C,EAAQz8C,YAAYsR,EAAQvM,WAE9BU,GAASzF,YAAYy8C,OAIc,IAA/BnrC,EAAQvM,WAAW7E,UACrBi8C,EAAwB7qC,EAAQvM,YAElCU,EAASzF,YAAYsR,EAAQvM,gBA7CnCU,GAASzF,YAAYi8C,EAAsB,KAAMp8C,EAASopC,GAoD5DyT,GAASxrD,EAAUM,KAAKu2B,MAAMtiB,EAASxF,YAAY3L,MAWrD,MARIuoD,GAEF5T,EAASx3C,UAAUqgD,oBAAoB+K,EAAiBp3C,GAGxDtQ,EAAEgc,WAAW1L,GAGRi3C,EAIT,QAASK,GAAuBp+B,EAASsqB,GACvC,GAAItyC,GAAazF,EAAUG,IAAIo/B,iBAAiB9R,GAC1CiR,MAAO+rB,gBACN,KAAM1S,EAAStqB,QAEtB,OAAO,GAAehoB,EAAWmH,SAAW,KAtQ9C,GAAIzM,GAAMH,EAAUG,IAGhB2qD,EAA4B,gCAC5BL,gBAAiB,kDAqQrBzqD,EAAUE,SAASu0B,aACjBhC,KAAM,SAASslB,EAAUljB,EAASlmB,GAChC,GACiB2a,GAAQ5e,EAAO8F,EAAQ4R,EAAUqmC,EAD9CqD,IAWJ,IAPuB,gBAAZn9C,KACTA,GACE/B,SAAU+B,EAAQixB,gBAKlBjxB,GAAWA,EAAQnI,SACrBiiD,EAAQ9mD,KAAK8mD,MAAM1Q,EAAUljB,EAASlmB,IAC3B,CACTyT,EAAWxY,MAAMumB,cAAc4nB,EAAS12C,IACxC,KAAK,GAAI09B,KAAK0pB,GACZuC,EAAyBvC,EAAM1pB,GAAIpwB,EAASopC,GAMlD,IAAK0Q,EAAO,CAEN1Q,EAASx3C,UAAUgkB,gBACrB/T,EAASxQ,EAAUG,IAAIo/B,iBAAiBwY,EAASx3C,UAAUy9C,eAAe,GAAG1nC,gBAC3EooB,MAAO+rB,gBACN,KAAM1S,EAAStqB,SACdjd,GACF4R,EAAWxY,MAAMumB,cAAc4nB,EAAS12C,KACxCqJ,EAAQqtC,EAASx3C,UAAUkM,cAC3B/B,EAAM+S,WAAWjN,GACjBunC,EAASx3C,UAAUi8C,aAAa9xC,IACtBqtC,EAASzJ,YACnBlsB,EAAWxY,MAAMumB,cAAc4nB,EAAS12C,KACxC02C,EAASx3C,UAAUkhD,eAKvBn4B,EAASyuB,EAASx3C,UAAUy9C,cAC5B,KAAK,GAAIp4C,GAAI0jB,EAAOtlB,OAAQ4B,KAC1BkmD,EAAmBA,EAAiBhnD,OAAOsmD,EAAqB9hC,EAAO1jB,GAAI+I,EAASk9C,EAAuBviC,EAAO1jB,GAAG0Q,eAAgByhC,GAAWA,IAMpJwS,EAAQxS,GAEJ31B,EACFxY,MAAM0mB,iBAAiBlO,IAEvB1X,EAAQqtC,EAASx3C,UAAUkM,cAC3B/B,EAAMyS,eAAe2uC,EAAiB,IACtCphD,EAAM4S,YAAYwuC,EAAiBA,EAAiB9nD,OAAS,IAC7D+zC,EAASx3C,UAAUi8C,aAAa9xC,IAGlC1K,EAAUG,IAAIq4C,sBAAsBT,EAAStqB,UAK/Cg7B,MAAO,SAAS1Q,EAAUljB,EAAS4J,GAGP,gBAAfA,KACTA,GACEC,MAAOD,GAWX,KAAK,GAHDjuB,GAJAhL,EAAQuyC,EAASx3C,UAAU89C,eAAe,SAAW5wB,GACnD,MAAOztB,GAAUG,IAAI69B,QAAQvQ,GAAS/lB,KAAK+2B,IAAgBC,MAAO+rB,kBACjErmD,KAAKzC,OACRoqD,EAAchU,EAASx3C,UAAUw9C,sBAI5Bn4C,EAAI,EAAGs4C,EAAO6N,EAAY/nD,OAAYk6C,EAAJt4C,EAAUA,IACnD4K,EAASrQ,EAAIo/B,iBAAiBwsB,EAAYnmD,GAAI64B,IAAgBC,MAAO+rB,gBAAkB,KAAM1S,EAAStqB,SAClGjd,GAAoC,KAA1BhL,EAAM5B,QAAQ4M,IAC1BhL,EAAMyC,KAAKuI,EAIf,OAAyB,KAAjBhL,EAAMxB,QAAgB,EAAQwB,KAIzCxF,WASF,SAASA,GACRA,EAAUE,SAAS8rD,YAEjBv5B,KAAM,SAASslB,EAAUljB,EAASo3B,GAChC,GACI1kD,GAAMmD,EAAOwhD,EADbC,EAAMxqD,KAAK8mD,MAAM1Q,EAEjBoU,GAEFpU,EAASx3C,UAAU2/C,kBAAkB,WACnC34C,EAAO4kD,EAAI54B,cAAc,QACzBvzB,EAAUG,IAAIkqC,sBAAsB8hB,GAChC5kD,GACFvH,EAAUG,IAAIkqC,sBAAsB9iC,MAKxCmD,EAAQqtC,EAASx3C,UAAUg8C,WAC3B2P,EAAgBxhD,EAAMkT,kBACtBuuC,EAAMpU,EAASz2C,IAAIuE,cAAc,OACjC0B,EAAOwwC,EAASz2C,IAAIuE,cAAc,QAE9BomD,IACF1kD,EAAK+nB,UAAY28B,GAGnBE,EAAIr9C,YAAYvH,GAChBA,EAAKuH,YAAYo9C,GACjBxhD,EAAMuV,WAAWksC,GACjBpU,EAASx3C,UAAUkd,WAAW0uC,KAIlC1D,MAAO,SAAS1Q,GACd,GAAIqU,GAAerU,EAASx3C,UAAUs9C,iBACtC,OAAIuO,IAAgBA,EAAax/C,UAAqC,OAAzBw/C,EAAax/C,UACtDw/C,EAAav4C,YAAcu4C,EAAav4C,WAAWjH,UAAgD,QAApCw/C,EAAav4C,WAAWjH,SAClFw/C,EAEApsD,EAAUG,IAAIo/B,iBAAiB6sB,GAAgB1tB,MAAO,gBAInE1+B,WAkCF,SAAUA,GAUR,QAASqsD,GAAal5C,GACpB,GAAIm5C,GAAQC,EAAcp5C,EAC1B,OAAOm5C,IAASn5C,EAAQtG,cAAey/C,EAAMz/C,gBAAkBsG,EAAQtG,eAGzE,QAAS2/C,GAAYr5C,EAASmc,EAAWqP,EAAaqiB,EAAUyL,EAAa5xC,GAC3E,GAAI6xC,GAAav5C,CAajB,OAXImc,KACFo9B,GAAc,IAAMp9B,GAElB0xB,IACF0L,GAAc,IAAM1L,GAGjB2L,EAAYD,KACfC,EAAYD,GAAc,GAAI1sD,GAAUO,UAAU8kD,YAAYgH,EAAal5C,GAAUmc,EAAWqP,GAAa,EAAMqiB,EAAUyL,EAAa5xC,IAGrI8xC,EAAYD,GA5BrB,GACIH,IACEK,OAAU,IACVC,GAAU,IACVC,EAAU,SACVlnD,EAAU,MAEZ+mD,IAwBJ3sD,GAAUE,SAAS0oD,cACjBn2B,KAAM,SAASslB,EAAUljB,EAAS1hB,EAASmc,EAAWqP,EAAaqiB,EAAUyL,EAAaM,EAAmBC,GAC3G,GAAItiD,GAAQqtC,EAASx3C,UAAUkM,cAC3BwgD,EAAYlV,EAASx3C,UAAUy9C,cAEnC,OAAKiP,IAAiC,GAApBA,EAAUjpD,QAG5B+zC,EAASx3C,UAAUwmB,eAAewE,kBAElCihC,EAAYr5C,EAASmc,EAAWqP,EAAaqiB,EAAUyL,EAAa1U,EAAStqB,SAAS26B,YAAY6E,QAE7FF,EAYOC,GACVjV,EAASxV,WAZT73B,EAAMqS,SAASkwC,EAAU,GAAG32C,eAAiB22C,EAAU,GAAG91C,aAC1DzM,EAAMsS,OACJiwC,EAAUA,EAAUjpD,OAAS,GAAGuS,aAChC02C,EAAUA,EAAUjpD,OAAS,GAAGoT,WAElC2gC,EAASx3C,UAAUi8C,aAAa9xC,GAChCqtC,EAASx3C,UAAU2/C,kBAAkB,WAC9B8M,GACHjV,EAASxV,YAEV,GAAM,OAjBF,GA0BXsmB,eAAgB,SAAS9Q,EAAUljB,EAAS1hB,EAASmc,EAAWqP,EAAaqiB,EAAUyL,GACrF,GAAI/gB,GAAO/pC,IAEX,IAAIA,KAAK8mD,MAAM1Q,EAAUljB,EAAS1hB,EAASmc,EAAWqP,EAAaqiB,EAAUyL,IAC3E1U,EAASx3C,UAAUgkB,gBAClBwzB,EAASx3C,UAAU++C,2BACnBvH,EAASx3C,UAAUk/C,0BACpB,CACA,GAAIyN,GAAgBxhB,EAAK+c,MAAM1Q,EAAUljB,EAAS1hB,EAASmc,EAAWqP,GAAa,EACnFoZ,GAASx3C,UAAU0/C,uBAAuB,WAC3BiN,EAAcznD,UAC3BsyC,GAASx3C,UAAUkd,WAAWyvC,GAAe,GAC7CltD,EAAUE,SAAS0oD,aAAan2B,KAAKslB,EAAUljB,EAAS1hB,EAASmc,EAAWqP,EAAaqiB,EAAUyL,GAAa,GAAM,SAGpH9qD,MAAK8mD,MAAM1Q,EAAUljB,EAAS1hB,EAASmc,EAAWqP,EAAaqiB,EAAUyL,KAAiB1U,EAASx3C,UAAUgkB,cAC/GwzB,EAASx3C,UAAU0/C,uBAAuB,WACxCjgD,EAAUE,SAAS0oD,aAAan2B,KAAKslB,EAAUljB,EAAS1hB,EAASmc,EAAWqP,EAAaqiB,EAAUyL,GAAa,GAAM,KAGxHzsD,EAAUE,SAAS0oD,aAAan2B,KAAKslB,EAAUljB,EAAS1hB,EAASmc,EAAWqP,EAAaqiB,EAAUyL,IAKzGhE,MAAO,SAAS1Q,EAAUljB,EAAS1hB,EAASmc,EAAWqP,EAAaqiB,EAAUyL,GAC5E,GAEIQ,GAAW3E,EAFXhnD,EAAgBy2C,EAASz2C,IACzB6rD,EAAgBZ,EAAcp5C,IAAYA,CAI9C,OAAKnT,GAAUG,IAAIqgC,sBAAsBl/B,EAAK6R,IACzCnT,EAAUG,IAAIqgC,sBAAsBl/B,EAAK6rD,GAK1C79B,IAActvB,EAAUG,IAAI2gC,wBAAwBx/B,EAAKguB,IACnD,GAGV29B,EAAYlV,EAASx3C,UAAUy9C,eAE1BiP,GAAkC,IAArBA,EAAUjpD,QAI5BskD,EAAYkE,EAAYr5C,EAASmc,EAAWqP,EAAaqiB,EAAUyL,EAAa1U,EAAStqB,SAASu6B,iBAAiBiF,GAE3G3E,GAAaA,EAAUrR,SAAYqR,EAAUrR,UAAW,IALvD,IAXA,KAmBZj3C,WACF,SAAUA,GAET,GAAI+gD,IACFn0C,SAAU,aACVpG,QAAQ,EAGVxG,GAAUE,SAASktD,kBACjB36B,KAAM,SAASslB,GACb,MAAO/3C,GAAUE,SAASu0B,YAAYhC,KAAKslB,EAAU,cAAegJ,IAGtE0H,MAAO,SAAS1Q,GACd,MAAO/3C,GAAUE,SAASu0B,YAAYg0B,MAAM1Q,EAAU,cAAegJ,MAIxE/gD,WACD,SAASA,GACTA,EAAUE,SAAS00B,YACjBnC,KAAM,SAASslB,EAAUljB,EAAS+E,GAC5Bme,EAAS73C,SAASsoD,QAAQ3zB,GAC5BkjB,EAASz2C,IAAI6xB,YAAY0B,GAAS,EAAO+E,GAEzCme,EAASx3C,UAAUq0B,WAAWgF,IAIlC6uB,MAAO,WACL,OAAO,KAGXzoD,WACD,SAAUA,GACT,GAAIspD,GAAY,KAEhBtpD,GAAUE,SAASmtD,aAWjB56B,KAAM,SAASslB,EAAUljB,EAAStD,GAChCA,EAA0B,gBAAZ,GAAuBA,GAAUqW,IAAKrW,EAEpD,IAEIzc,GACAtE,EAHAlP,EAAUy2C,EAASz2C,IACnBgsD,EAAU3rD,KAAK8mD,MAAM1Q,EAKzB,IAAIuV,IAAU/7B,EAAMqW,IAclB,MAbAmQ,GAASx3C,UAAUk8C,UAAU6Q,GAC7B98C,EAAS88C,EAAM7nD,WACf+K,EAAO8N,YAAYgvC,GAGnBttD,EAAUG,IAAI8pC,qBAAqBz5B,GACX,MAApBA,EAAO5D,UAAqB4D,EAAOqD,aACrCkkC,EAASx3C,UAAUy8C,SAASxsC,GAC5BA,EAAO/K,WAAW6Y,YAAY9N,QAIhCxQ,GAAUI,OAAOy5C,OAAO9B,EAAStqB,QAKnC,IAAI6/B,EACF,IAAK,GAAI37B,KAAOJ,GACVA,EAAMljB,eAAesjB,IACvB27B,EAAMnlD,aAAqB,cAARwpB,EAAsB,QAAUA,EAAKJ,EAAMI,QAHpE,CAUA27B,EAAQhsD,EAAIuE,cAAcyjD,EAE1B,KAAK,GAAI1jD,KAAK2rB,GACZ+7B,EAAMnlD,aAAmB,cAANvC,EAAoB,QAAUA,EAAG2rB,EAAM3rB,GAG5DmyC,GAASx3C,UAAU0f,WAAWqtC,GAC1BttD,EAAUgyB,QAAQqE,mCACpBvhB,EAAWxT,EAAIyT,eAAe/U,EAAUS,iBACxCs3C,EAASx3C,UAAU0f,WAAWnL,GAC9BijC,EAASx3C,UAAUy8C,SAASloC,IAE5BijC,EAASx3C,UAAUy8C,SAASsQ,KAIhC7E,MAAO,SAAS1Q,GACd,GACIqU,GACA1mC,EACA6nC,EAHAjsD,EAAMy2C,EAASz2C,GAKnB,OAAKtB,GAAUG,IAAIqgC,sBAAsBl/B,EAAKgoD,KAI9C8C,EAAerU,EAASx3C,UAAUs9C,mBAK9BuO,EAAax/C,WAAa08C,EAErB8C,EAGLA,EAAap9C,WAAahP,EAAUY,cAC/B,GAGT8kB,EAAOqyB,EAASx3C,UAAU+hD,WAC1B58B,EAAO1lB,EAAUM,KAAK64B,OAAOzT,GAAMjkB,SAE1B,GAGT8rD,EAAoBxV,EAASx3C,UAAUohB,SAAS3hB,EAAUY,aAAc,SAAS2E,GAC/E,MAAyB,QAAlBA,EAAKqH,WAGmB,IAA7B2gD,EAAkBvpD,QACb,EAGFupD,EAAkB,MA/BhB,KAkCZvtD,WACF,SAAUA,GACT,GAAIwtD,GAAa,QAAUxtD,EAAUgyB,QAAQ8D,2BAA6B,IAAM,GAEhF91B,GAAUE,SAASutD,iBACjBh7B,KAAM,SAASslB,EAAUljB,GACnBkjB,EAAS73C,SAASsoD,QAAQ3zB,IAC5BkjB,EAASz2C,IAAI6xB,YAAY0B,GAAS,EAAO,MACpC70B,EAAUgyB,QAAQwD,sBACrBuiB,EAASx3C,UAAU6gD,kBAGrBrJ,EAAS73C,SAASuyB,KAAK,aAAc+6B,IAIzC/E,MAAO,WACL,OAAO,KAGVzoD,WACD,SAASA,GACTA,EAAUE,SAASy0B,mBACjBlC,KAAM,SAASslB,EAAUljB,GACvB70B,EAAUE,SAASwtD,WAAWj7B,KAAKslB,EAAUljB,EAAS,OAGxD4zB,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAASwtD,WAAWjF,MAAM1Q,EAAUljB,EAAS,SAGlE70B,WACA,SAASA,GACTA,EAAUE,SAASw0B,qBACjBjC,KAAM,SAASslB,EAAUljB,GACvB70B,EAAUE,SAASwtD,WAAWj7B,KAAKslB,EAAUljB,EAAS,OAGxD4zB,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAASwtD,WAAWjF,MAAM1Q,EAAUljB,EAAS,SAGlE70B,WACDA,UAAUE,SAASwtD,WAAa,SAAU1tD,GAEzC,GAAI2tD,GAAS,SAASpoD,EAAM+B,GAC1B,GAAI/B,GAAQA,EAAKqH,SAAU,CACL,gBAATtF,KACTA,GAAQA,GAEV,KAAK,GAAIyJ,GAAIzJ,EAAKtD,OAAQ+M,KACxB,GAAIxL,EAAKqH,WAAatF,EAAKyJ,GACzB,OAAO,EAIb,OAAO,GAGL68C,EAAa,SAASroD,EAAMqH,EAAUmrC,GACxC,GAAI9I,IACEpgC,GAAI,KACJg/C,OAAO,EAGb,IAAItoD,EAAM,CACR,GAAIuoD,GAAW9tD,EAAUG,IAAIo/B,iBAAiBh6B,GAAQm5B,MAAO,OACzDqvB,EAA8B,OAAbnhD,EAAqB,KAAO,IAE7C+gD,GAAOpoD,EAAMqH,GACfqiC,EAAIpgC,GAAKtJ,EACAooD,EAAOpoD,EAAMwoD,GACtB9e,GACEpgC,GAAItJ,EACJsoD,OAAO,GAEAC,IACLH,EAAOG,EAASroD,WAAYmH,GAC9BqiC,EAAIpgC,GAAKi/C,EAASroD,WACTkoD,EAAOG,EAASroD,WAAYsoD,KACrC9e,GACEpgC,GAAKi/C,EAASroD,WACdooD,OAAO,KAWf,MAJI5e,GAAIpgC,KAAOkpC,EAAStqB,QAAQxnB,SAASgpC,EAAIpgC,MAC3CogC,EAAIpgC,GAAK,MAGJogC,GAGL+e,EAAqB,SAASn/C,EAAIjC,EAAUmrC,GAC9C,GACgBkW,GADZF,EAA8B,OAAbnhD,EAAqB,KAAO,IAMjDmrC,GAASx3C,UAAU2/C,kBAAkB,WACnC,GAAIgO,GAAaC,EAAoBJ,EAAehW,EACpD,IAAImW,EAAWlqD,OACb,IAAK,GAAIwE,GAAI0lD,EAAWlqD,OAAQwE,KAC9BxI,EAAUG,IAAI+pC,cAAcgkB,EAAW1lD,GAAIoE,EAASC,mBAEjD,CACLohD,EAAaE,GAAqB,KAAM,MAAOpW,EAC/C,KAAK,GAAInyC,GAAIqoD,EAAWjqD,OAAQ4B,KAC9B5F,EAAUG,IAAIqqC,YAAYyjB,EAAWroD,GAAImyC,EAAShsC,OAAO0+B,cAE3DzqC,GAAUG,IAAIqqC,YAAY37B,EAAIkpC,EAAShsC,OAAO0+B,mBAKhD2jB,EAAuB,SAASv/C,EAAIjC,EAAUmrC,GAChD,GAAIgW,GAA8B,OAAbnhD,EAAqB,KAAO,IAMjDmrC,GAASx3C,UAAU2/C,kBAAkB,WAInC,IAAK,GAHDmO,IAAex/C,GAAI/J,OAAOqpD,EAAoBJ,EAAehW,IAGxDvvC,EAAI6lD,EAAYrqD,OAAQwE,KAC/BxI,EAAUG,IAAI+pC,cAAcmkB,EAAY7lD,GAAIoE,EAASC,kBAKvDshD,EAAsB,SAASvhD,EAAUmrC,GAIzC,IAAK,GAHDzuB,GAASyuB,EAASx3C,UAAUy9C,eAC5BqQ,KAEKpqD,EAAIqlB,EAAOtlB,OAAQC,KAC1BoqD,EAAcA,EAAYvpD,OAAOwkB,EAAOrlB,GAAG0d,UAAU,GAAI,SAASpc,GAChE,MAAOooD,GAAOpoD,EAAMqH,KAIxB,OAAOyhD,IAGPC,EAAqB,SAAS1hD,EAAUmrC,GAE1CA,EAASx3C,UAAU0/C,uBAAuB,WACxC,GAKI3R,GAASzS,EALT0yB,EAAiB,oBAAqB,GAAIv/B,OAAOw/B,UACjD3zB,EAAckd,EAASx3C,UAAU0gD,oBAC/Br0C,SAAY,MACZ0iB,UAAai/B,GAMnB1zB,GAAYzmB,UAAYymB,EAAYzmB,UAAUxS,QAAQ5B,EAAUU,wBAAyB,IAErFm6B,IACFyT,EAAUtuC,EAAUM,KAAKu2B,OAAO,GAAI,OAAQ72B,EAAUS,kBAAkBwF,SAAS40B,EAAYzmB,WAC7FynB,EAAO77B,EAAUG,IAAIw7B,cAAcd,EAAajuB,EAASC,cAAekrC,EAASvnC,OAAOzE,OAAO2+C,8BAC3Fpc,GACFyJ,EAASx3C,UAAUkd,WAAWoe,EAAKtI,cAAc,OAAO,MAMhE,QACEd,KAAM,SAASslB,EAAUljB,EAASjoB,GAChC,GAAItL,GAAgBy2C,EAASz2C,IACzBmtD,EAA8B,OAAb7hD,EAAqB,oBAAsB,sBAC5Dw/C,EAAgBrU,EAASx3C,UAAUs9C,kBACnChiB,EAAgB+xB,EAAWxB,EAAcx/C,EAAUmrC,EAElDlc,GAAKhtB,GAMCgtB,EAAKgyB,MACdO,EAAoBvyB,EAAKhtB,GAAIjC,EAAUmrC,GAEvCiW,EAAmBnyB,EAAKhtB,GAAIjC,EAAUmrC,GARlCA,EAAS73C,SAASsoD,QAAQiG,GAC5BntD,EAAI6xB,YAAYs7B,GAAK,EAAO,MAE5BH,EAAmB1hD,EAAUmrC,IASnC0Q,MAAO,SAAS1Q,EAAUljB,EAASjoB,GACjC,GAAIw/C,GAAerU,EAASx3C,UAAUs9C,kBAClChiB,EAAe+xB,EAAWxB,EAAcx/C,EAAUmrC,EAEtD,OAAQlc,GAAKhtB,KAAOgtB,EAAKgyB,MAAShyB,EAAKhtB,IAAK,KAI/C7O,WACD,SAASA,GACTA,EAAUE,SAASwuD,QACjBj8B,KAAM,SAASslB,EAAUljB,GACvB70B,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,MAGpE4zB,MAAO,SAAS1Q,EAAUljB,GAMxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,QAGpE70B,WACD,SAAUA,GAET,GAAI+gD,IACFzxB,UAAW,4BACXqP,YAAa,gCACbn4B,QAAQ,EAGVxG,GAAUE,SAASyuD,eACjBl8B,KAAM,SAASslB,GACb,MAAO/3C,GAAUE,SAASu0B,YAAYhC,KAAKslB,EAAU,cAAegJ,IAGtE0H,MAAO,SAAS1Q,GACd,MAAO/3C,GAAUE,SAASu0B,YAAYg0B,MAAM1Q,EAAU,cAAegJ,MAIxE/gD,WACF,SAAUA,GAET,GAAI+gD,IACFzxB,UAAW,0BACXqP,YAAa,gCACbn4B,QAAQ,EAGVxG,GAAUE,SAAS0uD,aACjBn8B,KAAM,SAASslB,GACb,MAAO/3C,GAAUE,SAASu0B,YAAYhC,KAAKslB,EAAU,cAAegJ,IAGtE0H,MAAO,SAAS1Q,GACd,MAAO/3C,GAAUE,SAASu0B,YAAYg0B,MAAM1Q,EAAU,cAAegJ,MAGxE/gD,WACF,SAAUA,GAET,GAAI+gD,IACFzxB,UAAW,2BACXqP,YAAa,gCACbn4B,QAAQ,EAGVxG,GAAUE,SAAS2uD,cACjBp8B,KAAM,SAASslB,GACb,MAAO/3C,GAAUE,SAASu0B,YAAYhC,KAAKslB,EAAU,cAAegJ,IAGtE0H,MAAO,SAAS1Q,GACd,MAAO/3C,GAAUE,SAASu0B,YAAYg0B,MAAM1Q,EAAU,cAAegJ,MAGxE/gD,WACF,SAAUA,GAET,GAAI+gD,IACFzxB,UAAW,6BACXqP,YAAa,gCACbn4B,QAAQ,EAGVxG,GAAUE,SAAS4uD,aACjBr8B,KAAM,SAASslB,GACb,MAAO/3C,GAAUE,SAASu0B,YAAYhC,KAAKslB,EAAU,cAAegJ,IAGtE0H,MAAO,SAAS1Q,GACd,MAAO/3C,GAAUE,SAASu0B,YAAYg0B,MAAM1Q,EAAU,cAAegJ,MAGxE/gD,WACF,SAAUA,GAET,GAAI+gD,IACFniB,cAAe,YACfK,WAAY,QACZz4B,QAAQ,EAGVxG,GAAUE,SAAS6uD,iBACjBt8B,KAAM,SAASslB,GACb,MAAO/3C,GAAUE,SAASu0B,YAAYhC,KAAKslB,EAAU,cAAegJ,IAGtE0H,MAAO,SAAS1Q,GACd,MAAO/3C,GAAUE,SAASu0B,YAAYg0B,MAAM1Q,EAAU,cAAegJ,MAGxE/gD,WACF,SAAUA,GAET,GAAI+gD,IACFniB,cAAe,YACfK,WAAY,OACZz4B,QAAQ,EAGVxG,GAAUE,SAAS8uD,gBACjBv8B,KAAM,SAASslB,GACb,MAAO/3C,GAAUE,SAASu0B,YAAYhC,KAAKslB,EAAU,cAAegJ,IAGtE0H,MAAO,SAAS1Q,GACd,MAAO/3C,GAAUE,SAASu0B,YAAYg0B,MAAM1Q,EAAU,cAAegJ,MAIxE/gD,WACF,SAAUA,GAET,GAAI+gD,IACFniB,cAAe,YACfK,WAAY,SACZz4B,QAAQ,EAGVxG,GAAUE,SAAS+uD,kBACjBx8B,KAAM,SAASslB,GACb,MAAO/3C,GAAUE,SAASu0B,YAAYhC,KAAKslB,EAAU,cAAegJ,IAGtE0H,MAAO,SAAS1Q,GACd,MAAO/3C,GAAUE,SAASu0B,YAAYg0B,MAAM1Q,EAAU,cAAegJ,MAIxE/gD,WACD,SAASA,GACTA,EAAUE,SAASgvD,MACjBz8B,KAAM,SAASslB,GACb,MAAOA,GAASoX,YAAYD,QAG9BzG,MAAO,WACL,OAAO,KAGXzoD,WACA,SAASA,GACTA,EAAUE,SAASkvD,WACjB38B,KAAM,SAASslB,EAAUljB,GACvB70B,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,MAGpE4zB,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,QAGpE70B,WACA,SAASA,GACTA,EAAUE,SAASmvD,MACjB58B,KAAM,SAASslB,GACb,MAAOA,GAASoX,YAAYE,QAG9B5G,MAAO,WACL,OAAO,KAGXzoD,WACA,SAASA,GACTA,EAAUE,SAASovD,aACjB78B,KAAM,SAASslB,EAAUljB,EAAStD,GAChC,GAAIygB,GAAKjB,EAAKnX,CACd,IAAIrI,GAASA,EAAMg+B,MAAQh+B,EAAMi+B,MAAQ5jC,SAAS2F,EAAMg+B,KAAM,IAAM,GAAK3jC,SAAS2F,EAAMi+B,KAAM,IAAM,EAAG,CAOrG,IALE51B,EADErI,EAAMk+B,WACD,iBAAoBl+B,EAAMk+B,WAAa,KAEvC,UAET71B,GAAQ,UACHmX,EAAM,EAAGA,EAAMxf,EAAMi+B,KAAMze,IAAQ,CAEtC,IADAnX,GAAQ,OACHoY,EAAM,EAAGA,EAAMzgB,EAAMg+B,KAAMvd,IAC9BpY,GAAQ,WAEVA,IAAQ,QAEVA,GAAQ,mBACRme,EAAS73C,SAASuyB,KAAK,aAAcmH,KAKzC6uB,MAAO,WACL,OAAO,KAIXzoD,WACA,SAASA,GACTA,EAAUE,SAASwvD,iBACjBj9B,KAAM,SAASslB,EAAUljB,GACnBkjB,EAAS4X,gBAAkB5X,EAAS4X,eAAejyC,OAASq6B,EAAS4X,eAAehyC,MAClFhc,KAAK8mD,MAAM1Q,EAAUljB,GACvB70B,EAAUG,IAAI+vC,MAAM2G,YAAYkB,EAAS4X,eAAejyC,OAExD1d,EAAUG,IAAI+vC,MAAM0G,kBAAkBmB,EAAS4X,eAAejyC,MAAOq6B,EAAS4X,eAAehyC,OAKnG8qC,MAAO,SAAS1Q,GACd,GAAIA,EAAS4X,eAAgB,CAC3B,GAAIjyC,GAAQq6B,EAAS4X,eAAejyC,MAClCC,EAAMo6B,EAAS4X,eAAehyC,GAChC,IAAID,GAASC,GAAOD,GAASC,IAEzB3d,EAAUG,IAAI2H,aAAa4V,EAAO,YAClCkO,SAAS5rB,EAAUG,IAAI2H,aAAa4V,EAAO,WAAY,IAAM,GAE7D1d,EAAUG,IAAI2H,aAAa4V,EAAO,YAClCkO,SAAS5rB,EAAUG,IAAI2H,aAAa4V,EAAO,WAAY,IAAM,GAG/D,OAAQA,GAGZ,OAAO,KAGX1d,WACA,SAASA,GACTA,EAAUE,SAAS0vD,eACjBn9B,KAAM,SAASslB,EAAUljB,EAAStD,GAChC,GAAIwmB,EAAS4X,gBAAkB5X,EAAS4X,eAAejyC,OAASq6B,EAAS4X,eAAehyC,IAAK,CAG3F,GAAIkyC,GAAc7vD,EAAUG,IAAI+vC,MAAMwC,mBAAmBqF,EAAS4X,eAAejyC,MAAOq6B,EAAS4X,eAAehyC,IACnG,WAAT4T,GAA8B,SAATA,EACvBvxB,EAAUG,IAAI+vC,MAAMwG,SAASmZ,EAAYnyC,MAAO6T,IAC9B,SAATA,GAA6B,SAATA,IAC7BvxB,EAAUG,IAAI+vC,MAAMwG,SAASmZ,EAAYlyC,IAAK4T,GAEhD2b,WAAW,WACT6K,EAAS4X,eAAe7mC,OAAO+mC,EAAYnyC,MAAOmyC,EAAYlyC,MAC9D,KAIN8qC,MAAO,WACL,OAAO,KAGXzoD,WACA,SAASA,GACTA,EAAUE,SAAS4vD,kBACnBr9B,KAAM,SAASslB,EAAUljB,EAAStD,GAChC,GAAIwmB,EAAS4X,gBAAkB5X,EAAS4X,eAAejyC,OAASq6B,EAAS4X,eAAehyC,IAAK,CAC3F,GAEEoyC,GAFEF,EAAc7vD,EAAUG,IAAI+vC,MAAMwC,mBAAmBqF,EAAS4X,eAAejyC,MAAOq6B,EAAS4X,eAAehyC,KAC9G+Z,EAAM13B,EAAUG,IAAI+vC,MAAMtsC,QAAQisD,EAAYnyC,OAE9CwyB,EAAQ6H,EAAS4X,eAAezf,KAElClwC,GAAUG,IAAI+vC,MAAMyG,YAAYkZ,EAAYnyC,MAAO6T,GACnD2b,WAAW,WAET6iB,EAAU/vD,EAAUG,IAAI+vC,MAAM4G,SAAS5G,EAAOxY,GAEzCq4B,IACU,OAATx+B,IACFw+B,EAAU/vD,EAAUG,IAAI+vC,MAAM4G,SAAS5G,GACrCa,IAAOrZ,EAAIqZ,IAAM,EACjBiB,IAAOta,EAAIsa,OAIF,UAATzgB,IACFw+B,EAAU/vD,EAAUG,IAAI+vC,MAAM4G,SAAS5G,GACrCa,IAAOrZ,EAAIqZ,IACXiB,IAAOta,EAAIsa,IAAM,MAInB+d,GACFhY,EAAS4X,eAAe7mC,OAAOinC,EAASA,IAEzC,KAIPtH,MAAO,WACL,OAAO,KAGTzoD,WACA,SAASA,GACTA,EAAUE,SAAS8vD,YACjBv9B,KAAM,SAASslB,GACb,GAAIkY,GAAUlY,EAASx3C,UAAU0+C,yBAAyB,KAC1D,OAAIgR,GACKtuD,KAAKuuD,iBAAiBD,EAASlY,EAASx3C,YAE1C,GAGTkoD,MAAO,WACH,OAAO,GAGXyH,iBAAkB,SAASC,EAAS5vD,GAClC,GAAI6vD,GAASv0B,EAAMw0B,EAAQC,EAAQC,EAC/BC,GAAQ,CAuBZ,OArBAjwD,GAAU0/C,uBAAuB,WAE/B,IAAK,GAAIr6C,GAAIuqD,EAAQnsD,OAAQ4B,KAC3B0qD,EAASH,EAAQvqD,GACjBwqD,EAA0C,OAA/BE,EAAO7qD,WAAWmH,SAAqB,KAAO,KACzDivB,EAAOy0B,EAAO/9C,cAAc1M,cAAcuqD,GAC1CC,EAASrwD,EAAUG,IAAI69B,QAAQsyB,GAAQnyB,MAAM5lB,WAAYvY,EAAUY,gBACnE2vD,EAAa,EAAWF,EAAO98B,cAAc,UAAY,KAErD88B,IACEE,EACFA,EAAWzhD,YAAYwhD,IAEvBz0B,EAAK/sB,YAAYwhD,GACjBD,EAAOvhD,YAAY+sB,IAErB20B,GAAQ,KAKPA,KAGXxwD,WACA,SAASA,GAETA,EAAUE,SAASuwD,aACjBh+B,KAAM,SAASslB,GACb,GAAIkY,GAAUlY,EAASx3C,UAAU0+C,yBAAyB,KAC1D,OAAIgR,GACKtuD,KAAK+uD,iBAAiBT,EAASlY,IAEjC,GAGT0Q,MAAO,WACH,OAAO,GAGXiI,iBAAkB,SAASP,EAASpY,GAClC,GAAI4Y,GAAUC,EAAeC,EAA2BP,EAAQQ,EAC5DN,GAAQ,EACR9kB,EAAO/pC,IAgDX,OA9CAo2C,GAASx3C,UAAU0/C,uBAAuB,WAExC,IAAK,GAAIr6C,GAAIuqD,EAAQnsD,OAAQ4B,KAE3B,GADA0qD,EAASH,EAAQvqD,GACb0qD,EAAO7qD,aACTkrD,EAAWL,EAAO7qD,WAEO,OAArBkrD,EAASx9C,SAAyC,OAArBw9C,EAASx9C,SAAkB,CAM1D,GALAq9C,GAAQ,EAERI,EAAgB5wD,EAAUG,IAAIo/B,iBAAiBoxB,EAASlrD,YAAci5B,MAAO,WAAY,EAAOqZ,EAAStqB,SACzGojC,EAAc7wD,EAAUG,IAAIo/B,iBAAiBoxB,EAASlrD,YAAci5B,MAAO,OAAQ,EAAOqZ,EAAStqB,SAE/FmjC,GAAiBC,EAEfP,EAAOz+C,cACTi/C,EAAYplB,EAAKqlB,aAAaJ,EAAUL,GACxCA,EAAOxhD,YAAYgiD,IAErBF,EAAc9+C,aAAaw+C,EAAQO,EAAYh/C,iBAE1C,CAEDy+C,EAAOz+C,cACTi/C,EAAYplB,EAAKqlB,aAAaJ,EAAUL,GACxCA,EAAOxhD,YAAYgiD,GAGrB,KAAK,GAAI/xB,GAAIuxB,EAAOvhD,WAAW/K,OAAQ+6B,KACrC4xB,EAASlrD,WAAWqM,aAAaw+C,EAAOvhD,WAAWgwB,GAAI4xB,EAAS9+C,YAGlE8+C,GAASlrD,WAAWqM,aAAapM,SAASG,cAAc,MAAO8qD,EAAS9+C,aACxEy+C,EAAO7qD,WAAW6Y,YAAYgyC,GAKG,IAA/BK,EAAS5hD,WAAW/K,QACpB2sD,EAASlrD,WAAW6Y,YAAYqyC,MAOrCH,GAGTO,aAAc,SAASJ,EAAUL,GAI/B,IAHA,GAAI1jD,GAAW+jD,EAAS/jD,SACpBokD,EAAUtrD,SAASG,cAAc+G,GAE9B0jD,EAAOz+C,aACZm/C,EAAQliD,YAAYwhD,EAAOz+C,YAE7B,OAAOm/C,MAIXhxD,WACA,SAASA,GACTA,EAAUE,SAAS+wD,WACjBx+B,KAAM,SAASslB,EAAUljB,GACvB70B,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,QAGpE4zB,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,UAGpE70B,WACA,SAASA,GACTA,EAAUE,SAASgxD,aACjBz+B,KAAM,SAASslB,EAAUljB,GACvB70B,EAAUE,SAAS0oD,aAAaC,eAAe9Q,EAAUljB,EAAS,QAGpE4zB,MAAO,SAAS1Q,EAAUljB,GACxB,MAAO70B,GAAUE,SAAS0oD,aAAaH,MAAM1Q,EAAUljB,EAAS,UAGpE70B,WAKF,SAAUA,GACR,GAAImxD,GAAsB,GACtBC,EAAsB,GACtBtwD,EAAsB,EACtBK,EAAsB,GACtBkwD,EAAsB,GACtBC,EAAsB,gCACtBC,EAAsB,kCAGtBpxD,GAFsB,sDAAwDH,EAAUS,gBAAkB,UACpF,sDAAwDT,EAAUS,gBAAkB,UACpFT,EAAUG,IASpCH,GAAUwxD,YAAcxxD,EAAUM,KAAKq3B,WAAWvpB,QAEhD6N,YAAa,SAAS6xB,GACpBnsC,KAAKmsC,OAASA,EACdnsC,KAAKo2C,SAAWjK,EAAOiK,SACvBp2C,KAAK8rB,QAAU9rB,KAAKo2C,SAAStqB,QAE7B9rB,KAAKyQ,SAAW,EAChBzQ,KAAK8vD,cACL9vD,KAAK+vD,cAEL/vD,KAAKgwD,WAELhwD,KAAKiwD,YAGPA,SAAU,WACR,CAAA,GAEIC,GAFAnmB,EAAY/pC,IACAA,MAAKo2C,SAAS+Z,QAAQx/C,cAItCnS,EAAIg4B,QAAQx2B,KAAK8rB,QAAS,UAAW,SAASprB,GAC5C,IAAIA,EAAM0vD,SAAY1vD,EAAM46C,SAAY56C,EAAM66C,SAA9C,CAIA,GAAIp6C,GAAUT,EAAMS,QAChBkvD,EAASlvD,IAAYquD,IAAU9uD,EAAM4vD,SACrCC,EAAUpvD,IAAYquD,GAAS9uD,EAAM4vD,UAAcnvD,IAAYsuD,CAE/DY,IACFtmB,EAAK2jB,OACLhtD,EAAMG,kBACG0vD,IACTxmB,EAAKwjB,OACL7sD,EAAMG,qBAKVrC,EAAIg4B,QAAQx2B,KAAK8rB,QAAS,UAAW,SAASprB,GAC5C,GAAIS,GAAUT,EAAMS,OAChBA,KAAY+uD,IAIhBA,EAAU/uD,GAENA,IAAYhC,GAAiBgC,IAAY3B,IAC3CuqC,EAAKimB,cAIThwD,KAAKmsC,OACF9rC,GAAG,mBAAoB,WACtB0pC,EAAKimB,aAGN3vD,GAAG,yBAA0B,WAC5B0pC,EAAKimB,cAIXA,SAAU,WACR,GAGIjnD,GAAOnF,EAAM8M,EAAQob,EAASrb,EAH9B+/C,EAAoBxwD,KAAK8vD,WAAW9vD,KAAKyQ,SAAW,GACpDggD,EAAoBzwD,KAAKo2C,SAASsa,UAAS,GAAO,GAClDnkB,EAAsBvsC,KAAK8rB,QAAQgQ,YAAc,GAAK97B,KAAK8rB,QAAQuc,aAAe,CAGtF,IAAIooB,IAAgBD,EAApB,CAIA,GAAInuD,GAASrC,KAAK8vD,WAAWztD,OAASrC,KAAK+vD,WAAW1tD,OAASrC,KAAKyQ,QAChEpO,GAASqtD,IACX1vD,KAAK8vD,WAAW/V,QAChB/5C,KAAK+vD,WAAWhW,QAChB/5C,KAAKyQ,YAGPzQ,KAAKyQ,WAED87B,IAEFxjC,EAAU/I,KAAKo2C,SAASx3C,UAAUg8C,WAClCh3C,EAAWmF,GAASA,EAAM4L,eAAkB5L,EAAM4L,eAAiB3U,KAAK8rB,QACxEpb,EAAW3H,GAASA,EAAMyM,YAAezM,EAAMyM,YAAc,EAEzD5R,EAAKyJ,WAAahP,EAAUY,aAC9B6sB,EAAUloB,GAEVkoB,EAAWloB,EAAKE,WAChB2M,EAAWzQ,KAAK2wD,kBAAkB7kC,EAASloB,IAG7CkoB,EAAQtlB,aAAaopD,EAAkBl/C,GACd,mBAAf,IACRob,EAAQtlB,aAAampD,EAAgBl/C,GAIzC,IAAI8N,GAAQve,KAAK8rB,QAAQvb,YAAYkgD,EACrCzwD,MAAK+vD,WAAWzpD,KAAKiY,GACrBve,KAAK8vD,WAAWxpD,KAAKmqD,GAEjB3kC,IACFA,EAAQ8lB,gBAAgBge,GACxB9jC,EAAQ8lB,gBAAgB+d,MAK5BjC,KAAM,WACJ1tD,KAAKgwD,WAEAhwD,KAAK4wD,iBAIV5wD,KAAK2B,IAAI3B,KAAK+vD,aAAa/vD,KAAKyQ,SAAW,IAC3CzQ,KAAKmsC,OAAO7V,KAAK,mBAGnBi3B,KAAM,WACCvtD,KAAK6wD,iBAIV7wD,KAAK2B,IAAI3B,KAAK+vD,aAAa/vD,KAAKyQ,SAAW,IAC3CzQ,KAAKmsC,OAAO7V,KAAK,mBAGnBs6B,aAAc,WACZ,MAAO5wD,MAAKyQ,SAAW,GAGzBogD,aAAc,WACZ,MAAO7wD,MAAKyQ,SAAWzQ,KAAK8vD,WAAWztD,QAGzCV,IAAK,SAASmvD,GACZ9wD,KAAK8rB,QAAQrZ,UAAY,EAMzB,KAJA,GAAIxO,GAAI,EACJmJ,EAAa0jD,EAAa1jD,WAC1B/K,EAASyuD,EAAa1jD,WAAW/K,OAE5BA,EAAF4B,EAAUA,IACfjE,KAAK8rB,QAAQ3e,YAAYC,EAAWnJ,GAAGsM,WAAU,GAInD,IAAIG,GACA9M,EACA6M,CAEAqgD,GAAa7jB,aAAa2iB,IAC5Bl/C,EAAYogD,EAAa3qD,aAAaypD,GACtCn/C,EAAYqgD,EAAa3qD,aAAawpD,GACtC/rD,EAAY5D,KAAK8rB,UAEjBloB,EAAY5D,KAAK8rB,QAAQ8F,cAAc,IAAMg+B,EAAmB,MAAQ5vD,KAAK8rB,QAC7Epb,EAAY9M,EAAKuC,aAAaypD,GAC9Bn/C,EAAY7M,EAAKuC,aAAawpD,GAC9B/rD,EAAKguC,gBAAgBge,GACrBhsD,EAAKguC,gBAAgB+d,IAGN,OAAbl/C,IACF7M,EAAO5D,KAAK+wD,oBAAoBntD,GAAO6M,IAGzCzQ,KAAKo2C,SAASx3C,UAAU+C,IAAIiC,EAAM8M,IAGpCigD,kBAAmB,SAAS9hD,EAAQ8D,GAIlC,IAHA,GAAI1O,GAAc,EACdmJ,EAAcyB,EAAOzB,WACrB/K,EAAc+K,EAAW/K,OACpBA,EAAF4B,EAAUA,IACf,GAAImJ,EAAWnJ,KAAO0O,EACpB,MAAO1O,IAKb8sD,oBAAqB,SAASliD,EAAQ7H,GACpC,MAAO6H,GAAOzB,WAAWpG,OAG5B3I,WAIHA,UAAUQ,MAAMmyD,KAAOhiC,KAAKviB,QAE1B6N,YAAa,SAASzL,EAAQoiD,EAAiB7mD,GAC7CpK,KAAK6O,OAAWA,EAChB7O,KAAK8rB,QAAWmlC,EAChBjxD,KAAKoK,OAAWA,EACXpK,KAAKoK,OAAO8mD,YACblxD,KAAKmxD;EAIXA,mBAAoB,WAClB,GAAIpnB,GAAO/pC,IACXA,MAAK6O,OAAOxO,GAAG,aAAc,WAC3B0pC,EAAKl7B,OAAOxO,GAAG,cAAe,SAAS2E,GACjCA,IAAS+kC,EAAKpkC,MAChBokC,EAAKl7B,OAAOuiD,YAAcrnB,EAC1BA,EAAKsnB,OAEL9lB,WAAW,WAAaxB,EAAK5hB,SAAY,IAEzC4hB,EAAKunB,YAMbnpC,MAAO,WACL,IAAInoB,KAAK8rB,UAAW9rB,KAAK8rB,QAAQlb,eAAiB5Q,KAAK8rB,QAAQlb,cAAcghB,cAAc,YAAc5xB,KAAK8rB,QAI9G,IAAS9rB,KAAK8rB,SAAW9rB,KAAK8rB,QAAQ3D,QAAa,MAAM1nB,MAG3D6wD,KAAM,WACJtxD,KAAK8rB,QAAQ0B,MAAME,QAAU,QAG/B2jC,KAAM,WACJrxD,KAAK8rB,QAAQ0B,MAAME,QAAU,IAG/B6jC,QAAS,WACPvxD,KAAK8rB,QAAQtlB,aAAa,WAAY,aAGxCgrD,OAAQ,WACNxxD,KAAK8rB,QAAQ8lB,gBAAgB,eAGhC,SAAUvzC,GACT,GAAIG,GAAYH,EAAUG,IACtB6xB,EAAYhyB,EAAUgyB,OAE1BhyB,GAAUQ,MAAM4yD,SAAWpzD,EAAUQ,MAAMmyD,KAAKvkD,QAE9C9G,KAAM,WAGN+rD,WAAY,OAEZp3C,YAAa,SAASzL,EAAQ8iD,EAAiBvnD,GAC7CpK,KAAKqvB,KAAKxgB,EAAQ8iD,EAAiBvnD,GAC9BpK,KAAKoK,OAAO8mD,WAGblxD,KAAKwpC,aAAemoB,EAFpB3xD,KAAK4xD,SAAW5xD,KAAK6O,OAAO+iD,SAI5B5xD,KAAKoK,OAAOynD,oBACZ7xD,KAAK8xD,2BAEL9xD,KAAK+xD,gBAIXtlB,MAAO,WACLzsC,KAAK8rB,QAAQrZ,UAAY4d,EAAQ+B,+CAAiD,GAAKpyB,KAAK0xD,YAG9FhB,SAAU,SAASzwB,EAAOO,GACxB,GAAI5Q,GAAQ5vB,KAAK2sC,UAAY,GAAKtuC,EAAUI,OAAOsiC,oBAAoB/gC,KAAK8rB,QAK5E,OAJImU,MAAU,IACZrQ,EAAQ5vB,KAAK6O,OAAOoxB,MAAMrQ,EAAQ4Q,KAAmB,GAAS,GAAQ,IAGjE5Q,GAGTgd,SAAU,SAAS3U,EAAMgI,GACnBA,IACFhI,EAAOj4B,KAAK6O,OAAOoxB,MAAMhI,GAG3B,KACEj4B,KAAK8rB,QAAQrZ,UAAYwlB,EACzB,MAAOx3B,GACPT,KAAK8rB,QAAQpqB,UAAYu2B,IAI7B2I,QAAS,WACP,GAAIngB,EACAzgB,MAAKpB,YACP6hB,EAAWxY,MAAMumB,cAAcxuB,KAAKN,MAEtCM,KAAK6O,OAAOoxB,MAAMjgC,KAAK8rB,SACnBrL,GACFxY,MAAM0mB,iBAAiBlO,IAI3B4wC,KAAM,WACJrxD,KAAKwpC,aAAahc,MAAME,QAAU1tB,KAAKgyD,eAAiB,GAEnDhyD,KAAKoK,OAAO8mD,YAAelxD,KAAK4xD,SAAS9lC,QAAQmmC,WAEpDjyD,KAAKuxD,UACLvxD,KAAKwxD,WAITF,KAAM,WACJtxD,KAAKgyD,cAAgBxzD,EAAIs8B,SAAS,WAAWC,KAAK/6B,KAAKwpC,cAC5B,SAAvBxpC,KAAKgyD,gBACPhyD,KAAKgyD,cAAgB,MAEvBhyD,KAAKwpC,aAAahc,MAAME,QAAU,QAGpC6jC,QAAS,WACPvxD,KAAK6O,OAAOynB,KAAK,oBACjBt2B,KAAK8rB,QAAQ8lB,gBAAgB,oBAG/B4f,OAAQ,WACNxxD,KAAK6O,OAAOynB,KAAK,mBACjBt2B,KAAK8rB,QAAQtlB,aAAa,kBAAmB,SAG/C2hB,MAAO,SAAS+pC,GAIV7zD,EAAUgyB,QAAQoE,kBAAoBz0B,KAAKwsC,qBAC7CxsC,KAAKysC,QAGPzsC,KAAKqvB,MAEL,IAAI1Q,GAAY3e,KAAK8rB,QAAQnN,SACzBuzC,IAAYvzC,GAAa3e,KAAKpB,YACL,OAAvB+f,EAAU1T,SACZjL,KAAKpB,UAAUk8C,UAAU96C,KAAK8rB,QAAQnN,WAEtC3e,KAAKpB,UAAUy8C,SAASr7C,KAAK8rB,QAAQnN,aAK3C63B,aAAc,WACZ,GAAIx2C,KAAKL,KAAOK,KAAKN,IAAK,CACxB,GAAIsU,KAcJ,OAXEA,GAAI0iC,EAD8B,mBAAzB12C,MAAKN,IAAIyyD,YACVnyD,KAAKN,IAAIyyD,aAERnyD,KAAKL,IAAI8T,iBAAmBzT,KAAKL,IAAI0J,KAAKvF,YAAc9D,KAAKL,IAAI0J,MAAMw1C,UAIhF7qC,EAAI2iC,EAD8B,mBAAzB32C,MAAKN,IAAI0yD,YACVpyD,KAAKN,IAAI0yD,aAERpyD,KAAKL,IAAI8T,iBAAmBzT,KAAKL,IAAI0J,KAAKvF,YAAc9D,KAAKL,IAAI0J,MAAM01C,WAG3E/qC,IAIX8nC,aAAc,SAAS9nC,GACjBA,GAAwB,mBAAVA,GAAI2iC,GAAsC,mBAAV3iC,GAAI0iC,GACpD12C,KAAKN,IAAI2yD,SAASr+C,EAAI2iC,EAAG3iC,EAAI0iC,IAIjC5J,eAAgB,WACd,MAAOtuC,GAAIsuC,eAAe9sC,KAAK8rB,UAGjC0gB,kBAAmB,WACjB,MAAOxsC,MAAK8sC,mBAAsB9sC,KAAKoK,OAAiB,WAAIpK,KAAKwpC,aAAarjC,aAAa,oBAAsBnG,KAAK4xD,SAAS9lC,QAAQ3lB,aAAa,iBAAmBnG,KAAK0sC,gBAG9KC,QAAS,WACP,GAAIl6B,GAAYzS,KAAK8rB,QAAQrZ,UAAUvH,aACvC,OAAO,iCAAmCnF,KAAK0M,IAC1B,KAAdA,GACc,SAAdA,GACc,YAAdA,GACc,gBAAdA,GACAzS,KAAKwsC,qBAGdslB,yBAA0B,WACtB,GAAI/nB,GAAO/pC,IAEPA,MAAKoK,OAAO8mD,WACZlxD,KAAKmwD,QAAU,GAAI3xD,GAAImtC,oBAAoB,WACvC5B,EAAKuoB,cACFtyD,KAAKwpC,eAEZxpC,KAAKmwD,QAAU,GAAI3xD,GAAImtC,oBAAoB,WACvC5B,EAAKuoB,YAETtyD,KAAKwpC,aAAexpC,KAAKmwD,QAAQvkB,qBACjCptC,EAAIw8B,OAAOh7B,KAAKwpC,cAAcvO,MAAMj7B,KAAK4xD,SAAS9lC,SAClD9rB,KAAKuyD,4BAIbR,aAAc,WACZ,GAAIhoB,GAAO/pC,IAEXA,MAAKmwD,QAAU,GAAI3xD,GAAI8qC,QAAQ,WAC7BS,EAAKuoB,YAELxnB,YAAc9qC,KAAKoK,OAAO0gC,cAE5B9qC,KAAKwpC,aAAgBxpC,KAAKmwD,QAAQxmB,WAElC,IAAIsnB,GAAkBjxD,KAAK4xD,SAAS9lC,OACpCttB,GAAIw8B,OAAOh7B,KAAKwpC,cAAcvO,MAAMg2B,GAEpCjxD,KAAKuyD,2BAIPA,wBAAyB,WACrB,GAAIvyD,KAAK4xD,SAAS9lC,QAAQ0mC,KAAM,CAC9B,GAAIC,GAAc1uD,SAASG,cAAc,QACzCuuD,GAAYhtD,KAAS,SACrBgtD,EAAY9sD,KAAS,kBACrB8sD,EAAY7iC,MAAS,EACrBpxB,EAAIw8B,OAAOy3B,GAAax3B,MAAMj7B,KAAK4xD,SAAS9lC,WAIlDwmC,QAAS,WACP,GAAIvoB,GAAO/pC,IACXA,MAAKL,IAAqBK,KAAKmwD,QAAQx/C,cACvC3Q,KAAKN,IAAqBM,KAAKmwD,QAAQt/C,YACvC7Q,KAAK8rB,QAAsB9rB,KAAKoK,OAA0B,oBAAIpK,KAAKmwD,QAAQvkB,qBAAuB5rC,KAAKL,IAAI0J,KACtGrJ,KAAKoK,OAAO8mD,WAIblxD,KAAK4gC,WAHL5gC,KAAK4xD,SAAqB5xD,KAAK6O,OAAO+iD,SACtC5xD,KAAK8rB,QAAQrZ,UAAazS,KAAK4xD,SAASlB,UAAS,GAAM,IAM3D1wD,KAAKpB,UAAY,GAAIP,GAAUquB,UAAU1sB,KAAK6O,OAAQ7O,KAAK8rB,QAAS9rB,KAAKoK,OAAO2+C,8BAGhF/oD,KAAKzB,SAAY,GAAIF,GAAUuoD,SAAS5mD,KAAK6O,QAExC7O,KAAKoK,OAAO8mD,YACb1yD,EAAI28B,gBACA,YAAa,aAAc,QAAS,OAAQ,MAAO,cACpDJ,KAAK/6B,KAAK4xD,SAAS9lC,SAASwP,GAAGt7B,KAAK8rB,SAG3CttB,EAAIm7B,SAAS35B,KAAK8rB,QAAS9rB,KAAKoK,OAAOsoD,mBAGnC1yD,KAAKoK,OAAOojB,QAAUxtB,KAAKoK,OAAOynD,qBACpC7xD,KAAKwtB,QAGPxtB,KAAKw2B,SAEL,IAAI7wB,GAAO3F,KAAKoK,OAAOzE,IACnBA,KACFnH,EAAIm7B,SAAS35B,KAAK8rB,QAASnmB,GACtB3F,KAAKoK,OAAOynD,qBAAuBrzD,EAAIm7B,SAAS35B,KAAKwpC,aAAc7jC,IAG1E3F,KAAKwxD,UAEAxxD,KAAKoK,OAAO8mD,YAAclxD,KAAK4xD,SAAS9lC,QAAQmmC,UACnDjyD,KAAKuxD,SAIP,IAAInlB,GAAsD,gBAA7BpsC,MAAKoK,OAAkB,YAChDpK,KAAKoK,OAAOuoD,YACV3yD,KAAKoK,OAAiB,WAAIpK,KAAKwpC,aAAarjC,aAAa,oBAAsBnG,KAAK4xD,SAAS9lC,QAAQ3lB,aAAa,cACpHimC,IACF5tC,EAAI0tC,oBAAoBlsC,KAAK6O,OAAQ7O,KAAMosC,GAI7CpsC,KAAKzB,SAASuyB,KAAK,gBAAgB,GAEnC9wB,KAAK4yD,mBACL5yD,KAAK6yD,sBACL7yD,KAAK8yD,mBACL9yD,KAAK+yD,oBAIA/yD,KAAKoK,OAAO8mD,aAAelxD,KAAK4xD,SAAS9lC,QAAQmhB,aAAa,cAAgBlpC,SAAS6tB,cAAc,WAAa5xB,KAAK4xD,SAAS9lC,SAAauE,EAAQyB,SACxJyZ,WAAW,WAAaxB,EAAK5hB,OAAM,IAAU,KAI1CkI,EAAQoD,kCACXp1B,EAAUI,OAAOo5C,qBAAqB73C,MAIpCA,KAAKgzD,UAAYhzD,KAAKoK,OAAO6oD,MAC/BjzD,KAAKgzD,WAIFhzD,KAAKoK,OAAO8mD,YAAclxD,KAAK4xD,SAASN,OAG7CtxD,KAAK6O,OAAOynB,KAAK,cAAcA,KAAK,SAGtCs8B,iBAAkB,WAChB,GAAI7oB,GAAiC/pC,KACjCkzD,EAAiC7iC,EAAQmD,wBACzC2/B,EAAiC9iC,EAAQkD,kCAK7C,IAJI2/B,GACFlzD,KAAKzB,SAASuyB,KAAK,iBAAiB,GAGjC9wB,KAAKoK,OAAO8tB,SAAjB,GAMKi7B,GAAwBA,GAAuBD,KAClDlzD,KAAK6O,OAAOxO,GAAG,mBAAoB,WACjC,GAAI7B,EAAIsuC,eAAe/C,EAAKje,SAAS9B,MAAMxrB,EAAI05B,SAASK,aAAc,CAKpE,IAAK,GAJD66B,GAAoBrpB,EAAKnrC,UAAUs9C,kBACnCU,EAAc7S,EAAKje,QAAQ9nB,iBAAiB,IAAM+lC,EAAK3/B,OAAO2+C,8BAC9DsK,GAAiB,EAEZpvD,EAAI24C,EAAYv6C,OAAQ4B,KAC3B5F,EAAUG,IAAI8F,SAASs4C,EAAY34C,GAAImvD,KACzCC,GAAiB,EAIhBA,IAAgB70D,EAAI05B,SAASk7B,GAAoBrpB,EAAK3/B,OAAO2+C,kCAItEvqD,EAAIg4B,QAAQx2B,KAAK8rB,QAAS,OAAQ,WAChCttB,EAAI05B,SAAS6R,EAAKje,SAAUie,EAAK3/B,OAAO2+C,iCAQ5C,IACIuK,GAAkBtzD,KAAKmwD,QAAQx/C,cAAcrH,qBAAqB,KAElEiqD,EAAkB/0D,EAAI05B,SAASK,YAC/BuU,EAAkB,SAAShhB,GACzB,GAAI8S,GAAcvgC,EAAUM,KAAK64B,OAAOh5B,EAAIsuC,eAAehhB,IAAUhsB,MAIrE,OAHiC,SAA7B8+B,EAAY5F,OAAO,EAAG,KACxB4F,EAAc,UAAYA,GAErBA,EAGbpgC,GAAIg4B,QAAQx2B,KAAK8rB,QAAS,UAAW,SAASprB,GAC5C,GAAK4yD,EAAMjxD,OAAX,CAIA,GAEIu8B,GAFA6rB,EAAe1gB,EAAKnrC,UAAUs9C,gBAAgBx7C,EAAMC,OAAOiQ,eAC3D+uB,EAAenhC,EAAIo/B,iBAAiB6sB,GAAgB1tB,MAAO,KAAO,EAGjE4C,KAILf,EAAckO,EAAenN,GAG7B4L,WAAW,WACT,GAAIioB,GAAiB1mB,EAAenN,EAChC6zB,KAAmB50B,GAKnB40B,EAAexpC,MAAMupC,IACvB5zB,EAAKn5B,aAAa,OAAQgtD,IAE3B,SAIPX,oBAAqB,WAMnB,GALA7yD,KAAKzB,SAASuyB,KAAK,wBAAwB,GAKvCT,EAAQ4B,cAAc,aAAc,CACtC,GAAI6K,IAAqB,QAAS,UAC9B22B,EAAoB32B,EAAWz6B,OAC/BypB,EAAoB9rB,KAAK8rB,OAE7BttB,GAAIg4B,QAAQ1K,EAAS,YAAa,SAASprB,GACzC,GAGI8zB,GAHA7zB,EAASD,EAAMC,QAAUD,EAAME,WAC/B4sB,EAAS7sB,EAAO6sB,MAChBvpB,EAAS,CAGb,IAAwB,QAApBtD,EAAOsK,SAAX,CAIA,KAASwoD,EAAFxvD,EAAoBA,IACzBuwB,EAAWsI,EAAW74B,GAClBupB,EAAMgH,KACR7zB,EAAO6F,aAAaguB,EAAUvK,SAASuD,EAAMgH,GAAW,KACxDhH,EAAMgH,GAAY,GAKtBn2B,GAAUI,OAAOy5C,OAAOpsB,QAK9BgnC,iBAAkB,WAChB9yD,KAAKwtD,YAAc,GAAInvD,GAAUwxD,YAAY7vD,KAAK6O,SAGpDkkD,kBAAmB,WAKjB,QAASW,GAAOjJ,GACd,GAAI77C,GAAgBpQ,EAAIo/B,iBAAiB6sB,GAAgB1tB,MAAO,UAAY,EACxEnuB,IAAiBpQ,EAAI8F,SAASylC,EAAKje,QAASld,IAC9Cm7B,EAAKnrC,UAAU2/C,kBAAkB,WAC3BxU,EAAK3/B,OAAO0+B,cACdtqC,EAAIkqC,sBAAsB95B,GACU,MAA3BA,EAAc3D,UACvBzM,EAAI+pC,cAAc35B,EAAe,OAXzC,GAAIm7B,GAAoC/pC,KACpC2zD,EAAoC,gCACpCC,EAAoC,cAenC5zD,MAAKoK,OAAO0+B,eACftqC,EAAIg4B,QAAQx2B,KAAK8rB,SAAU,QAAS,WAAY,WAC9C,GAAIie,EAAK4C,UAAW,CAClB,GAAI1D,GAAYc,EAAKpqC,IAAIuE,cAAc,IACvC6lC,GAAKje,QAAQrZ,UAAY,GACzBs3B,EAAKje,QAAQ3e,YAAY87B,GACpB5Y,EAAQ+B,+CAIX2X,EAAKnrC,UAAUkd,WAAWmtB,GAAW,IAHrCA,EAAUx2B,UAAY,OACtBs3B,EAAKnrC,UAAUk8C,UAAU7R,EAAU/2B,gBAmB3C1T,EAAIg4B,QAAQx2B,KAAK8rB,QAAS,UAAW,SAASprB,GAC5C,GAAIS,GAAUT,EAAMS,OAEpB,KAAIT,EAAM4vD,WAINnvD,IAAY9C,EAAUe,WAAa+B,IAAY9C,EAAUc,eAA7D,CAGA,GAAI00D,GAAer1D,EAAIo/B,iBAAiBmM,EAAKnrC,UAAUs9C,mBAAqBnf,MAAO42B,GAAqC,EACxH,OAAIE,OACFtoB,YAAW,WAET,GACIrR,GADAuwB,EAAe1gB,EAAKnrC,UAAUs9C,iBAGlC,IAA8B,OAA1B2X,EAAa5oD,SAAmB,CAClC,IAAKw/C,EACH,MAGFvwB,GAAO17B,EAAIo/B,iBAAiB6sB,GAAgB1tB,MAAO62B,GAAa,GAE3D15B,GACHw5B,EAAOjJ,GAIPtpD,IAAY9C,EAAUe,WAAay0D,EAAa5oD,SAAS+e,MAAM,aACjE0pC,EAAOjJ,IAER,QAID1gB,EAAK3/B,OAAO0+B,eAAiB3nC,IAAY9C,EAAUe,YAAcf,EAAUgyB,QAAQiC,8BACrF5xB,EAAMG,iBACNkpC,EAAKxrC,SAASuyB,KAAK,4BAM1BzyB,WACF,SAAUA,GACT,GAAIG,GAAkBH,EAAUG,IAC5BmB,EAAkBoE,SAClBrE,EAAkBgI,OAClBosD,EAAkBn0D,EAAIuE,cAAc,OAIpC6vD,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,0CACA51D,EAAUgyB,QAAQY,QAChB,mDACA,kDAEF,wFAWFijC,EAAwB,SAASpoC,GACnC,GAAIA,EAAQqoC,UAGV,IAAMroC,EAAQqoC,YAAe,MAAM1zD,QAC9B,CACL,GAAI2zD,GAAetoC,EAAQ0B,MACvB6mC,EAAoB10D,EAAI8T,gBAAgBorC,WAAal/C,EAAI0J,KAAKw1C,UAC9DyV,EAAqB30D,EAAI8T,gBAAgBsrC,YAAcp/C,EAAI0J,KAAK01C,WAChEwV,GACE9jD,SAAkB2jD,EAAa3jD,SAC/BgmC,IAAkB2d,EAAa3d,IAC/BtP,KAAkBitB,EAAajtB,KAC/BqtB,iBAAkBJ,EAAaI,iBAGrCh2D,GAAI09B,WACFzrB,SAAkB,WAClBgmC,IAAkB,WAClBtP,KAAkB,WAElBqtB,iBAAkB,SACjBn0D,GAAGyrB,GAENA,EAAQ3D,QAER3pB,EAAI09B,UAAUq4B,GAAgBl0D,GAAGyrB,GAE7BpsB,EAAI2yD,UAIN3yD,EAAI2yD,SAASiC,EAAoBD,IAMvCh2D,GAAUQ,MAAM4yD,SAAS5xD,UAAU2tB,MAAQ,WACzC,GAOIinC,GAPA1qB,EAAwB/pC,KACxB00D,EAAwB/0D,EAAIiyB,cAAc,UAC1Cq/B,EAAwBjxD,KAAK4xD,SAAS9lC,QACtC6oC,EAAwB1D,EAAgBhkB,aAAa,eACrD2nB,EAAwBD,GAAkB1D,EAAgB9qD,aAAa,eACvE0uD,EAAwB5D,EAAgBzjC,MAAME,QAC9ConC,EAAwB7D,EAAgBgB,QAG5CjyD,MAAK+0D,gBAAuBjB,EAAcvjD,WAAU,GACpDvQ,KAAKg1D,eAAuBlB,EAAcvjD,WAAU,GACpDvQ,KAAKi1D,mBAAuBnB,EAAcvjD,WAAU,GAGhDokD,GACF1D,EAAgBrf,gBAAgB,eAG9Bqf,IAAoByD,GACtBzD,EAAgBiE,OAIlBjE,EAAgBgB,UAAW,EAG3BhB,EAAgBzjC,MAAME,QAAU+mC,EAAyB,QAEpDxD,EAAgB9qD,aAAa,SAA4D,SAAjD3H,EAAIs8B,SAAS,UAAUC,KAAKk2B,IACpEA,EAAgB9qD,aAAa,SAA2D,SAAhD3H,EAAIs8B,SAAS,SAASC,KAAKk2B,MACtEA,EAAgBzjC,MAAME,QAAU+mC,EAAyBI,GAI3Dr2D,EAAIu9B,WAAWi4B,GAAgBj5B,KAAKk2B,GAAiB31B,GAAGt7B,KAAKwpC,cAAc/N,MAAMz7B,KAAKg1D,gBAGtFx2D,EAAIu9B,WAAWg4B,GAAiBh5B,KAAKk2B,GAAiB31B,GAAGt7B,KAAK8rB,SAAS2P,MAAMz7B,KAAKg1D,gBAGlFx2D,EAAI+gC,UAAU00B,GAAsB30B,KAAKt/B,KAAK8rB,QAAQlb,eAGtDqgD,EAAgBgB,UAAW,EAC3BzzD,EAAIu9B,WAAWi4B,GAAgBj5B,KAAKk2B,GAAiB31B,GAAGt7B,KAAKi1D,oBAC7Dz2D,EAAIu9B,WAAWg4B,GAAiBh5B,KAAKk2B,GAAiB31B,GAAGt7B,KAAKi1D,oBAC9DhE,EAAgBgB,SAAW6C,EAG3B7D,EAAgBzjC,MAAME,QAAUmnC,EAChCX,EAAsBjD,GACtBA,EAAgBzjC,MAAME,QAAU+mC,EAEhCj2D,EAAIu9B,WAAWi4B,GAAgBj5B,KAAKk2B,GAAiB31B,GAAGt7B,KAAK+0D,iBAC7Dv2D,EAAIu9B,WAAWg4B,GAAiBh5B,KAAKk2B,GAAiB31B,GAAGt7B,KAAK+0D,iBAG9D9D,EAAgBzjC,MAAME,QAAUmnC,EAEhCr2D,EAAIu9B,YAAY,YAAYhB,KAAKk2B,GAAiB31B,GAAGt7B,KAAKwpC,aAK1D,IAAI2rB,GAAsB92D,EAAUM,KAAKu2B,MAAM8+B,GAAgB5+B,SAAS,WAmCxE,OAhCIs/B,GACFA,EAAsBvsC,QAEtB8oC,EAAgBiE,OAIdP,GACF1D,EAAgBzqD,aAAa,cAAeouD,GAI9C50D,KAAK6O,OAAOxO,GAAG,iBAAkB,WAC/B7B,EAAIu9B,WAAWo5B,GAAsBp6B,KAAKgP,EAAKgrB,iBAAiBz5B,GAAGyO,EAAKP,cACxEhrC,EAAIu9B,WAAWg4B,GAAsBh5B,KAAKgP,EAAKgrB,iBAAiBz5B,GAAGyO,EAAKje,WAG1E9rB,KAAK6O,OAAOxO,GAAG,gBAAiB,WAC9B7B,EAAIu9B,WAAWo5B,GAAsBp6B,KAAKgP,EAAKirB,gBAAgB15B,GAAGyO,EAAKP,cACvEhrC,EAAIu9B,WAAWg4B,GAAsBh5B,KAAKgP,EAAKirB,gBAAgB15B,GAAGyO,EAAKje,WAGzE9rB,KAAK6O,OAAO2nB,QAAQ,mBAAoB,WACtCh4B,EAAIu9B,WAAWo5B,GAAsBp6B,KAAKgP,EAAKkrB,oBAAoB35B,GAAGyO,EAAKP,cAC3EhrC,EAAIu9B,WAAWg4B,GAAsBh5B,KAAKgP,EAAKkrB,oBAAoB35B,GAAGyO,EAAKje,WAG7E9rB,KAAK6O,OAAO2nB,QAAQ,kBAAmB,WACrCh4B,EAAIu9B,WAAWo5B,GAAsBp6B,KAAKgP,EAAKirB,gBAAgB15B,GAAGyO,EAAKP,cACvEhrC,EAAIu9B,WAAWg4B,GAAsBh5B,KAAKgP,EAAKirB,gBAAgB15B,GAAGyO,EAAKje,WAGlE9rB,OAER3B,WASH,SAAUA,GACR,GAAIG,GAAYH,EAAUG,IACtB6xB,EAAYhyB,EAAUgyB,QAItB+kC,GACEC,GAAM,OACNC,GAAM,SACNC,GAAM,aAKRC,EAAe,SAAU70D,EAAQu1B,EAAQT,GAC3C,IAAI,GAAIxxB,GAAI,EAAG6xB,EAAMI,EAAO7zB,OAAYyzB,EAAJ7xB,EAASA,IAC3CtD,EAAOgN,iBAAiBuoB,EAAOjyB,GAAIwxB,GAAU,IAM7CggC,EAAkB,SAAU90D,EAAQu1B,EAAQT,GAC9C,IAAI,GAAIxxB,GAAI,EAAG6xB,EAAMI,EAAO7zB,OAAYyzB,EAAJ7xB,EAASA,IAC3CtD,EAAOy7B,oBAAoBlG,EAAOjyB,GAAIwxB,GAAU,IAKhDigC,EAA2B,SAAStf,EAAUrxC,GAChD,GAAIqxC,EAASx3C,UAAU++C,yBAA0B,CAC/C,GAAIp4B,GAAM6wB,EAASx3C,UAAUwmB,eACzBuwC,EAAQpwC,EAAIE,UAChB,IAAIkwC,GAA4B,IAAnBA,EAAMtoD,WAAmBhP,EAAUG,IAAIo/B,iBAAiB+3B,GAAQ54B,MAAO,WAAW,EAAOqZ,EAAStqB,UAAY/mB,GAAQ,CACjI,GAAIkL,GAAW0lD,EAAMvoD,WAAWmY,EAAIG,aACpC,IAAIzV,GAAkC,IAAtBA,EAAS5C,SAAuC,OAAtB4C,EAAShF,SAEjD,MADAgF,GAASnM,WAAW6Y,YAAY1M,IACzB,GAIb,OAAO,GAIL2lD,EAA2B,SAASxf,GACtC,GAAI/W,GAAS+W,EAASx3C,UAAUq/C,oBAAmB,EACnD,IAAI5e,IAA2B,YAAhBA,EAAO55B,MAAsC,aAAhB45B,EAAO55B,OAAiD,IAAzB45B,EAAOz7B,KAAKyJ,UAAkBgyB,EAAOz7B,KAAKQ,UAAUE,SAAS8xC,EAAShsC,OAAO2+C,8BAA+B,CACrL,GAAI2M,EAAyBtf,GAAU,GACrC,OAAO,CAET,KACE,GAAI4G,GAAK,GAAIC,aAAY,8BACzB5d,GAAOz7B,KAAKs5C,cAAcF,GAC1B,MAAOG,IAET,MADA9d,GAAOz7B,KAAKE,WAAW6Y,YAAY0iB,EAAOz7B,OACnC,EAET,OAAO,GAKLiyD,EAAkC,SAASzf,GAC7C,GAAIx3C,GAAYw3C,EAASx3C,SAEzB,IAAIA,EAAUk/C,2BACVl/C,EAAUw+C,mBACVx+C,EAAUw+C,kBAAkBnyC,UAC5B,UAAYlF,KAAKnH,EAAUw+C,kBAAkBnyC,UAC/C,CACA,GAAIwxB,GAAW79B,EAAUw+C,iBACzB,IAAI,QAAUr3C,KAAK02B,EAASmC,aAAenC,EAAS/6B,WAGlD,MADA+6B,GAAS34B,WAAW6Y,YAAY8f,IACzB,CAEP,IAAIA,EAAS9d,UAAW,CACtB,GAAIm3C,GAAUr5B,EAAS9d,UACnBo3C,EAAU13D,EAAUG,IAAIo/B,iBAAiBh/B,EAAUs9C,mBAAqBnf,MAAO,oDAAqD,EAAOqZ,EAAStqB,QACxJ,IAAI2Q,EAAU,CACZ,GAAIs5B,EAAS,CACX,KAAOA,EAAQ7jD,YACbuqB,EAAStvB,YAAY4oD,EAAQ7jD,WAG/B,OADAtT,GAAUy8C,SAASya,IACZ,EACF,GAA6C,IAAzCl3D,EAAUs9C,kBAAkB7uC,SAGrC,MAFAovB,GAAStvB,YAAYvO,EAAUs9C,mBAC/Bt9C,EAAUy8C,SAASya,IACZ,IAMjB,OAAO,GAGLE,EAAuB,SAASt1D,EAAO01C,GACzC,CAAA,GAAIx3C,GAAYw3C,EAASx3C,SACXw3C,GAAStqB,QAEvB,GAAIltB,EAAUgkB,cACZ,GAAIhkB,EAAUm/C,qBAAqB,MAEjCr9C,EAAMG,iBACNu1C,EAAS73C,SAASuyB,KAAK,mBAClB,CACL,GAAI+kC,EAAgCzf,GAElC,WADA11C,GAAMG,gBAGR,IAAI60D,EAAyBtf,GAE3B,WADA11C,GAAMG,gBAGR,IAAI+0D,EAAyBxf,GAE3B,WADA11C,GAAMG,qBAKNjC,GAAU+9C,uBACZj8C,EAAMG,iBACNjC,EAAUsd,mBAKZ+5C,EAAmB,SAAS7f,GAC9B,GAAKA,EAASx3C,UAAUgkB,eAEjB,GAAIwzB,EAASx3C,UAAUm/C,qBAAqB,OAC7C3H,EAAS73C,SAASuyB,KAAK,cAAe,WAF1CslB,GAASx3C,UAAUsd,gBAMrBk6B,GAAS73C,SAASuyB,KAAK,aAAc,WAGnColC,EAAuB,WACnBl2D,KAAKm2D,wBACPC,cAAcD,wBAEhBn2D,KAAK6O,OAAOynB,KAAK,qBAIjB+/B,EAAwB,WAC1Br2D,KAAK6O,OAAOynB,KAAK,qBAAqBA,KAAK,8BAC3CiV,WAAW,WACTvrC,KAAK6O,OAAOynB,KAAK,eAAeA,KAAK,yBACpC7zB,KAAKzC,MAAO,IAGbs2D,EAAc,SAAS51D,GACzBV,KAAK6O,OAAOynB,KAAK,QAAS51B,GAAO41B,KAAK,iBAAkB51B,GAIxD6qC,WAAW,WACTvrC,KAAKu2D,WAAav2D,KAAK0wD,UAAS,GAAO,IACtCjuD,KAAKzC,MAAO,IAGbw2D,EAAa,SAAS91D,GACxB,GAAIV,KAAKu2D,aAAev2D,KAAK0wD,UAAS,GAAO,GAAQ,CAEnD,GAAI+F,GAAc/1D,CACS,mBAAjBY,QAAOo1D,SACfD,EAAcn1D,OAAOo1D,OAAOh2D,GAAS+E,MAAQmqB,MAAO,aAEtD5vB,KAAK6O,OAAOynB,KAAK,SAAUmgC,GAAangC,KAAK,kBAAmBmgC,GAElEz2D,KAAK6O,OAAOynB,KAAK,OAAQ51B,GAAO41B,KAAK,gBAAiB51B,IAGpDi2D,EAAc,SAASj2D,GACzBV,KAAK6O,OAAOynB,KAAK51B,EAAM+E,KAAM/E,GAAO41B,KAAK51B,EAAM+E,KAAO,YAAa/E,GAChD,UAAfA,EAAM+E,MACR8lC,WAAW,WACTvrC,KAAK6O,OAAOynB,KAAK,qBAChB7zB,KAAKzC,MAAO,IAIf42D,EAAa,SAASl2D,GACpBV,KAAKoK,OAAOysD,oBAGVn2D,EAAMu1C,gBACRv1C,EAAMu1C,cAAc6gB,QAAQ,YAAa92D,KAAKoK,OAAOysD,kBAAoB72D,KAAKpB,UAAU2iD,WACxF7gD,EAAMu1C,cAAc6gB,QAAQ,aAAc92D,KAAKpB,UAAU4iD,gBACzD9gD,EAAMG,kBAERb,KAAK6O,OAAOynB,KAAK51B,EAAM+E,KAAM/E,GAAO41B,KAAK51B,EAAM+E,KAAO,YAAa/E,KAInEq2D,EAAc,SAASr2D,GACzB,GAAIS,GAAUT,EAAMS,SAChBA,IAAY9C,EAAUiB,WAAa6B,IAAY9C,EAAUe,YAC3DY,KAAK6O,OAAOynB,KAAK,qBAIjB+hB,EAAkB,SAAS33C,GAC7B,IAAK2vB,EAAQuD,mCAAoC,CAE/C,GAAIjzB,GAASD,EAAMC,OACfq2D,EAAYh3D,KAAK8rB,QAAQ9nB,iBAAiB,OAC1CizD,EAAcj3D,KAAK8rB,QAAQ9nB,iBAAiB,IAAMhE,KAAKoK,OAAO2+C,6BAA+B,QAC7FmO,EAAW74D,EAAUM,KAAKu2B,MAAM8hC,GAAW5hC,QAAQ6hC,EAE/B,SAApBt2D,EAAOsK,UAAsB5M,EAAUM,KAAKu2B,MAAMgiC,GAAU5yD,SAAS3D,IACvEX,KAAKpB,UAAUkd,WAAWnb,KAO5Bw2D,EAAkB,SAASz2D,GAC7B,GAMI02D,GANAC,GACEC,IAAK,UACL3hC,EAAK,UAEPh1B,EAAWD,EAAMC,OACjBsK,EAAWtK,EAAOsK,UAGL,MAAbA,GAAiC,QAAbA,KAGpBtK,EAAOssC,aAAa,WACtBmqB,EAAQC,EAAcpsD,IAAatK,EAAOwF,aAAa,SAAWxF,EAAOwF,aAAa,QACtFxF,EAAO6F,aAAa,QAAS4wD,MAI7BG,EAAc,SAAS72D,GACzB,GAAIV,KAAKoK,OAAO2+C,6BAA8B,CAG5C,GAAIyO,GAAan5D,EAAUG,IAAIo/B,iBAAiBl9B,EAAMC,QAAUo8B,MAAO,IAAM/8B,KAAKoK,OAAO2+C,+BAAgC,EAAO/oD,KAAK8rB,QACjI0rC,IACFx3D,KAAKpB,UAAUy8C,SAASmc,KAK1BC,EAAa,WACVpnC,EAAQuD,oCAEX2X,WAAW,WACTvrC,KAAKpB,UAAUwmB,eAAewE,mBAC7BnnB,KAAKzC,MAAO,IAIf03D,EAAgB,SAASh3D,GAC3B,GAEIC,GAAQkO,EAFR1N,EAAUT,EAAMS,QAChB+xB,EAAUkiC,EAAUj0D,IAInBT,EAAM46C,SAAW56C,EAAM66C,WAAa76C,EAAM0vD,QAAUl9B,IACvDlzB,KAAKzB,SAASuyB,KAAKoC,GACnBxyB,EAAMG,kBAGJM,IAAY9C,EAAUc,eAExB62D,EAAqBt1D,EAAOV,OAI1BmB,IAAY9C,EAAUc,eAAiBgC,IAAY9C,EAAUmB,cAC/DmB,EAASX,KAAKpB,UAAUs9C,iBAAgB,GACpCv7C,GAA8B,QAApBA,EAAOsK,WACnBvK,EAAMG,iBACNgO,EAASlO,EAAOmD,WAChB+K,EAAO8N,YAAYhc,GAEK,MAApBkO,EAAO5D,UAAqB4D,EAAOqD,YACrCrD,EAAO/K,WAAW6Y,YAAY9N,GAEhC08B,WAAW,WACTltC,EAAUI,OAAOy5C,OAAOl4C,KAAK8rB,UAC5B,KAIH9rB,KAAKoK,OAAOutD,cAAgBx2D,IAAY9C,EAAUkB,UAEpDmB,EAAMG,iBACNo1D,EAAiBj2D,KAAMA,KAAK8rB,WAqB5B8rC,EAAoB,WACtB,GAAIC,GAAe,WACb73D,KAAKL,IAAI6xB,YAAY,wBAAwB,EAAO,SACpDxxB,KAAKL,IAAI6xB,YAAY,4BAA4B,EAAO,UAE1DsmC,EAAkB,WAChBD,EAAaz2D,KAAKpB,MAClBy1D,EAAgBz1D,KAAKmwD,QAAQxmB,aAAc,QAAS,UAAW,aAAcmuB,IAC5Er1D,KAAKzC,KAERA,MAAKL,IAAI6xB,aACTnzB,EAAUgyB,QAAQuC,gBAAgB5yB,KAAKL,IAAK,yBAC5CtB,EAAUgyB,QAAQuC,gBAAgB5yB,KAAKL,IAAK,8BAE1CK,KAAKmwD,QAAQxmB,UACf6rB,EAAax1D,KAAKmwD,QAAQxmB,aAAc,QAAS,UAAW,aAAcmuB,GAE1EvsB,WAAW,WACTssB,EAAaz2D,KAAKpB,OACjByC,KAAKzC,MAAO,IAGnBA,KAAKguD,eAAiB3vD,EAAUI,OAAO05C,oBAAoBn4C,KAAK8rB,QAAS9rB,KAAK6O,QAGhFxQ,GAAUQ,MAAM4yD,SAAS5xD,UAAU22B,QAAU,WAC3C,GACItd,GAAuBlZ,KAAKmwD,QAAiB,UAAInwD,KAAKmwD,QAAQxmB,YAAc3pC,KAAKmwD,QAAQvkB,qBAEzFmsB,GADsB/3D,KAAK8rB,QACJuE,EAAQoC,mCAAqCzyB,KAAKmwD,QAAQvkB,mBAAsB5rC,KAAK8rB,QAAU9rB,KAAKmwD,QAAQt/C,YAEvI7Q,MAAKu2D,WAAav2D,KAAK0wD,UAAS,GAAO,GAGvCx3C,EAAUvL,kBAAkB,kBAAmBuoD,EAAqBzzD,KAAKzC,OAAO,GAI3EqwB,EAAQ0E,2BACX/0B,KAAKm2D,uBAAyB6B,YAAY,WACnCx5D,EAAI8F,SAASP,SAAS0P,gBAAiByF,IAC1Cg9C,EAAqB90D,KAAKpB,OAE3B,MAIDA,KAAKoK,OAAO6tD,cAEdL,EAAkBx2D,KAAKpB,MAGzBw1D,EAAauC,GAAmB,OAAQ,QAAS,UAAW,QAAS,SAAU1B,EAAsB5zD,KAAKzC,OAC1G+3D,EAAiBpqD,iBAAiB,QAAS2oD,EAAY7zD,KAAKzC,OAAO,GACnE+3D,EAAiBpqD,iBAAiB,OAAS6oD,EAAW/zD,KAAKzC,OAAO,GAElEw1D,EAAax1D,KAAK8rB,SAAU,OAAQ,QAAS,eAAgB6qC,EAAYl0D,KAAKzC,OAAO,GACrFA,KAAK8rB,QAAQne,iBAAiB,OAAcipD,EAAWn0D,KAAKzC,OAAO,GACnEA,KAAK8rB,QAAQne,iBAAiB,YAAc0qC,EAAgB51C,KAAKzC,OAAO,GACxEA,KAAK8rB,QAAQne,iBAAiB,YAAcwpD,EAAgB10D,KAAKzC,OAAO,GACxEA,KAAK8rB,QAAQne,iBAAiB,QAAc4pD,EAAY90D,KAAKzC,OAAO,GACpEA,KAAK8rB,QAAQne,iBAAiB,OAAc8pD,EAAWh1D,KAAKzC,OAAO,GACnEA,KAAK8rB,QAAQne,iBAAiB,QAAcopD,EAAYt0D,KAAKzC,OAAO,GACpEA,KAAK8rB,QAAQne,iBAAiB,UAAc+pD,EAAcj1D,KAAKzC,OAAO,GAEtEA,KAAK8rB,QAAQne,iBAAiB,YAAa,WACzC3N,KAAK6O,OAAOynB,KAAK,sBAChB7zB,KAAKzC,OAAO,KAGhB3B,WAIH,SAAUA,GACR,GAAI65D,GAAW,GAEf75D,GAAUQ,MAAMs5D,aAAenpC,KAAKviB,QAGlC6N,YAAa,SAAS6xB,EAAQylB,EAAUxb,GACtCp2C,KAAKmsC,OAAWA,EAChBnsC,KAAK4xD,SAAWA,EAChB5xD,KAAKo2C,SAAWA,EAEhBp2C,KAAKiwD,YAQPmI,uBAAwB,SAASC,GAC/Br4D,KAAK4xD,SAAShlB,SAASvuC,EAAUM,KAAK64B,OAAOx3B,KAAKo2C,SAASsa,UAAS,GAAO,IAAQ5wD,OAAQu4D,IAQ7FC,uBAAwB,SAASD,GAC/B,GAAIE,GAAgBv4D,KAAK4xD,SAASlB,UAAS,GAAO,EAC9C6H,GACFv4D,KAAKo2C,SAASxJ,SAAS2rB,EAAeF,IAEtCr4D,KAAKo2C,SAAS3J,QACdzsC,KAAKmsC,OAAO7V,KAAK,qBAQrB28B,KAAM,SAASoF,GACwB,aAAjCr4D,KAAKmsC,OAAOilB,YAAYzrD,KAC1B3F,KAAKs4D,uBAAuBD,GAE5Br4D,KAAKo4D,uBAAuBC,IAShCpI,SAAU,WACR,GAAIuI,GACAzuB,EAAgB/pC,KAChBwyD,EAAgBxyD,KAAK4xD,SAAS9lC,QAAQ0mC,KACtCiG,EAAgB,WACdD,EAAWR,YAAY,WAAajuB,EAAKquB,0BAA6BF,IAExEQ,EAAgB,WACdtC,cAAcoC,GACdA,EAAW,KAGjBC,KAEIjG,IAGFn0D,EAAUG,IAAIg4B,QAAQg8B,EAAM,SAAU,WACpCzoB,EAAKkpB,MAAK,KAEZ50D,EAAUG,IAAIg4B,QAAQg8B,EAAM,QAAS,WACnCjnB,WAAW,WAAaxB,EAAKuuB,0BAA6B,MAI9Dt4D,KAAKmsC,OAAO9rC,GAAG,cAAe,SAAS2E,GACxB,aAATA,GAAwBwzD,EAGR,aAATxzD,IACT+kC,EAAKquB,wBAAuB,GAC5BM,MAJA3uB,EAAKuuB,wBAAuB,GAC5BG,OAOJz4D,KAAKmsC,OAAO9rC,GAAG,mBAAoBq4D,OAGtCr6D,WACF,SAAUA,GAETA,EAAUQ,MAAM85D,WAAa3pC,KAAKviB,QAGhC6N,YAAa,SAAS6xB,EAAQiK,GAC5Bp2C,KAAKmsC,OAAWA,EAChBnsC,KAAKo2C,SAAWA,EAEhBp2C,KAAKiwD,YAGP2I,iBAAkB,SAASP,GACzB,GAAIQ,GAAiB74D,KAAKo2C,SAAS12C,IAAI6T,iBAAiBvT,KAAKo2C,SAAStqB,SAClEoa,EAAQnV,WAAW8nC,EAAe3yB,OAClCC,EAASziB,KAAKoS,IAAI/E,WAAW8nC,EAAe1yB,QAAS,IAEpDnmC,MAAK4xD,WACR5xD,KAAK4xD,SAAW5xD,KAAKo2C,SAASz2C,IAAIuE,cAAc,YAChDlE,KAAK4xD,SAASjkC,UAAY,yBAE5B3tB,KAAK4xD,SAASpkC,MAAM0Y,MAAQA,EAAQ,KACpClmC,KAAK4xD,SAASpkC,MAAM2Y,OAASA,EAAS,KACtCnmC,KAAK4xD,SAAShiC,MAAQ5vB,KAAKmsC,OAAOukB,SAAS2H,GAAiB,GAC5Dr4D,KAAKo2C,SAAStqB,QAAQhoB,WAAWqM,aAAanQ,KAAK4xD,SAAU5xD,KAAKo2C,SAAStqB,SAC3E9rB,KAAKmsC,OAAOilB,YAAc,SAC1BpxD,KAAKo2C,SAAStqB,QAAQ0B,MAAME,QAAU,QAGxCorC,iBAAkB,SAAST,GACzB,GAAIE,GAAgBv4D,KAAK4xD,SAAShiC,KAC9B2oC,GACFv4D,KAAKo2C,SAASxJ,SAAS2rB,EAAeF,IAEtCr4D,KAAKo2C,SAAS3J,QACdzsC,KAAKmsC,OAAO7V,KAAK,oBAEnBt2B,KAAK4xD,SAAS9tD,WAAW6Y,YAAY3c,KAAK4xD,UAC1C5xD,KAAKmsC,OAAOilB,YAAcpxD,KAAKo2C,SAC/Bp2C,KAAKo2C,SAAStqB,QAAQ0B,MAAME,QAAU,IAGxCuiC,SAAU,WACRjwD,KAAKmsC,OAAO9rC,GAAG,cAAe,SAAS2E,GACxB,aAATA,EACFhF,KAAK84D,kBAAiB,GACJ,aAAT9zD,GACThF,KAAK44D,kBAAiB,IAExBn2D,KAAKzC,WAKV3B,WACFA,UAAUQ,MAAMk6D,SAAW16D,UAAUQ,MAAMmyD,KAAKvkD,QAE/C9G,KAAM,WAEN2U,YAAa,SAASzL,EAAQoiD,EAAiB7mD,GAC7CpK,KAAKqvB,KAAKxgB,EAAQoiD,EAAiB7mD,GAEnCpK,KAAKiwD,YAGPxjB,MAAO,WACLzsC,KAAK8rB,QAAQ8D,MAAQ,IAGvB8gC,SAAU,SAASzwB,GACjB,GAAIrQ,GAAQ5vB,KAAK2sC,UAAY,GAAK3sC,KAAK8rB,QAAQ8D,KAI/C,OAHIqQ,MAAU,IACZrQ,EAAQ5vB,KAAK6O,OAAOoxB,MAAMrQ,IAErBA,GAGTgd,SAAU,SAAS3U,EAAMgI,GACnBA,IACFhI,EAAOj4B,KAAK6O,OAAOoxB,MAAMhI,IAE3Bj4B,KAAK8rB,QAAQ8D,MAAQqI,GAGvB2I,QAAS,WACL,GAAI3I,GAAOj4B,KAAK6O,OAAOoxB,MAAMjgC,KAAK8rB,QAAQ8D,MAC1C5vB,MAAK8rB,QAAQ8D,MAAQqI,GAGzBuU,kBAAmB,WACjB,GAAIwsB,GAAsB36D,UAAUgyB,QAAQkC,+BAA+BvyB,KAAK8rB,SAC5EsgB,EAAsBpsC,KAAK8rB,QAAQ3lB,aAAa,gBAAkB,KAClEypB,EAAsB5vB,KAAK8rB,QAAQ8D,MACnC+c,GAAuB/c,CAC3B,OAAQopC,IAAuBrsB,GAAa/c,IAAUwc,GAGxDO,QAAS,WACP,OAAQtuC,UAAUM,KAAK64B,OAAOx3B,KAAK8rB,QAAQ8D,OAAO9vB,QAAUE,KAAKwsC,qBAGnEyjB,SAAU,WACR,GAAInkC,GAAU9rB,KAAK8rB,QACfjd,EAAU7O,KAAK6O,OACfoqD,GACEC,QAAU,QACVC,SAAU,QAMZjjC,EAAS73B,UAAUgyB,QAAQ4B,cAAc,YAAc,UAAW,WAAY,WAAa,QAAS,OAAQ,SAEhHpjB,GAAOxO,GAAG,aAAc,WACtBhC,UAAUG,IAAIg4B,QAAQ1K,EAASoK,EAAQ,SAASx1B,GAC9C,GAAI8xB,GAAYymC,EAAav4D,EAAM+E,OAAS/E,EAAM+E,IAClDoJ,GAAOynB,KAAK9D,GAAW8D,KAAK9D,EAAY,eAG1Cn0B,UAAUG,IAAIg4B,QAAQ1K,GAAU,QAAS,QAAS,WAChDyf,WAAW,WAAa18B,EAAOynB,KAAK,SAASA,KAAK,mBAAsB,UAoChF,SAAUj4B,GACR,GAAIqpD,GAEA0R,GAEFzzD,KAAsB+hD,EAEtBl6B,OAAsB,EAEtB9uB,QAAsBgpD,EAGtB2R,sBAAsB,EAEtBnhC,UAAsB,EAEtB+/B,cAAsB,EAEtBN,cAAsB,EAGtB2B,aAAwBr3B,MAAQs3B,MAAQpnB,QAAUqnB,OAASpxD,MAAShC,YAEpEqzD,oBAAqB,KAErBC,OAAsBr7D,EAAUG,IAAIyhC,MAEpCyyB,kBAAsB,mBAEtBiH,cAAsB,sBAEtB7wB,eAAsB,EAEtBgC,eAEAsB,gBAAsBsb,EAEtBkS,qBAAsB,EAEtBh5B,SAAsB,EAEtBixB,qBAAqB,EAGrB9I,6BAA8B,iCAK9B8N,kBAAmB,gDAGrBx4D,GAAUw7D,OAASx7D,EAAUM,KAAKq3B,WAAWvpB,QAE3C6N,YAAa,SAASq3C,EAAiBvnD,GAerC,GAdApK,KAAK2xD,gBAA+C,gBAAtB,GAAiC5tD,SAASipB,eAAe2kC,GAAmBA,EAC1G3xD,KAAKoK,OAAmB/L,EAAUM,KAAKsxB,WAAWyG,MAAM0iC,GAAe1iC,MAAMtsB,GAAQ3I,MACrFzB,KAAK85D,cAAmBz7D,EAAUgyB,QAAQlmB,YAES,YAA/CnK,KAAK2xD,gBAAgB1mD,SAASC,gBAC9BlL,KAAKoK,OAAOynD,qBAAsB,EAClC7xD,KAAKoK,OAAO8mD,YAAa,GAExBlxD,KAAKoK,OAAO8mD,aACblxD,KAAK4xD,SAAmB,GAAIvzD,GAAUQ,MAAMk6D,SAAS/4D,KAAMA,KAAK2xD,gBAAiB3xD,KAAKoK,QACtFpK,KAAKoxD,YAAmBpxD,KAAK4xD,WAI5B5xD,KAAK85D,gBAAmB95D,KAAKoK,OAAOwvD,qBAAuBv7D,EAAUgyB,QAAQ2B,gBAAkB,CAClG,GAAI+X,GAAO/pC,IAEX,YADAurC,YAAW,WAAaxB,EAAKzT,KAAK,cAAcA,KAAK,SAAY,GAKnEj4B,EAAUG,IAAIm7B,SAAS51B,SAASsF,KAAMrJ,KAAKoK,OAAOuvD,eAElD35D,KAAKo2C,SAAW,GAAI/3C,GAAUQ,MAAM4yD,SAASzxD,KAAMA,KAAK2xD,gBAAiB3xD,KAAKoK,QAC9EpK,KAAKoxD,YAAcpxD,KAAKo2C,SAEW,kBAAxBp2C,MAAKoK,OAAa,QAC3BpK,KAAK+5D,cAGP/5D,KAAKK,GAAG,aAAcL,KAAKg6D,mBAG7BA,iBAAkB,WACTh6D,KAAKoK,OAAO8mD,WAGflxD,KAAKi6D,WAAa,GAAI57D,GAAUQ,MAAM85D,WAAW34D,KAAMA,KAAKo2C,UAF5Dp2C,KAAKk6D,aAAe,GAAI77D,GAAUQ,MAAMs5D,aAAan4D,KAAMA,KAAK4xD,SAAU5xD,KAAKo2C,UAI7Ep2C,KAAKoK,OAAO1L,UACdsB,KAAKtB,QAAU,GAAIL,GAAUK,QAAQy7D,QAAQn6D,KAAMA,KAAKoK,OAAO1L,QAASsB,KAAKoK,OAAOivD,wBAI1Fe,aAAc,WACZ,MAAOp6D,MAAK85D,eAGdrtB,MAAO,WAEL,MADAzsC,MAAKoxD,YAAY3kB,QACVzsC,MAGT0wD,SAAU,SAASzwB,EAAOO,GACxB,MAAOxgC,MAAKoxD,YAAYV,SAASzwB,EAAOO,IAG1CoM,SAAU,SAAS3U,EAAMgI,GAGvB,MAFAjgC,MAAKs2B,KAAK,qBAEL2B,GAILj4B,KAAKoxD,YAAYxkB,SAAS3U,EAAMgI,GACzBjgC,MAJEA,KAAKysC,SAOhB7L,QAAS,WACL5gC,KAAKoxD,YAAYxwB,WAGrBzY,MAAO,SAAS+pC,GAEd,MADAlyD,MAAKoxD,YAAYjpC,MAAM+pC,GAChBlyD,MAMTuxD,QAAS,WAEP,MADAvxD,MAAKoxD,YAAYG,UACVvxD,MAMTwxD,OAAQ,WAEN,MADAxxD,MAAKoxD,YAAYI,SACVxxD,MAGT2sC,QAAS,WACP,MAAO3sC,MAAKoxD,YAAYzkB,WAG1BH,kBAAmB,WACjB,MAAOxsC,MAAKoxD,YAAY5kB,qBAG1BvM,MAAO,SAASo6B,EAAe75B,GAC7B,GAAI85B,GAAgBt6D,KAAKoK,OAA0B,oBAAIrG,SAAa/D,KAAa,SAAIA,KAAKo2C,SAAS+Z,QAAQx/C,cAAgB,KACvH7P,EAAcd,KAAKoK,OAAOsvD,OAAOW,GACnC76B,MAASx/B,KAAKoK,OAAOkvD,YACrB14B,QAAW5gC,KAAKoK,OAAOw2B,QACvBzQ,QAAWmqC,EACXhgC,gBAAmBt6B,KAAKoK,OAAO2+C,6BAC/BvoB,eAAmBA,GAKrB,OAH8B,gBAApB,IACRniC,EAAUI,OAAOy5C,OAAOmiB,GAEnBv5D,GAOTi5D,YAAa,WACX,GAAIQ,EAGAl8D,GAAUgyB,QAAQ2E,qBACpBh1B,KAAKK,GAAG,iBAAkB,SAASK,GACjCA,EAAMG,iBACN05D,EAAUl8D,EAAUG,IAAIw3C,cAAct1C,GAClC65D,GACFv6D,KAAKw6D,eAAeD,IAEtB93D,KAAKzC,OAGPA,KAAKK,GAAG,uBAAwB,SAASK,GACvCA,EAAMG,gBACN,IAAI01C,GAAYv2C,KAAKo2C,SAASI,cAE9Bn4C,GAAUG,IAAI23C,qBAAqBn2C,KAAKo2C,SAAU,SAASqkB,GACrDA,GACFz6D,KAAKw6D,eAAeC,GAEtBz6D,KAAKo2C,SAAS0F,aAAavF,IAC3B9zC,KAAKzC,QAEPyC,KAAKzC,QAIXw6D,eAAgB,SAAUD,GACxB,GAAIG,GAAYr8D,EAAUI,OAAOq4C,gBAAgByjB,GAC/C9sB,cAAiBztC,KAAKo2C,SAAStqB,QAC/B0T,MAASx/B,KAAKoK,OAAOqvD,uBAAyB93D,IAAO3B,KAAKoK,OAAOkvD,cACjEh/B,gBAAmBt6B,KAAKoK,OAAO2+C,8BAEjC/oD,MAAKo2C,SAASx3C,UAAUsd,iBACxBlc,KAAKo2C,SAASx3C,UAAUq0B,WAAWynC,OAGtCr8D,WA+BH,SAAUA,GACR,GAAIG,GAA0BH,EAAUG,IACpCm8D,EAA0B,kCAC1BC,EAA0B,0BAC1BC,EAA0B,gCAC1BC,EAA0B,6BAG9Bz8D,GAAUK,QAAQq8D,OAAS18D,EAAUM,KAAKq3B,WAAWvpB,QAEnD6N,YAAa,SAASqlB,EAAMzmB,GAC1BlZ,KAAK2/B,KAAaA,EAClB3/B,KAAKkZ,UAAaA,GAGpB+2C,SAAU,WACR,IAAIjwD,KAAKg7D,UAAT,CAIA,GAAIjxB,GAAO/pC,KACPi7D,EAAkB,SAASv6D,GACzB,GAAI+gC,GAAasI,EAAKmxB,YACtBnxB,GAAKzT,KAAK,OAAQmL,GAClBsI,EAAKunB,OACL5wD,EAAMG,iBACNH,EAAMK,kBAGZvC,GAAIg4B,QAAQuT,EAAKpK,KAAM,QAAS,WAC1BnhC,EAAIo7B,SAASmQ,EAAKpK,KAAMg7B,IAC1BpvB,WAAW,WAAaxB,EAAKunB,QAAW,KAI5C9yD,EAAIg4B,QAAQx2B,KAAKkZ,UAAW,UAAW,SAASxY,GAC9C,GAAIS,GAAUT,EAAMS,OAChBA,KAAY9C,EAAUe,WACxB67D,EAAgBv6D,GAEdS,IAAY9C,EAAUgB,aACxB0qC,EAAKzT,KAAK,UACVyT,EAAKunB,UAIT9yD,EAAI29B,SAASn8B,KAAKkZ,UAAW,sCAAuC,QAAS+hD,GAE7Ez8D,EAAI29B,SAASn8B,KAAKkZ,UAAW,wCAAyC,QAAS,SAASxY,GACtFqpC,EAAKzT,KAAK,UACVyT,EAAKunB,OACL5wD,EAAMG,iBACNH,EAAMK,mBAOR,KAJA,GAAIo6D,GAAgBn7D,KAAKkZ,UAAUlV,iBAAiB42D,GAChD32D,EAAgB,EAChB5B,EAAgB84D,EAAa94D,OAC7B+4D,EAAiB,WAAahF,cAAcrsB,EAAKyuB,WAC5Cn2D,EAAF4B,EAAUA,IACfzF,EAAIg4B,QAAQ2kC,EAAal3D,GAAI,SAAUm3D,EAGzCp7D,MAAKg7D,WAAY,IAOnBE,WAAY,WAMV,IALA,GAAI5oD,MACA+oD,EAAUr7D,KAAKkZ,UAAUlV,iBAAiB62D,GAC1Cx4D,EAAUg5D,EAAOh5D,OACjB4B,EAAU,EAEL5B,EAAF4B,EAAUA,IACfqO,EAAK+oD,EAAOp3D,GAAGkC,aAAa20D,IAAqBO,EAAOp3D,GAAG2rB,KAE7D,OAAOtd,IAqBTgpD,aAAc,SAASC,GAQrB,IAPA,GAAIC,GACAC,EACAh3B,EACAi3B,EAAiB33D,SAAS6tB,cAAc,UACxCypC,EAAiBr7D,KAAKkZ,UAAUlV,iBAAiB62D,GACjDx4D,EAAiBg5D,EAAOh5D,OACxB4B,EAAiB,EACZ5B,EAAF4B,EAAUA,IACfu3D,EAAQH,EAAOp3D,GAGXu3D,IAAUE,IAMVH,GAAoC,WAAfC,EAAM/1D,OAI/Bg2D,EAAYD,EAAMr1D,aAAa20D,GAC/Br2B,EAAazkC,KAAK27D,iBAAoD,iBAA1B37D,MAAoB,gBAAoBA,KAAK27D,gBAAgBx1D,aAAas1D,IAAc,GAAMD,EAAMI,aAChJJ,EAAM5rC,MAAQ6U,KAOlB4sB,KAAM,SAASsK,GACb,IAAIn9D,EAAIo7B,SAAS55B,KAAK2/B,KAAMg7B,GAA5B,CAIA,GAAI5wB,GAAc/pC,KACd67D,EAAc77D,KAAKkZ,UAAU0Y,cAAcgpC,EAU/C,IATA56D,KAAK27D,gBAAkBA,EACvB37D,KAAKiwD,WACLjwD,KAAKs7D,eACDK,IACF37D,KAAKw4D,SAAWR,YAAY,WAAajuB,EAAKuxB,cAAa,IAAU,MAEvE98D,EAAIm7B,SAAS35B,KAAK2/B,KAAMg7B,GACxB36D,KAAKkZ,UAAUsU,MAAME,QAAU,GAC/B1tB,KAAKs2B,KAAK,QACNulC,IAAeF,EACjB,IACEE,EAAW1zC,QACX,MAAM1nB,OAOZ6wD,KAAM,WACJ8E,cAAcp2D,KAAKw4D,UACnBx4D,KAAK27D,gBAAkB,KACvBn9D,EAAIq7B,YAAY75B,KAAK2/B,KAAMg7B,GAC3B36D,KAAKkZ,UAAUsU,MAAME,QAAU,OAC/B1tB,KAAKs2B,KAAK,YAGbj4B,WAcH,SAAUA,GACR,GAAIG,GAAMH,EAAUG,IAEhBs9D,GACFrrD,SAAU,YAGRsrD,GACF50B,KAAU,EACV60B,OAAU,EACVC,QAAU,EACV19B,SAAU,SACV29B,QAAU,EACVzrD,SAAU,WACVgmC,IAAU,EACVgF,OAAU,GAGR0gB,GACFC,OAAY,UACZxkB,SAAY,OACZzR,OAAY,OACZk2B,UAAY,QACZC,QAAY,EACZJ,QAAY,EACZzrD,SAAY,WACZ22B,MAAY,OACZqP,IAAY,OAGV8lB,GACFC,kBAAmB,GACnBC,OAAmB,GAGrBp+D,GAAUK,QAAQg+D,OAAS,SAAS7tD,EAAQ8wB,GAC1C,GAAItL,GAAQtwB,SAASG,cAAc,QACnC,KAAK7F,EAAUgyB,QAAQ+D,oBAAoBC,GAEzC,YADAsL,EAAKnS,MAAME,QAAU,OAGvB,IAAI/uB,GAAOkQ,EAAOs9B,OAAOylB,SAAS9lC,QAAQ3lB,aAAa,OACnDxH,KACF49D,EAAgB59D,KAAOA,EAGzB,IAAIirD,GAAU7lD,SAASG,cAAc,MAErC7F,GAAUM,KAAKsxB,OAAO8rC,GAAerlC,OACnCwP,MAAQvG,EAAK7D,YAAe,KAC5BqK,OAAQxG,EAAK0I,aAAe,OAG9B7pC,EAAIw8B,OAAO3G,GAAOiL,KAAKsqB,GACvBprD,EAAIw8B,OAAO4uB,GAAStqB,KAAKK,GAEzBnhC,EAAI09B,UAAUigC,GAAa97D,GAAGg0B,GAC9B71B,EAAI+mC,cAAcg3B,GAAiBl8D,GAAGg0B,GAEtC71B,EAAI09B,UAAU6/B,GAAe17D,GAAGupD,GAChCprD,EAAI09B,UAAU4/B,GAAYz7D,GAAGs/B,EAE7B,IAAInN,GAAY,wBAA0B6B,GAAQ,qBAAuB,cACzE71B,GAAIg4B,QAAQnC,EAAO7B,EAAW,WAC5B3jB,EAAO2iB,YAAY,aAAc6C,EAAMzE,OACvCyE,EAAMzE,MAAQ,KAGhBpxB,EAAIg4B,QAAQnC,EAAO,QAAS,SAAS3zB,GAC/BlC,EAAIo7B,SAAS+F,EAAM,+BACrBj/B,EAAMG,iBAGRH,EAAMK,sBAGT1C,WAiBH,SAAUA,GACR,GAAIs+D,GAAgC,6BAChCC,EAAgC,8BAChCC,EAAgC,2BAChCC,EAAgC,0BAChCt+D,EAAgCH,EAAUG,GAE9CH,GAAUK,QAAQy7D,QAAUnrC,KAAKviB,QAE/B6N,YAAa,SAAS6xB,EAAQjzB,EAAW6jD,GACvC/8D,KAAKmsC,OAAaA,EAClBnsC,KAAKkZ,UAAmC,gBAAhB,GAA2BnV,SAASipB,eAAe9T,GAAaA,EACxFlZ,KAAKo2C,SAAajK,EAAOiK,SAEzBp2C,KAAKg9D,UAAU,WACfh9D,KAAKg9D,UAAU,UAEfh9D,KAAKiwD,WACD8M,GAAc/8D,KAAKqxD,OAEuB,MAA1CllB,EAAO/hC,OAAO6yD,2BAChBN,EAA8BxwB,EAAO/hC,OAAO6yD,0BAEC,MAA3C9wB,EAAO/hC,OAAO8yD,4BAChBN,EAA+BzwB,EAAO/hC,OAAO8yD,2BAEH,MAAxC/wB,EAAO/hC,OAAO+yD,yBAChBN,EAA4B1wB,EAAO/hC,OAAO+yD,wBAED,MAAvChxB,EAAO/hC,OAAOgzD,wBAChBN,EAA2B3wB,EAAO/hC,OAAOgzD,sBAM3C,KAHA,GAAIC,GAAoBr9D,KAAKkZ,UAAUlV,iBAAiB,yCACpD3B,EAAoBg7D,EAAiBh7D,OACrC4B,EAAoB,EACf5B,EAAF4B,EAAUA,IACf,GAAI5F,GAAUK,QAAQg+D,OAAO18D,KAAMq9D,EAAiBp5D,KAIxD+4D,UAAW,SAASv3D,GAYlB,IAXA,GAIIk6B,GACA29B,EACA33D,EACAiqB,EACA2tC,EACAC,EATAlK,EAAUtzD,KAAKyF,EAAO,SAAWpH,EAAUM,KAAKu2B,MAAMl1B,KAAKkZ,UAAUlV,iBAAiB,mBAAqByB,EAAO,MAAMhE,MACxHY,EAAUixD,EAAMjxD,OAChB4B,EAAU,EACVijC,EAAUlnC,KAAKyF,EAAO,cAQjBpD,EAAF4B,EAAUA,IACf07B,EAAU2zB,EAAMrvD,GAChB0B,EAAUg6B,EAAKx5B,aAAa,kBAAoBV,GAChDmqB,EAAU+P,EAAKx5B,aAAa,kBAAoBV,EAAO,UACvD+3D,EAAqB79B,EAAKx5B,aAAa,kBAAoBV,EAAO,gBAClE63D,EAAUt9D,KAAKkZ,UAAU0Y,cAAc,mBAAqBnsB,EAAO,WAAaE,EAAO,MACvF43D,EAAUv9D,KAAKy9D,WAAW99B,EAAMh6B,GAEhCuhC,EAAQvhC,EAAO,IAAMiqB,IACnB+P,KAAQA,EACR29B,MAAQA,EACR33D,KAAQA,EACRiqB,MAAQA,EACR4tC,iBAAkBA,EAClBD,OAAQA,EACRzW,OAAQ,IAKd2W,WAAY,SAAS99B,EAAMzM,GACzB,GAEIqqC,GACAG,EAHA3zB,EAAgB/pC,KAChB29D,EAAgB39D,KAAKkZ,UAAU0Y,cAAc,2BAA6BsB,EAAU,KA+BxF,OA3BIyqC,KAEEJ,EADAl/D,EAAUK,QAAQ,UAAYw0B,GACrB,GAAI70B,GAAUK,QAAQ,UAAYw0B,GAASyM,EAAMg+B,GAEjD,GAAIt/D,GAAUK,QAAQq8D,OAAOp7B,EAAMg+B,GAGhDJ,EAAOl9D,GAAG,OAAQ,WAChBq9D,EAAgB3zB,EAAKqM,SAASx3C,UAAUyhB,cAExC0pB,EAAKoC,OAAO7V,KAAK,eAAiBpD,QAASA,EAAS0qC,gBAAiBD,EAAeE,YAAal+B,MAGnG49B,EAAOl9D,GAAG,OAAQ,SAASohC,GACrBi8B,GACF3zB,EAAKqM,SAASx3C,UAAUg4C,YAAY8mB,GAEtC3zB,EAAK+zB,aAAa5qC,EAASuO,GAE3BsI,EAAKoC,OAAO7V,KAAK,eAAiBpD,QAASA,EAAS0qC,gBAAiBD,EAAeE,YAAal+B,MAGnG49B,EAAOl9D,GAAG,SAAU,WAClB0pC,EAAKoC,OAAOhkB,OAAM,GAClB4hB,EAAKoC,OAAO7V,KAAK,iBAAmBpD,QAASA,EAAS0qC,gBAAiBD,EAAeE,YAAal+B,OAGhG49B,GAST/rC,YAAa,SAAS0B,EAAS6qC,GAC7B,IAAI/9D,KAAKg+D,iBAAT,CAIA,GAAIC,GAAaj+D,KAAKk+D,eAAehrC,EAAU,IAAM6qC,EAGjDE,IAAcA,EAAWV,SAAWU,EAAWnX,MACjDmX,EAAWV,OAAOlM,OAElBrxD,KAAK89D,aAAa5qC,EAAS6qC,KAI/BD,aAAc,SAAS5qC,EAAS6qC,GAE9B/9D,KAAKmsC,OAAOhkB,OAAM,GAElBnoB,KAAKo2C,SAAS73C,SAASuyB,KAAKoC,EAAS6qC,GACrC/9D,KAAKm+D,qBAGPC,WAAY,SAAS72C,GACnB,GAAI4kB,GAASnsC,KAAKmsC,MACH,iBAAX5kB,IACE4kB,EAAOilB,cAAgBjlB,EAAOylB,UAAmC,WAAvBzlB,EAAOilB,YACnDjlB,EAAO7V,KAAK,cAAe,YAE3B6V,EAAO7V,KAAK,cAAe,aAGjB,cAAV/O,GACA4kB,EAAO7V,KAAK,eAIlB25B,SAAU,WAQR,IAPA,GAAIlmB,GAAY/pC,KACZmsC,EAAYnsC,KAAKmsC,OACjBjzB,EAAYlZ,KAAKkZ,UACjBo6C,EAAYtzD,KAAKq+D,aAAal7D,OAAOnD,KAAKs+D,aAC1Cj8D,EAAYixD,EAAMjxD,OAClB4B,EAAY,EAEP5B,EAAF4B,EAAUA,IAGW,MAAtBqvD,EAAMrvD,GAAGgH,SACXzM,EAAI+mC,eACFqB,KAAc,eACd23B,aAAc,OACbl+D,GAAGizD,EAAMrvD,IAEZzF,EAAI+mC,eAAgBg5B,aAAc,OAAQl+D,GAAGizD,EAAMrvD,GAKvDzF,GAAI29B,SAASjjB,EAAW,oDAAqD,YAAa,SAASxY,GAASA,EAAMG,mBAElHrC,EAAI29B,SAASjjB,EAAW,2BAA4B,QAAS,SAASxY,GACpE,GAAIi/B,GAAgB3/B,KAChBkzB,EAAgByM,EAAKx5B,aAAa,0BAClC43D,EAAgBp+B,EAAKx5B,aAAa,+BACtC4jC,GAAKvY,YAAY0B,EAAS6qC,GAC1Br9D,EAAMG,mBAGRrC,EAAI29B,SAASjjB,EAAW,0BAA2B,QAAS,SAASxY,GACnE,GAAI6mB,GAASvnB,KAAKmG,aAAa,wBAC/B4jC,GAAKq0B,WAAW72C,GAChB7mB,EAAMG;GAGRsrC,EAAO9rC,GAAG,uBAAwB,WAC9B0pC,EAAKo0B,sBAGThyB,EAAO9rC,GAAG,iBAAkB,WAC1B0pC,EAAKtpB,SAAW,OAGdzgB,KAAKmsC,OAAO/hC,OAAO6tD,eACnB9rB,EAAO9rC,GAAG,uBAAwB,WAC9B0pC,EAAK7wB,UAAUlV,iBAAiB,wCAAwC,GAAGwpB,MAAME,QAAU,KAE/Fye,EAAO9rC,GAAG,yBAA0B,WAChC0pC,EAAK7wB,UAAUlV,iBAAiB,wCAAwC,GAAGwpB,MAAME,QAAU,UAInGye,EAAO9rC,GAAG,cAAe,SAAS+wD,GAE9B7lB,WAAW,WACTxB,EAAKi0B,iBAAoC,aAAhB5M,EACzBrnB,EAAKo0B,oBACDp0B,EAAKi0B,iBACPx/D,EAAIm7B,SAASzgB,EAAW0jD,GAExBp+D,EAAIq7B,YAAY3gB,EAAW0jD,IAE5B,MAITuB,kBAAmB,WAEjB,GAGIl6D,GACA6iD,EACAv/B,EACA2L,EANAgrC,EAAsBl+D,KAAKk+D,eAE3BM,GADsBx+D,KAAKy+D,oBACLz+D,KAAKw+D,cAM/B,KAAKv6D,IAAKi6D,GACRhrC,EAAUgrC,EAAej6D,GACrBjE,KAAKg+D,kBACPlX,GAAQ,EACRtoD,EAAIq7B,YAAY3G,EAAQyM,KAAMk9B,GAC1B3pC,EAAQoqC,OACV9+D,EAAIq7B,YAAY3G,EAAQoqC,MAAOT,GAE7B3pC,EAAQqqC,QACVrqC,EAAQqqC,OAAOjM,SAGjBxK,EAAQ9mD,KAAKo2C,SAAS73C,SAASuoD,MAAM5zB,EAAQvtB,KAAMutB,EAAQtD,OAC3DpxB,EAAIq7B,YAAY3G,EAAQyM,KAAMg9B,GAC1BzpC,EAAQoqC,OACV9+D,EAAIq7B,YAAY3G,EAAQoqC,MAAOX,KAG/BzpC,EAAQ4zB,QAAUA,GAAU5zB,EAAQsqC,oBAIxCtqC,EAAQ4zB,MAAQA,EACZA,EACE5zB,EAAQsqC,iBACVh/D,EAAIq7B,YAAY3G,EAAQyM,KAAMk9B,IAE9Br+D,EAAIm7B,SAASzG,EAAQyM,KAAMk9B,GACvB3pC,EAAQoqC,OACV9+D,EAAIm7B,SAASzG,EAAQoqC,MAAOT,GAE1B3pC,EAAQqqC,SACY,gBAAZ,IAAwBl/D,EAAUM,KAAKsxB,OAAO62B,GAAOhlD,YAExDoxB,EAAQqqC,OAAOmB,aAAergE,EAAUM,KAAKsxB,OAAO62B,GAAOhlD,YAK9DglD,EAAyB,IAAjBA,EAAMzkD,OAAeykD,EAAM,IAAK,EACxC5zB,EAAQ4zB,MAAQA,GAElB5zB,EAAQqqC,OAAOlM,KAAKvK,IAEpB5zB,EAAQqqC,OAAOjM,SAKjBp+B,EAAQsqC,iBACVh/D,EAAIm7B,SAASzG,EAAQyM,KAAMk9B,IAE3Br+D,EAAIq7B,YAAY3G,EAAQyM,KAAMk9B,GAC1B3pC,EAAQoqC,OACV9+D,EAAIq7B,YAAY3G,EAAQoqC,MAAOT,GAE7B3pC,EAAQqqC,QACVrqC,EAAQqqC,OAAOjM,QAMvB,KAAKrtD,IAAKu6D,GACRj3C,EAASi3C,EAAcv6D,GAEH,gBAAhBsjB,EAAO5hB,OACT4hB,EAAOu/B,MAAQ9mD,KAAKmsC,OAAOilB,cAAgBpxD,KAAKmsC,OAAOylB,UAAwC,WAA5B5xD,KAAKmsC,OAAOilB,YAC3E7pC,EAAOu/B,MACTtoD,EAAIm7B,SAASpS,EAAOoY,KAAMm9B,GAE1Bt+D,EAAIq7B,YAAYtS,EAAOoY,KAAMm9B,KAMrCzL,KAAM,WACJrxD,KAAKkZ,UAAUsU,MAAME,QAAU,IAGjC4jC,KAAM,WACJtxD,KAAKkZ,UAAUsU,MAAME,QAAU,WAIlCrvB,WACF,SAAUA,GACTA,EAAUK,QAAQigE,mBAAqBtgE,EAAUK,QAAQq8D,OAAOtuD,QAC9D4kD,KAAM,SAASsK,GACb37D,KAAKqvB,KAAKssC,OAGbt9D,WACF,SAAUA,GACT,GACIw8D,IAD0Bx8D,EAAUG,IACV,iCAC1Bs8D,EAA0B,6BAE9Bz8D,GAAUK,QAAQkgE,sBAAwBvgE,EAAUK,QAAQq8D,OAAOtuD,QACjEiyD,aAAa,EAEbxD,WAAY,WAMV,IALA,GAAI5oD,MACA+oD,EAAUr7D,KAAKkZ,UAAUlV,iBAAiB62D,GAC1Cx4D,EAAUg5D,EAAOh5D,OACjB4B,EAAU,EAEL5B,EAAF4B,EAAUA,IACfqO,EAAK+oD,EAAOp3D,GAAGkC,aAAa20D,IAAqBO,EAAOp3D,GAAG2rB,KAE7D,OAAOtd,IAGTgpD,aAAc,SAASC,GAYrB,IAXA,GAAIC,GAGAE,EAAiB33D,SAAS6tB,cAAc,UACxCypC,EAAiBr7D,KAAKkZ,UAAUlV,iBAAiB62D,GACjDx4D,EAAiBg5D,EAAOh5D,OACxB4B,EAAiB,EACjB46D,EAAkB7+D,KAAoB,gBAAM3B,EAAUM,KAAKsxB,OAAOjwB,KAAK27D,iBAAiB75D,UAAa9B,KAAK27D,gBAAgB,GAAK37D,KAAK27D,gBAAmB,KACvJjT,EAAiB,EAAiBmW,EAAa14D,aAAa,SAAW,KACvEwxC,EAAiB,EAAat5C,EAAUI,OAAO+6C,YAAYC,WAAWiP,EAAU,SAAW,KAEtFrmD,EAAF4B,EAAUA,IACfu3D,EAAQH,EAAOp3D,GAEXu3D,IAAUE,IAIVH,GAAoC,WAAfC,EAAM/1D,MAGc,UAAzC+1D,EAAMr1D,aAAa20D,KAGjBU,EAAM5rC,MAFN+nB,EACEA,EAAM,IAAkB,GAAZA,EAAM,GACN,QAAUA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAExE,OAASA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGxD,oBAOvBt5C,WACF,SAAUA,GACqBA,EAAUG,GAIxCH,GAAUK,QAAQogE,qBAAuBzgE,EAAUK,QAAQq8D,OAAOtuD,QAChEiyD,aAAa,EAEbxD,WAAY,WACV,OAAQ/S,KAASnoD,KAAKkZ,UAAU0Y,cAAc,wCAAwChC,QAGxF0rC,aAAc,WACZ,GAAII,GAAiB33D,SAAS6tB,cAAc,UACxC4pC,EAAiBx7D,KAAKkZ,UAAU0Y,cAAc,wCAC9CitC,EAAkB7+D,KAAoB,gBAAM3B,EAAUM,KAAKsxB,OAAOjwB,KAAK27D,iBAAiB75D,UAAa9B,KAAK27D,gBAAgB,GAAK37D,KAAK27D,gBAAmB,KACvJ3kB,EAAiB,EAAiB6nB,EAAa14D,aAAa,SAAW,KACvEgiD,EAAiB,EAAa9pD,EAAUI,OAAO+6C,YAAYS,cAAcjD,GAAY,IAErFwkB,IAASA,IAAUE,GAAkBvT,IAAS,QAAUpiD,KAAKoiD,KAC/DqT,EAAM5rC,MAAQu4B,OAKnB9pD"} \ No newline at end of file diff --git a/dist/wysihtml.js b/dist/wysihtml.js index cc24f0e..b870c23 100644 --- a/dist/wysihtml.js +++ b/dist/wysihtml.js @@ -1,5 +1,5 @@ /** - * @license wysihtml5x v0.5.0-beta5 + * @license wysihtml5x v0.5.0-beta6 * https://github.com/Edicy/wysihtml5 * * Author: Christopher Blum (https://github.com/tiff) @@ -10,7 +10,7 @@ * */ var wysihtml5 = { - version: "0.5.0-beta5", + version: "0.5.0-beta6", // namespaces commands: {}, @@ -6692,7 +6692,7 @@ wysihtml5.dom.parse = function(elementOrHtml_current, config_current) { } function _checkAttribute(attributeName, attributeValue, methodName, nodeName) { - var method = attributeCheckMethods[methodName], + var method = wysihtml5.lang.object(methodName).isFunction() ? methodName : attributeCheckMethods[methodName], newAttributeValue; if (method) { @@ -9304,6 +9304,7 @@ wysihtml5.quirks.ensureProperClearing = (function() { } }; + caretPlaceholder.className = '_wysihtml5-temp-caret-fix'; caretPlaceholder.style.position = 'absolute'; caretPlaceholder.style.display = 'block'; caretPlaceholder.style.minWidth = '1px'; @@ -9339,7 +9340,9 @@ wysihtml5.quirks.ensureProperClearing = (function() { fixWebkitSelection = function() { // Webkit fails to add selection if there are no textnodes in that region // (like an uneditable container at the end of content). - if (!sel) { + var parent = node.parentNode, + lastSibling = parent ? parent.childNodes[parent.childNodes.length - 1] : null; + if (!sel || (lastSibling === node && this.win.getComputedStyle(node).display === "block")) { if (notVisual) { // If setAfter is used as internal between actions, self-removing caretPlaceholder has simpler implementation // and remove itself in call stack end instead on user interaction @@ -9640,45 +9643,69 @@ wysihtml5.quirks.ensureProperClearing = (function() { } }, - caretIsBeforeUneditable: function() { - var selection = this.getSelection(), - node = selection.anchorNode, - offset = selection.anchorOffset, - childNodes = [], - range, contentNodes, lastNode; - - if (node) { - if (offset === 0) { - var prevNode = this.getPreviousNode(node, true), - prevLeaf = prevNode ? wysihtml5.dom.domNode(prevNode).lastLeafNode((this.unselectableClass) ? {leafClasses: [this.unselectableClass]} : false) : null; - if (prevLeaf) { - var uneditables = this.getOwnUneditables(); - for (var i = 0, maxi = uneditables.length; i < maxi; i++) { - if (prevLeaf === uneditables[i]) { - return uneditables[i]; - } - } + // Returns object describing node/text before selection + // If includePrevLeaves is true returns also previous last leaf child if selection is in the beginning of current node + getBeforeSelection: function(includePrevLeaves) { + var sel = this.getSelection(), + startNode = (sel.isBackwards()) ? sel.focusNode : sel.anchorNode, + startOffset = (sel.isBackwards()) ? sel.focusOffset : sel.anchorOffset, + rng = this.createRange(), endNode, inTmpCaret; + + // Escape temproray helper nodes if selection in them + inTmpCaret = wysihtml5.dom.getParentElement(startNode, { query: '._wysihtml5-temp-caret-fix' }, 1); + if (inTmpCaret) { + startNode = inTmpCaret.parentNode; + startOffset = Array.prototype.indexOf.call(startNode.childNodes, inTmpCaret); + } + + if (startNode) { + if (startOffset > 0) { + if (startNode.nodeType === 3) { + rng.setStart(startNode, 0); + rng.setEnd(startNode, startOffset); + return { + type: "text", + range: rng, + offset : startOffset, + node: startNode + }; + } else { + rng.setStartBefore(startNode.childNodes[0]); + endNode = startNode.childNodes[startOffset - 1]; + rng.setEndAfter(endNode); + return { + type: "element", + range: rng, + offset : startOffset, + node: endNode + }; } } else { - range = selection.getRangeAt(0); - range.setStart(range.startContainer, range.startOffset - 1); - // TODO: make getting children on range a separate funtion - if (range) { - contentNodes = range.getNodes([1,3]); - for (var n = 0, max = contentNodes.length; n < max; n++) { - if (contentNodes[n].parentNode && contentNodes[n].parentNode === node) { - childNodes.push(contentNodes[n]); - } + rng.setStartAndEnd(startNode, 0); + + if (includePrevLeaves) { + var prevNode = this.getPreviousNode(startNode, true), + prevLeaf = prevNode ? wysihtml5.dom.domNode(prevNode).lastLeafNode() : null; + + if (prevLeaf) { + return { + type: "leafnode", + range: rng, + offset : startOffset, + node: prevLeaf + }; } } - lastNode = childNodes.length > 0 ? childNodes[childNodes.length -1] : null; - if (lastNode && lastNode.nodeType === 1 && wysihtml5.dom.hasClass(lastNode, this.unselectableClass)) { - return lastNode; - } + return { + type: "none", + range: rng, + offset : startOffset, + node: startNode + }; } } - return false; + return null; }, // TODO: Figure out a method from following 2 that would work universally @@ -9758,7 +9785,7 @@ wysihtml5.quirks.ensureProperClearing = (function() { } this.setSelection(newRange); for (var i = caretPlaceholder.length; i--;) { - caretPlaceholder[i].parentNode.removeChild(caretPlaceholder[i]); + caretPlaceholder[i].parentNode.removeChild(caretPlaceholder[i]); } } else { @@ -12414,7 +12441,7 @@ wysihtml5.Commands = Base.extend( for (row = 0; row < value.rows; row ++) { html += ''; for (col = 0; col < value.cols; col ++) { - html += " "; + html += ""; } html += ''; } @@ -13670,59 +13697,98 @@ wysihtml5.views.View = Base.extend( } }; + // Override for giving user ability to delete last line break in table cell + var fixLastBrDeletionInTable = function(composer, force) { + if (composer.selection.caretIsLastInSelection()) { + var sel = composer.selection.getSelection(), + aNode = sel.anchorNode; + if (aNode && aNode.nodeType === 1 && (wysihtml5.dom.getParentElement(aNode, {query: 'td, th'}, false, composer.element) || force)) { + var nextNode = aNode.childNodes[sel.anchorOffset]; + if (nextNode && nextNode.nodeType === 1 & nextNode.nodeName === "BR") { + nextNode.parentNode.removeChild(nextNode); + return true; + } + } + } + return false; + }; + + // If found an uneditable before caret then notify it before deletion + var handleUneditableDeletion = function(composer) { + var before = composer.selection.getBeforeSelection(true); + if (before && (before.type === "element" || before.type === "leafnode") && before.node.nodeType === 1 && before.node.classList.contains(composer.config.uneditableContainerClassname)) { + if (fixLastBrDeletionInTable(composer, true)) { + return true; + } + try { + var ev = new CustomEvent("wysihtml5:uneditable:delete"); + before.node.dispatchEvent(ev); + } catch (err) {} + before.node.parentNode.removeChild(before.node); + return true; + } + return false; + }; + + // Deletion with caret in the beginning of headings needs special attention + // Heading does not concate text to previous block node correctly (browsers do unexpected miracles here especially webkit) + var fixDeleteInTheBeginnigOfHeading = function(composer) { + var selection = composer.selection; + + if (selection.caretIsFirstInSelection() && + selection.getPreviousNode() && + selection.getPreviousNode().nodeName && + (/^H\d$/gi).test(selection.getPreviousNode().nodeName) + ) { + var prevNode = selection.getPreviousNode(); + if ((/^\s*$/).test(prevNode.textContent || prevNode.innerText)) { + // If heading is empty remove the heading node + prevNode.parentNode.removeChild(prevNode); + return true; + } else { + if (prevNode.lastChild) { + var selNode = prevNode.lastChild, + curNode = wysihtml5.dom.getParentElement(selection.getSelectedNode(), { query: "h1, h2, h3, h4, h5, h6, p, pre, div, blockquote" }, false, composer.element); + if (prevNode) { + if (curNode) { + while (curNode.firstChild) { + prevNode.appendChild(curNode.firstChild); + } + selection.setAfter(selNode); + return true; + } else if (selection.getSelectedNode().nodeType === 3) { + prevNode.appendChild(selection.getSelectedNode()); + selection.setAfter(selNode); + return true; + } + } + } + } + } + return false; + }; + var handleDeleteKeyPress = function(event, composer) { var selection = composer.selection, element = composer.element; if (selection.isCollapsed()) { if (selection.caretIsInTheBeginnig('li')) { + // delete in the beginnig of LI will outdent not delete event.preventDefault(); composer.commands.exec('outdentList'); - } else if (selection.caretIsInTheBeginnig()) { - event.preventDefault(); } else { - if (selection.caretIsFirstInSelection() && - selection.getPreviousNode() && - selection.getPreviousNode().nodeName && - (/^H\d$/gi).test(selection.getPreviousNode().nodeName) - ) { - var prevNode = selection.getPreviousNode(); - if ((/^\s*$/).test(prevNode.textContent || prevNode.innerText)) { - // heading is empty - event.preventDefault(); - prevNode.parentNode.removeChild(prevNode); - } else { - if (prevNode.lastChild) { - var selNode = prevNode.lastChild, - curNode = wysihtml5.dom.getParentElement(selection.getSelectedNode(), { query: "h1, h2, h3, h4, h5, h6, p, pre, div, blockquote" }, false, composer.element); - if (prevNode) { - if (curNode) { - event.preventDefault(); - while (curNode.firstChild) { - prevNode.appendChild(curNode.firstChild); - } - selection.setAfter(selNode); - } else if (selection.getSelectedNode().nodeType === 3) { - event.preventDefault(); - prevNode.appendChild(selection.getSelectedNode()); - selection.setAfter(selNode); - } - } - } - } + if (fixDeleteInTheBeginnigOfHeading(composer)) { + event.preventDefault(); + return; } - - var beforeUneditable = selection.caretIsBeforeUneditable(); - // Do a special delete if caret would delete uneditable - if (beforeUneditable) { + if (fixLastBrDeletionInTable(composer)) { event.preventDefault(); - // If customevents present notify element of being deleted - // TODO: Investigate if browser support can be extended - try { - var ev = new CustomEvent("wysihtml5:uneditable:delete"); - beforeUneditable.dispatchEvent(ev); - } catch (err) {} - beforeUneditable.parentNode.removeChild(beforeUneditable); + return; + } + if (handleUneditableDeletion(composer)) { + event.preventDefault(); + return; } } } else { @@ -14089,6 +14155,61 @@ wysihtml5.views.View = Base.extend( } }); })(wysihtml5); +;(function(wysihtml5) { + + wysihtml5.views.SourceView = Base.extend( + /** @scope wysihtml5.views.SourceView.prototype */ { + + constructor: function(editor, composer) { + this.editor = editor; + this.composer = composer; + + this._observe(); + }, + + switchToTextarea: function(shouldParseHtml) { + var composerStyles = this.composer.win.getComputedStyle(this.composer.element), + width = parseFloat(composerStyles.width), + height = Math.max(parseFloat(composerStyles.height), 100); + + if (!this.textarea) { + this.textarea = this.composer.doc.createElement('textarea'); + this.textarea.className = "wysihtml5-source-view"; + } + this.textarea.style.width = width + 'px'; + this.textarea.style.height = height + 'px'; + this.textarea.value = this.editor.getValue(shouldParseHtml, true); + this.composer.element.parentNode.insertBefore(this.textarea, this.composer.element); + this.editor.currentView = "source"; + this.composer.element.style.display = 'none'; + }, + + switchToComposer: function(shouldParseHtml) { + var textareaValue = this.textarea.value; + if (textareaValue) { + this.composer.setValue(textareaValue, shouldParseHtml); + } else { + this.composer.clear(); + this.editor.fire("set_placeholder"); + } + this.textarea.parentNode.removeChild(this.textarea); + this.editor.currentView = this.composer; + this.composer.element.style.display = ''; + }, + + _observe: function() { + this.editor.on("change_view", function(view) { + if (view === "composer") { + this.switchToComposer(true); + } else if (view === "textarea") { + this.switchToTextarea(true); + } + }.bind(this)); + } + + }); + +})(wysihtml5); ;wysihtml5.views.Textarea = wysihtml5.views.View.extend( /** @scope wysihtml5.views.Textarea.prototype */ { name: "textarea", @@ -14281,7 +14402,9 @@ wysihtml5.views.View = Base.extend( handleBeforeLoad: function() { if (!this.config.noTextarea) { - this.synchronizer = new wysihtml5.views.Synchronizer(this, this.textarea, this.composer); + this.synchronizer = new wysihtml5.views.Synchronizer(this, this.textarea, this.composer); + } else { + this.sourceView = new wysihtml5.views.SourceView(this, this.composer); } if (this.config.toolbar) { this.toolbar = new wysihtml5.toolbar.Toolbar(this, this.config.toolbar, this.config.showToolbarAfterInit); diff --git a/dist/wysihtml.min.js b/dist/wysihtml.min.js index ebb3e61..6c7ea77 100644 --- a/dist/wysihtml.min.js +++ b/dist/wysihtml.min.js @@ -1,9 +1,9 @@ -/*! wysihtml - v0.5.0-beta5 (2015-02-17) */ +/*! wysihtml - v0.5.0-beta6 (2015-03-03) */ -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) +var wysihtml5={version:"0.5.0-beta6",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); +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=wysihtml5.lang.object(c).isFunction()?c: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.className="_wysihtml5-temp-caret-fix",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(){var d=b.parentNode,f=d?d.childNodes[d.childNodes.length-1]:null;if(!e||f===b&&"block"===this.win.getComputedStyle(b).display)if(c){var g=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(g,b.nextSibling),this.selectNode(g),setTimeout(function(){g&&g.parentNode&&g.parentNode.removeChild(g)},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},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode():null;if(j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},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){if(b.selection.caretIsLastInSelection()){var d=b.selection.getSelection(),e=d.anchorNode;if(e&&1===e.nodeType&&(a.dom.getParentElement(e,{query:"td, th"},!1,b.element)||c)){var f=e.childNodes[d.anchorOffset];if(f&&1===f.nodeType&"BR"===f.nodeName)return f.parentNode.removeChild(f),!0}}return!1},h=function(a){var b=a.selection.getBeforeSelection(!0);if(b&&("element"===b.type||"leafnode"===b.type)&&1===b.node.nodeType&&b.node.classList.contains(a.config.uneditableContainerClassname)){if(g(a,!0))return!0;try{var c=new CustomEvent("wysihtml5:uneditable:delete");b.node.dispatchEvent(c)}catch(d){}return b.node.parentNode.removeChild(b.node),!0}return!1},i=function(b){var c=b.selection;if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=a.dom.getParentElement(c.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,b.element);if(d){if(f){for(;f.firstChild;)d.appendChild(f.firstChild);return c.setAfter(e),!0}if(3===c.getSelectedNode().nodeType)return d.appendChild(c.getSelectedNode()),c.setAfter(e),!0}}}return!1},j=function(a,b){{var c=b.selection;b.element}if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else{if(i(b))return void a.preventDefault();if(g(b))return void a.preventDefault();if(h(b))return void a.preventDefault()}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},k=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},l=function(){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},m=function(){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},n=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},o=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)},p=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)},q=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))},r=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},s=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)}},t=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)))},u=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)}},v=function(){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(b){var c,e,f=b.keyCode,g=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&g&&(this.commands.exec(g),b.preventDefault()),f===a.BACKSPACE_KEY&&j(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(),k(this,this.element))},x=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"],l.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||l.call(this)},250)),this.config.handleTables&&x.call(this),e(d,["drop","paste","mouseup","focus","keyup"],m.bind(this)),d.addEventListener("focus",n.bind(this),!1),d.addEventListener("blur",o.bind(this),!1),e(this.element,["drop","paste","beforepaste"],p.bind(this),!1),this.element.addEventListener("copy",q.bind(this),!1),this.element.addEventListener("mousedown",s.bind(this),!1),this.element.addEventListener("mouseover",t.bind(this),!1),this.element.addEventListener("click",u.bind(this),!1),this.element.addEventListener("drop",v.bind(this),!1),this.element.addEventListener("keyup",r.bind(this),!1),this.element.addEventListener("keydown",w.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),function(a){a.views.SourceView=Base.extend({constructor:function(a,b){this.editor=a,this.composer=b,this._observe()},switchToTextarea:function(a){var b=this.composer.win.getComputedStyle(this.composer.element),c=parseFloat(b.width),d=Math.max(parseFloat(b.height),100);this.textarea||(this.textarea=this.composer.doc.createElement("textarea"),this.textarea.className="wysihtml5-source-view"),this.textarea.style.width=c+"px",this.textarea.style.height=d+"px",this.textarea.value=this.editor.getValue(a,!0),this.composer.element.parentNode.insertBefore(this.textarea,this.composer.element),this.editor.currentView="source",this.composer.element.style.display="none"},switchToComposer:function(a){var b=this.textarea.value;b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder")),this.textarea.parentNode.removeChild(this.textarea),this.editor.currentView=this.composer,this.composer.element.style.display=""},_observe:function(){this.editor.on("change_view",function(a){"composer"===a?this.switchToComposer(!0):"textarea"===a&&this.switchToTextarea(!0)}.bind(this))}})}(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.sourceView=new a.views.SourceView(this,this.composer):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 f596ef8..496f013 100644 --- a/dist/wysihtml.min.map +++ b/dist/wysihtml.min.map @@ -1 +1 @@ -{"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 +{"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","lastSibling","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","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","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","lastNode","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","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","curNode","handleDeleteKeyPress","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","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","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 d64fe2d..7b45ef9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wysihtml", - "version": "0.5.0-beta5", + "version": "0.5.0-beta6", "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-beta5", + "description": "h1. wysihtml 0.5.0-beta6", "main": "Gruntfile.js", "directories": { "example": "examples",