{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/images/brummi.jpg","webpack:///./app/javascript/images/coffee.jpg","webpack:///./app/javascript/images/h-reuna.jpg","webpack:///./app/javascript/images/jazzkukko-svengi.png","webpack:///./app/javascript/images/level-down.svg","webpack:///./app/javascript/images/level-up.svg","webpack:///./app/javascript/images/paytrail_logo.jpg","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js","webpack:///./app/javascript/images/paytrail_payments.svg","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/images/reuna.jpg","webpack:///./app/javascript/images/signature.jpg","webpack:///./app/javascript/images/tausta1080.jpg","webpack:///./app/javascript/images/vismalogo.png","webpack:///./app/javascript/images/white_iphone.png","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./app/javascript/images/asset-1.png","webpack:///./app/javascript/images/asset-2.png","webpack:///./app/javascript/images/asset-3.png","webpack:///./app/javascript/images/bg2020.png"],"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","g","this","Function","e","window","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","constructor","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","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","native","HTMLTemplateElement","decorate","getAttribute","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","removeAttribute","toLowerCase","attributeChangedCallback","concat","ctor","createElement","createElementNS","Error","__name","lifecycle","ancestry","ready","registry","instanceof","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","__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","utf16String","offset","codepoints","fromCodepoints","charAt","copyObject","objectsAreEqual","keys","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","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","initialize","connect","initialized","connectedCallback","disconnectedCallback","Reflect","construct","setPrototypeOf","defineProperties","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","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","ObjectMap","find","ElementStore","reset","elements","trixStoreKey","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","byte","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","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","objectGroup","getChildViews","createContainerElement","Controller","didMutate","start","stop","mutations","findSignificantMutations","delegate","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","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","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","ImagePreloadOperation","Image","naturalWidth","naturalHeight","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filename","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","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","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","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","sanitizeElement","protocol","previousElementSibling","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","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","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","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","form","contains","directUpload","directUploadUrl","directUploadDidComplete","directUploadWillStoreFileWithXHR","xhr","upload","progress","loaded","total","error","sgid","attachable_sgid","createBlobUrl","signed_id","signedId","blobUrlTemplate","encodeURIComponent","require","createCommonjsModule","fn","sparkMd5","factory","undefined","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","state","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","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","classCallCheck","instance","Constructor","createClass","props","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","callback","_this","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","getMetaValue","findElements","root","selector","toArray$1","eventInit","BlobRecord","checksum","content_type","byte_size","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","requestDidLoad","requestDidError","send","blob","status","response","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","methodName","_len","messages","_key","DirectUploadController","dispatch","hiddenInput","insertAdjacentElement","dispatchError","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","inputs","filter","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","submitForm","button","delete","autostart","ActiveStorage","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","oMatchesSelector","$","csrfParam","CSRFProtection","token","refreshCSRFTokens","param","fire","params","evt","obj","stopEverything","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","responseText","getResponseHeader","success","statusText","complete","beforeSend","OPENED","location","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","isCrossDomain","originAnchor","urlAnchor","serializeElement","additionalParam","option","selected","checked","formElements","el","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","method","action","isRemote","handleRemote","enctype","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","channels","webpackEmptyContext","req","webpackContext","webpackContextResolve","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","timeout","close","unref","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","task","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"],"mappings":"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","file":"js/application-4db51ea83c370e737fc6.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 = 171);\n","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\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 === \"object\") g = window;\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\n\nmodule.exports = g;","module.exports = __webpack_public_path__ + \"media/images/brummi-9445477f2acd702b35aae0f18fb8ee63.jpg\";","module.exports = __webpack_public_path__ + \"media/images/coffee-630035fdeab9149d84668dd65c3a26a0.jpg\";","module.exports = __webpack_public_path__ + \"media/images/h-reuna-4b98a803e797978189d52451708b59f9.jpg\";","module.exports = __webpack_public_path__ + \"media/images/jazzkukko-svengi-836408ba00ef9274242ff2875f7e2da5.png\";","module.exports = __webpack_public_path__ + \"media/images/level-down-7b3a8ec1557d1cf9d025abb31539680f.svg\";","module.exports = __webpack_public_path__ + \"media/images/level-up-f4ea896723f1076eb0d513947c8b484a.svg\";","module.exports = __webpack_public_path__ + \"media/images/paytrail_logo-887e62bd3656e1d515267c92d1fc4f32.jpg\";","/*\nTrix 1.3.0\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n\n function i(t) {\n if (\"object\" != typeof this) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n\n function o(t, e) {\n for (; 3 === t._state;) t = t._value;\n\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) o(t, t._deferreds[e]);\n\n t._deferreds = null;\n }\n\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n\n function c(t, e) {\n var n = !1;\n\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function (t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == typeof s || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) 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 this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function (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 (t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function (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 (t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function (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 (t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n\n for (var o, r = 0; r < i.length; r++) if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function () {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function () {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function (t) {\n var n = this.observer.records_,\n i = n.length;\n\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n\n n[i] = t;\n },\n addListeners: function () {\n this.addListeners_(this.target);\n },\n addListeners_: function (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 () {\n this.removeListeners_(this.target);\n },\n removeListeners_: function (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 (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 () {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }, this);\n },\n handleEvent: function (t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function () {\n return Date.now() - t;\n }\n };\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function (t) {\n n.push(t);\n },\n o = function () {\n n.forEach(function (e) {\n e(t);\n });\n };\n\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) o = o.nextSibling;\n\n for (; o;) e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) e(i, n), i = i.olderShadowRoot;\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) i.import && r(i.import, e, n);\n\n e(t);\n }\n }\n\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) t();\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) g(e), e = e.olderShadowRoot;\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) o = o.parentNode;\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) t = t.parentNode;\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n\n function v(t) {\n A(t, m);\n }\n\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n\n function o(t) {\n for (var e = 0; e < C.length; e++) if (t === C[e]) return !0;\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) n = e.is && e.tag;\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function () {};\n\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.0\",\n ZERO_WIDTH_SPACE: \"\\ufeff\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\ufffc\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) if (n = i[t], !(n in InputEvent.prototype)) return !1;\n\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function (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, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n for (e in i) n = i[e], o.push(e + \"=\" + n);\n\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n\n for (e in t) n = t[e], this[e] = n;\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function (t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function (t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function (t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function (t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function (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, 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, e) {\n var n, i, o;\n\n for (n = 0, i = t.length, o = e.length; i > n && t.charAt(n).isEqualTo(e.charAt(n));) n++;\n\n for (; i > n + 1 && t.charAt(i - 1).isEqualTo(e.charAt(o - 1));) i--, o--;\n\n return {\n utf16String: t.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function (t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) i = t[e], n[e] = i;\n\n return n;\n },\n objectsAreEqual: function (t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n for (n in t) if (i = t[n], i !== e[n]) return !1;\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function (t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) if (r = t[i], r !== e[i]) return !1;\n\n return !0;\n },\n arrayStartsWith: function (t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function () {\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 (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) p = t[r], o.add(p);\n\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\n for (a = 0, l = t.length; l > a; a++) p = t[a], i.has(p) || h.push(p);\n\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function () {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function (t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function () {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function (t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function () {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function () {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) n = i[t].listAttribute, null != n && o.push(n);\n\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function (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 (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 (t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function (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 (t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function (t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function (t) {\n for (; null != t ? t.firstElementChild : void 0;) t = t.firstElementChild;\n\n return t;\n },\n innerElementIsActive: function (t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function (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 (t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function (t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) e++;\n\n return e;\n }\n },\n removeNode: function (t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function (t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function (t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\n if (null == e && (e = {}), \"object\" == typeof t ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n\n for (a in l) g = l[a], o.setAttribute(a, g);\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) g = h[a], o.style[a] = g;\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) g = p[a], o.dataset[a] = g;\n }\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 () {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) n = i[t].tagName, n && o.push(n);\n\n return o;\n }();\n },\n nodeIsBlockContainer: function (t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function (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 (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 (t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function (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 (t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function (t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function (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 (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 (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 (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 (e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function (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 (t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function (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 () {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function (t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function (t) {\n var e, n, i;\n n = {};\n\n for (e in t) i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n\n return n;\n }, a = function () {\n var t;\n return t = function (t) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) i = r[n], e[i] = t[i], delete t[i];\n\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function () {\n 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 n;\n return n = function () {\n return \"object\" == typeof Reflect ? Reflect.construct(HTMLElement, [], n) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(n.prototype, HTMLElement.prototype), Object.setPrototypeOf(n, HTMLElement), Object.defineProperties(n.prototype, e), window.customElements.define(t, n), n;\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 () {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function () {\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 (t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function (t) {\n return n(t.startContainer) || n(t.endContainer);\n }, n = function (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 (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 (e) {\n var n, i;\n\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\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 (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n\n for (r = {}, n = 0, o = t.length; o > n; n++) i = t[n], this.has(i) && (r[i] = this.values[i]);\n\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) n = o[e], this.values[n] === t.values[n] && s.push(n);\n\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n\n for (t in i) n = i[t], e.push(t, n);\n\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function (t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function (t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) o = e[n], i[n] = o;\n\n return i;\n }, s = function (t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) i = s[n], i !== e && (r[i] = t[i]);\n\n return r;\n }, r = function (t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function (t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) i = o[t], e.push(i.getCacheKey());\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.add(e);\n\n return t;\n }, e = function (t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\ud83d\\udc7c\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\ud83d\\udc7c\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n\n for (o = [], e = 0, i = t.length; i > e;) r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n\n for (r = [], e = 0, o = t.length; o > e; e++) i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n\n 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 (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 (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 (e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t.byte;\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function (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 (t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function (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 (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 (s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) c = A[h], e.removeNode(c);\n\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\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) w = u[b], c.setAttribute(b, w);\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function (t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function (t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function (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 (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 () {\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 () {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function (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 () {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\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\n return -1;\n };\n\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.cloneNode(!0));\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) 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\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) r = s[t], n.push(r.object.getCacheKey());\n\n return n;\n }(), o = [];\n\n for (e in t) i.call(n, e) < 0 && o.push(delete t[e]);\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) n = 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\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\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, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) c.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n\n var h, p, d, f;\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n\n for (o = [], e = 0, n = t.length; n > e; e++) i = t[e], this.mutationIsSignificant(i) && o.push(i);\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) if (i = o[e], this.nodeIsSignificant(i)) return !0;\n\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) e = u[r], l.call(n, e) < 0 && n.push(e);\n\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) i = o[e], i.type === t && r.push(i);\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = h(t), d = h(u)), {\n additions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) l = p[i], l !== d[i] && n.push(o(l));\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) l = d[i], l !== p[i] && n.push(o(l));\n\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, h = function (t) {\n var e, n, i, o;\n\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\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, h(i.childNodes));\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n\n try {\n e.abort();\n } catch (i) {}\n\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n for (i in this.events) t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(new e.FileVerificationOperation(n));\n\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) g.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n for (e in t) n = t[e], this.inputSummary[e] = n;\n\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function (t) {\n var n, i, o, r, s, c, l, h, p;\n\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) l = i[e], t[l + \"Key\"] && o.push(l);\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function (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 (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 (t) {\n return t.preventDefault();\n },\n dragstart: function (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 (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 () {\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 (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 (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 (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 (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 (t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function (t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function (t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function () {\n return this.inputSummary.didInput = !0;\n },\n input: function (t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function () {\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 (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 (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 (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 (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function (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 (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 (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 (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function () {\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 () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) r = o[e], s[r] = !0;\n\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function (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 (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 (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n\n return !1;\n }\n\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function (t) {\n var e, i, o, r;\n\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function (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 (t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function () {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function (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 (t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function (t) {\n var e, n;\n return this.dragging && (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) ? (this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0) : void 0;\n },\n drop: function (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 () {\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 () {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function () {\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 () {\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 () {\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 () {\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 () {\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 () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function () {\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 () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function () {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function () {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function () {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function () {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function () {\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 () {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function () {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function () {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function () {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function () {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function () {\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 () {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n\n return i;\n });\n },\n formatSetBlockTextDirection: function () {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function () {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function () {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function () {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function () {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function () {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function () {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function () {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function () {\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 () {\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\")) ? (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\")) ? (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 () {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function () {\n return this.insertString(\"\\n\");\n },\n insertLink: function () {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function () {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function () {\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 () {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function () {\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 () {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function () {\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 (t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function (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 (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 (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 (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 (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 (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) h.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var p;\n return l(h, a), p = function (t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) e();\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function () {\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 () {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) 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 (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 (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 (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) r = s[n], i.appendChild(r);\n\n s = [e];\n }\n\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n\n for (r in a) if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n\n for (r in u) l = u[r], c[r] = l;\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) l = c[r], e.style[r] = l;\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) 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, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n\n return o;\n }, o = function (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 (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) u = c[s], r.appendChild(u);\n\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(this.shadowElement.appendChild(o));\n\n return i;\n }.call(this));\n\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) s = u[n], e.appendChild(s.cloneNode(!0));\n\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\n return e;\n }, a = function (t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function (t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function (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 (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) u.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, d(e)));\n\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, f(e)));\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) n = u[o], n.removeAttribute(\"disabled\");\n\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function (t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function (t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function (t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) o = r[n], s.push(t(o, n));\n\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) e = o[n], t(e) && r.push(e);\n\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) t = o[n], e += t.getLength();\n\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function (t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.inspect());\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function (t) {\n return t[0];\n }, r = function (t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n\n for (o = [], e = 0, i = t.length; i > e; e++) n = t[e], n.isEmpty() || o.push(n);\n\n return o;\n }());\n }\n\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Piece.fromJSON(n));\n\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.getAttributes());\n\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) n--;\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) o++;\n\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], null != n.attachment && o.push(n);\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.toConsole()));\n\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n },\n c = [].slice;\n\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).nestable && r.push(t);\n\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).listAttribute && r.push(t);\n\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function (t) {\n return t = y(t), t = l(t);\n }, y = function (t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = i.length; e > t; t++) s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function (t) {\n return m(t) ? t : t.appendText(p);\n }, m = function (t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function (t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function (t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function (t) {\n return t.slice(-1)[0];\n }, g = function (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 (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n },\n a = [].slice;\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = l), this.body = h(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), l = \"javascript:\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n p(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n\n for (t = 0, n = r.length; n > t; t++) o = r[t], e.removeNode(o);\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n\n return this.body;\n }, p = function (e) {\n return (null != e ? e.nodeType : void 0) !== Node.ELEMENT_NODE || t(e) ? void 0 : \"script\" === n(e) || \"false\" === e.getAttribute(\"data-trix-serialize\");\n }, h = function (t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) n = r[i], e.body.appendChild(n);\n\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: w\n }); n.nextNode();) this.processNode(n.currentNode);\n\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, w = function (t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = C(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 = y(t), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = A(t);\n\n for (n in i) r = i[n], e[n] = r;\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function (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 (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 (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, m;\n r = {}, d = e.config.textAttributes;\n\n for (n in d) if (u = d[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (m = u.parser(t)) {\n for (i = !1, f = this.findBlockElementAncestors(t), c = 0, p = f.length; p > c; c++) if (s = f[c], u.parser(s) === m) {\n i = !0;\n break;\n }\n\n i || (r[n] = m);\n }\n } else u.styleProperty && (m = t.style[u.styleProperty]) && (r[n] = m);\n\n if (a(t) && (l = t.getAttribute(\"data-trix-attributes\"))) {\n g = JSON.parse(l);\n\n for (h in g) m = g[h], r[h] = m;\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n\n return e;\n }, y = function (t) {\n return JSON.parse(t.getAttribute(\"data-trix-attachment\"));\n }, A = function (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, (!x(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 (t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, x = function (t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n\n 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 : b(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), b(t);\n }, b = function (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 }, C = function (t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function (t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function (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 (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Block.fromJSON(n));\n\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n\n for (c in t) d = t[c], d.inheritable && n.push(c);\n\n return n;\n }();\n\n for (c in i) d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) s.push(e[o]);\n\n return s;\n }();\n\n return t;\n }, l = function (t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) 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\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) 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\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\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function (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\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.text);\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) o = i[t], n.push.apply(n, o.getPieces());\n\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.text.toConsole()));\n\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) p.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n\n for (i = [], r = 0, s = t.length; s > r; r++) o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) if (t = o[n], !t.hasContent()) return !1;\n\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) n++;\n\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n\n for (e in n) i = n[e], i !== !1 && r(e) && (t[e] = i);\n\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n\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\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, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function (t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n\n 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, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.manageAttachment(e);\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) t = n[e], i.push(t);\n\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n\n return [e, u];\n }\n\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e)););\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n\n return i;\n }, d = function (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 (t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function (t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function (t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e !== t && r.push(e);\n\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(o.selectionDidChange());\n\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function (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 (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) n = i[o], n.destroy();\n\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function () {\n return this.editor.canUndo();\n },\n perform: function () {\n return this.editor.undo();\n }\n },\n redo: {\n test: function () {\n return this.editor.canRedo();\n },\n perform: function () {\n return this.editor.redo();\n }\n },\n link: {\n test: function () {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function () {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function () {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function () {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function () {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function () {\n return !0;\n },\n perform: function () {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n\n for (t in this.actions) e[t] = this.canInvokeAction(t);\n\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function (t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m;\n return f = 0, l = function (t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, g = function (t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function () {\n return h(t);\n }\n }));\n }, c = function (t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, h = function (t) {\n return d(t), m(t);\n }, d = function (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 }, m = function () {\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 }, 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}\\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 () {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++f), this.trixId);\n }\n },\n labels: {\n get: function () {\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 () {\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 () {\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 () {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function (t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function (t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function (t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function () {\n return g(this), c(this);\n },\n connect: function () {\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 () {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function () {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function () {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function () {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function () {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function (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 (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 () {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == typeof module && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","import { DirectUpload } from \"@rails/activestorage\";\nexport class AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new DirectUpload(attachment.file, this.directUploadUrl, this);\n }\n\n start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this));\n }\n\n directUploadWillStoreFileWithXHR(xhr) {\n xhr.upload.addEventListener(\"progress\", event => {\n const progress = event.loaded / event.total * 100;\n this.attachment.setUploadProgress(progress);\n });\n }\n\n directUploadDidComplete(error, attributes) {\n if (error) {\n throw new Error(\"Direct upload failed: \".concat(error));\n }\n\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n });\n }\n\n createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n }\n\n get directUploadUrl() {\n return this.element.dataset.directUploadUrl;\n }\n\n get blobUrlTemplate() {\n return this.element.dataset.blobUrlTemplate;\n }\n\n}","import { AttachmentUpload } from \"./attachment_upload\";\naddEventListener(\"trix-attachment-add\", event => {\n const attachment = event.attachment,\n target = event.target;\n\n if (attachment.file) {\n const upload = new AttachmentUpload(attachment, target);\n upload.start();\n }\n});","module.exports = __webpack_public_path__ + \"media/images/paytrail_payments-a0d87d8c9c2cfd320a902f863b9102f3.svg\";","// 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\nrequire(\"@rails/ujs\").start()\nrequire(\"@rails/activestorage\").start()\nrequire(\"channels\")\n\nconst images = require.context('../images', true)\nconst imagePath = (name) => images(name, true)\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")\n\n//require(\"../basics\")\n","module.exports = __webpack_public_path__ + \"media/images/reuna-fda63f332c36a55dfebce56f148f459b.jpg\";","module.exports = __webpack_public_path__ + \"media/images/signature-7a4371f35719c713751a8b7cf5fd9c43.jpg\";","module.exports = __webpack_public_path__ + \"media/images/tausta1080-c6a910e3a44606b021a29f69e897f835.jpg\";","module.exports = __webpack_public_path__ + \"media/images/vismalogo-7d89efd96d9ad2f3b191c4d0c2fe934a.png\";","module.exports = __webpack_public_path__ + \"media/images/white_iphone-10986fb6dce896bd49fbbbe3f555cd1d.png\";","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n CSRFProtection(xhr);\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function (response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function (element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function (element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 27;","var map = {\n\t\"./asset-1\": 6,\n\t\"./asset-1.png\": 6,\n\t\"./asset-2\": 7,\n\t\"./asset-2.png\": 7,\n\t\"./asset-3\": 8,\n\t\"./asset-3.png\": 8,\n\t\"./bg2020\": 9,\n\t\"./bg2020.png\": 9,\n\t\"./brummi\": 10,\n\t\"./brummi.jpg\": 10,\n\t\"./coffee\": 11,\n\t\"./coffee.jpg\": 11,\n\t\"./h-reuna\": 12,\n\t\"./h-reuna.jpg\": 12,\n\t\"./jazzkukko-svengi\": 13,\n\t\"./jazzkukko-svengi.png\": 13,\n\t\"./level-down\": 14,\n\t\"./level-down.svg\": 14,\n\t\"./level-up\": 15,\n\t\"./level-up.svg\": 15,\n\t\"./paytrail_logo\": 16,\n\t\"./paytrail_logo.jpg\": 16,\n\t\"./paytrail_payments\": 17,\n\t\"./paytrail_payments.svg\": 17,\n\t\"./reuna\": 18,\n\t\"./reuna.jpg\": 18,\n\t\"./signature\": 19,\n\t\"./signature.jpg\": 19,\n\t\"./tausta1080\": 20,\n\t\"./tausta1080.jpg\": 20,\n\t\"./vismalogo\": 21,\n\t\"./vismalogo.png\": 21,\n\t\"./white_iphone\": 22,\n\t\"./white_iphone.png\": 22\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 28;","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function (handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function (event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function (handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function (handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function (handle) {\n // Create a