{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/intro.js/intro.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js","webpack:///(webpack)/buildin/global.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","webpackPolyfill","deprecate","paths","children","_typeof","iterator","obj","constructor","this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","document","querySelector","content","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","setData","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","args","arguments","length","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","factory","_typeof2","stamp","keys","undefined","arr","forEachFnc","completeFnc","len","DOMEvent","events_key","_id","listener","context","concat","on","useCapture","id","apply","attachEvent","off","detachEvent","commonjsGlobal","globalThis","global","self","createCommonjsModule","fn","check","it","global_1","Function","fails","exec","descriptors","nativePropertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","objectPropertyIsEnumerable","f","1","V","descriptor","createPropertyDescriptor","bitmap","configurable","writable","toString","classofRaw","split","indexedObject","requireObjectCoercible","TypeError","toIndexedObject","isObject","toPrimitive","PREFERRED_STRING","val","valueOf","has","document$1","EXISTS","documentCreateElement","ie8DomDefine","a","nativeGetOwnPropertyDescriptor","objectGetOwnPropertyDescriptor","O","P","anObject","String","nativeDefineProperty","objectDefineProperty","Attributes","createNonEnumerableProperty","setGlobal","SHARED","sharedStore","functionToString","inspectSource","set","has$1","WeakMap","nativeWeakMap","test","shared","version","copyright","postfix","random","uid","sharedKey","hiddenKeys","WeakMap$1","store$1","state","wmget","wmhas","wmset","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","redefine","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","noTargetGet","source","path","aFunction","variable","getBuiltIn","namespace","ceil","toInteger","argument","isNaN","min","toLength","max","min$1","toAbsoluteIndex","index","integer","createMethod","IS_INCLUDES","$this","fromIndex","arrayIncludes","includes","objectKeysInternal","names","enumBugKeys","hiddenKeys$1","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertySymbols","ownKeys","copyConstructorProperties","isForced","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","getOwnPropertyDescriptor$1","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","sham","regexpFlags","that","ignoreCase","multiline","dotAll","unicode","sticky","RE","RegExp","re1","re2","regexpStickyHelpers","UNSUPPORTED_Y","re","lastIndex","BROKEN_CARET","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y$1","NPCG_INCLUDED","str","reCopy","flags","charsAdded","strCopy","regexpExec","proto","engineIsNode","process","engineUserAgent","versions","v8","engineV8Version","nativeSymbol","useSymbolAsUid","WellKnownSymbolsStore","Symbol$1","createWellKnownSymbol","withoutSetter","wellKnownSymbol","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","fixRegexpWellKnownSymbolLogic","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","stringMethod","regexMethod","arg","createMethod$1","CONVERT_TO_STRING","pos","first","second","S","position","size","charCodeAt","charAt","advanceStringIndex","regexpExecAbstract","R","MATCH","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","A","matchStr","isArray","toObject","createProperty","propertyKey","SPECIES$1","arraySpeciesCreate","originalArray","C","SPECIES$2","arrayMethodHasSpeciesSupport","METHOD_NAME","array","foo","Boolean","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","k","E","toStringTagSupport","TO_STRING_TAG$1","CORRECT_ARGUMENTS","classof","tag","tryGet","callee","objectToString","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","isRegexp","isRegExp","aFunction$1","SPECIES$3","arrayPush","min$2","MAX_UINT32","SUPPORTS_Y","addClass","className","SVGElement","pre","classList","cls","add","getPropValue","propName","propValue","currentStyle","defaultView","getComputedStyle","getPropertyValue","scrollParentToElement","targetElement","_options","scrollToElement","parent","excludeStaticParent","overflowRegex","parentElement","overflow","overflowY","overflowX","getScrollParent","scrollTop","offsetTop","getWinSize","innerWidth","width","height","innerHeight","D","documentElement","clientWidth","clientHeight","scrollTo","_ref","tooltipLayer","rect","getBoundingClientRect","top","left","bottom","right","elementInViewport","winHeight","scrollBy","scrollPadding","setAnchorAsButton","anchor","tabIndex","SPLIT","nativeSplit","internalSplit","separator","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","defaultConstructor","speciesConstructor","unicodeMatching","q","z","objectKeys","nativeAssign","assign","objectAssign","b","B","symbol","alphabet","chr","T","argumentsLength","j","getOffset","relativeEl","docEl","pageYOffset","scrollLeft","pageXOffset","x","xr","relativeElPosition","tagName","isFixed","nodeName","floor$1","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","getSubstitution","matched","captures","namedCaptures","tailPos","symbols","ch","capture","max$1","min$3","removeClass","classNameRegex","setStyle","cssText","rule","setHelperLayerPosition","helperLayer","_introItems","_currentStep","currentElement","elementPosition","_targetElement","widthHeightPadding","helperElementPadding","reason","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","activeXDocument","objectDefineProperties","defineProperties","Properties","IE_PROTO","EmptyConstructor","scriptTag","LT","_NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","src","contentWindow","F","objectCreate","UNSCOPABLES","ArrayPrototype","$includes","HAS_SPECIES_SUPPORT","SPECIES$4","nativeSlice","max$2","end","Constructor","fin","notARegexp","MATCH$1","error1","error2","correctIsRegexpLogic","searchString","nativeJoin","ES3_STRINGS","STRICT_METHOD","createMethod$2","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","callbackfn","specificCreate","boundFunction","functionBindContext","$filter","arrayIteration","checkRight","targetOffset","tooltipLayerStyleLeft","tooltipOffset","windowSize","checkLeft","tooltipLayerStyleRight","HAS_SPECIES_SUPPORT$2","max$3","min$4","MAX_SAFE_INTEGER$1","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","removeEntry","stringArray","stringToRemove","splice","_determineAutoPosition","desiredTooltipPosition","possiblePositions","positionPrecedence","tooltipHeight","tooltipWidth","targetElementRect","calculatedPosition","hyphenIndex","desiredAlignment","substr","offsetLeft","halfTooltipWidth","winWidth","screen","possibleAlignments","_determineAutoAlignment","placeTooltip","arrowLayer","hintMode","currentStepObj","currentTooltipPosition","tooltipCssClass","marginLeft","marginTop","tooltipClass","autoPosition","tooltipLayerStyleLeftRight","showStepNumbers","removeShowElement","elm","_createElement","tagname","attrs","setAttRegex","v","animate","existingOpacity","opacity","_getProgress","parseInt","_disableInteraction","disableInteractionLayer","_showElement","_this","_introChangeCallback","nextTooltipButton","prevTooltipButton","skipTooltipButton","oldHelperLayer","oldReferenceLayer","highlightClass","oldHelperNumberLayer","oldtooltipLayer","oldTooltipTitleLayer","oldArrowLayer","oldtooltipContainer","_lastShowElementTimer","clearTimeout","step","intro","title","showBullets","focus","referenceLayer","tooltipTextLayer","tooltipHeaderLayer","tooltipTitleLayer","bulletsLayer","progressLayer","buttonsLayer","overlayOpacity","ulContainer","anchorClick","goToStep","innerLi","anchorLink","onclick","showProgress","progressBar","progressBarAdditionalClass","showButtons","helperNumberLayer","nextStep","_introCompleteCallback","exitIntro","nextLabel","previousStep","prevLabel","skipLabel","_introSkipCallback","disableInteraction","buttonClass","hidePrev","hideNext","nextToDone","doneLabel","currentElementPosition","setShowElement","_introAfterChangeCallback","goToStepNumber","_currentStepNumber","_direction","continueStep","_introBeforeChangeCallback","currentStep","onKeyDown","code","which","charCode","keyCode","exitOnEsc","srcElement","returnValue","cloneObject","nodeType","hintQuerySelectorAll","hintsWrapper","hideHint","stepId","hint","removeHintTooltip","_hintCloseCallback","hideHints","showHints","_this2","hints","showHint","populateHints","removeHints","_this3","removeHint","addHints","_this4","item","cancelBubble","showHintDialog","getHintClick","hintAnimation","hintDot","hintPulse","alignHintPosition","hintPosition","_hintsAddedCallback","offset","iconWidth","iconHeight","hintElement","_hintClickCallback","removedStep","tooltipWrapper","closeButton","hintButtonLabel","tooltip","targetElm","_this5","currentItem","tooltipPosition","reAlignHints","_this6","_ref2","refresh","onResize","force","continueExit","_introBeforeExitCallback","overlayLayers","overlayLayer","_introExitCallback","addOverlayLayer","exitOnOverlayClick","cursor","introForElement","group","allIntroSteps","introItems","steps","floatingElementQuery","hasAttribute","_nextStep","tempIntroItems","sort","keyboardNavigation","IntroJs","deleteCount","insertCount","actualDeleteCount","from","to","actualStart","introJs","instance","instances","clone","setOption","setOptions","obj1","obj2","attrname","obj3","mergeOptions","addStep","addSteps","exit","onbeforechange","providedCallback","onchange","onafterchange","oncomplete","onhintsadded","onhintclick","onhintclose","onexit","onskip","onbeforeexit","sparkMd5","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","substring","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","bytes","SparkMD5","reset","clamp","num","targetArray","sourceArray","begin","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","classCallCheck","createClass","props","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","initEvent","toArray$1","BlobRecord","checksum","attributes","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","notify","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","shift","processingAttribute","submitButtonsByForm","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","removeAttribute","enable","delete","submitForm","ActiveStorage","channels","require","webpackEmptyContext","req","resolve","Set","clear","values","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","u","setImmediate","console","warn","all","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","registerElement","Date","now","g","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","subtree","enqueue","records_","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","w","transientObservedNodes","JsMutationObserver","navigator","userAgent","y","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","addTransientObserver","handleEvent","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","WebComponents","CustomElements","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","wrap","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","pop","DOCUMENT_FRAGMENT_NODE","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","__proto__","HTMLElement","getPrototypeOf","native","HTMLTemplateElement","decorate","getRegisteredDefinition","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElementNS","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","eager","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","config","BasicObject","proxyMethod","toMethod","toProperty","optional","_t","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","extend","defer","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","added","removed","_n","utf16String","codepoints","fromCodepoints","_t2","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","_s","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","closest","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","dataset","textContent","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","_t3","initialize","connect","initialized","connectedCallback","disconnectedCallback","_n2","Reflect","construct","setPrototypeOf","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","dataTransferIsWritable","keyEventIsKeyboardCommand","platform","RTL_PATTERN","getDirection","dir","dirName","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","isEmpty","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","find","ElementStore","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","lang","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","byte","pow","toFixed","inheritable","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","getElementById","_t7","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","Controller","didMutate","_h","stop","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","onerror","onload","abort","InputController","mutationObserver","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","paste","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","isEnded","getSelectedDocument","Files","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","scrollHeight","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","contains","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_clearFn","scope","setInterval","clearInterval","timeout","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","env","argv","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","auto","basePlacements","viewport","variationPlacements","reduce","acc","placement","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","afterWrite","modifierPhases","getNodeName","getWindow","node","isElement","isHTMLElement","isShadowRoot","ShadowRoot","enabled","phase","styles","effect","initialStyles","popper","strategy","margin","arrow","reference","attribute","requires","getBasePlacement","getLayoutRect","clientRect","offsetWidth","offsetHeight","abs","child","rootNode","getRootNode","next","isSameNode","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","transform","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","round","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","padding","rects","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","requiresIfExists","unsetSides","mapToStyles","_Object$assign2","popperRect","offsets","gpuAcceleration","adaptive","roundOffsets","_ref3","dpr","devicePixelRatio","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","isScrollParent","_getComputedStyle","listScrollParents","list","_element$ownerDocumen","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getVariation","computeOffsets","variation","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","Map","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_loop","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","some","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","order","modifiers","visited","modifier","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","cleanupModifierEffects","orderModifiers","merged","current","existing","mergeByName","_ref3$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","eventListeners","enumerableOnly","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_get","receiver","base","_superPropBase","desc","_getPrototypeOf","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Proxy","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","_classCallCheck","_defineProperties","_createClass","_slicedToArray","_arrayWithHoles","_e","_arr","_d","err","_iterableToArrayLimit","_nonIterableRest","arr2","TRANSITION_END","getUID","getSelector","hrefAttr","startsWith","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","emulateTransitionEnd","duration","called","emulatedDuration","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","isVisible","elementStyle","parentNodeStyle","visibility","isDisabled","findShadowRoot","attachShadow","reflow","getjQuery","defineJQueryPlugin","plugin","JQUERY_NO_CONFLICT","jQueryInterface","noConflict","elementMap","Data","instanceMap","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","getEvent","findHandler","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","addHandler","oneOff","_normalizeParams2","handlers","previousFn","domElements","delegateTarget","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","one","_normalizeParams4","inNamespace","isNamespace","elementEvent","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","trigger","jQueryEvent","isNative","nativeDispatch","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","BaseComponent","_element","DATA_KEY","DATA_KEY$b","EVENT_KEY$b","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API$7","Alert","_BaseComponent","_super","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","_destroyElement","each","alertInstance","handleDismiss","DATA_KEY$a","EVENT_KEY$a","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","_super2","toggle","normalizeData","normalizeDataKey","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","pureKey","getDataAttribute","SelectorEngine","parents","ancestor","previous","NAME$9","DATA_KEY$9","EVENT_KEY$9","DATA_API_KEY$6","Default$8","interval","keyboard","slide","pause","touch","DefaultType$8","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE_ITEM","POINTER_TYPE_TOUCH","Carousel","_BaseComponent3","_super3","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","cycle","_updateInterval","visibilityState","nextWhenVisible","activeIndex","_getItemIndex","absDeltax","_keydown","_addTouchEventListeners","pointerType","touches","_handleSwipe","itemImg","move","isNext","isPrev","lastItemIndex","itemIndex","relatedTarget","eventDirectionName","targetIndex","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","_getItemByOrder","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","NAME$8","DATA_KEY$8","EVENT_KEY$8","Default$7","DefaultType$7","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","SELECTOR_DATA_TOGGLE$4","Collapse","_BaseComponent4","_super4","_this7","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","_this8","actives","activesData","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","capitalizedDimension","scrollSize","_this9","triggerArrayLength","isTransitioning","_this10","jquery","triggerArray","isOpen","triggerData","NAME$7","DATA_KEY$7","EVENT_KEY$7","DATA_API_KEY$4","ESCAPE_KEY$2","SPACE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW$6","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$6","popperConfig","DefaultType$6","_BaseComponent5","Dropdown","_super5","_this11","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","clearMenus","getParentFromElement","_getPopperConfig","isDisplayStatic","_this12","Default","DefaultType","parentDropdown","isEnd","_this13","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","dropdownInterface","toggles","clickEvent","dropdownMenu","composedPath","dataApiKeydownHandler","NAME$6","DATA_KEY$6","EVENT_KEY$6","ESCAPE_KEY$1","Default$5","backdrop","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_FOCUSIN$1","EVENT_RESIZE","EVENT_CLICK_DISMISS$2","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$5","CLASS_NAME_STATIC","SELECTOR_FIXED_CONTENT$1","SELECTOR_STICKY_CONTENT$1","Modal","_BaseComponent6","_super6","_this14","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_this15","_isAnimated","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_this16","isAnimated","_hideModal","htmlElement","_this17","modalBody","_enforceFocus","transitionComplete","_this18","_this19","_triggerBackdropTransition","_this20","_this21","_resetAdjustments","_resetScrollbar","_this22","currentTarget","backdropTransitionDuration","callbackRemove","_removeBackdrop","_backdropTransitionDuration","_this23","isModalOverflowing","modalTransitionDuration","paddingLeft","paddingRight","_getScrollbarWidth","_this24","_setElementAttributes","calculatedValue","styleProp","_this25","actualValue","_resetElementAttributes","scrollDiv","scrollbarWidth","_this26","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","documentWidth","removeProperty","NAME$5","DATA_KEY$5","EVENT_KEY$5","DATA_API_KEY$2","EVENT_LOAD_DATA_API$1","Default$4","DefaultType$4","CLASS_NAME_BACKDROP_BODY","CLASS_NAME_SHOW$4","CLASS_NAME_TOGGLING","OPEN_SELECTOR","ACTIVE_SELECTOR","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_FOCUSIN","EVENT_CLICK_DATA_API$1","EVENT_CLICK_DISMISS$1","Offcanvas","_BaseComponent7","_super7","_this27","_this28","_enforceFocusOnElement","_this29","blur","_this30","_this31","allReadyOpen","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","area","br","col","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","small","span","sub","sup","strong","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","_ref5","createdDocument","allowlistKeys","_ref6","elName","attributeList","attr","allowedAttributeList","nodeValue","regExp","attrRegex","allowedAttribute","NAME$4","DATA_KEY$4","EVENT_KEY$4","CLASS_PREFIX$1","BSCLS_PREFIX_REGEX$1","DISALLOWED_ATTRIBUTES","DefaultType$3","animation","template","delay","customClass","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$3","CLASS_NAME_MODAL","CLASS_NAME_SHOW$3","HOVER_STATE_SHOW","HOVER_STATE_OUT","TRIGGER_HOVER","TRIGGER_FOCUS","_BaseComponent8","Tooltip","_super8","_this32","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","_this33","isWithContent","isInTheDom","tipId","NAME","setContent","_getAttachment","_addAttachmentClass","_getContainer","_tip$classList","_ref7","prevHoverState","_this34","_cleanTipClass","_ref8","getTitle","setElementContent","dataKey","_getDelegateConfig","_this35","_this36","_handlePopperPlacementChange","updateAttachment","_this37","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","tClass","NAME$3","DATA_KEY$3","EVENT_KEY$3","CLASS_PREFIX","BSCLS_PREFIX_REGEX","Default$2","DefaultType$2","Event$1","_Tooltip","Popover","_super9","_getContent","NAME$2","DATA_KEY$2","EVENT_KEY$2","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","METHOD_POSITION","ScrollSpy","_BaseComponent9","_super10","_this38","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","_this39","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","maxScroll","_getOffsetHeight","_activate","_clear","queries","listGroup","navItem","spy","DATA_KEY$1","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","_BaseComponent10","_super11","_this40","listElement","itemSelector","hideEvent","_this41","_transitionComplete","dropdownChild","dropdown","EVENT_CLICK_DISMISS","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","_BaseComponent11","Toast","_super12","_this42","_this43","_clearTimeout","_this44","_this45","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-38132828a7446bd887a5.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 48);\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof2(obj) { \"@babel/helpers - typeof\"; return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof2(obj); }\n\n/*!\n * Intro.js v3.4.0\n * https://introjs.com\n *\n * Copyright (C) 2012-2021 Afshin Mehrabani (@afshinmeh).\n * https://raw.githubusercontent.com/usablica/intro.js/master/license.md\n *\n * Date: Thu, 25 Mar 2021 09:48:49 GMT\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.introJs = factory());\n})(this, function () {\n 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n /**\n * Overwrites obj1's values with obj2's and adds obj2's if non existent in obj1\n * via: http://stackoverflow.com/questions/171251/how-can-i-merge-properties-of-two-javascript-objects-dynamically\n *\n * @param obj1\n * @param obj2\n * @returns obj3 a new object based on obj1 and obj2\n */\n\n\n function mergeOptions(obj1, obj2) {\n var obj3 = {};\n var attrname;\n\n for (attrname in obj1) {\n obj3[attrname] = obj1[attrname];\n }\n\n for (attrname in obj2) {\n obj3[attrname] = obj2[attrname];\n }\n\n return obj3;\n }\n /**\n * Mark any object with an incrementing number\n * used for keeping track of objects\n *\n * @param Object obj Any object or DOM Element\n * @param String key\n * @return Object\n */\n\n\n var stamp = function () {\n var keys = {};\n return function stamp(obj) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"introjs-stamp\"; // each group increments from 0\n\n keys[key] = keys[key] || 0; // stamp only once per object\n\n if (obj[key] === undefined) {\n // increment key for each new object\n obj[key] = keys[key]++;\n }\n\n return obj[key];\n };\n }();\n /**\n * Iterates arrays\n *\n * @param {Array} arr\n * @param {Function} forEachFnc\n * @param {Function} completeFnc\n * @return {Null}\n */\n\n\n function forEach(arr, forEachFnc, completeFnc) {\n // in case arr is an empty query selector node list\n if (arr) {\n for (var i = 0, len = arr.length; i < len; i++) {\n forEachFnc(arr[i], i);\n }\n }\n\n if (typeof completeFnc === \"function\") {\n completeFnc();\n }\n }\n /**\n * DOMEvent Handles all DOM events\n *\n * methods:\n *\n * on - add event handler\n * off - remove event\n */\n\n\n var DOMEvent = function () {\n function DOMEvent() {\n var events_key = \"introjs_event\";\n /**\n * Gets a unique ID for an event listener\n *\n * @param obj Object\n * @param type event type\n * @param listener Function\n * @param context Object\n * @return String\n */\n\n this._id = function (obj, type, listener, context) {\n return type + stamp(listener) + (context ? \"_\".concat(stamp(context)) : \"\");\n };\n /**\n * Adds event listener\n *\n * @param obj Object obj\n * @param type String\n * @param listener Function\n * @param context Object\n * @param useCapture Boolean\n * @return null\n */\n\n\n this.on = function (obj, type, listener, context, useCapture) {\n var id = this._id.apply(this, arguments);\n\n var handler = function handler(e) {\n return listener.call(context || obj, e || window.event);\n };\n\n if (\"addEventListener\" in obj) {\n obj.addEventListener(type, handler, useCapture);\n } else if (\"attachEvent\" in obj) {\n obj.attachEvent(\"on\".concat(type), handler);\n }\n\n obj[events_key] = obj[events_key] || {};\n obj[events_key][id] = handler;\n };\n /**\n * Removes event listener\n *\n * @param obj Object\n * @param type String\n * @param listener Function\n * @param context Object\n * @param useCapture Boolean\n * @return null\n */\n\n\n this.off = function (obj, type, listener, context, useCapture) {\n var id = this._id.apply(this, arguments);\n\n var handler = obj[events_key] && obj[events_key][id];\n\n if (!handler) {\n return;\n }\n\n if (\"removeEventListener\" in obj) {\n obj.removeEventListener(type, handler, useCapture);\n } else if (\"detachEvent\" in obj) {\n obj.detachEvent(\"on\".concat(type), handler);\n }\n\n obj[events_key][id] = null;\n };\n }\n\n return new DOMEvent();\n }();\n\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var check = function check(it) {\n return it && it.Math == Math && it;\n }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\n\n var global_1 =\n /* global globalThis -- safe */\n check((typeof globalThis === \"undefined\" ? \"undefined\" : _typeof2(globalThis)) == 'object' && globalThis) || check((typeof window === \"undefined\" ? \"undefined\" : _typeof2(window)) == 'object' && window) || check((typeof self === \"undefined\" ? \"undefined\" : _typeof2(self)) == 'object' && self) || check(_typeof2(commonjsGlobal) == 'object' && commonjsGlobal) || // eslint-disable-next-line no-new-func -- fallback\n function () {\n return this;\n }() || Function('return this')();\n\n var fails = function fails(exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n }; // Detect IE8's incomplete defineProperty implementation\n\n\n var descriptors = !fails(function () {\n return Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1] != 7;\n });\n var nativePropertyIsEnumerable = {}.propertyIsEnumerable;\n var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug\n\n var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({\n 1: 2\n }, 1); // `Object.prototype.propertyIsEnumerable` method implementation\n // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\n\n var f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n } : nativePropertyIsEnumerable;\n var objectPropertyIsEnumerable = {\n f: f\n };\n\n var createPropertyDescriptor = function createPropertyDescriptor(bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n };\n\n var toString = {}.toString;\n\n var classofRaw = function classofRaw(it) {\n return toString.call(it).slice(8, -1);\n };\n\n var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings\n\n var indexedObject = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n }) ? function (it) {\n return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);\n } : Object; // `RequireObjectCoercible` abstract operation\n // https://tc39.es/ecma262/#sec-requireobjectcoercible\n\n var requireObjectCoercible = function requireObjectCoercible(it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n }; // toObject with fallback for non-array-like ES3 strings\n\n\n var toIndexedObject = function toIndexedObject(it) {\n return indexedObject(requireObjectCoercible(it));\n };\n\n var isObject = function isObject(it) {\n return _typeof2(it) === 'object' ? it !== null : typeof it === 'function';\n }; // `ToPrimitive` abstract operation\n // https://tc39.es/ecma262/#sec-toprimitive\n // instead of the ES6 spec version, we didn't implement @@toPrimitive case\n // and the second argument - flag - preferred type is a string\n\n\n var toPrimitive = function toPrimitive(input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n };\n\n var hasOwnProperty = {}.hasOwnProperty;\n\n var has = function has(it, key) {\n return hasOwnProperty.call(it, key);\n };\n\n var document$1 = global_1.document; // typeof document.createElement is 'object' in old IE\n\n var EXISTS = isObject(document$1) && isObject(document$1.createElement);\n\n var documentCreateElement = function documentCreateElement(it) {\n return EXISTS ? document$1.createElement(it) : {};\n }; // Thank's IE8 for his funny defineProperty\n\n\n var ie8DomDefine = !descriptors && !fails(function () {\n return Object.defineProperty(documentCreateElement('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n\n var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (ie8DomDefine) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) {\n /* empty */\n }\n if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);\n };\n var objectGetOwnPropertyDescriptor = {\n f: f$1\n };\n\n var anObject = function anObject(it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n }\n\n return it;\n };\n\n var nativeDefineProperty = Object.defineProperty; // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n\n var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (ie8DomDefine) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) {\n /* empty */\n }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n };\n var objectDefineProperty = {\n f: f$2\n };\n var createNonEnumerableProperty = descriptors ? function (object, key, value) {\n return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));\n } : function (object, key, value) {\n object[key] = value;\n return object;\n };\n\n var setGlobal = function setGlobal(key, value) {\n try {\n createNonEnumerableProperty(global_1, key, value);\n } catch (error) {\n global_1[key] = value;\n }\n\n return value;\n };\n\n var SHARED = '__core-js_shared__';\n var store = global_1[SHARED] || setGlobal(SHARED, {});\n var sharedStore = store;\n var functionToString = Function.toString; // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\n\n if (typeof sharedStore.inspectSource != 'function') {\n sharedStore.inspectSource = function (it) {\n return functionToString.call(it);\n };\n }\n\n var inspectSource = sharedStore.inspectSource;\n var WeakMap = global_1.WeakMap;\n var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n var shared = createCommonjsModule(function (module) {\n (module.exports = function (key, value) {\n return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});\n })('versions', []).push({\n version: '3.9.1',\n mode: 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n });\n });\n var id = 0;\n var postfix = Math.random();\n\n var uid = function uid(key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n };\n\n var keys = shared('keys');\n\n var sharedKey = function sharedKey(key) {\n return keys[key] || (keys[key] = uid(key));\n };\n\n var hiddenKeys = {};\n var WeakMap$1 = global_1.WeakMap;\n var set, get, has$1;\n\n var enforce = function enforce(it) {\n return has$1(it) ? get(it) : set(it, {});\n };\n\n var getterFor = function getterFor(TYPE) {\n return function (it) {\n var state;\n\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n\n return state;\n };\n };\n\n if (nativeWeakMap) {\n var store$1 = sharedStore.state || (sharedStore.state = new WeakMap$1());\n var wmget = store$1.get;\n var wmhas = store$1.has;\n var wmset = store$1.set;\n\n set = function set(it, metadata) {\n metadata.facade = it;\n wmset.call(store$1, it, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return wmget.call(store$1, it) || {};\n };\n\n has$1 = function has$1(it) {\n return wmhas.call(store$1, it);\n };\n } else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n\n set = function set(it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return has(it, STATE) ? it[STATE] : {};\n };\n\n has$1 = function has$1(it) {\n return has(it, STATE);\n };\n }\n\n var internalState = {\n set: set,\n get: get,\n has: has$1,\n enforce: enforce,\n getterFor: getterFor\n };\n var redefine = createCommonjsModule(function (module) {\n var getInternalState = internalState.get;\n var enforceInternalState = internalState.enforce;\n var TEMPLATE = String(String).split('String');\n (module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n\n state = enforceInternalState(value);\n\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n\n if (O === global_1) {\n if (simple) O[key] = value;else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n\n if (simple) O[key] = value;else createNonEnumerableProperty(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n })(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n });\n });\n var path = global_1;\n\n var aFunction = function aFunction(variable) {\n return typeof variable == 'function' ? variable : undefined;\n };\n\n var getBuiltIn = function getBuiltIn(namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace]) : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];\n };\n\n var ceil = Math.ceil;\n var floor = Math.floor; // `ToInteger` abstract operation\n // https://tc39.es/ecma262/#sec-tointeger\n\n var toInteger = function toInteger(argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n };\n\n var min = Math.min; // `ToLength` abstract operation\n // https://tc39.es/ecma262/#sec-tolength\n\n var toLength = function toLength(argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n };\n\n var max = Math.max;\n var min$1 = Math.min; // Helper for a popular repeating case of the spec:\n // Let integer be ? ToInteger(index).\n // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\n\n var toAbsoluteIndex = function toAbsoluteIndex(index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min$1(integer, length);\n }; // `Array.prototype.{ indexOf, includes }` methods implementation\n\n\n var createMethod = function createMethod(IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value; // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check\n\n if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not\n } else for (; length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n };\n\n var arrayIncludes = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n };\n var indexOf = arrayIncludes.indexOf;\n\n var objectKeysInternal = function objectKeysInternal(object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) {\n !has(hiddenKeys, key) && has(O, key) && result.push(key);\n } // Don't enum bug & hidden keys\n\n\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n }\n\n return result;\n }; // IE8- don't enum bug keys\n\n\n var enumBugKeys = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];\n var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n\n var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return objectKeysInternal(O, hiddenKeys$1);\n };\n\n var objectGetOwnPropertyNames = {\n f: f$3\n };\n var f$4 = Object.getOwnPropertySymbols;\n var objectGetOwnPropertySymbols = {\n f: f$4\n }; // all object keys, includes non-enumerable and symbols\n\n var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = objectGetOwnPropertyNames.f(anObject(it));\n var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n };\n\n var copyConstructorProperties = function copyConstructorProperties(target, source) {\n var keys = ownKeys(source);\n var defineProperty = objectDefineProperty.f;\n var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n };\n\n var replacement = /#|\\.prototype\\./;\n\n var isForced = function isForced(feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection;\n };\n\n var normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n };\n\n var data = isForced.data = {};\n var NATIVE = isForced.NATIVE = 'N';\n var POLYFILL = isForced.POLYFILL = 'P';\n var isForced_1 = isForced;\n var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;\n /*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n */\n\n var _export = function _export(options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n\n if (GLOBAL) {\n target = global_1;\n } else if (STATIC) {\n target = global_1[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global_1[TARGET] || {}).prototype;\n }\n\n if (target) for (key in source) {\n sourceProperty = source[key];\n\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor$1(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n\n FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target\n\n if (!FORCED && targetProperty !== undefined) {\n if (_typeof2(sourceProperty) === _typeof2(targetProperty)) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n } // add a flag to not completely full polyfills\n\n\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n } // extend global\n\n\n redefine(target, key, sourceProperty, options);\n }\n }; // `RegExp.prototype.flags` getter implementation\n // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\n\n\n var regexpFlags = function regexpFlags() {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n }; // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n // so we use an intermediate function.\n\n\n function RE(s, f) {\n return RegExp(s, f);\n }\n\n var UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n });\n var BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n });\n var regexpStickyHelpers = {\n UNSUPPORTED_Y: UNSUPPORTED_Y,\n BROKEN_CARET: BROKEN_CARET\n };\n var nativeExec = RegExp.prototype.exec; // This always refers to the native implementation, because the\n // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n // which loads this file before patching the method.\n\n var nativeReplace = String.prototype.replace;\n var patchedExec = nativeExec;\n\n var UPDATES_LAST_INDEX_WRONG = function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n }();\n\n var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET; // nonparticipating capturing group, copied from es5-shim's String#split patch.\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n\n var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1;\n\n if (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y$1 && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex); // Support anchored sticky behavior.\n\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n } // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n\n\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n }\n\n var regexpExec = patchedExec; // `RegExp.prototype.exec` method\n // https://tc39.es/ecma262/#sec-regexp.prototype.exec\n\n _export({\n target: 'RegExp',\n proto: true,\n forced: /./.exec !== regexpExec\n }, {\n exec: regexpExec\n });\n\n var engineIsNode = classofRaw(global_1.process) == 'process';\n var engineUserAgent = getBuiltIn('navigator', 'userAgent') || '';\n var process = global_1.process;\n var versions = process && process.versions;\n var v8 = versions && versions.v8;\n var match, version;\n\n if (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n } else if (engineUserAgent) {\n match = engineUserAgent.match(/Edge\\/(\\d+)/);\n\n if (!match || match[1] >= 74) {\n match = engineUserAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n }\n\n var engineV8Version = version && +version;\n var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {\n /* global Symbol -- required for testing */\n return !Symbol.sham && ( // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n engineIsNode ? engineV8Version === 38 : engineV8Version > 37 && engineV8Version < 41);\n });\n var useSymbolAsUid = nativeSymbol\n /* global Symbol -- safe */\n && !Symbol.sham && _typeof2(Symbol.iterator) == 'symbol';\n var WellKnownSymbolsStore = shared('wks');\n var Symbol$1 = global_1.Symbol;\n var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid;\n\n var wellKnownSymbol = function wellKnownSymbol(name) {\n if (!has(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (nativeSymbol && has(Symbol$1, name)) {\n WellKnownSymbolsStore[name] = Symbol$1[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n }\n\n return WellKnownSymbolsStore[name];\n }; // TODO: Remove from `core-js@4` since it's moved to entry points\n\n\n var SPECIES = wellKnownSymbol('species');\n var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n\n re.exec = function () {\n var result = [];\n result.groups = {\n a: '7'\n };\n return result;\n };\n\n return ''.replace(re, '$') !== '7';\n }); // IE <= 11 replaces $0 with the whole match, as if it was $&\n // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\n\n var REPLACE_KEEPS_$0 = function () {\n return 'a'.replace(/./, '$0') === '$0';\n }();\n\n var REPLACE = wellKnownSymbol('replace'); // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\n\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n\n return false;\n }(); // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n // Weex JS has frozen built-in prototypes, so use try / catch wrapper\n\n\n var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n\n re.exec = function () {\n return originalExec.apply(this, arguments);\n };\n\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n });\n\n var fixRegexpWellKnownSymbolLogic = function fixRegexpWellKnownSymbolLogic(KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n\n O[SYMBOL] = function () {\n return 7;\n };\n\n return ''[KEY](O) != 7;\n });\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {}; // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n\n re.constructor = {};\n\n re.constructor[SPECIES] = function () {\n return re;\n };\n\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (!DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || KEY === 'replace' && !(REPLACE_SUPPORTS_NAMED_GROUPS && REPLACE_KEEPS_$0 && !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE) || KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return {\n done: true,\n value: nativeRegExpMethod.call(regexp, str, arg2)\n };\n }\n\n return {\n done: true,\n value: nativeMethod.call(str, regexp, arg2)\n };\n }\n\n return {\n done: false\n };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) {\n return regexMethod.call(string, this, arg);\n } // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) {\n return regexMethod.call(string, this);\n });\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n }; // `String.prototype.{ codePointAt, at }` methods implementation\n\n\n var createMethod$1 = function createMethod$1(CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n };\n\n var stringMultibyte = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod$1(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod$1(true)\n };\n var charAt = stringMultibyte.charAt; // `AdvanceStringIndex` abstract operation\n // https://tc39.es/ecma262/#sec-advancestringindex\n\n var advanceStringIndex = function advanceStringIndex(S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n }; // `RegExpExec` abstract operation\n // https://tc39.es/ecma262/#sec-regexpexec\n\n\n var regexpExecAbstract = function regexpExecAbstract(R, S) {\n var exec = R.exec;\n\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n\n if (_typeof2(result) !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n\n return result;\n }\n\n if (classofRaw(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n }; // @@match logic\n\n\n fixRegexpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [// `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regexpExecAbstract(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n\n while ((result = regexpExecAbstract(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n\n return n === 0 ? null : A;\n }];\n }); // `IsArray` abstract operation\n // https://tc39.es/ecma262/#sec-isarray\n\n var isArray = Array.isArray || function isArray(arg) {\n return classofRaw(arg) == 'Array';\n }; // `ToObject` abstract operation\n // https://tc39.es/ecma262/#sec-toobject\n\n\n var toObject = function toObject(argument) {\n return Object(requireObjectCoercible(argument));\n };\n\n var createProperty = function createProperty(object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));else object[propertyKey] = value;\n };\n\n var SPECIES$1 = wellKnownSymbol('species'); // `ArraySpeciesCreate` abstract operation\n // https://tc39.es/ecma262/#sec-arrayspeciescreate\n\n var arraySpeciesCreate = function arraySpeciesCreate(originalArray, length) {\n var C;\n\n if (isArray(originalArray)) {\n C = originalArray.constructor; // cross-realm fallback\n\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) {\n C = C[SPECIES$1];\n if (C === null) C = undefined;\n }\n }\n\n return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n };\n\n var SPECIES$2 = wellKnownSymbol('species');\n\n var arrayMethodHasSpeciesSupport = function arrayMethodHasSpeciesSupport(METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return engineV8Version >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n\n constructor[SPECIES$2] = function () {\n return {\n foo: 1\n };\n };\n\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n };\n\n var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\n var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/679\n\n var IS_CONCAT_SPREADABLE_SUPPORT = engineV8Version >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n });\n var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\n var isConcatSpreadable = function isConcatSpreadable(O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n };\n\n var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; // `Array.prototype.concat` method\n // https://tc39.es/ecma262/#sec-array.prototype.concat\n // with adding support of @@isConcatSpreadable and @@species\n\n _export({\n target: 'Array',\n proto: true,\n forced: FORCED\n }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n\n for (k = 0; k < len; k++, n++) {\n if (k in E) createProperty(A, n, E[k]);\n }\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n\n A.length = n;\n return A;\n }\n });\n\n var TO_STRING_TAG = wellKnownSymbol('toStringTag');\n var test = {};\n test[TO_STRING_TAG] = 'z';\n var toStringTagSupport = String(test) === '[object z]';\n var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag'); // ES3 wrong here\n\n var CORRECT_ARGUMENTS = classofRaw(function () {\n return arguments;\n }()) == 'Arguments'; // fallback for IE11 Script Access Denied error\n\n var tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (error) {\n /* empty */\n }\n }; // getting tag from ES6+ `Object.prototype.toString`\n\n\n var classof = toStringTagSupport ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$1)) == 'string' ? tag // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n }; // `Object.prototype.toString` method implementation\n // https://tc39.es/ecma262/#sec-object.prototype.tostring\n\n var objectToString = toStringTagSupport ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n }; // `Object.prototype.toString` method\n // https://tc39.es/ecma262/#sec-object.prototype.tostring\n\n if (!toStringTagSupport) {\n redefine(Object.prototype, 'toString', objectToString, {\n unsafe: true\n });\n }\n\n var TO_STRING = 'toString';\n var RegExpPrototype = RegExp.prototype;\n var nativeToString = RegExpPrototype[TO_STRING];\n var NOT_GENERIC = fails(function () {\n return nativeToString.call({\n source: 'a',\n flags: 'b'\n }) != '/a/b';\n }); // FF44- RegExp#toString has a wrong name\n\n var INCORRECT_NAME = nativeToString.name != TO_STRING; // `RegExp.prototype.toString` method\n // https://tc39.es/ecma262/#sec-regexp.prototype.tostring\n\n if (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? regexpFlags.call(R) : rf);\n return '/' + p + '/' + f;\n }, {\n unsafe: true\n });\n }\n\n var MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation\n // https://tc39.es/ecma262/#sec-isregexp\n\n var isRegexp = function isRegexp(it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp');\n };\n\n var aFunction$1 = function aFunction$1(it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n }\n\n return it;\n };\n\n var SPECIES$3 = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation\n // https://tc39.es/ecma262/#sec-speciesconstructor\n\n var speciesConstructor = function speciesConstructor(O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES$3]) == undefined ? defaultConstructor : aFunction$1(S);\n };\n\n var arrayPush = [].push;\n var min$2 = Math.min;\n var MAX_UINT32 = 0xFFFFFFFF; // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\n\n var SUPPORTS_Y = !fails(function () {\n return !RegExp(MAX_UINT32, 'y');\n }); // @@split logic\n\n fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n\n if ('abbc'.split(/(b)*/)[1] == 'c' || // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 || 'ab'.split(/(?:ab)*/).length != 2 || '.'.split(/(.?)(.?)/).length != 4 || // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 || ''.split(/.?/).length) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function internalSplit(separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string]; // If `separator` is not a regex, use native split\n\n if (!isRegexp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') + (separator.sticky ? 'y' : '');\n var lastLastIndex = 0; // Make `global` and avoid `lastIndex` issues by working with a copy\n\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n\n return output.length > lim ? output.slice(0, lim) : output;\n }; // Chakra, V8\n\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function internalSplit(separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [// `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined ? splitter.call(separator, O, limit) : internalSplit.call(String(O), separator, limit);\n }, // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') + (rx.multiline ? 'm' : '') + (rx.unicode ? 'u' : '') + (SUPPORTS_Y ? 'y' : 'g'); // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regexpExecAbstract(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n\n if (z === null || (e = min$2(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n\n q = p = e;\n }\n }\n\n A.push(S.slice(p));\n return A;\n }];\n }, !SUPPORTS_Y);\n /**\n * Append a class to an element\n *\n * @api private\n * @method _addClass\n * @param {Object} element\n * @param {String} className\n * @returns null\n */\n\n function addClass(element, className) {\n if (element instanceof SVGElement) {\n // svg\n var pre = element.getAttribute(\"class\") || \"\";\n\n if (!pre.match(className)) {\n // check if element doesn't already have className\n element.setAttribute(\"class\", \"\".concat(pre, \" \").concat(className));\n }\n } else {\n if (element.classList !== undefined) {\n // check for modern classList property\n var classes = className.split(\" \");\n forEach(classes, function (cls) {\n element.classList.add(cls);\n });\n } else if (!element.className.match(className)) {\n // check if element doesn't already have className\n element.className += \" \".concat(className);\n }\n }\n }\n /**\n * Get an element CSS property on the page\n * Thanks to JavaScript Kit: http://www.javascriptkit.com/dhtmltutors/dhtmlcascade4.shtml\n *\n * @api private\n * @method _getPropValue\n * @param {Object} element\n * @param {String} propName\n * @returns string property value\n */\n\n\n function getPropValue(element, propName) {\n var propValue = \"\";\n\n if (element.currentStyle) {\n //IE\n propValue = element.currentStyle[propName];\n } else if (document.defaultView && document.defaultView.getComputedStyle) {\n //Others\n propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n } //Prevent exception in IE\n\n\n if (propValue && propValue.toLowerCase) {\n return propValue.toLowerCase();\n } else {\n return propValue;\n }\n }\n /**\n * To set the show element\n * This function set a relative (in most cases) position and changes the z-index\n *\n * @api private\n * @method _setShowElement\n * @param {Object} targetElement\n */\n\n\n function setShowElement(_ref) {\n var element = _ref.element;\n addClass(element, \"introjs-showElement\");\n var currentElementPosition = getPropValue(element, \"position\");\n\n if (currentElementPosition !== \"absolute\" && currentElementPosition !== \"relative\" && currentElementPosition !== \"sticky\" && currentElementPosition !== \"fixed\") {\n //change to new intro item\n addClass(element, \"introjs-relativePosition\");\n }\n }\n /**\n * Find the nearest scrollable parent\n * copied from https://stackoverflow.com/questions/35939886/find-first-scrollable-parent\n *\n * @param Element element\n * @return Element\n */\n\n\n function getScrollParent(element) {\n var style = window.getComputedStyle(element);\n var excludeStaticParent = style.position === \"absolute\";\n var overflowRegex = /(auto|scroll)/;\n if (style.position === \"fixed\") return document.body;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = window.getComputedStyle(parent);\n\n if (excludeStaticParent && style.position === \"static\") {\n continue;\n }\n\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\n }\n\n return document.body;\n }\n /**\n * scroll a scrollable element to a child element\n *\n * @param {Object} targetElement\n */\n\n\n function scrollParentToElement(targetElement) {\n var element = targetElement.element;\n if (!this._options.scrollToElement) return;\n var parent = getScrollParent(element);\n if (parent === document.body) return;\n parent.scrollTop = element.offsetTop - parent.offsetTop;\n }\n /**\n * Provides a cross-browser way to get the screen dimensions\n * via: http://stackoverflow.com/questions/5864467/internet-explorer-innerheight\n *\n * @api private\n * @method _getWinSize\n * @returns {Object} width and height attributes\n */\n\n\n function getWinSize() {\n if (window.innerWidth !== undefined) {\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n } else {\n var D = document.documentElement;\n return {\n width: D.clientWidth,\n height: D.clientHeight\n };\n }\n }\n /**\n * Check to see if the element is in the viewport or not\n * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n *\n * @api private\n * @method _elementInViewport\n * @param {Object} el\n */\n\n\n function elementInViewport(el) {\n var rect = el.getBoundingClientRect();\n return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && // add 80 to get the text right\n rect.right <= window.innerWidth;\n }\n /**\n * To change the scroll of `window` after highlighting an element\n *\n * @api private\n * @param {String} scrollTo\n * @param {Object} targetElement\n * @param {Object} tooltipLayer\n */\n\n\n function scrollTo(scrollTo, _ref, tooltipLayer) {\n var element = _ref.element;\n if (scrollTo === \"off\") return;\n var rect;\n if (!this._options.scrollToElement) return;\n\n if (scrollTo === \"tooltip\") {\n rect = tooltipLayer.getBoundingClientRect();\n } else {\n rect = element.getBoundingClientRect();\n }\n\n if (!elementInViewport(element)) {\n var winHeight = getWinSize().height;\n var top = rect.bottom - (rect.bottom - rect.top); // TODO (afshinm): do we need scroll padding now?\n // I have changed the scroll option and now it scrolls the window to\n // the center of the target element or tooltip.\n\n if (top < 0 || element.clientHeight > winHeight) {\n window.scrollBy(0, rect.top - (winHeight / 2 - rect.height / 2) - this._options.scrollPadding); // 30px padding from edge to look nice\n //Scroll down\n } else {\n window.scrollBy(0, rect.top - (winHeight / 2 - rect.height / 2) + this._options.scrollPadding); // 30px padding from edge to look nice\n }\n }\n }\n /**\n * Setting anchors to behave like buttons\n *\n * @api private\n * @method _setAnchorAsButton\n */\n\n\n function setAnchorAsButton(anchor) {\n anchor.setAttribute(\"role\", \"button\");\n anchor.tabIndex = 0;\n } // `Object.keys` method\n // https://tc39.es/ecma262/#sec-object.keys\n\n\n var objectKeys = Object.keys || function keys(O) {\n return objectKeysInternal(O, enumBugKeys);\n };\n\n var nativeAssign = Object.assign;\n var defineProperty = Object.defineProperty; // `Object.assign` method\n // https://tc39.es/ecma262/#sec-object.assign\n\n var objectAssign = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (descriptors && nativeAssign({\n b: 1\n }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function get() {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), {\n b: 2\n })).b !== 1) return true; // should work with symbols and should have deterministic property order (V8 bug)\n\n var A = {};\n var B = {};\n /* global Symbol -- required for testing */\n\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) {\n B[chr] = chr;\n });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n }) ? function assign(target, source) {\n // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;\n var propertyIsEnumerable = objectPropertyIsEnumerable.f;\n\n while (argumentsLength > index) {\n var S = indexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n\n while (length > j) {\n key = keys[j++];\n if (!descriptors || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n }\n\n return T;\n } : nativeAssign; // `Object.assign` method\n // https://tc39.es/ecma262/#sec-object.assign\n\n _export({\n target: 'Object',\n stat: true,\n forced: Object.assign !== objectAssign\n }, {\n assign: objectAssign\n });\n /**\n * Get an element position on the page relative to another element (or body)\n * Thanks to `meouw`: http://stackoverflow.com/a/442474/375966\n *\n * @api private\n * @method getOffset\n * @param {Object} element\n * @param {Object} relativeEl\n * @returns Element's position info\n */\n\n\n function getOffset(element, relativeEl) {\n var body = document.body;\n var docEl = document.documentElement;\n var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;\n relativeEl = relativeEl || body;\n var x = element.getBoundingClientRect();\n var xr = relativeEl.getBoundingClientRect();\n var relativeElPosition = getPropValue(relativeEl, \"position\");\n var obj = {\n width: x.width,\n height: x.height\n };\n\n if (relativeEl.tagName.toLowerCase() !== \"body\" && relativeElPosition === \"relative\" || relativeElPosition === \"sticky\") {\n // when the container of our target element is _not_ body and has either \"relative\" or \"sticky\" position, we should not\n // consider the scroll position but we need to include the relative x/y of the container element\n return Object.assign(obj, {\n top: x.top - xr.top,\n left: x.left - xr.left\n });\n } else {\n return Object.assign(obj, {\n top: x.top + scrollTop,\n left: x.left + scrollLeft\n });\n }\n }\n /**\n * Checks to see if target element (or parents) position is fixed or not\n *\n * @api private\n * @method _isFixed\n * @param {Object} element\n * @returns Boolean\n */\n\n\n function isFixed(element) {\n var p = element.parentNode;\n\n if (!p || p.nodeName === \"HTML\") {\n return false;\n }\n\n if (getPropValue(element, \"position\") === \"fixed\") {\n return true;\n }\n\n return isFixed(p);\n }\n\n var floor$1 = Math.floor;\n var replace = ''.replace;\n var SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\n var SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g; // https://tc39.es/ecma262/#sec-getsubstitution\n\n var getSubstitution = function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n\n switch (ch.charAt(0)) {\n case '$':\n return '$';\n\n case '&':\n return matched;\n\n case '`':\n return str.slice(0, position);\n\n case \"'\":\n return str.slice(tailPos);\n\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n\n default:\n // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n\n if (n > m) {\n var f = floor$1(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n\n capture = captures[n - 1];\n }\n\n return capture === undefined ? '' : capture;\n });\n };\n\n var max$1 = Math.max;\n var min$3 = Math.min;\n\n var maybeToString = function maybeToString(it) {\n return it === undefined ? it : String(it);\n }; // @@replace logic\n\n\n fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n return [// `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined ? replacer.call(searchValue, O, replaceValue) : nativeReplace.call(String(O), searchValue, replaceValue);\n }, // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0 || typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n\n while (true) {\n var result = regexpExecAbstract(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max$1(min$3(toInteger(result.index), S.length), 0);\n var captures = []; // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n\n for (var j = 1; j < result.length; j++) {\n captures.push(maybeToString(result[j]));\n }\n\n var namedCaptures = result.groups;\n\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + S.slice(nextSourcePosition);\n }];\n });\n /**\n * Remove a class from an element\n *\n * @api private\n * @method _removeClass\n * @param {Object} element\n * @param {RegExp|String} classNameRegex can be regex or string\n * @returns null\n */\n\n function removeClass(element, classNameRegex) {\n if (element instanceof SVGElement) {\n var pre = element.getAttribute(\"class\") || \"\";\n element.setAttribute(\"class\", pre.replace(classNameRegex, \"\").replace(/^\\s+|\\s+$/g, \"\"));\n } else {\n element.className = element.className.replace(classNameRegex, \"\").replace(/^\\s+|\\s+$/g, \"\");\n }\n }\n /**\n * Sets the style of an DOM element\n *\n * @param {Object} element\n * @param {Object|string} style\n * @return null\n */\n\n\n function setStyle(element, style) {\n var cssText = \"\";\n\n if (element.style.cssText) {\n cssText += element.style.cssText;\n }\n\n if (typeof style === \"string\") {\n cssText += style;\n } else {\n for (var rule in style) {\n cssText += \"\".concat(rule, \":\").concat(style[rule], \";\");\n }\n }\n\n element.style.cssText = cssText;\n }\n /**\n * Update the position of the helper layer on the screen\n *\n * @api private\n * @method _setHelperLayerPosition\n * @param {Object} helperLayer\n */\n\n\n function setHelperLayerPosition(helperLayer) {\n if (helperLayer) {\n //prevent error when `this._currentStep` in undefined\n if (!this._introItems[this._currentStep]) return;\n var currentElement = this._introItems[this._currentStep];\n var elementPosition = getOffset(currentElement.element, this._targetElement);\n var widthHeightPadding = this._options.helperElementPadding; // If the target element is fixed, the tooltip should be fixed as well.\n // Otherwise, remove a fixed class that may be left over from the previous\n // step.\n\n if (isFixed(currentElement.element)) {\n addClass(helperLayer, \"introjs-fixedTooltip\");\n } else {\n removeClass(helperLayer, \"introjs-fixedTooltip\");\n }\n\n if (currentElement.position === \"floating\") {\n widthHeightPadding = 0;\n } //set new position to helper layer\n\n\n setStyle(helperLayer, {\n width: \"\".concat(elementPosition.width + widthHeightPadding, \"px\"),\n height: \"\".concat(elementPosition.height + widthHeightPadding, \"px\"),\n top: \"\".concat(elementPosition.top - widthHeightPadding / 2, \"px\"),\n left: \"\".concat(elementPosition.left - widthHeightPadding / 2, \"px\")\n });\n }\n } // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n\n\n var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n\n while (length > index) {\n objectDefineProperty.f(O, key = keys[index++], Properties[key]);\n }\n\n return O;\n };\n var html = getBuiltIn('document', 'documentElement');\n var GT = '>';\n var LT = '<';\n var PROTOTYPE = 'prototype';\n var SCRIPT = 'script';\n var IE_PROTO = sharedKey('IE_PROTO');\n\n var EmptyConstructor = function EmptyConstructor() {\n /* empty */\n };\n\n var scriptTag = function scriptTag(content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype\n\n\n var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n\n return temp;\n }; // Create object with fake `null` prototype: use iframe Object with cleared prototype\n\n\n var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475\n\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n }; // Check for document.domain and active x support\n // No need to use active x approach when document.domain is not set\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n // avoid IE GC bug\n\n\n var activeXDocument;\n\n var _NullProtoObject = function NullProtoObject() {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) {\n /* ignore */\n }\n\n _NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n\n while (length--) {\n delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n }\n\n return _NullProtoObject();\n };\n\n hiddenKeys[IE_PROTO] = true; // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n\n var objectCreate = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null; // add \"__proto__\" for Object.getPrototypeOf polyfill\n\n result[IE_PROTO] = O;\n } else result = _NullProtoObject();\n\n return Properties === undefined ? result : objectDefineProperties(result, Properties);\n };\n\n var UNSCOPABLES = wellKnownSymbol('unscopables');\n var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables]\n // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\n if (ArrayPrototype[UNSCOPABLES] == undefined) {\n objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: objectCreate(null)\n });\n } // add a key to Array.prototype[@@unscopables]\n\n\n var addToUnscopables = function addToUnscopables(key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n };\n\n var $includes = arrayIncludes.includes; // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n\n _export({\n target: 'Array',\n proto: true\n }, {\n includes: function includes(el\n /* , fromIndex = 0 */\n ) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\n\n addToUnscopables('includes');\n var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n var SPECIES$4 = wellKnownSymbol('species');\n var nativeSlice = [].slice;\n var max$2 = Math.max; // `Array.prototype.slice` method\n // https://tc39.es/ecma262/#sec-array.prototype.slice\n // fallback for not array-like ES3 strings and DOM objects\n\n _export({\n target: 'Array',\n proto: true,\n forced: !HAS_SPECIES_SUPPORT\n }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length); // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n\n var Constructor, result, n;\n\n if (isArray(O)) {\n Constructor = O.constructor; // cross-realm fallback\n\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES$4];\n if (Constructor === null) Constructor = undefined;\n }\n\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n\n result = new (Constructor === undefined ? Array : Constructor)(max$2(fin - k, 0));\n\n for (n = 0; k < fin; k++, n++) {\n if (k in O) createProperty(result, n, O[k]);\n }\n\n result.length = n;\n return result;\n }\n });\n\n var notARegexp = function notARegexp(it) {\n if (isRegexp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n }\n\n return it;\n };\n\n var MATCH$1 = wellKnownSymbol('match');\n\n var correctIsRegexpLogic = function correctIsRegexpLogic(METHOD_NAME) {\n var regexp = /./;\n\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH$1] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) {\n /* empty */\n }\n }\n\n return false;\n }; // `String.prototype.includes` method\n // https://tc39.es/ecma262/#sec-string.prototype.includes\n\n\n _export({\n target: 'String',\n proto: true,\n forced: !correctIsRegexpLogic('includes')\n }, {\n includes: function includes(searchString\n /* , position = 0 */\n ) {\n return !!~String(requireObjectCoercible(this)).indexOf(notARegexp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n });\n\n var arrayMethodIsStrict = function arrayMethodIsStrict(METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () {\n throw 1;\n }, 1);\n });\n };\n\n var nativeJoin = [].join;\n var ES3_STRINGS = indexedObject != Object;\n var STRICT_METHOD = arrayMethodIsStrict('join', ','); // `Array.prototype.join` method\n // https://tc39.es/ecma262/#sec-array.prototype.join\n\n _export({\n target: 'Array',\n proto: true,\n forced: ES3_STRINGS || !STRICT_METHOD\n }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n }); // optional / simple context binding\n\n\n var functionBindContext = function functionBindContext(fn, that, length) {\n aFunction$1(fn);\n if (that === undefined) return fn;\n\n switch (length) {\n case 0:\n return function () {\n return fn.call(that);\n };\n\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n\n return function\n /* ...args */\n () {\n return fn.apply(that, arguments);\n };\n };\n\n var push = [].push; // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\n\n var createMethod$2 = function createMethod$2(TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = indexedObject(O);\n var boundFunction = functionBindContext(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3:\n return true;\n // some\n\n case 5:\n return value;\n // find\n\n case 6:\n return index;\n // findIndex\n\n case 2:\n push.call(target, value);\n // filter\n } else switch (TYPE) {\n case 4:\n return false;\n // every\n\n case 7:\n push.call(target, value);\n // filterOut\n }\n }\n }\n }\n\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n };\n\n var arrayIteration = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod$2(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod$2(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod$2(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod$2(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod$2(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod$2(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod$2(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod$2(7)\n };\n var $filter = arrayIteration.filter;\n var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('filter'); // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n // with adding support of @@species\n\n _export({\n target: 'Array',\n proto: true,\n forced: !HAS_SPECIES_SUPPORT$1\n }, {\n filter: function filter(callbackfn\n /* , thisArg */\n ) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n });\n /**\n * Set tooltip left so it doesn't go off the right side of the window\n *\n * @return boolean true, if tooltipLayerStyleLeft is ok. false, otherwise.\n */\n\n\n function checkRight(targetOffset, tooltipLayerStyleLeft, tooltipOffset, windowSize, tooltipLayer) {\n if (targetOffset.left + tooltipLayerStyleLeft + tooltipOffset.width > windowSize.width) {\n // off the right side of the window\n tooltipLayer.style.left = \"\".concat(windowSize.width - tooltipOffset.width - targetOffset.left, \"px\");\n return false;\n }\n\n tooltipLayer.style.left = \"\".concat(tooltipLayerStyleLeft, \"px\");\n return true;\n }\n /**\n * Set tooltip right so it doesn't go off the left side of the window\n *\n * @return boolean true, if tooltipLayerStyleRight is ok. false, otherwise.\n */\n\n\n function checkLeft(targetOffset, tooltipLayerStyleRight, tooltipOffset, tooltipLayer) {\n if (targetOffset.left + targetOffset.width - tooltipLayerStyleRight - tooltipOffset.width < 0) {\n // off the left side of the window\n tooltipLayer.style.left = \"\".concat(-targetOffset.left, \"px\");\n return false;\n }\n\n tooltipLayer.style.right = \"\".concat(tooltipLayerStyleRight, \"px\");\n return true;\n }\n\n var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport('splice');\n var max$3 = Math.max;\n var min$4 = Math.min;\n var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF;\n var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; // `Array.prototype.splice` method\n // https://tc39.es/ecma262/#sec-array.prototype.splice\n // with adding support of @@species\n\n _export({\n target: 'Array',\n proto: true,\n forced: !HAS_SPECIES_SUPPORT$2\n }, {\n splice: function splice(start, deleteCount\n /* , ...items */\n ) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min$4(max$3(toInteger(deleteCount), 0), len - actualStart);\n }\n\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER$1) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n\n A = arraySpeciesCreate(O, actualDeleteCount);\n\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n\n A.length = actualDeleteCount;\n\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];else delete O[to];\n }\n\n for (k = len; k > len - actualDeleteCount + insertCount; k--) {\n delete O[k - 1];\n }\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];else delete O[to];\n }\n }\n\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n });\n /**\n * Remove an entry from a string array if it's there, does nothing if it isn't there.\n *\n * @param {Array} stringArray\n * @param {String} stringToRemove\n */\n\n\n function removeEntry(stringArray, stringToRemove) {\n if (stringArray.includes(stringToRemove)) {\n stringArray.splice(stringArray.indexOf(stringToRemove), 1);\n }\n }\n /**\n * auto-determine alignment\n * @param {Integer} offsetLeft\n * @param {Integer} tooltipWidth\n * @param {Object} windowSize\n * @param {String} desiredAlignment\n * @return {String} calculatedAlignment\n */\n\n\n function _determineAutoAlignment(offsetLeft, tooltipWidth, _ref, desiredAlignment) {\n var width = _ref.width;\n var halfTooltipWidth = tooltipWidth / 2;\n var winWidth = Math.min(width, window.screen.width);\n var possibleAlignments = [\"-left-aligned\", \"-middle-aligned\", \"-right-aligned\"];\n var calculatedAlignment = \"\"; // valid left must be at least a tooltipWidth\n // away from right side\n\n if (winWidth - offsetLeft < tooltipWidth) {\n removeEntry(possibleAlignments, \"-left-aligned\");\n } // valid middle must be at least half\n // width away from both sides\n\n\n if (offsetLeft < halfTooltipWidth || winWidth - offsetLeft < halfTooltipWidth) {\n removeEntry(possibleAlignments, \"-middle-aligned\");\n } // valid right must be at least a tooltipWidth\n // width away from left side\n\n\n if (offsetLeft < tooltipWidth) {\n removeEntry(possibleAlignments, \"-right-aligned\");\n }\n\n if (possibleAlignments.length) {\n if (possibleAlignments.includes(desiredAlignment)) {\n // the desired alignment is valid\n calculatedAlignment = desiredAlignment;\n } else {\n // pick the first valid position, in order\n calculatedAlignment = possibleAlignments[0];\n }\n } else {\n // if screen width is too small\n // for ANY alignment, middle is\n // probably the best for visibility\n calculatedAlignment = \"-middle-aligned\";\n }\n\n return calculatedAlignment;\n }\n /**\n * Determines the position of the tooltip based on the position precedence and availability\n * of screen space.\n *\n * @param {Object} targetElement\n * @param {Object} tooltipLayer\n * @param {String} desiredTooltipPosition\n * @return {String} calculatedPosition\n */\n\n\n function _determineAutoPosition(targetElement, tooltipLayer, desiredTooltipPosition) {\n // Take a clone of position precedence. These will be the available\n var possiblePositions = this._options.positionPrecedence.slice();\n\n var windowSize = getWinSize();\n var tooltipHeight = getOffset(tooltipLayer).height + 10;\n var tooltipWidth = getOffset(tooltipLayer).width + 20;\n var targetElementRect = targetElement.getBoundingClientRect(); // If we check all the possible areas, and there are no valid places for the tooltip, the element\n // must take up most of the screen real estate. Show the tooltip floating in the middle of the screen.\n\n var calculatedPosition = \"floating\";\n /*\n * auto determine position\n */\n // Check for space below\n\n if (targetElementRect.bottom + tooltipHeight > windowSize.height) {\n removeEntry(possiblePositions, \"bottom\");\n } // Check for space above\n\n\n if (targetElementRect.top - tooltipHeight < 0) {\n removeEntry(possiblePositions, \"top\");\n } // Check for space to the right\n\n\n if (targetElementRect.right + tooltipWidth > windowSize.width) {\n removeEntry(possiblePositions, \"right\");\n } // Check for space to the left\n\n\n if (targetElementRect.left - tooltipWidth < 0) {\n removeEntry(possiblePositions, \"left\");\n } // @var {String} ex: 'right-aligned'\n\n\n var desiredAlignment = function (pos) {\n var hyphenIndex = pos.indexOf(\"-\");\n\n if (hyphenIndex !== -1) {\n // has alignment\n return pos.substr(hyphenIndex);\n }\n\n return \"\";\n }(desiredTooltipPosition || \"\"); // strip alignment from position\n\n\n if (desiredTooltipPosition) {\n // ex: \"bottom-right-aligned\"\n // should return 'bottom'\n desiredTooltipPosition = desiredTooltipPosition.split(\"-\")[0];\n }\n\n if (possiblePositions.length) {\n if (possiblePositions.includes(desiredTooltipPosition)) {\n // If the requested position is in the list, choose that\n calculatedPosition = desiredTooltipPosition;\n } else {\n // Pick the first valid position, in order\n calculatedPosition = possiblePositions[0];\n }\n } // only top and bottom positions have optional alignments\n\n\n if ([\"top\", \"bottom\"].includes(calculatedPosition)) {\n calculatedPosition += _determineAutoAlignment(targetElementRect.left, tooltipWidth, windowSize, desiredAlignment);\n }\n\n return calculatedPosition;\n }\n /**\n * Render tooltip box in the page\n *\n * @api private\n * @method placeTooltip\n * @param {HTMLElement} targetElement\n * @param {HTMLElement} tooltipLayer\n * @param {HTMLElement} arrowLayer\n * @param {Boolean} hintMode\n */\n\n\n function placeTooltip(targetElement, tooltipLayer, arrowLayer, hintMode) {\n var tooltipCssClass = \"\";\n var currentStepObj;\n var tooltipOffset;\n var targetOffset;\n var windowSize;\n var currentTooltipPosition;\n hintMode = hintMode || false; //reset the old style\n\n tooltipLayer.style.top = null;\n tooltipLayer.style.right = null;\n tooltipLayer.style.bottom = null;\n tooltipLayer.style.left = null;\n tooltipLayer.style.marginLeft = null;\n tooltipLayer.style.marginTop = null;\n arrowLayer.style.display = \"inherit\"; //prevent error when `this._currentStep` is undefined\n\n if (!this._introItems[this._currentStep]) return; //if we have a custom css class for each step\n\n currentStepObj = this._introItems[this._currentStep];\n\n if (typeof currentStepObj.tooltipClass === \"string\") {\n tooltipCssClass = currentStepObj.tooltipClass;\n } else {\n tooltipCssClass = this._options.tooltipClass;\n }\n\n tooltipLayer.className = [\"introjs-tooltip\", tooltipCssClass].filter(Boolean).join(\" \");\n tooltipLayer.setAttribute(\"role\", \"dialog\");\n currentTooltipPosition = this._introItems[this._currentStep].position; // Floating is always valid, no point in calculating\n\n if (currentTooltipPosition !== \"floating\" && this._options.autoPosition) {\n currentTooltipPosition = _determineAutoPosition.call(this, targetElement, tooltipLayer, currentTooltipPosition);\n }\n\n var tooltipLayerStyleLeft;\n targetOffset = getOffset(targetElement);\n tooltipOffset = getOffset(tooltipLayer);\n windowSize = getWinSize();\n addClass(tooltipLayer, \"introjs-\".concat(currentTooltipPosition));\n\n switch (currentTooltipPosition) {\n case \"top-right-aligned\":\n arrowLayer.className = \"introjs-arrow bottom-right\";\n var tooltipLayerStyleRight = 0;\n checkLeft(targetOffset, tooltipLayerStyleRight, tooltipOffset, tooltipLayer);\n tooltipLayer.style.bottom = \"\".concat(targetOffset.height + 20, \"px\");\n break;\n\n case \"top-middle-aligned\":\n arrowLayer.className = \"introjs-arrow bottom-middle\";\n var tooltipLayerStyleLeftRight = targetOffset.width / 2 - tooltipOffset.width / 2; // a fix for middle aligned hints\n\n if (hintMode) {\n tooltipLayerStyleLeftRight += 5;\n }\n\n if (checkLeft(targetOffset, tooltipLayerStyleLeftRight, tooltipOffset, tooltipLayer)) {\n tooltipLayer.style.right = null;\n checkRight(targetOffset, tooltipLayerStyleLeftRight, tooltipOffset, windowSize, tooltipLayer);\n }\n\n tooltipLayer.style.bottom = \"\".concat(targetOffset.height + 20, \"px\");\n break;\n\n case \"top-left-aligned\": // top-left-aligned is the same as the default top\n\n case \"top\":\n arrowLayer.className = \"introjs-arrow bottom\";\n tooltipLayerStyleLeft = hintMode ? 0 : 15;\n checkRight(targetOffset, tooltipLayerStyleLeft, tooltipOffset, windowSize, tooltipLayer);\n tooltipLayer.style.bottom = \"\".concat(targetOffset.height + 20, \"px\");\n break;\n\n case \"right\":\n tooltipLayer.style.left = \"\".concat(targetOffset.width + 20, \"px\");\n\n if (targetOffset.top + tooltipOffset.height > windowSize.height) {\n // In this case, right would have fallen below the bottom of the screen.\n // Modify so that the bottom of the tooltip connects with the target\n arrowLayer.className = \"introjs-arrow left-bottom\";\n tooltipLayer.style.top = \"-\".concat(tooltipOffset.height - targetOffset.height - 20, \"px\");\n } else {\n arrowLayer.className = \"introjs-arrow left\";\n }\n\n break;\n\n case \"left\":\n if (!hintMode && this._options.showStepNumbers === true) {\n tooltipLayer.style.top = \"15px\";\n }\n\n if (targetOffset.top + tooltipOffset.height > windowSize.height) {\n // In this case, left would have fallen below the bottom of the screen.\n // Modify so that the bottom of the tooltip connects with the target\n tooltipLayer.style.top = \"-\".concat(tooltipOffset.height - targetOffset.height - 20, \"px\");\n arrowLayer.className = \"introjs-arrow right-bottom\";\n } else {\n arrowLayer.className = \"introjs-arrow right\";\n }\n\n tooltipLayer.style.right = \"\".concat(targetOffset.width + 20, \"px\");\n break;\n\n case \"floating\":\n arrowLayer.style.display = \"none\"; //we have to adjust the top and left of layer manually for intro items without element\n\n tooltipLayer.style.left = \"50%\";\n tooltipLayer.style.top = \"50%\";\n tooltipLayer.style.marginLeft = \"-\".concat(tooltipOffset.width / 2, \"px\");\n tooltipLayer.style.marginTop = \"-\".concat(tooltipOffset.height / 2, \"px\");\n break;\n\n case \"bottom-right-aligned\":\n arrowLayer.className = \"introjs-arrow top-right\";\n tooltipLayerStyleRight = 0;\n checkLeft(targetOffset, tooltipLayerStyleRight, tooltipOffset, tooltipLayer);\n tooltipLayer.style.top = \"\".concat(targetOffset.height + 20, \"px\");\n break;\n\n case \"bottom-middle-aligned\":\n arrowLayer.className = \"introjs-arrow top-middle\";\n tooltipLayerStyleLeftRight = targetOffset.width / 2 - tooltipOffset.width / 2; // a fix for middle aligned hints\n\n if (hintMode) {\n tooltipLayerStyleLeftRight += 5;\n }\n\n if (checkLeft(targetOffset, tooltipLayerStyleLeftRight, tooltipOffset, tooltipLayer)) {\n tooltipLayer.style.right = null;\n checkRight(targetOffset, tooltipLayerStyleLeftRight, tooltipOffset, windowSize, tooltipLayer);\n }\n\n tooltipLayer.style.top = \"\".concat(targetOffset.height + 20, \"px\");\n break;\n // case 'bottom-left-aligned':\n // Bottom-left-aligned is the same as the default bottom\n // case 'bottom':\n // Bottom going to follow the default behavior\n\n default:\n arrowLayer.className = \"introjs-arrow top\";\n tooltipLayerStyleLeft = 0;\n checkRight(targetOffset, tooltipLayerStyleLeft, tooltipOffset, windowSize, tooltipLayer);\n tooltipLayer.style.top = \"\".concat(targetOffset.height + 20, \"px\");\n }\n }\n /**\n * To remove all show element(s)\n *\n * @api private\n * @method _removeShowElement\n */\n\n\n function removeShowElement() {\n var elms = document.querySelectorAll(\".introjs-showElement\");\n forEach(elms, function (elm) {\n removeClass(elm, /introjs-[a-zA-Z]+/g);\n });\n }\n\n function _createElement(tagname, attrs) {\n var element = document.createElement(tagname);\n attrs = attrs || {}; // regex for matching attributes that need to be set with setAttribute\n\n var setAttRegex = /^(?:role|data-|aria-)/;\n\n for (var k in attrs) {\n var v = attrs[k];\n\n if (k === \"style\") {\n setStyle(element, v);\n } else if (k.match(setAttRegex)) {\n element.setAttribute(k, v);\n } else {\n element[k] = v;\n }\n }\n\n return element;\n }\n /**\n * Appends `element` to `parentElement`\n *\n * @param {Element} parentElement\n * @param {Element} element\n * @param {Boolean} [animate=false]\n */\n\n\n function appendChild(parentElement, element, animate) {\n if (animate) {\n var existingOpacity = element.style.opacity || \"1\";\n setStyle(element, {\n opacity: \"0\"\n });\n window.setTimeout(function () {\n setStyle(element, {\n opacity: existingOpacity\n });\n }, 10);\n }\n\n parentElement.appendChild(element);\n }\n /**\n * Gets the current progress percentage\n *\n * @api private\n * @method _getProgress\n * @returns current progress percentage\n */\n\n\n function _getProgress() {\n // Steps are 0 indexed\n var currentStep = parseInt(this._currentStep + 1, 10);\n return currentStep / this._introItems.length * 100;\n }\n /**\n * Add disableinteraction layer and adjust the size and position of the layer\n *\n * @api private\n * @method _disableInteraction\n */\n\n\n function _disableInteraction() {\n var disableInteractionLayer = document.querySelector(\".introjs-disableInteraction\");\n\n if (disableInteractionLayer === null) {\n disableInteractionLayer = _createElement(\"div\", {\n className: \"introjs-disableInteraction\"\n });\n\n this._targetElement.appendChild(disableInteractionLayer);\n }\n\n setHelperLayerPosition.call(this, disableInteractionLayer);\n }\n /**\n * Show an element on the page\n *\n * @api private\n * @method _showElement\n * @param {Object} targetElement\n */\n\n\n function _showElement(targetElement) {\n var _this = this;\n\n if (typeof this._introChangeCallback !== \"undefined\") {\n this._introChangeCallback.call(this, targetElement.element);\n }\n\n var self = this;\n var oldHelperLayer = document.querySelector(\".introjs-helperLayer\");\n var oldReferenceLayer = document.querySelector(\".introjs-tooltipReferenceLayer\");\n var highlightClass = \"introjs-helperLayer\";\n var nextTooltipButton;\n var prevTooltipButton;\n var skipTooltipButton;\n\n if (typeof targetElement.highlightClass === \"string\") {\n highlightClass += \" \".concat(targetElement.highlightClass);\n } //check for options highlight class\n\n\n if (typeof this._options.highlightClass === \"string\") {\n highlightClass += \" \".concat(this._options.highlightClass);\n }\n\n if (oldHelperLayer !== null) {\n var oldHelperNumberLayer = oldReferenceLayer.querySelector(\".introjs-helperNumberLayer\");\n var oldtooltipLayer = oldReferenceLayer.querySelector(\".introjs-tooltiptext\");\n var oldTooltipTitleLayer = oldReferenceLayer.querySelector(\".introjs-tooltip-title\");\n var oldArrowLayer = oldReferenceLayer.querySelector(\".introjs-arrow\");\n var oldtooltipContainer = oldReferenceLayer.querySelector(\".introjs-tooltip\");\n skipTooltipButton = oldReferenceLayer.querySelector(\".introjs-skipbutton\");\n prevTooltipButton = oldReferenceLayer.querySelector(\".introjs-prevbutton\");\n nextTooltipButton = oldReferenceLayer.querySelector(\".introjs-nextbutton\"); //update or reset the helper highlight class\n\n oldHelperLayer.className = highlightClass; //hide the tooltip\n\n oldtooltipContainer.style.opacity = 0;\n oldtooltipContainer.style.display = \"none\"; // if the target element is within a scrollable element\n\n scrollParentToElement.call(self, targetElement); // set new position to helper layer\n\n setHelperLayerPosition.call(self, oldHelperLayer);\n setHelperLayerPosition.call(self, oldReferenceLayer); //remove old classes if the element still exist\n\n removeShowElement(); //we should wait until the CSS3 transition is competed (it's 0.3 sec) to prevent incorrect `height` and `width` calculation\n\n if (self._lastShowElementTimer) {\n window.clearTimeout(self._lastShowElementTimer);\n }\n\n self._lastShowElementTimer = window.setTimeout(function () {\n // set current step to the label\n if (oldHelperNumberLayer !== null) {\n oldHelperNumberLayer.innerHTML = \"\".concat(targetElement.step, \" of \").concat(_this._introItems.length);\n } // set current tooltip text\n\n\n oldtooltipLayer.innerHTML = targetElement.intro; // set current tooltip title\n\n oldTooltipTitleLayer.innerHTML = targetElement.title; //set the tooltip position\n\n oldtooltipContainer.style.display = \"block\";\n placeTooltip.call(self, targetElement.element, oldtooltipContainer, oldArrowLayer); //change active bullet\n\n if (self._options.showBullets) {\n oldReferenceLayer.querySelector(\".introjs-bullets li > a.active\").className = \"\";\n oldReferenceLayer.querySelector(\".introjs-bullets li > a[data-stepnumber=\\\"\".concat(targetElement.step, \"\\\"]\")).className = \"active\";\n }\n\n oldReferenceLayer.querySelector(\".introjs-progress .introjs-progressbar\").style.cssText = \"width:\".concat(_getProgress.call(self), \"%;\");\n oldReferenceLayer.querySelector(\".introjs-progress .introjs-progressbar\").setAttribute(\"aria-valuenow\", _getProgress.call(self)); //show the tooltip\n\n oldtooltipContainer.style.opacity = 1; //reset button focus\n\n if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null && /introjs-donebutton/gi.test(nextTooltipButton.className)) {\n // skip button is now \"done\" button\n nextTooltipButton.focus();\n } else if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n //still in the tour, focus on next\n nextTooltipButton.focus();\n } // change the scroll of the window, if needed\n\n\n scrollTo.call(self, targetElement.scrollTo, targetElement, oldtooltipLayer);\n }, 350); // end of old element if-else condition\n } else {\n var helperLayer = _createElement(\"div\", {\n className: highlightClass\n });\n\n var referenceLayer = _createElement(\"div\", {\n className: \"introjs-tooltipReferenceLayer\"\n });\n\n var arrowLayer = _createElement(\"div\", {\n className: \"introjs-arrow\"\n });\n\n var tooltipLayer = _createElement(\"div\", {\n className: \"introjs-tooltip\"\n });\n\n var tooltipTextLayer = _createElement(\"div\", {\n className: \"introjs-tooltiptext\"\n });\n\n var tooltipHeaderLayer = _createElement(\"div\", {\n className: \"introjs-tooltip-header\"\n });\n\n var tooltipTitleLayer = _createElement(\"h1\", {\n className: \"introjs-tooltip-title\"\n });\n\n var bulletsLayer = _createElement(\"div\", {\n className: \"introjs-bullets\"\n });\n\n var progressLayer = _createElement(\"div\");\n\n var buttonsLayer = _createElement(\"div\");\n\n setStyle(helperLayer, {\n \"box-shadow\": \"0 0 1px 2px rgba(33, 33, 33, 0.8), rgba(33, 33, 33, \".concat(self._options.overlayOpacity.toString(), \") 0 0 0 5000px\")\n }); // target is within a scrollable element\n\n scrollParentToElement.call(self, targetElement); //set new position to helper layer\n\n setHelperLayerPosition.call(self, helperLayer);\n setHelperLayerPosition.call(self, referenceLayer); //add helper layer to target element\n\n appendChild(this._targetElement, helperLayer, true);\n appendChild(this._targetElement, referenceLayer);\n tooltipTextLayer.innerHTML = targetElement.intro;\n tooltipTitleLayer.innerHTML = targetElement.title;\n\n if (this._options.showBullets === false) {\n bulletsLayer.style.display = \"none\";\n }\n\n var ulContainer = _createElement(\"ul\");\n\n ulContainer.setAttribute(\"role\", \"tablist\");\n\n var anchorClick = function anchorClick() {\n self.goToStep(this.getAttribute(\"data-stepnumber\"));\n };\n\n forEach(this._introItems, function (_ref, i) {\n var step = _ref.step;\n\n var innerLi = _createElement(\"li\");\n\n var anchorLink = _createElement(\"a\");\n\n innerLi.setAttribute(\"role\", \"presentation\");\n anchorLink.setAttribute(\"role\", \"tab\");\n anchorLink.onclick = anchorClick;\n\n if (i === targetElement.step - 1) {\n anchorLink.className = \"active\";\n }\n\n setAnchorAsButton(anchorLink);\n anchorLink.innerHTML = \" \";\n anchorLink.setAttribute(\"data-stepnumber\", step);\n innerLi.appendChild(anchorLink);\n ulContainer.appendChild(innerLi);\n });\n bulletsLayer.appendChild(ulContainer);\n progressLayer.className = \"introjs-progress\";\n\n if (this._options.showProgress === false) {\n progressLayer.style.display = \"none\";\n }\n\n var progressBar = _createElement(\"div\", {\n className: \"introjs-progressbar\"\n });\n\n if (this._options.progressBarAdditionalClass) {\n progressBar.className += \" \" + this._options.progressBarAdditionalClass;\n }\n\n progressBar.setAttribute(\"role\", \"progress\");\n progressBar.setAttribute(\"aria-valuemin\", 0);\n progressBar.setAttribute(\"aria-valuemax\", 100);\n progressBar.setAttribute(\"aria-valuenow\", _getProgress.call(this));\n progressBar.style.cssText = \"width:\".concat(_getProgress.call(this), \"%;\");\n progressLayer.appendChild(progressBar);\n buttonsLayer.className = \"introjs-tooltipbuttons\";\n\n if (this._options.showButtons === false) {\n buttonsLayer.style.display = \"none\";\n }\n\n tooltipHeaderLayer.appendChild(tooltipTitleLayer);\n tooltipLayer.appendChild(tooltipHeaderLayer);\n tooltipLayer.appendChild(tooltipTextLayer);\n tooltipLayer.appendChild(bulletsLayer);\n tooltipLayer.appendChild(progressLayer); // add helper layer number\n\n var helperNumberLayer = _createElement(\"div\");\n\n if (this._options.showStepNumbers === true) {\n helperNumberLayer.className = \"introjs-helperNumberLayer\";\n helperNumberLayer.innerHTML = \"\".concat(targetElement.step, \" of \").concat(this._introItems.length);\n tooltipLayer.appendChild(helperNumberLayer);\n }\n\n tooltipLayer.appendChild(arrowLayer);\n referenceLayer.appendChild(tooltipLayer); //next button\n\n nextTooltipButton = _createElement(\"a\");\n\n nextTooltipButton.onclick = function () {\n if (self._introItems.length - 1 !== self._currentStep) {\n nextStep.call(self);\n } else if (/introjs-donebutton/gi.test(nextTooltipButton.className)) {\n if (typeof self._introCompleteCallback === \"function\") {\n self._introCompleteCallback.call(self);\n }\n\n exitIntro.call(self, self._targetElement);\n }\n };\n\n setAnchorAsButton(nextTooltipButton);\n nextTooltipButton.innerHTML = this._options.nextLabel; //previous button\n\n prevTooltipButton = _createElement(\"a\");\n\n prevTooltipButton.onclick = function () {\n if (self._currentStep !== 0) {\n previousStep.call(self);\n }\n };\n\n setAnchorAsButton(prevTooltipButton);\n prevTooltipButton.innerHTML = this._options.prevLabel; //skip button\n\n skipTooltipButton = _createElement(\"a\", {\n className: \"introjs-skipbutton\"\n });\n setAnchorAsButton(skipTooltipButton);\n skipTooltipButton.innerHTML = this._options.skipLabel;\n\n skipTooltipButton.onclick = function () {\n if (self._introItems.length - 1 === self._currentStep && typeof self._introCompleteCallback === \"function\") {\n self._introCompleteCallback.call(self);\n }\n\n if (typeof self._introSkipCallback === \"function\") {\n self._introSkipCallback.call(self);\n }\n\n exitIntro.call(self, self._targetElement);\n };\n\n tooltipHeaderLayer.appendChild(skipTooltipButton); //in order to prevent displaying previous button always\n\n if (this._introItems.length > 1) {\n buttonsLayer.appendChild(prevTooltipButton);\n } // we always need the next button because this\n // button changes to \"Done\" in the last step of the tour\n\n\n buttonsLayer.appendChild(nextTooltipButton);\n tooltipLayer.appendChild(buttonsLayer); //set proper position\n\n placeTooltip.call(self, targetElement.element, tooltipLayer, arrowLayer); // change the scroll of the window, if needed\n\n scrollTo.call(this, targetElement.scrollTo, targetElement, tooltipLayer); //end of new element if-else condition\n } // removing previous disable interaction layer\n\n\n var disableInteractionLayer = self._targetElement.querySelector(\".introjs-disableInteraction\");\n\n if (disableInteractionLayer) {\n disableInteractionLayer.parentNode.removeChild(disableInteractionLayer);\n } //disable interaction\n\n\n if (targetElement.disableInteraction) {\n _disableInteraction.call(self);\n } // when it's the first step of tour\n\n\n if (this._currentStep === 0 && this._introItems.length > 1) {\n if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n nextTooltipButton.className = \"\".concat(this._options.buttonClass, \" introjs-nextbutton\");\n nextTooltipButton.innerHTML = this._options.nextLabel;\n }\n\n if (this._options.hidePrev === true) {\n if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n prevTooltipButton.className = \"\".concat(this._options.buttonClass, \" introjs-prevbutton introjs-hidden\");\n }\n\n if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n addClass(nextTooltipButton, \"introjs-fullbutton\");\n }\n } else {\n if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n prevTooltipButton.className = \"\".concat(this._options.buttonClass, \" introjs-prevbutton introjs-disabled\");\n }\n }\n } else if (this._introItems.length - 1 === this._currentStep || this._introItems.length === 1) {\n // last step of tour\n if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n prevTooltipButton.className = \"\".concat(this._options.buttonClass, \" introjs-prevbutton\");\n }\n\n if (this._options.hideNext === true) {\n if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n nextTooltipButton.className = \"\".concat(this._options.buttonClass, \" introjs-nextbutton introjs-hidden\");\n }\n\n if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n addClass(prevTooltipButton, \"introjs-fullbutton\");\n }\n } else {\n if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n if (this._options.nextToDone === true) {\n nextTooltipButton.innerHTML = this._options.doneLabel;\n addClass(nextTooltipButton, \"\".concat(this._options.buttonClass, \" introjs-nextbutton introjs-donebutton\"));\n } else {\n nextTooltipButton.className = \"\".concat(this._options.buttonClass, \" introjs-nextbutton introjs-disabled\");\n }\n }\n }\n } else {\n // steps between start and end\n if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n prevTooltipButton.className = \"\".concat(this._options.buttonClass, \" introjs-prevbutton\");\n }\n\n if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n nextTooltipButton.className = \"\".concat(this._options.buttonClass, \" introjs-nextbutton\");\n nextTooltipButton.innerHTML = this._options.nextLabel;\n }\n }\n\n if (typeof prevTooltipButton !== \"undefined\" && prevTooltipButton !== null) {\n prevTooltipButton.setAttribute(\"role\", \"button\");\n }\n\n if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n nextTooltipButton.setAttribute(\"role\", \"button\");\n }\n\n if (typeof skipTooltipButton !== \"undefined\" && skipTooltipButton !== null) {\n skipTooltipButton.setAttribute(\"role\", \"button\");\n } //Set focus on \"next\" button, so that hitting Enter always moves you onto the next step\n\n\n if (typeof nextTooltipButton !== \"undefined\" && nextTooltipButton !== null) {\n nextTooltipButton.focus();\n }\n\n setShowElement(targetElement);\n\n if (typeof this._introAfterChangeCallback !== \"undefined\") {\n this._introAfterChangeCallback.call(this, targetElement.element);\n }\n }\n /**\n * Go to specific step of introduction\n *\n * @api private\n * @method _goToStep\n */\n\n\n function goToStep(step) {\n //because steps starts with zero\n this._currentStep = step - 2;\n\n if (typeof this._introItems !== \"undefined\") {\n nextStep.call(this);\n }\n }\n /**\n * Go to the specific step of introduction with the explicit [data-step] number\n *\n * @api private\n * @method _goToStepNumber\n */\n\n\n function goToStepNumber(step) {\n this._currentStepNumber = step;\n\n if (typeof this._introItems !== \"undefined\") {\n nextStep.call(this);\n }\n }\n /**\n * Go to next step on intro\n *\n * @api private\n * @method _nextStep\n */\n\n\n function nextStep() {\n var _this = this;\n\n this._direction = \"forward\";\n\n if (typeof this._currentStepNumber !== \"undefined\") {\n forEach(this._introItems, function (_ref, i) {\n var step = _ref.step;\n\n if (step === _this._currentStepNumber) {\n _this._currentStep = i - 1;\n _this._currentStepNumber = undefined;\n }\n });\n }\n\n if (typeof this._currentStep === \"undefined\") {\n this._currentStep = 0;\n } else {\n ++this._currentStep;\n }\n\n var nextStep = this._introItems[this._currentStep];\n var continueStep = true;\n\n if (typeof this._introBeforeChangeCallback !== \"undefined\") {\n continueStep = this._introBeforeChangeCallback.call(this, nextStep && nextStep.element);\n } // if `onbeforechange` returned `false`, stop displaying the element\n\n\n if (continueStep === false) {\n --this._currentStep;\n return false;\n }\n\n if (this._introItems.length <= this._currentStep) {\n //end of the intro\n //check if any callback is defined\n if (typeof this._introCompleteCallback === \"function\") {\n this._introCompleteCallback.call(this);\n }\n\n exitIntro.call(this, this._targetElement);\n return;\n }\n\n _showElement.call(this, nextStep);\n }\n /**\n * Go to previous step on intro\n *\n * @api private\n * @method _previousStep\n */\n\n\n function previousStep() {\n this._direction = \"backward\";\n\n if (this._currentStep === 0) {\n return false;\n }\n\n --this._currentStep;\n var nextStep = this._introItems[this._currentStep];\n var continueStep = true;\n\n if (typeof this._introBeforeChangeCallback !== \"undefined\") {\n continueStep = this._introBeforeChangeCallback.call(this, nextStep && nextStep.element);\n } // if `onbeforechange` returned `false`, stop displaying the element\n\n\n if (continueStep === false) {\n ++this._currentStep;\n return false;\n }\n\n _showElement.call(this, nextStep);\n }\n /**\n * Returns the current step of the intro\n *\n * @returns {number | boolean}\n */\n\n\n function currentStep() {\n return this._currentStep;\n }\n /**\n * on keyCode:\n * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n * This feature has been removed from the Web standards.\n * Though some browsers may still support it, it is in\n * the process of being dropped.\n * Instead, you should use KeyboardEvent.code,\n * if it's implemented.\n *\n * jQuery's approach is to test for\n * (1) e.which, then\n * (2) e.charCode, then\n * (3) e.keyCode\n * https://github.com/jquery/jquery/blob/a6b0705294d336ae2f63f7276de0da1195495363/src/event.js#L638\n *\n * @param type var\n * @return type\n */\n\n\n function onKeyDown(e) {\n var code = e.code === undefined ? e.which : e.code; // if e.which is null\n\n if (code === null) {\n code = e.charCode === null ? e.keyCode : e.charCode;\n }\n\n if ((code === \"Escape\" || code === 27) && this._options.exitOnEsc === true) {\n //escape key pressed, exit the intro\n //check if exit callback is defined\n exitIntro.call(this, this._targetElement);\n } else if (code === \"ArrowLeft\" || code === 37) {\n //left arrow\n previousStep.call(this);\n } else if (code === \"ArrowRight\" || code === 39) {\n //right arrow\n nextStep.call(this);\n } else if (code === \"Enter\" || code === \"NumpadEnter\" || code === 13) {\n //srcElement === ie\n var target = e.target || e.srcElement;\n\n if (target && target.className.match(\"introjs-prevbutton\")) {\n //user hit enter while focusing on previous button\n previousStep.call(this);\n } else if (target && target.className.match(\"introjs-skipbutton\")) {\n //user hit enter while focusing on skip button\n if (this._introItems.length - 1 === this._currentStep && typeof this._introCompleteCallback === \"function\") {\n this._introCompleteCallback.call(this);\n }\n\n exitIntro.call(this, this._targetElement);\n } else if (target && target.getAttribute(\"data-stepnumber\")) {\n // user hit enter while focusing on step bullet\n target.click();\n } else {\n //default behavior for responding to enter\n nextStep.call(this);\n } //prevent default behaviour on hitting Enter, to prevent steps being skipped in some browsers\n\n\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n }\n }\n /*\n * makes a copy of the object\n * @api private\n * @method _cloneObject\n */\n\n\n function cloneObject(object) {\n if (object === null || _typeof(object) !== \"object\" || typeof object.nodeType !== \"undefined\") {\n return object;\n }\n\n var temp = {};\n\n for (var key in object) {\n if (typeof window.jQuery !== \"undefined\" && object[key] instanceof window.jQuery) {\n temp[key] = object[key];\n } else {\n temp[key] = cloneObject(object[key]);\n }\n }\n\n return temp;\n }\n /**\n * Get a queryselector within the hint wrapper\n *\n * @param {String} selector\n * @return {NodeList|Array}\n */\n\n\n function hintQuerySelectorAll(selector) {\n var hintsWrapper = document.querySelector(\".introjs-hints\");\n return hintsWrapper ? hintsWrapper.querySelectorAll(selector) : [];\n }\n /**\n * Hide a hint\n *\n * @api private\n * @method hideHint\n */\n\n\n function hideHint(stepId) {\n var hint = hintQuerySelectorAll(\".introjs-hint[data-step=\\\"\".concat(stepId, \"\\\"]\"))[0];\n removeHintTooltip.call(this);\n\n if (hint) {\n addClass(hint, \"introjs-hidehint\");\n } // call the callback function (if any)\n\n\n if (typeof this._hintCloseCallback !== \"undefined\") {\n this._hintCloseCallback.call(this, stepId);\n }\n }\n /**\n * Hide all hints\n *\n * @api private\n * @method hideHints\n */\n\n\n function hideHints() {\n var _this = this;\n\n var hints = hintQuerySelectorAll(\".introjs-hint\");\n forEach(hints, function (hint) {\n hideHint.call(_this, hint.getAttribute(\"data-step\"));\n });\n }\n /**\n * Show all hints\n *\n * @api private\n * @method _showHints\n */\n\n\n function showHints() {\n var _this2 = this;\n\n var hints = hintQuerySelectorAll(\".introjs-hint\");\n\n if (hints && hints.length) {\n forEach(hints, function (hint) {\n showHint.call(_this2, hint.getAttribute(\"data-step\"));\n });\n } else {\n populateHints.call(this, this._targetElement);\n }\n }\n /**\n * Show a hint\n *\n * @api private\n * @method showHint\n */\n\n\n function showHint(stepId) {\n var hint = hintQuerySelectorAll(\".introjs-hint[data-step=\\\"\".concat(stepId, \"\\\"]\"))[0];\n\n if (hint) {\n removeClass(hint, /introjs-hidehint/g);\n }\n }\n /**\n * Removes all hint elements on the page\n * Useful when you want to destroy the elements and add them again (e.g. a modal or popup)\n *\n * @api private\n * @method removeHints\n */\n\n\n function removeHints() {\n var _this3 = this;\n\n var hints = hintQuerySelectorAll(\".introjs-hint\");\n forEach(hints, function (hint) {\n removeHint.call(_this3, hint.getAttribute(\"data-step\"));\n });\n }\n /**\n * Remove one single hint element from the page\n * Useful when you want to destroy the element and add them again (e.g. a modal or popup)\n * Use removeHints if you want to remove all elements.\n *\n * @api private\n * @method removeHint\n */\n\n\n function removeHint(stepId) {\n var hint = hintQuerySelectorAll(\".introjs-hint[data-step=\\\"\".concat(stepId, \"\\\"]\"))[0];\n\n if (hint) {\n hint.parentNode.removeChild(hint);\n }\n }\n /**\n * Add all available hints to the page\n *\n * @api private\n * @method addHints\n */\n\n\n function addHints() {\n var _this4 = this;\n\n var self = this;\n var hintsWrapper = document.querySelector(\".introjs-hints\");\n\n if (hintsWrapper === null) {\n hintsWrapper = _createElement(\"div\", {\n className: \"introjs-hints\"\n });\n }\n /**\n * Returns an event handler unique to the hint iteration\n *\n * @param {Integer} i\n * @return {Function}\n */\n\n\n var getHintClick = function getHintClick(i) {\n return function (e) {\n var evt = e ? e : window.event;\n\n if (evt.stopPropagation) {\n evt.stopPropagation();\n }\n\n if (evt.cancelBubble !== null) {\n evt.cancelBubble = true;\n }\n\n showHintDialog.call(self, i);\n };\n };\n\n forEach(this._introItems, function (item, i) {\n // avoid append a hint twice\n if (document.querySelector(\".introjs-hint[data-step=\\\"\".concat(i, \"\\\"]\"))) {\n return;\n }\n\n var hint = _createElement(\"a\", {\n className: \"introjs-hint\"\n });\n\n setAnchorAsButton(hint);\n hint.onclick = getHintClick(i);\n\n if (!item.hintAnimation) {\n addClass(hint, \"introjs-hint-no-anim\");\n } // hint's position should be fixed if the target element's position is fixed\n\n\n if (isFixed(item.element)) {\n addClass(hint, \"introjs-fixedhint\");\n }\n\n var hintDot = _createElement(\"div\", {\n className: \"introjs-hint-dot\"\n });\n\n var hintPulse = _createElement(\"div\", {\n className: \"introjs-hint-pulse\"\n });\n\n hint.appendChild(hintDot);\n hint.appendChild(hintPulse);\n hint.setAttribute(\"data-step\", i); // we swap the hint element with target element\n // because _setHelperLayerPosition uses `element` property\n\n item.targetElement = item.element;\n item.element = hint; // align the hint position\n\n alignHintPosition.call(_this4, item.hintPosition, hint, item.targetElement);\n hintsWrapper.appendChild(hint);\n }); // adding the hints wrapper\n\n document.body.appendChild(hintsWrapper); // call the callback function (if any)\n\n if (typeof this._hintsAddedCallback !== \"undefined\") {\n this._hintsAddedCallback.call(this);\n }\n }\n /**\n * Aligns hint position\n *\n * @api private\n * @method alignHintPosition\n * @param {String} position\n * @param {Object} hint\n * @param {Object} element\n */\n\n\n function alignHintPosition(position, _ref, element) {\n var style = _ref.style; // get/calculate offset of target element\n\n var offset = getOffset.call(this, element);\n var iconWidth = 20;\n var iconHeight = 20; // align the hint element\n\n switch (position) {\n default:\n case \"top-left\":\n style.left = \"\".concat(offset.left, \"px\");\n style.top = \"\".concat(offset.top, \"px\");\n break;\n\n case \"top-right\":\n style.left = \"\".concat(offset.left + offset.width - iconWidth, \"px\");\n style.top = \"\".concat(offset.top, \"px\");\n break;\n\n case \"bottom-left\":\n style.left = \"\".concat(offset.left, \"px\");\n style.top = \"\".concat(offset.top + offset.height - iconHeight, \"px\");\n break;\n\n case \"bottom-right\":\n style.left = \"\".concat(offset.left + offset.width - iconWidth, \"px\");\n style.top = \"\".concat(offset.top + offset.height - iconHeight, \"px\");\n break;\n\n case \"middle-left\":\n style.left = \"\".concat(offset.left, \"px\");\n style.top = \"\".concat(offset.top + (offset.height - iconHeight) / 2, \"px\");\n break;\n\n case \"middle-right\":\n style.left = \"\".concat(offset.left + offset.width - iconWidth, \"px\");\n style.top = \"\".concat(offset.top + (offset.height - iconHeight) / 2, \"px\");\n break;\n\n case \"middle-middle\":\n style.left = \"\".concat(offset.left + (offset.width - iconWidth) / 2, \"px\");\n style.top = \"\".concat(offset.top + (offset.height - iconHeight) / 2, \"px\");\n break;\n\n case \"bottom-middle\":\n style.left = \"\".concat(offset.left + (offset.width - iconWidth) / 2, \"px\");\n style.top = \"\".concat(offset.top + offset.height - iconHeight, \"px\");\n break;\n\n case \"top-middle\":\n style.left = \"\".concat(offset.left + (offset.width - iconWidth) / 2, \"px\");\n style.top = \"\".concat(offset.top, \"px\");\n break;\n }\n }\n /**\n * Triggers when user clicks on the hint element\n *\n * @api private\n * @method _showHintDialog\n * @param {Number} stepId\n */\n\n\n function showHintDialog(stepId) {\n var hintElement = document.querySelector(\".introjs-hint[data-step=\\\"\".concat(stepId, \"\\\"]\"));\n var item = this._introItems[stepId]; // call the callback function (if any)\n\n if (typeof this._hintClickCallback !== \"undefined\") {\n this._hintClickCallback.call(this, hintElement, item, stepId);\n } // remove all open tooltips\n\n\n var removedStep = removeHintTooltip.call(this); // to toggle the tooltip\n\n if (parseInt(removedStep, 10) === stepId) {\n return;\n }\n\n var tooltipLayer = _createElement(\"div\", {\n className: \"introjs-tooltip\"\n });\n\n var tooltipTextLayer = _createElement(\"div\");\n\n var arrowLayer = _createElement(\"div\");\n\n var referenceLayer = _createElement(\"div\");\n\n tooltipLayer.onclick = function (e) {\n //IE9 & Other Browsers\n if (e.stopPropagation) {\n e.stopPropagation();\n } //IE8 and Lower\n else {\n e.cancelBubble = true;\n }\n };\n\n tooltipTextLayer.className = \"introjs-tooltiptext\";\n\n var tooltipWrapper = _createElement(\"p\");\n\n tooltipWrapper.innerHTML = item.hint;\n\n var closeButton = _createElement(\"a\");\n\n closeButton.className = this._options.buttonClass;\n closeButton.setAttribute(\"role\", \"button\");\n closeButton.innerHTML = this._options.hintButtonLabel;\n closeButton.onclick = hideHint.bind(this, stepId);\n tooltipTextLayer.appendChild(tooltipWrapper);\n tooltipTextLayer.appendChild(closeButton);\n arrowLayer.className = \"introjs-arrow\";\n tooltipLayer.appendChild(arrowLayer);\n tooltipLayer.appendChild(tooltipTextLayer); // set current step for _placeTooltip function\n\n this._currentStep = hintElement.getAttribute(\"data-step\"); // align reference layer position\n\n referenceLayer.className = \"introjs-tooltipReferenceLayer introjs-hintReference\";\n referenceLayer.setAttribute(\"data-step\", hintElement.getAttribute(\"data-step\"));\n setHelperLayerPosition.call(this, referenceLayer);\n referenceLayer.appendChild(tooltipLayer);\n document.body.appendChild(referenceLayer); //set proper position\n\n placeTooltip.call(this, hintElement, tooltipLayer, arrowLayer, true);\n }\n /**\n * Removes open hint (tooltip hint)\n *\n * @api private\n * @method _removeHintTooltip\n */\n\n\n function removeHintTooltip() {\n var tooltip = document.querySelector(\".introjs-hintReference\");\n\n if (tooltip) {\n var step = tooltip.getAttribute(\"data-step\");\n tooltip.parentNode.removeChild(tooltip);\n return step;\n }\n }\n /**\n * Start parsing hint items\n *\n * @api private\n * @param {Object} targetElm\n * @method _startHint\n */\n\n\n function populateHints(targetElm) {\n var _this5 = this;\n\n this._introItems = [];\n\n if (this._options.hints) {\n forEach(this._options.hints, function (hint) {\n var currentItem = cloneObject(hint);\n\n if (typeof currentItem.element === \"string\") {\n //grab the element with given selector from the page\n currentItem.element = document.querySelector(currentItem.element);\n }\n\n currentItem.hintPosition = currentItem.hintPosition || _this5._options.hintPosition;\n currentItem.hintAnimation = currentItem.hintAnimation || _this5._options.hintAnimation;\n\n if (currentItem.element !== null) {\n _this5._introItems.push(currentItem);\n }\n });\n } else {\n var hints = targetElm.querySelectorAll(\"*[data-hint]\");\n\n if (!hints || !hints.length) {\n return false;\n } //first add intro items with data-step\n\n\n forEach(hints, function (currentElement) {\n // hint animation\n var hintAnimation = currentElement.getAttribute(\"data-hintanimation\");\n\n if (hintAnimation) {\n hintAnimation = hintAnimation === \"true\";\n } else {\n hintAnimation = _this5._options.hintAnimation;\n }\n\n _this5._introItems.push({\n element: currentElement,\n hint: currentElement.getAttribute(\"data-hint\"),\n hintPosition: currentElement.getAttribute(\"data-hintposition\") || _this5._options.hintPosition,\n hintAnimation: hintAnimation,\n tooltipClass: currentElement.getAttribute(\"data-tooltipclass\"),\n position: currentElement.getAttribute(\"data-position\") || _this5._options.tooltipPosition\n });\n });\n }\n\n addHints.call(this);\n /*\n todo:\n these events should be removed at some point\n */\n\n DOMEvent.on(document, \"click\", removeHintTooltip, this, false);\n DOMEvent.on(window, \"resize\", reAlignHints, this, true);\n }\n /**\n * Re-aligns all hint elements\n *\n * @api private\n * @method _reAlignHints\n */\n\n\n function reAlignHints() {\n var _this6 = this;\n\n forEach(this._introItems, function (_ref2) {\n var targetElement = _ref2.targetElement,\n hintPosition = _ref2.hintPosition,\n element = _ref2.element;\n\n if (typeof targetElement === \"undefined\") {\n return;\n }\n\n alignHintPosition.call(_this6, hintPosition, element, targetElement);\n });\n }\n /**\n * Update placement of the intro objects on the screen\n * @api private\n */\n\n\n function refresh() {\n // re-align intros\n setHelperLayerPosition.call(this, document.querySelector(\".introjs-helperLayer\"));\n setHelperLayerPosition.call(this, document.querySelector(\".introjs-tooltipReferenceLayer\"));\n setHelperLayerPosition.call(this, document.querySelector(\".introjs-disableInteraction\")); // re-align tooltip\n\n if (this._currentStep !== undefined && this._currentStep !== null) {\n var oldArrowLayer = document.querySelector(\".introjs-arrow\");\n var oldtooltipContainer = document.querySelector(\".introjs-tooltip\");\n placeTooltip.call(this, this._introItems[this._currentStep].element, oldtooltipContainer, oldArrowLayer);\n } //re-align hints\n\n\n reAlignHints.call(this);\n return this;\n }\n\n function onResize() {\n refresh.call(this);\n }\n /**\n * Removes `element` from `parentElement`\n *\n * @param {Element} element\n * @param {Boolean} [animate=false]\n */\n\n\n function removeChild(element, animate) {\n if (!element || !element.parentElement) return;\n var parentElement = element.parentElement;\n\n if (animate) {\n setStyle(element, {\n opacity: \"0\"\n });\n window.setTimeout(function () {\n parentElement.removeChild(element);\n }, 500);\n } else {\n parentElement.removeChild(element);\n }\n }\n /**\n * Exit from intro\n *\n * @api private\n * @method _exitIntro\n * @param {Object} targetElement\n * @param {Boolean} force - Setting to `true` will skip the result of beforeExit callback\n */\n\n\n function exitIntro(targetElement, force) {\n var continueExit = true; // calling onbeforeexit callback\n //\n // If this callback return `false`, it would halt the process\n\n if (this._introBeforeExitCallback !== undefined) {\n continueExit = this._introBeforeExitCallback.call(this);\n } // skip this check if `force` parameter is `true`\n // otherwise, if `onbeforeexit` returned `false`, don't exit the intro\n\n\n if (!force && continueExit === false) return; // remove overlay layers from the page\n\n var overlayLayers = targetElement.querySelectorAll(\".introjs-overlay\");\n\n if (overlayLayers && overlayLayers.length) {\n forEach(overlayLayers, function (overlayLayer) {\n return removeChild(overlayLayer);\n });\n } //remove all helper layers\n\n\n var helperLayer = targetElement.querySelector(\".introjs-helperLayer\");\n removeChild(helperLayer, true);\n var referenceLayer = targetElement.querySelector(\".introjs-tooltipReferenceLayer\");\n removeChild(referenceLayer); //remove disableInteractionLayer\n\n var disableInteractionLayer = targetElement.querySelector(\".introjs-disableInteraction\");\n removeChild(disableInteractionLayer); //remove intro floating element\n\n var floatingElement = document.querySelector(\".introjsFloatingElement\");\n removeChild(floatingElement);\n removeShowElement(); //clean listeners\n\n DOMEvent.off(window, \"keydown\", onKeyDown, this, true);\n DOMEvent.off(window, \"resize\", onResize, this, true); //check if any callback is defined\n\n if (this._introExitCallback !== undefined) {\n this._introExitCallback.call(this);\n } //set the step to zero\n\n\n this._currentStep = undefined;\n }\n /**\n * Add overlay layer to the page\n *\n * @api private\n * @method _addOverlayLayer\n * @param {Object} targetElm\n */\n\n\n function addOverlayLayer(targetElm) {\n var _this = this;\n\n var overlayLayer = _createElement(\"div\", {\n className: \"introjs-overlay\"\n });\n\n setStyle(overlayLayer, {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n position: \"fixed\"\n });\n targetElm.appendChild(overlayLayer);\n\n if (this._options.exitOnOverlayClick === true) {\n setStyle(overlayLayer, {\n cursor: \"pointer\"\n });\n\n overlayLayer.onclick = function () {\n exitIntro.call(_this, targetElm);\n };\n }\n\n return true;\n }\n /**\n * Initiate a new introduction/guide from an element in the page\n *\n * @api private\n * @method _introForElement\n * @param {Object} targetElm\n * @param {String} group\n * @returns {Boolean} Success or not?\n */\n\n\n function introForElement(targetElm, group) {\n var _this = this;\n\n var allIntroSteps = targetElm.querySelectorAll(\"*[data-intro]\");\n var introItems = [];\n\n if (this._options.steps) {\n //use steps passed programmatically\n forEach(this._options.steps, function (step) {\n var currentItem = cloneObject(step); //set the step\n\n currentItem.step = introItems.length + 1;\n currentItem.title = currentItem.title || \"\"; //use querySelector function only when developer used CSS selector\n\n if (typeof currentItem.element === \"string\") {\n //grab the element with given selector from the page\n currentItem.element = document.querySelector(currentItem.element);\n } //intro without element\n\n\n if (typeof currentItem.element === \"undefined\" || currentItem.element === null) {\n var floatingElementQuery = document.querySelector(\".introjsFloatingElement\");\n\n if (floatingElementQuery === null) {\n floatingElementQuery = _createElement(\"div\", {\n className: \"introjsFloatingElement\"\n });\n document.body.appendChild(floatingElementQuery);\n }\n\n currentItem.element = floatingElementQuery;\n currentItem.position = \"floating\";\n }\n\n currentItem.scrollTo = currentItem.scrollTo || _this._options.scrollTo;\n\n if (typeof currentItem.disableInteraction === \"undefined\") {\n currentItem.disableInteraction = _this._options.disableInteraction;\n }\n\n if (currentItem.element !== null) {\n introItems.push(currentItem);\n }\n });\n } else {\n //use steps from data-* annotations\n var elmsLength = allIntroSteps.length;\n var disableInteraction; //if there's no element to intro\n\n if (elmsLength < 1) {\n return false;\n }\n\n forEach(allIntroSteps, function (currentElement) {\n // PR #80\n // start intro for groups of elements\n if (group && currentElement.getAttribute(\"data-intro-group\") !== group) {\n return;\n } // skip hidden elements\n\n\n if (currentElement.style.display === \"none\") {\n return;\n }\n\n var step = parseInt(currentElement.getAttribute(\"data-step\"), 10);\n\n if (currentElement.hasAttribute(\"data-disable-interaction\")) {\n disableInteraction = !!currentElement.getAttribute(\"data-disable-interaction\");\n } else {\n disableInteraction = _this._options.disableInteraction;\n }\n\n if (step > 0) {\n introItems[step - 1] = {\n element: currentElement,\n title: currentElement.getAttribute(\"data-title\") || \"\",\n intro: currentElement.getAttribute(\"data-intro\"),\n step: parseInt(currentElement.getAttribute(\"data-step\"), 10),\n tooltipClass: currentElement.getAttribute(\"data-tooltipclass\"),\n highlightClass: currentElement.getAttribute(\"data-highlightclass\"),\n position: currentElement.getAttribute(\"data-position\") || _this._options.tooltipPosition,\n scrollTo: currentElement.getAttribute(\"data-scrollto\") || _this._options.scrollTo,\n disableInteraction: disableInteraction\n };\n }\n }); //next add intro items without data-step\n //todo: we need a cleanup here, two loops are redundant\n\n var _nextStep = 0;\n forEach(allIntroSteps, function (currentElement) {\n // PR #80\n // start intro for groups of elements\n if (group && currentElement.getAttribute(\"data-intro-group\") !== group) {\n return;\n }\n\n if (currentElement.getAttribute(\"data-step\") === null) {\n while (true) {\n if (typeof introItems[_nextStep] === \"undefined\") {\n break;\n } else {\n _nextStep++;\n }\n }\n\n if (currentElement.hasAttribute(\"data-disable-interaction\")) {\n disableInteraction = !!currentElement.getAttribute(\"data-disable-interaction\");\n } else {\n disableInteraction = _this._options.disableInteraction;\n }\n\n introItems[_nextStep] = {\n element: currentElement,\n title: currentElement.getAttribute(\"data-title\") || \"\",\n intro: currentElement.getAttribute(\"data-intro\"),\n step: _nextStep + 1,\n tooltipClass: currentElement.getAttribute(\"data-tooltipclass\"),\n highlightClass: currentElement.getAttribute(\"data-highlightclass\"),\n position: currentElement.getAttribute(\"data-position\") || _this._options.tooltipPosition,\n scrollTo: currentElement.getAttribute(\"data-scrollto\") || _this._options.scrollTo,\n disableInteraction: disableInteraction\n };\n }\n });\n } //removing undefined/null elements\n\n\n var tempIntroItems = [];\n\n for (var z = 0; z < introItems.length; z++) {\n if (introItems[z]) {\n // copy non-falsy values to the end of the array\n tempIntroItems.push(introItems[z]);\n }\n }\n\n introItems = tempIntroItems; //Ok, sort all items with given steps\n\n introItems.sort(function (a, b) {\n return a.step - b.step;\n }); //set it to the introJs object\n\n this._introItems = introItems; //add overlay layer to the page\n\n if (addOverlayLayer.call(this, targetElm)) {\n //then, start the show\n nextStep.call(this);\n\n if (this._options.keyboardNavigation) {\n DOMEvent.on(window, \"keydown\", onKeyDown, this, true);\n } //for window resize\n\n\n DOMEvent.on(window, \"resize\", onResize, this, true);\n }\n\n return false;\n }\n\n var version$1 = \"3.4.0\";\n /**\n * IntroJs main class\n *\n * @class IntroJs\n */\n\n function IntroJs(obj) {\n this._targetElement = obj;\n this._introItems = [];\n this._options = {\n /* Next button label in tooltip box */\n nextLabel: \"Next\",\n\n /* Previous button label in tooltip box */\n prevLabel: \"Back\",\n\n /* Skip button label in tooltip box */\n skipLabel: \"×\",\n\n /* Done button label in tooltip box */\n doneLabel: \"Done\",\n\n /* Hide previous button in the first step? Otherwise, it will be disabled button. */\n hidePrev: false,\n\n /* Hide next button in the last step? Otherwise, it will be disabled button (note: this will also hide the \"Done\" button) */\n hideNext: false,\n\n /* Change the Next button to Done in the last step of the intro? otherwise, it will render a disabled button */\n nextToDone: true,\n\n /* Default tooltip box position */\n tooltipPosition: \"bottom\",\n\n /* Next CSS class for tooltip boxes */\n tooltipClass: \"\",\n\n /* CSS class that is added to the helperLayer */\n highlightClass: \"\",\n\n /* Close introduction when pressing Escape button? */\n exitOnEsc: true,\n\n /* Close introduction when clicking on overlay layer? */\n exitOnOverlayClick: true,\n\n /* Show step numbers in introduction? */\n showStepNumbers: false,\n\n /* Let user use keyboard to navigate the tour? */\n keyboardNavigation: true,\n\n /* Show tour control buttons? */\n showButtons: true,\n\n /* Show tour bullets? */\n showBullets: true,\n\n /* Show tour progress? */\n showProgress: false,\n\n /* Scroll to highlighted element? */\n scrollToElement: true,\n\n /*\n * Should we scroll the tooltip or target element?\n *\n * Options are: 'element' or 'tooltip'\n */\n scrollTo: \"element\",\n\n /* Padding to add after scrolling when element is not in the viewport (in pixels) */\n scrollPadding: 30,\n\n /* Set the overlay opacity */\n overlayOpacity: 0.5,\n\n /* To determine the tooltip position automatically based on the window.width/height */\n autoPosition: true,\n\n /* Precedence of positions, when auto is enabled */\n positionPrecedence: [\"bottom\", \"top\", \"right\", \"left\"],\n\n /* Disable an interaction with element? */\n disableInteraction: false,\n\n /* Set how much padding to be used around helper element */\n helperElementPadding: 10,\n\n /* Default hint position */\n hintPosition: \"top-middle\",\n\n /* Hint button label */\n hintButtonLabel: \"Got it\",\n\n /* Adding animation to hints? */\n hintAnimation: true,\n\n /* additional classes to put on the buttons */\n buttonClass: \"introjs-button\",\n\n /* additional classes to put on progress bar */\n progressBarAdditionalClass: false\n };\n }\n\n var introJs = function introJs(targetElm) {\n var instance;\n\n if (_typeof(targetElm) === \"object\") {\n //Ok, create a new instance\n instance = new IntroJs(targetElm);\n } else if (typeof targetElm === \"string\") {\n //select the target element with query selector\n var targetElement = document.querySelector(targetElm);\n\n if (targetElement) {\n instance = new IntroJs(targetElement);\n } else {\n throw new Error(\"There is no element with given selector.\");\n }\n } else {\n instance = new IntroJs(document.body);\n } // add instance to list of _instances\n // passing group to stamp to increment\n // from 0 onward somewhat reliably\n\n\n introJs.instances[stamp(instance, \"introjs-instance\")] = instance;\n return instance;\n };\n /**\n * Current IntroJs version\n *\n * @property version\n * @type String\n */\n\n\n introJs.version = version$1;\n /**\n * key-val object helper for introJs instances\n *\n * @property instances\n * @type Object\n */\n\n introJs.instances = {}; //Prototype\n\n introJs.fn = IntroJs.prototype = {\n clone: function clone() {\n return new IntroJs(this);\n },\n setOption: function setOption(option, value) {\n this._options[option] = value;\n return this;\n },\n setOptions: function setOptions(options) {\n this._options = mergeOptions(this._options, options);\n return this;\n },\n start: function start(group) {\n introForElement.call(this, this._targetElement, group);\n return this;\n },\n goToStep: function goToStep$1(step) {\n goToStep.call(this, step);\n return this;\n },\n addStep: function addStep(options) {\n if (!this._options.steps) {\n this._options.steps = [];\n }\n\n this._options.steps.push(options);\n\n return this;\n },\n addSteps: function addSteps(steps) {\n if (!steps.length) return;\n\n for (var index = 0; index < steps.length; index++) {\n this.addStep(steps[index]);\n }\n\n return this;\n },\n goToStepNumber: function goToStepNumber$1(step) {\n goToStepNumber.call(this, step);\n return this;\n },\n nextStep: function nextStep$1() {\n nextStep.call(this);\n return this;\n },\n previousStep: function previousStep$1() {\n previousStep.call(this);\n return this;\n },\n currentStep: function currentStep$1() {\n return currentStep.call(this);\n },\n exit: function exit(force) {\n exitIntro.call(this, this._targetElement, force);\n return this;\n },\n refresh: function refresh$1() {\n refresh.call(this);\n return this;\n },\n onbeforechange: function onbeforechange(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._introBeforeChangeCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onbeforechange was not a function\");\n }\n\n return this;\n },\n onchange: function onchange(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._introChangeCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onchange was not a function.\");\n }\n\n return this;\n },\n onafterchange: function onafterchange(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._introAfterChangeCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onafterchange was not a function\");\n }\n\n return this;\n },\n oncomplete: function oncomplete(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._introCompleteCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for oncomplete was not a function.\");\n }\n\n return this;\n },\n onhintsadded: function onhintsadded(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._hintsAddedCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onhintsadded was not a function.\");\n }\n\n return this;\n },\n onhintclick: function onhintclick(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._hintClickCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onhintclick was not a function.\");\n }\n\n return this;\n },\n onhintclose: function onhintclose(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._hintCloseCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onhintclose was not a function.\");\n }\n\n return this;\n },\n onexit: function onexit(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._introExitCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onexit was not a function.\");\n }\n\n return this;\n },\n onskip: function onskip(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._introSkipCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onskip was not a function.\");\n }\n\n return this;\n },\n onbeforeexit: function onbeforeexit(providedCallback) {\n if (typeof providedCallback === \"function\") {\n this._introBeforeExitCallback = providedCallback;\n } else {\n throw new Error(\"Provided callback for onbeforeexit was not a function.\");\n }\n\n return this;\n },\n addHints: function addHints() {\n populateHints.call(this, this._targetElement);\n return this;\n },\n hideHint: function hideHint$1(stepId) {\n hideHint.call(this, stepId);\n return this;\n },\n hideHints: function hideHints$1() {\n hideHints.call(this);\n return this;\n },\n showHint: function showHint$1(stepId) {\n showHint.call(this, stepId);\n return this;\n },\n showHints: function showHints$1() {\n showHints.call(this);\n return this;\n },\n removeHints: function removeHints$1() {\n removeHints.call(this);\n return this;\n },\n removeHint: function removeHint$1(stepId) {\n removeHint().call(this, stepId);\n return this;\n },\n showHintDialog: function showHintDialog$1(stepId) {\n showHintDialog.call(this, stepId);\n return this;\n }\n };\n return introJs;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 39;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n\n function i(t) {\n if (\"object\" != _typeof(this)) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n\n function o(t, e) {\n for (; 3 === t._state;) {\n t = t._value;\n }\n\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) {\n o(t, t._deferreds[e]);\n }\n\n t._deferreds = null;\n }\n\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n\n function c(t, e) {\n var n = !1;\n\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function p(t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == _typeof(s) || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) {\n i(r, e[r]);\n }\n });\n }, i.resolve = function (t) {\n return t && \"object\" == _typeof(t) && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) {\n t[i].then(e, n);\n }\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == _typeof(window.customElements),\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function n() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function set(e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function has(t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function g(t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function observe(t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n\n for (var o, r = 0; r < i.length; r++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(t) {\n var n = this.observer.records_,\n i = n.length;\n\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n\n n[i] = t;\n },\n addListeners: function addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function addTransientObserver(t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function removeTransientObservers() {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }\n }, this);\n },\n handleEvent: function handleEvent(t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function now() {\n return Date.now() - t;\n }\n };\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function i(t) {\n n.push(t);\n },\n o = function o() {\n n.forEach(function (e) {\n e(t);\n });\n };\n\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n i.import && r(i.import, e, n);\n }\n\n e(t);\n }\n }\n\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n t();\n }\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) {\n g(e), e = e.olderShadowRoot;\n }\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n o = o.parentNode;\n }\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n t = t.parentNode;\n }\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n\n function v(t) {\n A(t, m);\n }\n\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n\n function o(t) {\n for (var e = 0; e < C.length; e++) {\n if (t === C[e]) return !0;\n }\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) {\n n = e.is && e.tag;\n }\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function o() {};\n\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.1\",\n ZERO_WIDTH_SPACE: \"\\uFEFF\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\uFFFC\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\n\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function n(t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function t(_t, e) {\n function i() {\n this.constructor = _t;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n for (e in i) {\n n = i[e], o.push(e + \"=\" + n);\n }\n\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n\n for (e in t) {\n n = t[e], this[e] = n;\n }\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function summarizeStringChange(t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function n(_n, i) {\n var o, r, s, a, u;\n return _n.isEqualTo(i) ? [\"\", \"\"] : (r = t(_n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = _n.codepoints.slice(0, u).concat(_n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, _n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function t(_t2, e) {\n var n, i, o;\n\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\n return n;\n },\n objectsAreEqual: function objectsAreEqual(t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n for (n in t) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function summarizeArrayChange(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\n\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].listAttribute, null != n && o.push(n);\n }\n\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, _s = function s(t) {\n var n;\n return null != d && 0 === --d && _s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, _s.destroy = function () {\n return r.removeEventListener(n, _s, f);\n }, r.addEventListener(n, _s, f), _s;\n },\n handleEventOnce: function handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n t = t.parentNode;\n }\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) {\n t = t.firstElementChild;\n }\n\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n\n for (a in l) {\n g = l[a], o.setAttribute(a, g);\n }\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) {\n g = h[a], o.style[a] = g;\n }\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) {\n g = p[a], o.dataset[a] = g;\n }\n }\n\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) {\n i = d[r], o.classList.add(i);\n }\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) {\n n = f[s], o.appendChild(n);\n }\n return o;\n },\n getBlockTagNames: function getBlockTagNames() {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].tagName, n && o.push(n);\n }\n\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function nodeIsBlockStart(t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function i(t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function rangeIsCollapsed(t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function rangesAreEqual(t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function o(t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function i(e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function t() {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function n(t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function s(t) {\n var e, n, i;\n n = {};\n\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t3[i], delete _t3[i];\n }\n\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function n() {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var _n2;\n\n return _n2 = function n() {\n return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t4) {\n return n(_t4.startContainer) || n(_t4.endContainer);\n }, n = function n(t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function dataTransferIsPlainText(t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function dataTransferIsWritable(e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\n\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\n\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n\n for (r = {}, n = 0, o = t.length; o > n; n++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\n\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n n = o[e], this.values[n] === t.values[n] && s.push(n);\n }\n\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n\n for (t in i) {\n n = i[t], e.push(t, n);\n }\n\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t5, e) {\n function i() {\n this.constructor = _t5;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t5[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n }\n\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.add(e);\n }\n\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\uD83D\\uDC7C\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\uD83D\\uDC7C\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n\n for (o = [], e = 0, i = t.length; i > e;) {\n r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n }\n\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n\n for (r = [], e = 0, o = t.length; o > e; e++) {\n i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n }\n\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function formatter(e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t.byte;\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function applicationJson(t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function textHtml(s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function deserializeFromContentType(t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function getDefaultHTML() {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.cloneNode(!0));\n }\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\n\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n if (o = i[e], o.object === t) return o;\n }\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) {\n n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\n\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n\n var _h, p, d, f;\n\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n\n for (o = [], e = 0, n = t.length; n > e; e++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\n\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\n\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n i = o[e], i.type === t && r.push(i);\n }\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\n\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = _h(t), d = _h(u)), {\n additions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\n\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, _h = function h(t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n\n try {\n e.abort();\n } catch (i) {}\n\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n for (i in this.events) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n }\n\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(new e.FileVerificationOperation(n));\n }\n\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function f(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n for (e in t) {\n n = t[e], this.inputSummary[e] = n;\n }\n\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function keydown(t) {\n var n, i, o, r, s, c, l, h, p;\n\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function keypress(t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function textInput(t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function dragend() {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function drop(t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function cut(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function copy(t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function paste(t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function right(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function _return(t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n r = o[e], s[r] = !0;\n }\n\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function r(t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function p(t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function h(t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\n\n return !1;\n }\n\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function keydown(t) {\n var e, i, o, r;\n\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function paste(t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function drop(t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function dragend() {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function ArrowRight() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function Backspace() {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function Tab() {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function TabShift() {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function formatRemove() {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function insertFromPaste() {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (this.event.preventDefault(), s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function f(t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function c(t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function h(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function p(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function l(t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function d(t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c = function c(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function l(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n h.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var p;\n return l(h, a), p = function p(t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function o() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) {\n u = c[o], r.appendChild(u);\n }\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function a(t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function n(t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) {\n r = s[n], i.appendChild(r);\n }\n\n s = [e];\n }\n\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n }\n\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n\n for (r in a) {\n if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n\n for (r in u) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\n u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n }\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\n\n return o;\n }, o = function o(t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) {\n u = c[s], r.appendChild(u);\n }\n\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) {\n r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\n\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n this.element.removeChild(this.element.lastChild);\n }\n\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, d(e)));\n }\n\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, f(e)));\n }\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n }\n\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) {\n n = u[o], n.removeAttribute(\"disabled\");\n }\n\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function t(_t13, e) {\n return function () {\n return _t13.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t14, e) {\n function i() {\n this.constructor = _t14;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t14[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\n\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n o = r[n], s.push(t(o, n));\n }\n\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], t(e) && r.push(e);\n }\n\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\n\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n }\n\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n }\n\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n t = o[n], e += t.getLength();\n }\n\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function s(t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.inspect());\n }\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n\n for (o = [], e = 0, i = t.length; i > e; e++) {\n n = t[e], n.isEmpty() || o.push(n);\n }\n\n return o;\n }());\n }\n\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Piece.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.getAttributes());\n }\n\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n n--;\n }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\n\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], null != n.attachment && o.push(n);\n }\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n c = [].slice;\n\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).nestable && r.push(t);\n }\n\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\n\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function h(t) {\n return t = y(t), t = l(t);\n }, y = function y(t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = i.length; e > t; t++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\n\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n a = [].slice;\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) {\n i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function p(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) {\n n = r[i], e.body.appendChild(n);\n }\n\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: x\n }); n.nextNode();) {\n this.processNode(n.currentNode);\n }\n\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, x = function x(t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function S(t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function E(t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function m(t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g;\n r = {}, p = e.config.textAttributes;\n\n for (n in p) {\n if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) {\n if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n }\n\n if (a(t)) {\n f = w(t, \"attributes\");\n\n for (l in f) {\n g = f[l], r[l] = g;\n }\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) {\n o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n }\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) {\n n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, w = function w(t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function b(t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!C(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function C(t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\n t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n }\n\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function y(t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, A = function A(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Block.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\n\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n }\n\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n\n for (c in t) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\n\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\n\n return t;\n }, l = function l(t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (e = o[n], e.id === t) return e;\n }\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], i.attachment === t) return i;\n }\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) {\n s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n }\n\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.text);\n }\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\n\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\n\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n\n for (i = [], r = 0, s = t.length; s > r; r++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n }\n\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n }\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\n\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) {\n n++;\n }\n\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\n\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n\n for (e in n) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\n\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\n\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function i(t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n }\n\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t18, e) {\n return function () {\n return _t18.apply(e, arguments);\n };\n };\n\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function t(_t19, e) {\n function i() {\n this.constructor = _t19;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t19[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\n\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.manageAttachment(e);\n }\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) {\n t = n[e], i.push(t);\n }\n\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n }\n\n return [e, u];\n }\n\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e));) {\n ;\n }\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) {\n if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n }\n\n return i;\n }, d = function d(t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e !== t && r.push(e);\n }\n\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(o.selectionDidChange());\n }\n\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function s(t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n n = i[o], n.destroy();\n }\n\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n }\n\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n\n for (t in this.actions) {\n e[t] = this.canInvokeAction(t);\n }\n\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) {\n e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n }\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function l(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function m(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return h(t);\n }\n }));\n }, h = function h(t) {\n return d(t), v(t);\n }, d = function d(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, v = function v() {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, c = function c(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function f(t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function e() {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e.contains(t) || r.push(e.textContent);\n }\n\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + p.display + \" !important;\\n width: \" + p.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function get() {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function registerClickListener() {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function unregisterClickListener() {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function resetBubbled(t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function clickBubbled(t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a