{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/object-assign/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash.isequal/index.js","webpack:///./node_modules/react-infinite-scroller/index.js","webpack:///./node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/src/controller.js","webpack:///./node_modules/react-infinite-scroller/dist/InfiniteScroll.js","webpack:///./app/javascript/packs/other/nav_bar_actions.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/hello_controller.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/node-libs-browser/node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/react-countdown-now/dist/index.es.js","webpack:///./node_modules/jquery-parallax.js/parallax.min.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/axios/index.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js","webpack:///./node_modules/process/browser.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/axios/lib/utils.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","fn","thisArg","args","Array","arguments","length","apply","utils","encode","val","encodeURIComponent","replace","url","params","paramsSerializer","serializedParams","isURLSearchParams","toString","parts","forEach","isArray","v","isDate","toISOString","isObject","JSON","stringify","push","join","hashmarkIndex","indexOf","slice","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","adapter","defaults","XMLHttpRequest","process","transformRequest","data","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","transformResponse","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","method","merge","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","fullPath","baseURL","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","read","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","code","error","Error","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","deepMerge","axiosKeys","concat","otherKeys","keys","filter","Cancel","this","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","Axios","mergeConfig","createInstance","defaultConfig","context","instance","extend","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","default","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","fulfilled","rejected","shift","getUri","handlers","use","eject","id","h","transformData","throwIfCancellationRequested","throwIfRequested","reason","fns","normalizedName","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","stack","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","trim","substr","originURL","msie","navigator","userAgent","urlParsingNode","document","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","requestURL","isString","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","match","RegExp","decodeURIComponent","remove","now","executor","TypeError","resolvePromise","token","source","callback","arr","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","test3","letter","shouldUseNative","target","from","symbols","to","webpackPolyfill","deprecate","paths","children","_typeof","iterator","obj","constructor","argsTag","mapTag","objectTag","setTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","global","freeSelf","self","root","Function","freeExports","nodeType","freeModule","moduleExports","freeProcess","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","predicate","index","mapToArray","result","size","setToArray","set","uid","transform","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","exec","IE_PROTO","nativeObjectToString","reIsNative","Buffer","_Symbol","Uint8Array","splice","symToStringTag","nativeGetSymbols","nativeIsBuffer","nativeKeys","arg","DataView","getNative","Map","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","clear","entry","ListCache","MapCache","SetCache","values","__data__","add","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","eq","baseGetTag","isOwn","tag","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsEqual","other","bitmask","customizer","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","byteLength","byteOffset","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isMasked","isFunction","baseKeys","Ctor","proto","arrLength","seen","arrValue","othIndex","has","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getSymbols","getMapData","type","getValue","pop","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","ArrayBuffer","ctorString","isLength","baseUnary","EventListener","eventTarget","eventName","unorderedBindings","connect","disconnect","removeEventListener","bindingConnected","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","immediatePropagationStopped","extendEvent","_i","_a","bindings","sort","left","right","leftIndex","rightIndex","configurable","Dispatcher","application","eventListenerMaps","started","start","eventListeners","eventListener","stop","reduce","listeners","fetchEventListenerForBinding","handleError","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","descriptorPattern","Action","descriptor","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","descriptorString","content","matches","eventTargetName","eventNameSuffix","getAttribute","Binding","action","willBeInvokedByEvent","invokeWithEvent","controller","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","fetch","del","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","__extends","setPrototypeOf","__proto__","b","__","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","a","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","removeAttribute","char","attributeValueContainsToken","TargetSet","targetName","find","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","targetDescriptor","targetAttribute","Scope","targets","head","tail","filterElements","closest","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","_arguments","P","generator","step","next","done","__generator","body","f","y","g","label","sent","trys","ops","verb","op","Application","documentElement","router","register","load","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","console","defineTargetProperties","ancestors","getPrototypeOf","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","properties","capitalize","_createClass","defineProperties","writable","Constructor","protoProps","staticProps","_react","_react2","_interopRequireDefault","_propTypes2","InfiniteScroll","_Component","_classCallCheck","ReferenceError","_possibleConstructorReturn","scrollListener","eventListenerOptions","mousewheelListener","subClass","superClass","_inherits","pageLoaded","pageStart","options","attachScrollListener","isReverse","loadMore","getParentElement","scrollComponent","scrollTop","scrollHeight","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","passive","testOptions","useCapture","isPassiveSupported","loader","defaultLoader","scrollEl","useWindow","parentNode","el","scrollParent","getScrollParent","hasMore","initialLoad","deltaY","preventDefault","doc","pageYOffset","calculateOffset","clientHeight","Number","threshold","offsetParent","calculateTopPosition","offsetHeight","innerHeight","offsetTop","_this2","renderProps","filterProps","ref","_objectWithoutProperties","childrenArray","Component","propTypes","defaultProps","$","click","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","x","k","md5blk","md5blks","charCodeAt","md5blk_array","md51","tmp","lo","hi","state","substring","parseInt","rhex","j","hex","toUtf8","str","unescape","hexToBinaryString","bytes","SparkMD5","reset","clamp","min","num","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","setState","destroy","hashBinary","first","second","returnUInt8Array","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","readAsArrayBuffer","querySelector","dispatchEvent","eventInit","disabled","bubbles","cancelable","createEvent","initEvent","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","xhr","csrfToken","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","notify","_len","messages","_key","DirectUploadController","input","directUpload","dispatch","hiddenInput","insertAdjacentElement","removeChild","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","uploadRequestDidProgress","DirectUploadsController","form","inputs","files","controllers","createDirectUploadControllers","startNextController","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","button","focus","style","display","appendChild","submitForm","setTimeout","ActiveStorage","webpackContext","req","webpackContextResolve","outputTarget","textContent","_state","_handled","_value","_deferreds","onFulfilled","onRejected","u","setImmediate","warn","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","random","A","uid_","nodes_","observer","removeTransientObservers","callback_","enqueue","records_","C","previousSibling","nextSibling","attributeNamespace","oldValue","w","transientObservedNodes","JsMutationObserver","postMessage","ShadowDOMPolyfill","wrapIfNeeded","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","_isPolyfilled","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","Event","CustomEvent","initCustomEvent","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","HTMLImports","firstElementChild","firstChild","nextElementSibling","shadowRoot","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","wrap","import","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","HTMLElement","getOwnPropertyDescriptor","native","HTMLTemplateElement","decorate","getRegisteredDefinition","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElementNS","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","_t","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","defer","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","added","removed","_n","utf16String","codepoints","fromCodepoints","_t2","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","_s","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","dataset","className","classList","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","_t3","initialized","connectedCallback","disconnectedCallback","_n2","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","RTL_PATTERN","getDirection","dir","dirName","FormData","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","toArray","isEmpty","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","ElementStore","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","lang","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","text","plaintext","bulletList","bullet","numberList","exclusive","fileSize","prefix","precision","formatter","byte","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","innerHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","getElementById","_t7","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","didMutate","_h","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","onload","InputController","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","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","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","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","position","pageXOffset","top","opacity","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","title","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","height","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","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","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","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","script","task","_defineProperties","_getPrototypeOf","_setPrototypeOf","_assertThisInitialized","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","zeroPad","strValue","suffix","strNo","paddedNo","timeDeltaFormatOptionsDefaults","daysInHours","zeroPadTime","calcTimeDelta","date","startTimestamp","_ref","_ref$now","_ref$precision","_ref$controlled","controlled","_ref$offsetTime","offsetTime","round","parseFloat","seconds","days","hours","minutes","milliseconds","completed","formatTimeDelta","delta","_Object$assign","_Object$assign$zeroPa","zeroPadDays","formattedHours","isEqual","Countdown","_React$Component","mounted","tick","onTick","timeDelta","setTimeDeltaState","offsetStart","onStart","interval","intervalDelay","pause","calcOffsetStart","onPause","isPaused","isCompleted","autoStart","onMount","prevProps","_this$props","onComplete","api","_this$props2","getApi","formatted","_this$props3","renderer","getRenderProps","cloneElement","countdown","_renderProps$formatte","$element","imageSrc","attr","positionX","positionY","isNaN","iosFix","backgroundImage","backgroundSize","backgroundPosition","androidFix","$mirror","prependTo","mirrorContainer","$slider","addClass","visibility","zIndex","overflow","one","aspectRatio","isSetup","setup","sliders","isFresh","complete","trigger","speed","bleed","overScrollFix","boxWidth","outerWidth","boxHeight","outerHeight","boxOffsetTop","boxOffsetLeft","boxOffsetBottom","winHeight","docHeight","imageWidth","imageHeight","offsetBaseTop","offsetLeft","scrollLeft","overScroll","mirrorTop","mirrorLeft","maxWidth","winWidth","docWidth","isReady","isBusy","on","configure","each","off","parallax","noConflict","jQuery","for","q","z","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","F","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","current","K","__self","__source","M","$$typeof","_owner","O","Q","keyPrefix","count","V","T","U","escape","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","isValidElement","lazy","_ctor","_status","_result","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","version","require","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","ScrollMagic","Scene","triggerElement","setClassToggle","addTo","revealElements","getElementsByClassName","triggerHook","revealProjectElements","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","noop","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","umask","isView","pipe","URLSearchParams","product","assignValue"],"mappings":"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","file":"js/application-af3d84ede83b714d4650.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 = 674);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = ['baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'];\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys);\n var otherKeys = Object.keys(config2).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n } // Hook up interceptors middleware\n\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n/** Used to stand-in for `undefined` hash values. */\n\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n/** Used to compose bitmasks for value comparisons. */\n\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n/** Used as references for various `Number` constants. */\n\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/** `Object#toString` result references. */\n\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n/** Used to detect host constructors (Safari). */\n\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n/** Used to detect unsigned integer values. */\n\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n/** Used to identify `toStringTag` values of typed arrays. */\n\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/** Detect free variable `exports`. */\n\nvar freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Detect free variable `process` from Node.js. */\n\nvar freeProcess = moduleExports && freeGlobal.process;\n/** Used to access faster Node.js helpers. */\n\nvar nodeUtil = function () {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}();\n/* Node.js helper references. */\n\n\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n\n return result;\n}\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n\n\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n\n return array;\n}\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n\n\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n\n return false;\n}\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n\n\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n}\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n\n\nfunction baseUnary(func) {\n return function (value) {\n return func(value);\n };\n}\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n\n\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n\n\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n map.forEach(function (value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n\n\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n\n\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n}\n/** Used for built-in method references. */\n\n\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n/** Used to detect overreaching core-js shims. */\n\nvar coreJsData = root['__core-js_shared__'];\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Used to detect methods masquerading as native. */\n\nvar maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n}();\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\n\nvar nativeObjectToString = objectProto.toString;\n/** Used to detect if a method is native. */\n\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined,\n _Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n/* Built-in method references that are verified to be native. */\n\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n/** Used to detect maps, sets, and weakmaps. */\n\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n/** Used to convert symbols to primitives and strings. */\n\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n\n\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n} // Add methods to `Hash`.\n\n\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n\n\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n --this.size;\n return true;\n}\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n}\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n\n\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n\n return this;\n} // Add methods to `ListCache`.\n\n\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n}\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n\n\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n} // Add methods to `MapCache`.\n\n\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n\n while (++index < length) {\n this.add(values[index]);\n }\n}\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n\n\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n\n return this;\n}\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n\n\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n} // Add methods to `SetCache`.\n\n\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n\n\nfunction stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n}\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\n}\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n\n\nfunction stackSet(key, value) {\n var data = this.__data__;\n\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n\n data = this.__data__ = new MapCache(pairs);\n }\n\n data.set(key, value);\n this.size = data.size;\n return this;\n} // Add methods to `Stack`.\n\n\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n}\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\nfunction assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\n}\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n\n\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n\n\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n\n\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n\n objIsArr = true;\n objIsObj = false;\n }\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n\n if (!isSameTag) {\n return false;\n }\n\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n\n\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n\n\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\n\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\n}\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n\n\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(array);\n\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array); // Ignore non-index properties.\n\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n\n result = false;\n break;\n } // Recursively compare arrays (susceptible to call stack limits).\n\n\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n\n\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == other + '';\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(object);\n\n if (stacked) {\n return stacked == other;\n }\n\n bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits).\n\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n\n }\n\n return false;\n}\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n\n\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n\n var index = objLength;\n\n while (index--) {\n var key = objProps[index];\n\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(object);\n\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n } // Recursively compare objects (susceptible to call stack limits).\n\n\n if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n\n skipCtor || (skipCtor = key == 'constructor');\n }\n\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal.\n\n if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n\n\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n\n\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n\n\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n}\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n\n\nvar getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nvar getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n\nif (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function getTag(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n\n case mapCtorString:\n return mapTag;\n\n case promiseCtorString:\n return promiseTag;\n\n case setCtorString:\n return setTag;\n\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n\n return result;\n };\n}\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n\n\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n\n\nfunction isKeyable(value) {\n var type = _typeof(value);\n\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n\n\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n\n\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n\n\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n\n\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n}\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n\n\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n\n\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n\nvar isArray = Array.isArray;\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n\n\nvar isBuffer = nativeIsBuffer || stubFalse;\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n\n\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n } // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n\n\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\nfunction isObject(value) {\n var type = _typeof(value);\n\n return value != null && (type == 'object' || type == 'function');\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return value != null && _typeof(value) == 'object';\n}\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n\n\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\n\n\nfunction stubArray() {\n return [];\n}\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\n\n\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;","module.exports = require('./dist/InfiniteScroll');","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n console.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _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\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === 'object' || typeof call === 'function') ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n var testOptions = {\n get passive() {\n passive = true;\n }\n\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {// ignore\n }\n\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n } else {\n options = {\n passive: false\n };\n }\n\n return options;\n } // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n\n if (scrollParent != null) {\n return scrollParent;\n }\n\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n var offset = void 0;\n\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n } // Here we make sure the element is visible as well as checking the offset\n\n\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop; // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];","var $home = $('#button-home');\n\n$home.click(function() {\n //do something\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","var map = {\n\t\"./hello_controller.js\": 568\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 = 567;","// Visit The Stimulus Handbook for more details \n// https://stimulusjs.org/handbook/introduction\n// \n// This example controller works with specially annotated HTML like:\n//\n//
\n//

\n//
\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"output\" ]\n\n connect() {\n this.outputTarget.textContent = 'Hello, Stimulus!'\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n\n function i(t) {\n if (\"object\" != _typeof(this)) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n\n function o(t, e) {\n for (; 3 === t._state;) {\n t = t._value;\n }\n\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) {\n o(t, t._deferreds[e]);\n }\n\n t._deferreds = null;\n }\n\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n\n function c(t, e) {\n var n = !1;\n\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function p(t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == _typeof(s) || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) {\n i(r, e[r]);\n }\n });\n }, i.resolve = function (t) {\n return t && \"object\" == _typeof(t) && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) {\n t[i].then(e, n);\n }\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == _typeof(window.customElements),\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function n() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function set(e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function has(t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function g(t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function observe(t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n\n for (var o, r = 0; r < i.length; r++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(t) {\n var n = this.observer.records_,\n i = n.length;\n\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n\n n[i] = t;\n },\n addListeners: function addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function addTransientObserver(t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function removeTransientObservers() {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }\n }, this);\n },\n handleEvent: function handleEvent(t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function now() {\n return Date.now() - t;\n }\n };\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function i(t) {\n n.push(t);\n },\n o = function o() {\n n.forEach(function (e) {\n e(t);\n });\n };\n\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n i.import && r(i.import, e, n);\n }\n\n e(t);\n }\n }\n\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n t();\n }\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) {\n g(e), e = e.olderShadowRoot;\n }\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n o = o.parentNode;\n }\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n t = t.parentNode;\n }\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n\n function v(t) {\n A(t, m);\n }\n\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n\n function o(t) {\n for (var e = 0; e < C.length; e++) {\n if (t === C[e]) return !0;\n }\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) {\n n = e.is && e.tag;\n }\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function o() {};\n\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.1\",\n ZERO_WIDTH_SPACE: \"\\uFEFF\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\uFFFC\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\n\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function n(t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function t(_t, e) {\n function i() {\n this.constructor = _t;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n for (e in i) {\n n = i[e], o.push(e + \"=\" + n);\n }\n\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n\n for (e in t) {\n n = t[e], this[e] = n;\n }\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function summarizeStringChange(t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function n(_n, i) {\n var o, r, s, a, u;\n return _n.isEqualTo(i) ? [\"\", \"\"] : (r = t(_n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = _n.codepoints.slice(0, u).concat(_n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, _n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function t(_t2, e) {\n var n, i, o;\n\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\n return n;\n },\n objectsAreEqual: function objectsAreEqual(t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n for (n in t) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function summarizeArrayChange(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\n\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].listAttribute, null != n && o.push(n);\n }\n\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, _s = function s(t) {\n var n;\n return null != d && 0 === --d && _s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, _s.destroy = function () {\n return r.removeEventListener(n, _s, f);\n }, r.addEventListener(n, _s, f), _s;\n },\n handleEventOnce: function handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n t = t.parentNode;\n }\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) {\n t = t.firstElementChild;\n }\n\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n\n for (a in l) {\n g = l[a], o.setAttribute(a, g);\n }\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) {\n g = h[a], o.style[a] = g;\n }\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) {\n g = p[a], o.dataset[a] = g;\n }\n }\n\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) {\n i = d[r], o.classList.add(i);\n }\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) {\n n = f[s], o.appendChild(n);\n }\n return o;\n },\n getBlockTagNames: function getBlockTagNames() {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].tagName, n && o.push(n);\n }\n\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function nodeIsBlockStart(t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function i(t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function rangeIsCollapsed(t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function rangesAreEqual(t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function o(t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function i(e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function t() {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function n(t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function s(t) {\n var e, n, i;\n n = {};\n\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t3[i], delete _t3[i];\n }\n\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function n() {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var _n2;\n\n return _n2 = function n() {\n return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t4) {\n return n(_t4.startContainer) || n(_t4.endContainer);\n }, n = function n(t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function dataTransferIsPlainText(t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function dataTransferIsWritable(e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\n\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\n\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n\n for (r = {}, n = 0, o = t.length; o > n; n++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\n\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n n = o[e], this.values[n] === t.values[n] && s.push(n);\n }\n\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n\n for (t in i) {\n n = i[t], e.push(t, n);\n }\n\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t5, e) {\n function i() {\n this.constructor = _t5;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t5[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n }\n\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.add(e);\n }\n\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\uD83D\\uDC7C\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\uD83D\\uDC7C\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n\n for (o = [], e = 0, i = t.length; i > e;) {\n r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n }\n\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n\n for (r = [], e = 0, o = t.length; o > e; e++) {\n i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n }\n\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function formatter(e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t.byte;\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function applicationJson(t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function textHtml(s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function deserializeFromContentType(t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function getDefaultHTML() {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.cloneNode(!0));\n }\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\n\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n if (o = i[e], o.object === t) return o;\n }\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) {\n n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\n\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n\n var _h, p, d, f;\n\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n\n for (o = [], e = 0, n = t.length; n > e; e++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\n\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\n\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n i = o[e], i.type === t && r.push(i);\n }\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\n\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = _h(t), d = _h(u)), {\n additions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\n\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, _h = function h(t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n\n try {\n e.abort();\n } catch (i) {}\n\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n for (i in this.events) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n }\n\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(new e.FileVerificationOperation(n));\n }\n\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function f(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n for (e in t) {\n n = t[e], this.inputSummary[e] = n;\n }\n\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function keydown(t) {\n var n, i, o, r, s, c, l, h, p;\n\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function keypress(t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function textInput(t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function dragend() {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function drop(t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function cut(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function copy(t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function paste(t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function right(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function _return(t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n r = o[e], s[r] = !0;\n }\n\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function r(t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function p(t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function h(t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\n\n return !1;\n }\n\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function keydown(t) {\n var e, i, o, r;\n\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function paste(t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function drop(t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function dragend() {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function ArrowRight() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function Backspace() {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function Tab() {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function TabShift() {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function formatRemove() {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function insertFromPaste() {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (this.event.preventDefault(), s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function f(t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function c(t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function h(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function p(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function l(t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function d(t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c = function c(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function l(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n h.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var p;\n return l(h, a), p = function p(t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function o() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) {\n u = c[o], r.appendChild(u);\n }\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function a(t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function n(t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) {\n r = s[n], i.appendChild(r);\n }\n\n s = [e];\n }\n\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n }\n\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n\n for (r in a) {\n if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n\n for (r in u) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\n u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n }\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\n\n return o;\n }, o = function o(t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) {\n u = c[s], r.appendChild(u);\n }\n\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) {\n r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\n\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n this.element.removeChild(this.element.lastChild);\n }\n\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, d(e)));\n }\n\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, f(e)));\n }\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n }\n\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) {\n n = u[o], n.removeAttribute(\"disabled\");\n }\n\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function t(_t13, e) {\n return function () {\n return _t13.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t14, e) {\n function i() {\n this.constructor = _t14;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t14[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\n\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n o = r[n], s.push(t(o, n));\n }\n\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], t(e) && r.push(e);\n }\n\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\n\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n }\n\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n }\n\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n t = o[n], e += t.getLength();\n }\n\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function s(t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.inspect());\n }\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n\n for (o = [], e = 0, i = t.length; i > e; e++) {\n n = t[e], n.isEmpty() || o.push(n);\n }\n\n return o;\n }());\n }\n\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Piece.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.getAttributes());\n }\n\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n n--;\n }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\n\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], null != n.attachment && o.push(n);\n }\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n c = [].slice;\n\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).nestable && r.push(t);\n }\n\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\n\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function h(t) {\n return t = y(t), t = l(t);\n }, y = function y(t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = i.length; e > t; t++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\n\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n a = [].slice;\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) {\n i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function p(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) {\n n = r[i], e.body.appendChild(n);\n }\n\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: x\n }); n.nextNode();) {\n this.processNode(n.currentNode);\n }\n\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, x = function x(t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function S(t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function E(t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function m(t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g;\n r = {}, p = e.config.textAttributes;\n\n for (n in p) {\n if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) {\n if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n }\n\n if (a(t)) {\n f = w(t, \"attributes\");\n\n for (l in f) {\n g = f[l], r[l] = g;\n }\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) {\n o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n }\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) {\n n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, w = function w(t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function b(t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!C(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function C(t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\n t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n }\n\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function y(t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, A = function A(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Block.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\n\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n }\n\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n\n for (c in t) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\n\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\n\n return t;\n }, l = function l(t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (e = o[n], e.id === t) return e;\n }\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], i.attachment === t) return i;\n }\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) {\n s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n }\n\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.text);\n }\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\n\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\n\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n\n for (i = [], r = 0, s = t.length; s > r; r++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n }\n\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n }\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\n\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) {\n n++;\n }\n\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\n\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n\n for (e in n) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\n\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\n\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function i(t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n }\n\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t18, e) {\n return function () {\n return _t18.apply(e, arguments);\n };\n };\n\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function t(_t19, e) {\n function i() {\n this.constructor = _t19;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t19[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\n\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.manageAttachment(e);\n }\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) {\n t = n[e], i.push(t);\n }\n\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n }\n\n return [e, u];\n }\n\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e));) {\n ;\n }\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) {\n if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n }\n\n return i;\n }, d = function d(t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e !== t && r.push(e);\n }\n\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(o.selectionDidChange());\n }\n\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function s(t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n n = i[o], n.destroy();\n }\n\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n }\n\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n\n for (t in this.actions) {\n e[t] = this.canInvokeAction(t);\n }\n\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) {\n e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n }\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function l(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function m(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return h(t);\n }\n }));\n }, h = function h(t) {\n return d(t), v(t);\n }, d = function d(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, v = function v() {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, c = function c(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function f(t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function e() {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e.contains(t) || r.push(e.textContent);\n }\n\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + p.display + \" !important;\\n width: \" + p.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function get() {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function registerClickListener() {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function unregisterClickListener() {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function resetBubbled(t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function clickBubbled(t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a