{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/packs/application.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:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/actiontext/app/assets/javascripts/actiontext.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","_typeof","obj","iterator","constructor","g","this","Function","e","window","require","Set","clear","values","has","indexOf","add","push","splice","forEach","apply","arguments","TypeError","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","a","length","setTimeout","u","setImmediate","console","warn","all","Array","slice","resolve","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","document","registerElement","WeakMap","Date","now","Math","random","set","writable","A","b","sort","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","parentNode","options","subtree","enqueue","records_","C","type","target","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","x","w","f","transientObservedNodes","JsMutationObserver","test","navigator","userAgent","v","y","String","addEventListener","data","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","attributes","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","removeEventListener","addTransientObserver","handleEvent","stopImmediatePropagation","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","createEvent","initEvent","preventDefault","defaultPrevented","Event","cancelable","configurable","CustomEvent","initCustomEvent","Boolean","bubbles","detail","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","nodeType","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","wrap","querySelectorAll","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","split","shift","pop","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","Element","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","setAttribute","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","HTMLTemplateElement","decorate","getAttribute","getRegisteredDefinition","tag","upgradeWithDefinition","implementPrototype","_polyfilled","removeAttribute","toLowerCase","attributeChangedCallback","concat","ctor","createElement","createElementNS","Error","__name","lifecycle","ancestry","ready","registry","reservedTagList","readyTime","elapsed","dispatchEvent","unwrap","unwrapIfNeeded","__importsParsingHook","readyState","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","config","BasicObject","proxyMethod","toMethod","toProperty","optional","match","_t","__super__","id","fromJSONString","fromJSON","JSON","parse","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","join","toJSONString","stringify","toUTF16String","UTF16String","box","getCacheKey","toString","extend","defer","normalizeSpaces","replace","RegExp","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","_n","utf16String","offset","codepoints","fromCodepoints","_t2","charAt","copyObject","objectsAreEqual","keys","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","_s","onElement","matchingSelector","withCallback","inPhase","times","destroy","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","closest","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","removeChild","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","tagName","makeElement","editable","contenteditable","style","dataset","className","classList","textContent","appendChild","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","isArray","rangeIsCollapsed","rangesAreEqual","defaultCSS","head","insertBefore","querySelector","_t3","initialize","connect","initialized","connectedCallback","disconnectedCallback","_n2","Reflect","construct","setPrototypeOf","defineProperties","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","body","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","RTL_PATTERN","getDirection","dir","dirName","FormData","matches","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","toArray","isEmpty","array","toObject","toJSON","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","find","ElementStore","reset","elements","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","max","offsetFromUCS2Offset","from","codePointAt","fromCodePoint","map","charCodeAt","fromCharCode","lang","attachFiles","bold","bullets","bytes","captionPlaceholder","code","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","url","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","text","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","innerHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","size","file","keyNames","input","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","files","getElementById","click","_t7","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElement","findElementForObject","element","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","Controller","didMutate","start","_h","stop","mutations","findSignificantMutations","delegate","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","FileReader","onerror","onload","abort","readAsArrayBuffer","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","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","toUpperCase","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","R","k","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","end","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","left","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","position","pageXOffset","top","pageYOffset","opacity","focus","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","event","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","title","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","height","scrollHeight","display","parentElement","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","src","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","context","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","hasAttribute","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","parseInt","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","disabled","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","Attachment","releaseFile","_t13","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filename","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","index","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","protocol","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","bottom","marginTop","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","min","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","started","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","notify","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","contains","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","form","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","timeout","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","global","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","script","onreadystatechange","callback","args","task","undefined","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","noop","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","webpackPolyfill","deprecate","paths","children","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","arg","hint","prim","toPrimitive","res","Number","_toPrimitive","_createClass","protoProps","staticProps","globalThis","activestorage","sparkMd5","factory","undefined$1","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","state","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","result","byteLength","buffer","hexToBinaryString","substr","SparkMD5","clamp","val","to","num","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","hashBinary","content","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","_this","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","_start","getMetaValue","findElements","root","selector","eventInit","BlobRecord","checksum","_this2","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","requestDidLoad","requestDidError","status","_this$xhr","response","send","blob","direct_upload","directUploadData","BlobUpload","_this3","_blob$directUploadDat","headers","_this$xhr2","DirectUpload","_this4","error","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","_this5","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this6","uploadRequestDidProgress","inputSelector","DirectUploadsController","inputs","filter","_this7","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","submitForm","button","autostart","ActiveStorage","AttachmentUpload","directUploadUrl","directUploadDidComplete","_this8","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-c0576027163fe3402bc9.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 = 1);\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); }\nvar g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")","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/*\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 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 function n(t, e) {\n return function () {\n t.apply(e, arguments);\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 function o(t, e) {\n for (; 3 === t._state;) t = t._value;\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 try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n r(e.promise, i);\n }));\n }\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\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 t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n for (var e = 0, n = t._deferreds.length; n > e; e++) o(t, t._deferreds[e]);\n t._deferreds = null;\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 function c(t, e) {\n var n = !1;\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 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 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 e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n if (0 === e.length) return t([]);\n for (var o = e.length, r = 0; r < e.length; r++) i(r, e[r]);\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++) t[i].then(e, 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 * @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.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 function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\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 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 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 if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\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 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 function c(t, e) {\n return x = new a(t, e);\n }\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n function h() {\n x = w = void 0;\n }\n function p(t) {\n return t === w || t === x;\n }\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\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 for (var o, r = 0; r < i.length; r++) if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\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 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 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[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 for (var e = m.get(t), n = 0; n < e.length; n++) if (e[n] === this) {\n e.splice(n, 1);\n break;\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 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 case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\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 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 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 var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n if (!e) {\n var n = Event.prototype.preventDefault;\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 var i = /Trident/.test(navigator.userAgent);\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 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 function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) o = o.nextSibling;\n for (; o;) e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n return null;\n }\n function i(t, n) {\n for (var i = t.shadowRoot; i;) e(i, n), i = i.olderShadowRoot;\n }\n function o(t, e) {\n r(t, e, []);\n }\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) i[\"import\"] && r(i[\"import\"], e, n);\n e(t);\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 function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n function r() {\n x = !1;\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) t();\n w = [];\n }\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\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 function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n for (var e = t.shadowRoot; e;) g(e), e = e.olderShadowRoot;\n }\n }\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) o = o.parentNode;\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\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 function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) t = t.parentNode;\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\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 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 function v(t) {\n A(t, m);\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 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 function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e[\"native\"]), t.__proto__ = e.prototype);\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++) i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n o = Object.getPrototypeOf(o);\n }\n }\n function r(t) {\n t.createdCallback && t.createdCallback();\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 function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\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 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 function o(t) {\n for (var e = 0; e < C.length; e++) if (t === C[e]) return !0;\n }\n function r(t) {\n var e = c(t);\n return e ? r(e[\"extends\"]).concat([e]) : [];\n }\n function s(t) {\n for (var e, n = t[\"extends\"], i = 0; e = t.ancestry[i]; i++) n = e.is && e.tag;\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n for (var i, o = t.prototype, r = !1; o;) o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t[\"native\"] = e;\n }\n }\n function u(t) {\n return y(E(t.tag), t);\n }\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n function l(t, e) {\n x[t] = e;\n }\n function h(t) {\n return function () {\n return u(t);\n };\n }\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\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 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 function f(t, e) {\n var n = t[e];\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\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 for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\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 var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\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 var n = t.useNative,\n i = t.initializeModules;\n if (t.isIE, n) {\n var o = function o() {};\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 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 for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) if (n = i[t], !(n in InputEvent.prototype)) return !1;\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 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 for (var o in e) n.call(e, o) && (_t[o] = e[o]);\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n e.Object = function (n) {\n function i() {\n this.id = ++o;\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 for (e in i) n = i[e], o.push(e + \"=\" + 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 for (e in t) n = t[e], this[e] = 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 for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) n++;\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) i--, o--;\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 for (e in t) i = t[e], n[e] = i;\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 for (n in t) if (i = t[n], i !== e[n]) return !1;\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 for (i = n = 0, o = t.length; o > n; i = ++n) if (r = t[i], r !== e[i]) return !1;\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 for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) p = t[r], o.add(p);\n for (i = new Set(), s = 0, c = e.length; c > s; s++) p = e[s], i.add(p), o.has(p) || n.push(p);\n for (a = 0, l = t.length; l > a; a++) p = t[a], i.has(p) || h.push(p);\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 for (t in i) n = i[t].listAttribute, null != n && o.push(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++) if (e in this && this[e] === t) return e;\n return -1;\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 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 for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\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;) t = t.firstElementChild;\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 if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) e++;\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 case \"text\":\n return NodeFilter.SHOW_TEXT;\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\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 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 for (a in l) g = l[a], o.setAttribute(a, g);\n }\n if (e.style) {\n h = e.style;\n for (a in h) g = h[a], o.style[a] = g;\n }\n if (e.data) {\n p = e.data;\n for (a in p) g = p[a], o.dataset[a] = g;\n }\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) i = d[r], o.classList.add(i);\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) n = f[s], o.appendChild(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 for (t in i) n = i[t].tagName, n && o.push(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 for (e in t) i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) i = r[n], e[i] = _t3[i], delete _t3[i];\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 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 if (null != (null != e ? e.setData : void 0)) {\n for (n in t) if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\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 for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\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 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 for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\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 for (r = {}, n = 0, o = t.length; o > n; n++) i = t[n], this.has(i) && (r[i] = this.values[i]);\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 for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) n = o[e], this.values[n] === t.values[n] && s.push(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 for (t in i) n = i[t], e.push(t, 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 for (n in e) o = e[n], i[n] = o;\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) i = s[n], i !== e && (r[i] = t[i]);\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 return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\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 c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\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 for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) i = o[t], e.push(i.getCacheKey());\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 for (var o in e) n.call(e, o) && (_t5[o] = e[o]);\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\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 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 for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.add(e);\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 for (var o in e) n.call(e, o) && (_t6[o] = e[o]);\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\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 for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\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 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 for (o = [], e = 0, i = t.length; i > e;) 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 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 for (r = [], e = 0, o = t.length; o > e; e++) 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 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 switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n case 1:\n return \"1 \" + t[\"byte\"];\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\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 for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) c = A[h], e.removeNode(c);\n for (p = 0, m = o.length; m > p; p++) for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) c = C[d], c.removeAttribute(a);\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n for (b in u) w = u[b], c.setAttribute(b, w);\n } catch (E) {}\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 for (var o in e) n.call(e, o) && (_t7[o] = e[o]);\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++) if (e in this && this[e] === t) return e;\n return -1;\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 return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.cloneNode(!0));\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 for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\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 for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) if (o = i[e], o.object === t) return o;\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 if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n for (n = [], t = 0, e = s.length; e > t; t++) r = s[t], n.push(r.object.getCacheKey());\n return n;\n }(), o = [];\n for (e in t) i.call(n, e) < 0 && o.push(delete t[e]);\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 for (var o in e) n.call(e, o) && (_t8[o] = e[o]);\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\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 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 = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) r = a[n], t.appendChild(r);\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 for (var o in e) n.call(e, o) && (_t9[o] = e[o]);\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\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 for (var i in e) c.call(e, i) && (t[i] = e[i]);\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++) if (e in this && this[e] === t) return e;\n return -1;\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 var _h, p, d, f;\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 for (o = [], e = 0, n = t.length; n > e; e++) i = t[e], this.mutationIsSignificant(i) && o.push(i);\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) if (i = o[e], this.nodeIsSignificant(i)) return !0;\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 switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\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 for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) e = u[r], l.call(n, e) < 0 && n.push(e);\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 for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) i = o[e], i.type === t && r.push(i);\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\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 for (n = [], i = t = 0, e = p.length; e > t; i = ++t) l = p[i], l !== d[i] && n.push(o(l));\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) l = d[i], l !== p[i] && n.push(o(l));\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 for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\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 for (var o in e) n.call(e, o) && (_t10[o] = e[o]);\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\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 try {\n e.abort();\n } catch (i) {}\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 for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\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 for (i in this.events) t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\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 for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(new e.FileVerificationOperation(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 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 for (var i in e) g.call(e, i) && (t[i] = e[i]);\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++) if (e in this && this[e] === t) return e;\n return -1;\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 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 for (e in t) n = t[e], this.inputSummary[e] = 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 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++) l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) l = i[e], t[l + \"Key\"] && o.push(l);\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 for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) r = o[e], s[r] = !0;\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 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++) if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n return !1;\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 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 for (var i in e) s.call(e, i) && (t[i] = e[i]);\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++) if (e in this && this[e] === t) return e;\n return -1;\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 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 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 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 for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\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 try {\n n = e.call(this);\n } finally {\n this.event = null;\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 for (var i in e) h.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\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 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 for (this.savePendingCaption(); e = this.undos.pop();) e();\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 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 for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\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 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++) u = c[o], r.appendChild(u);\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 for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\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 for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\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 var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\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++) r = s[n], i.appendChild(r);\n s = [e];\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 for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\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 for (r in a) 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 for (r in u) l = u[r], c[r] = l;\n }\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n for (r in c) l = c[r], e.style[r] = l;\n }\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n for (o in r) if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\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 for (var o in e) n.call(e, o) && (_t11[o] = e[o]);\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\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 var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++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 return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], n.hasAttribute(\"blockBreak\") || o.push(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 for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\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 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 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++) u = c[s], r.appendChild(u);\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 for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\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 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 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++) r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(this.shadowElement.appendChild(o));\n return i;\n }.call(this));\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 for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) this.element.removeChild(this.element.lastChild);\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 for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) s = u[n], e.appendChild(s.cloneNode(!0));\n for (c = a(e), i = 0, r = c.length; r > i; i++) t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\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 for (var i in e) u.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\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 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 for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\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 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 for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, d(e)));\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 for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, f(e)));\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) 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 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 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 = u[o], n.removeAttribute(\"disabled\");\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 for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\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 for (var o in e) n.call(e, o) && (_t12[o] = e[o]);\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\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 for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\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 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 for (var o in e) n.call(e, o) && (_t14[o] = e[o]);\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\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 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 for (var o in e) n.call(e, o) && (_t15[o] = e[o]);\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\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 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 for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\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 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 for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\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 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 for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) o = r[n], s.push(t(o, 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 for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) e = o[n], t(e) && r.push(e);\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 for (u = [], n = t = 0, s = r.length; s > t; n = ++t) o = r[n], u.push(n >= i && a >= n ? e(o) : o);\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 for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = 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 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 return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\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 for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) t = o[n], e += t.getLength();\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 for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.inspect());\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 for (var o in e) n.call(e, o) && (_t16[o] = e[o]);\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\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 for (o = [], e = 0, i = t.length; i > e; e++) n = t[e], n.isEmpty() || o.push(n);\n return o;\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 for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Piece.fromJSON(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 for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) e = o[n], s.push(null != (r = t.find(e)) ? r : e);\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 for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.getAttributes());\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 for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) n--;\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) o++;\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 for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], null != n.attachment && o.push(n);\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\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 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 for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.toConsole()));\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 for (var i in e) a.call(e, i) && (t[i] = e[i]);\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++) if (e in this && this[e] === t) return e;\n return -1;\n },\n c = [].slice;\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 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 for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).nestable && r.push(t);\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 for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).listAttribute && r.push(t);\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 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 for (n = [], t = 0, e = i.length; e > t; t++) s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\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 for (var i in e) r.call(e, i) && (t[i] = e[i]);\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++) if (e in this && this[e] === t) return e;\n return -1;\n },\n a = [].slice;\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 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 for (s = i(this.body), r = []; s.nextNode();) switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n case Node.COMMENT_NODE:\n r.push(o);\n }\n for (t = 0, n = r.length; n > t; t++) o = r[t], e.removeNode(o);\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\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++) i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\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 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 = r[i], e.body.appendChild(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 for (var i in e) d.call(e, i) && (t[i] = e[i]);\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++) if (e in this && this[e] === t) return e;\n return -1;\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 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 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();) this.processNode(n.currentNode);\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 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 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 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 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 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 case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n for (n in i) r = i[n], e[n] = r;\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\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 for (n in p) 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++) if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n if (a(t)) {\n f = w(t, \"attributes\");\n for (l in f) g = f[l], r[l] = g;\n }\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n for (n in r) 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 t = t.parentNode;\n }\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n for (e = []; t && t !== this.containerElement;) n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\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 for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++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 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 for (var i in e) s.call(e, i) && (t[i] = e[i]);\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++) if (e in this && this[e] === t) return e;\n return -1;\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 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 for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Block.fromJSON(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 for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\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 for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\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 for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n case o.index:\n return [0, o.offset];\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\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 for (c in t) d = t[c], d.inheritable && n.push(c);\n return n;\n }();\n for (c in i) d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\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 for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) s.push(e[o]);\n return s;\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 for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) if (e = o[n], e.id === t) return e;\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 for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\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 for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) if (i = o[e], i.attachment === t) return i;\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\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++) s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\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 for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.text);\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) o = i[t], n.push.apply(n, o.getPieces());\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 for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.text.toConsole()));\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 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 for (var i in e) p.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\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 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 for (i = [], r = 0, s = t.length; s > r; r++) o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(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 for (c = new e.Text(), r = 0, s = t.length; s > r; r++) 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 return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\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 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 if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) if (t = o[n], !t.hasContent()) return !1;\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 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 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 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++) t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\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 for (e in n) i = n[e], i !== !1 && r(e) && (t[e] = i);\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 try {\n n = e();\n } finally {\n this.targetLocationRange = null;\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 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++) e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n for (p = [], o = 0, s = t.length; s > o; o++) e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\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 for (var o in e) n.call(e, o) && (_t17[o] = e[o]);\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\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 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 for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) 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 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 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 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 for (var o in e) n.call(e, o) && (_t19[o] = e[o]);\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\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 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 for (var o in e) n.call(e, o) && (_t20[o] = e[o]);\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.manageAttachment(e);\n }\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n for (e in n) t = n[e], i.push(t);\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 var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\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 if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n return [e, u];\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 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 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 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 for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) 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 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 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 if (document.body.createTextRange) {\n s = t();\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\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 for (var i in e) o.call(e, i) && (t[i] = e[i]);\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++) if (e in this && this[e] === t) return e;\n return -1;\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 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 for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e !== t && r.push(e);\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 for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(o.selectionDidChange());\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 for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\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 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 for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) n = i[o], n.destroy();\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 for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: 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 for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\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 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 for (t in this.actions) e[t] = this.canInvokeAction(t);\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 for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > 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 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 case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\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++) if (e in this && this[e] === t) return e;\n return -1;\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 for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e.contains(t) || r.push(e.textContent);\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;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// 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.\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 var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\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 }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\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 if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\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 global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\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\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\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 if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function registerImmediate(handle) {\n // Create a