1 line
No EOL
303 KiB
Text
1 line
No EOL
303 KiB
Text
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/emoji-mart/dist-es/utils/data.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/emoji-mart/dist-es/components/emoji/nimble-emoji.js","webpack:///./app/soapbox/containers/status_container.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./app/soapbox/features/ui/util/schedule_idle_task.js","webpack:///./app/soapbox/features/ui/util/get_rect_from_entry.js","webpack:///./app/soapbox/components/intersection_observer_article.js","webpack:///./app/soapbox/containers/intersection_observer_article_container.js","webpack:///./app/soapbox/components/more_follows.js","webpack:///./app/soapbox/features/ui/util/intersection_observer_wrapper.js","webpack:///./app/soapbox/components/scrollable_list.js","webpack:///./app/soapbox/components/status_list.js","webpack:///./node_modules/emoji-mart/dist-es/components/emoji/emoji.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./app/soapbox/components/load_more.js","webpack:///./app/soapbox/components/load_gap.js","webpack:///./app/soapbox/components/timeline_queue_button_header.js","webpack:///./node_modules/babel-runtime/core-js/object/values.js","webpack:///./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack:///./node_modules/babel-runtime/core-js/object/keys.js","webpack:///./node_modules/tiny-queue/index.js","webpack:///./app/soapbox/features/groups/create/index.js","webpack:///./app/soapbox/components/media_gallery.js","webpack:///./node_modules/core-js/library/fn/object/values.js","webpack:///./node_modules/core-js/library/modules/es7.object.values.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_object-to-array.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/babel-runtime/core-js/array/from.js","webpack:///./node_modules/core-js/library/fn/array/from.js","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/core-js/library/modules/es6.array.from.js","webpack:///./node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/core-js/library/modules/_create-property.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/core-js/library/modules/_iter-detect.js","webpack:///./node_modules/emoji-mart/dist-es/vendor/raf-polyfill.js","webpack:///./node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/core-js/library/modules/es6.object.keys.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./app/soapbox/components/missing_indicator.js","webpack:///./app/soapbox/features/ui/containers/status_list_container.js","webpack:///./app/soapbox/components/home_column_header.js","webpack:///./app/soapbox/features/ui/components/column_subheading.js","webpack:///./app/soapbox/features/ui/components/accordion.js","webpack:///./node_modules/emoji-mart/dist-es/polyfills/objectGetPrototypeOf.js","webpack:///./node_modules/emoji-mart/dist-es/polyfills/createClass.js","webpack:///./node_modules/emoji-mart/dist-es/polyfills/possibleConstructorReturn.js","webpack:///./node_modules/emoji-mart/dist-es/polyfills/inherits.js","webpack:///./node_modules/emoji-mart/dist-es/utils/store.js","webpack:///./node_modules/emoji-mart/dist-es/utils/frequently.js","webpack:///./node_modules/emoji-mart/dist-es/svgs/index.js","webpack:///./node_modules/emoji-mart/dist-es/components/anchors.js","webpack:///./node_modules/emoji-mart/dist-es/components/category.js","webpack:///./node_modules/emoji-mart/dist-es/components/preview.js","webpack:///./node_modules/emoji-mart/dist-es/utils/emoji-index/nimble-emoji-index.js","webpack:///./node_modules/emoji-mart/dist-es/components/search.js","webpack:///./node_modules/emoji-mart/dist-es/components/skins.js","webpack:///./node_modules/emoji-mart/dist-es/components/picker/nimble-picker.js","webpack:///./node_modules/emoji-mart/dist-es/components/picker/picker.js","webpack:///./app/soapbox/features/lists/components/new_list_form.js","webpack:///./node_modules/lodash/noop.js","webpack:///./app/soapbox/features/ui/components/better_column.js","webpack:///./app/soapbox/actions/mfa.js","webpack:///./node_modules/babel-runtime/helpers/classCallCheck.js","webpack:///./node_modules/emoji-mart/dist-es/polyfills/extends.js","webpack:///./node_modules/emoji-mart/dist-es/polyfills/stringFromCodePoint.js","webpack:///./node_modules/emoji-mart/dist-es/utils/index.js","webpack:///./node_modules/emoji-mart/dist-es/utils/shared-props.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","e","promise","script","error","onScriptComplete","timeout","promises","installedChunkData","Promise","resolve","reject","document","createElement","charset","nc","setAttribute","src","p","Error","event","onerror","onload","clearTimeout","errorType","realSrc","chunk","type","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","buildSearch","emoji","addToSearch","strings","split","Array","isArray","forEach","string","toLowerCase","search","indexOf","short_names","keywords","emoticons","join","mapping","unified","non_qualified","has_img_apple","has_img_google","has_img_twitter","has_img_emojione","has_img_facebook","has_img_messenger","sheet","text","added_in","compress","filter","short_name","sheet_x","sheet_y","parseInt","_key","uncompress","id","compressed","emojis","unshift","toFixed","core","version","__e","store","uid","USE_SYMBOL","global","Math","self","Function","__g","$export","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","PROTOTYPE","has","ctx","C","a","b","this","arguments","virtual","R","hide","U","dP","createDesc","f","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","TypeError","isObject","it","_getData","props","skin","set","_getSanitizedData","_handleClick","onClick","_handleOver","onOver","_handleLeave","onLeave","_convertStyleToCSS","style","div","isNaN","parseFloat","getAttribute","NimbleEmoji","k","defaultProps","_getData2","custom","colons","imageUrl","render","children","className","title","tooltip","native","fontSize","size","forceSize","display","width","height","backgroundImage","backgroundSize","fallback","backgroundImageFn","sheetSize","backgroundPosition","html","onMouseEnter","onMouseLeave","messages","defineMessages","deleteConfirm","deleteMessage","redraftConfirm","redraftMessage","blockConfirm","replyConfirm","replyMessage","blockAndReport","injectIntl","connect","getStatus","makeGetStatus","state","status","displayMedia","getSettings","allowedEmoji","getSoapboxConfig","dispatch","intl","onReply","router","_","getState","getIn","trim","openModal","formatMessage","confirm","onConfirm","replyCompose","onModalReblog","unreblog","reblog","onReblog","boostModal","shiftKey","onFavourite","unfavourite","favourite","onBookmark","unbookmark","bookmark","onPin","unpin","pin","onEmbed","url","onError","showAlertForError","onDelete","history","withRedraft","deleteModal","deleteStatus","onDirect","account","directCompose","onMention","mentionCompose","onOpenMedia","media","index","onOpenVideo","time","onOpenAudio","onBlock","defaultMessage","values","blockAccount","secondary","onSecondary","initReport","onReport","onMute","initMuteModal","onMuteConversation","unmuteStatus","muteStatus","onToggleHidden","revealStatus","hideStatus","onGroupRemoveAccount","groupId","accountId","createRemovedAccount","onGroupRemoveStatus","statusId","groupRemoveStatus","onDeactivateUser","deactivateUserModal","onDeleteUser","deleteUserModal","onDeleteStatus","deleteStatusModal","onToggleStatusSensitivity","toggleStatusSensitivityModal","Status","exec","bitmap","configurable","writable","$keys","enumBugKeys","keys","IObject","defined","ceil","floor","shared","taskQueue","Queue","runningRequestIdleCallback","runTasks","deadline","timeRemaining","requestIdleCallback","scheduleIdleTask","task","hasBoundingRectBug","getRectFromEntry","entry","boundingRect","observerRect","getBoundingClientRect","boundingClientRect","top","bottom","left","right","updateOnPropsForRendered","updateOnPropsForUnrendered","IntersectionObserverArticle","isHidden","isIntersecting","calculateHeight","setState","updateStateAfterIntersection","prevState","hideIfNotIntersecting","onHeightChange","saveHeightKey","componentMounted","node","shouldComponentUpdate","nextProps","nextState","isUnrendered","cachedHeight","every","prop","is","componentDidMount","intersectionObserverWrapper","observe","handleIntersection","componentWillUnmount","unobserve","listLength","ref","handleRef","aria-posinset","aria-setsize","data-id","tabIndex","React","cloneElement","hidden","opacity","overflow","Component","setHeight","following","followers","MoreFollows","count","visibility","visible","getMessage","PureComponent","IntersectionObserverWrapper","options","observer","IntersectionObserver","entries","callbacks","observerBacklog","callback","disconnect","ScrollableList","cachedMediaWidth","newScrollTop","documentElement","scrollTop","lastScrollWasSynthetic","mouseIdleTimer","clearMouseIdleTimer","handleMouseIdle","mouseMovedRecently","scrollToTopOnMouseIdle","MOUSE_IDLE_DELAY","setScrollTop","scrollHeight","snapshot","innerHeight","onLoadMore","hasMore","isLoading","onScrollToTop","onScroll","trailing","preventDefault","scrollKey","diffCount","isMoreFollows","some","scrollingElement","attachScrollListener","attachIntersectionObserver","handleScroll","componentDidUpdate","prevProps","addEventListener","handleWheel","detachScrollListener","removeEventListener","getSnapshotBeforeUpdate","Children","getFirstChildKey","detachIntersectionObserver","firstChild","ImmutableList","showLoading","prepend","alwaysPrepend","emptyMessage","childrenCount","loadMore","handleLoadMore","role","setRef","onMouseMove","handleMouseMove","map","child","context","route","location","getScrollPosition","updateScrollBottom","cacheMediaWidth","getMoreFollows","PropTypes","queue","StatusList","featuredStatusIds","featured","statusIds","getFeaturedStatusCount","elementIndex","getCurrentStatusIndex","_selectChild","loadMoreID","lastStatusId","last","leading","onDequeueTimeline","timelineId","handleDequeueTimeline","align_top","container","element","querySelector","offsetTop","scrollIntoView","clientHeight","offsetHeight","focus","totalQueuedItemsCount","isPartial","withGroupAdmin","group","other","tagName","scrollableContent","disabled","maxId","onMoveUp","handleMoveUp","onMoveDown","handleMoveDown","contextType","showThread","concat","handleLoadOlder","ImmutablePureComponent","isRequired","ImmutablePropTypes","list","func","bool","queuedItemSize","number","Emoji","propTypes","aFunction","fn","that","toString","toInteger","min","SHARED","copyright","px","random","def","TAG","tag","stat","LoadMore","load_more","LoadGap","handleClick","aria-label","TimelineQueueButtonHeader","classes","classNames","obj","_from","_from2","default","arr","arr2","item","next","first","start","end","Infinity","output","description","coverImage","coverImageChange","Create","onTitleChange","changeValue","onDescriptionChange","onCoverImageChange","onSubmit","routerHistory","submit","reset","files","method","handleSubmit","onChange","handleTitleChange","placeholder","handleDescriptionChange","htmlFor","handleCoverImageChange","toggle_visible","Item","autoPlayGif","loaded","hoverToPlay","play","pause","currentTime","isIOS","autoPlay","button","ctrlKey","metaKey","stopPropagation","canvas","video","playbackRate","attachment","_decode","imageData","hash","pixels","decode","getContext","ImageData","putImageData","standalone","dimensions","total","float","position","w","h","pos","previewUrl","originalUrl","letterboxed","conditionalAttributes","remoteURL","fileExtensionLastIndex","fileExtension","ext","thumbnail","href","alt","playsInline","autoplay","handleMouseEnter","handleMouseLeave","loop","muted","lastIndexOf","substr","toUpperCase","pop","onMouseOver","handleVideoHover","onMouseOut","handleVideoLeave","setCanvasRef","filename","truncateFilename","cursor","MediaGallery","sensitive","defaultWidth","onToggleVisibility","cacheWidth","offsetWidth","aspectRatio","ImmutableMap","isPanoramic","maximumAspectRatio","isPortrait","minimumAspectRatio","itemsDimensions","panoSize","panoSize_px","ratios","fill","ar1","ar2","ar3","ar4","isNonConformingRatio","getSizeDataSingle","getSizeDataMultiple","sizeData","getSizeData","take","displayWidth","ATTACHMENT_LIMIT","spoilerButton","icon","overlay","handleOpen","$values","val","valueOf","getKeys","toIObject","isEnum","isEntries","arrayIndexOf","IE_PROTO","names","cof","propertyIsEnumerable","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","max","from","$at","String","iterated","_t","_i","point","done","TO_STRING","charCodeAt","charAt","returnThis","LIBRARY","redefine","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","VALUES","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","getMethod","kind","proto","methods","IteratorPrototype","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","descriptor","Empty","dPs","_createDict","iframeDocument","iframe","contentWindow","open","write","lt","close","Properties","defineProperties","toObject","ObjectProto","constructor","isArrayIter","createProperty","getIterFn","iter","arrayLike","step","iterator","aLen","mapfn","iterFn","ret","ArrayProto","$defineProperty","classof","getIteratorMethod","ARG","T","tryGet","callee","SAFE_CLOSING","riter","skipClosing","safe","lastTime","vendors","x","requestAnimationFrame","cancelAnimationFrame","currTime","Date","getTime","timeToCall","fails","KEY","exp","MissingIndicator","createSelector","columnSettings","statuses","me","shouldFilter","getStatusIds","ownProps","dequeueTimeline","scrollTopTimeline","show","homeTitle","fediverseTitle","listTitle","getOrderedLists","lists","toList","sort","localeCompare","ColumnHeader","collapsed","animating","expandedFor","fetchLists","extraContent","collapseButton","active","activeItem","activeSubItem","siteTitle","wrapperClassName","buttonClassName","collapsibleClassName","collapsibleButtonClassName","expansionClassName","aria-pressed","handleToggleClick","collapsedContent","expandedContent","to","fixedWidth","onTransitionEnd","handleTransitionEnd","ColumnSubheading","collapse","expand","Accordion","onToggle","expanded","headline","menu","items","direction","handleToggle","protoProps","staticProps","possibleConstructorReturn","ReferenceError","inherits","subClass","superClass","setPrototypeOf","__proto__","NAMESPACE","_JSON","JSON","isLocalStorageSupported","setter","localStorage","stringify","update","parse","setNamespace","namespace","setHandlers","handlers","DEFAULTS","frequently","initialized","defaults","init","add","perLine","quantity","frequentlyKeys","sliced","reverse","activity","flags","foods","nature","objects","people","places","recent","symbols","Anchors","SVGs","svg","currentTarget","_props","categories","onAnchorClick","_this2","_props2","color","i18n","selected","category","anchor","isSelected","iconId","startsWith","dangerouslySetInnerHTML","__html","getSVG","backgroundColor","_this","defaultCategory","Category","parent","parentNode","margin","minMargin","memoizeSize","hasStickyPosition","emojiProps","nextPerLine","nextNative","nextHasStickyPosition","nextEmojis","nextEmojiProps","nextSkin","nextSize","nextSet","_container$getBoundin","parentTop","labelHeight","label","maxMargin","frequentlyUsed","getEmojis","_this3","_props3","labelStyles","labelSpanStyles","containerStyles","setContainerRef","setLabelRef","notfound","Preview","skinsProps","showSkinTones","idleEmoji","emojiData","_emojiData$emoticons","knownEmoticons","listedEmoticons","emoticon","NimbleEmojiIndex","originalPool","customEmojisList","buildIndex","_loop","pool","emojiId","clearCustomEmojis","_this4","_ref","emojisToShowFilter","maxResults","include","exclude","_ref$custom","addCustomToPool","results","allResults","customIsIncluded","customIsExcluded","isIncluded","isExcluded","aPool","aIndex","charIndex","char","_id","scores","score","sub","subIndex","Search","input","onSearch","emojiIndex","autoFocus","handleChange","Skins","opened","skinToneNodes","skinTone","I18N","NimblePicker","defaultSkin","firstRender","testStickyPosition","firstRenderTimeout","updateCategoriesSize","SEARCH_CATEGORY","leaveTimeout","stickyTestElement","prefix","preview","CUSTOM","customEmoji","handleEmojiSelect","onSelect","hideRecent","component","categoryRefs","forceUpdate","scroll","handleScrollPaint","updateDisplay","waitingForPaint","anchors","categoryName","activeCategory","scrollingDown","minTop","ii","scrollToComponent","handleSearch","clear","newState","onSkinChange","handled","keyCode","emojiSize","showPreview","noShowAnchors","emojiTooltip","onKeyDown","handleKeyDown","setAnchorsRef","handleAnchorClick","setSearchRef","setScrollRef","getCategories","setCategoryRef","RECENT_CATEGORY","handleEmojiOver","handleEmojiLeave","handleEmojiClick","setPreviewRef","handleSkinChange","customCategories","customCategoriesCreated","allCategories","customCategory","categoryIndex","newCategory","newEmojis","includeRecent","excludeRecent","Picker","NewListForm","changeListEditorTitle","submitListEditor","Column","heading","columnHeaderId","replace","aria-labelledby","TOTP_SETTINGS_FETCH_REQUEST","TOTP_SETTINGS_FETCH_SUCCESS","TOTP_SETTINGS_FETCH_FAIL","BACKUP_CODES_FETCH_REQUEST","BACKUP_CODES_FETCH_SUCCESS","BACKUP_CODES_FETCH_FAIL","TOTP_SETUP_FETCH_REQUEST","TOTP_SETUP_FETCH_SUCCESS","TOTP_SETUP_FETCH_FAIL","CONFIRM_TOTP_REQUEST","CONFIRM_TOTP_SUCCESS","CONFIRM_TOTP_FAIL","DISABLE_TOTP_REQUEST","DISABLE_TOTP_SUCCESS","DISABLE_TOTP_FAIL","fetchUserMfaSettings","api","then","response","totpEnabled","totp","catch","fetchBackupCodes","backup_codes","fetchToptSetup","totp_setup","confirmToptSetup","code","password","post","disableToptSetup","delete","instance","_Object","highSurrogate","lowSurrogate","codeUnits","codePoint","Number","isFinite","RangeError","fromCharCode","COLONS_REGEX","SKINS","unifiedToNative","codePoints","u","stringFromCodePoint","getSanitizedData","getData","skin_tone","skin_variations","matches","match","aliases","variations","skinKey","variationData","v","uniq","reduce","acc","intersect","uniqA","uniqB","deepMerge","originalValue","measureScrollbar","body","scrollbarWidth","clientWidth","removeChild","EmojiPropTypes","oneOf","oneOfType","EmojiDefaultProps","PickerDefaultProps","arrayOf","shape"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrBiB,EAAG,GAGAZ,EAAkB,GAQtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU8B,QAGnC,IAAIC,EAASH,EAAiB5B,GAAY,CACzCK,EAAGL,EACHgC,GAAG,EACHF,QAAS,IAUV,OANAhB,EAAQd,GAAUW,KAAKoB,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG/DK,EAAOC,GAAI,EAGJD,EAAOD,QAKfJ,EAAoBO,EAAI,SAAuBhC,GAC9C,IAaMiC,EAMAC,EAWAC,EACJC,EAkBIC,EAhFiBrC,EA+BnBsC,EAAW,GAKXC,EAAqB5B,EAAgBX,GAmDzC,OAlD0B,IAAvBuC,IAGCA,EACFD,EAAS1B,KAAK2B,EAAmB,KAG7BN,EAAU,IAAIO,QAAQ,SAASC,EAASC,GAC3CH,EAAqB5B,EAAgBX,GAAW,CAACyC,EAASC,KAE3DJ,EAAS1B,KAAK2B,EAAmB,GAAKN,IAGlCC,EAASS,SAASC,cAAc,WAG7BC,QAAU,QACjBX,EAAOG,QAAU,IACbZ,EAAoBqB,IACvBZ,EAAOa,aAAa,QAAStB,EAAoBqB,IAElDZ,EAAOc,IAzDFvB,EAAoBwB,EAAI,OAAS,CAAC,EAAI,iBAAiB,EAAI,eAAe,EAAI,kBAAkB,EAAI,2BAA2B,EAAI,4BAA4B,EAAI,iBAAiB,EAAI,mCAAmC,EAAI,gCAAgC,GAAK,yBAAyB,GAAK,sBAAsB,GAAK,mBAAmB,GAAK,kBAAkB,GAAK,qBAAqB,GAAK,iBAAiB,GAAK,2BAA2B,GAAK,8BAA8B,GAAK,2BAA2B,GAAK,yBAAyB,GAAK,wBAAwB,GAAK,mBAAmB,GAAK,+BAA+B,GAAK,sBAAsB,GAAK,mBAAmB,GAAK,2BAA2B,GAAK,qBAAqB,GAAK,qBAAqB,GAAK,6BAA6B,GAAK,wBAAwB,GAAK,2BAA2B,GAAK,4BAA4B,GAAK,yBAAyB,GAAK,uBAAuB,GAAK,sBAAsB,GAAK,uBAAuB,GAAK,yBAAyB,GAAK,iBAAiB,GAAK,iBAAiB,GAAK,yBAAyB,GAAK,2BAA2B,GAAK,uBAAuB,GAAK,2BAA2B,GAAK,mBAAmB,GAAK,2BAA2B,GAAK,kBAAkB,GAAK,oBAAoB,GAAK,6BAA6B,GAAK,uBAAuB,GAAK,0BAA0B,GAAK,kBAAkB,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,eAAe,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,eAAe,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,IAAM,YAAY,IAAM,YAAY,IAAM,YAAY,IAAM,iBAAiB,IAAM,YAAY,IAAM,YAAY,IAAM,YAAY,IAAM,YAAY,IAAM,YAAY,IAAM,YAAY,IAAM,eAAe,IAAM,eAAe,IAAM,eAAe,IAAM,qBAAqB,IAAM,oBAAoB,IAAM,uBADp/EjD,EA0DOA,IAzD8gFA,GAAW,IAAM,CAAC,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,GAAK,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,wBAAwBA,GAAW,YA4DpsLmC,EAAQ,IAAIe,MAChBd,EAAmB,SAAUe,GAE5BjB,EAAOkB,QAAUlB,EAAOmB,OAAS,KACjCC,aAAajB,GACb,IAGMkB,EACAC,EAJFC,EAAQ9C,EAAgBX,GACf,IAAVyD,IACCA,IACEF,EAAYJ,IAAyB,SAAfA,EAAMO,KAAkB,UAAYP,EAAMO,MAChEF,EAAUL,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOX,IACpDb,EAAMyB,QAAU,iBAAmB5D,EAAU,cAAgBuD,EAAY,KAAOC,EAAU,IAC1FrB,EAAM0B,KAAO,iBACb1B,EAAMuB,KAAOH,EACbpB,EAAM2B,QAAUN,EAChBC,EAAM,GAAGtB,IAEVxB,EAAgBX,QAAW+D,IAGzB1B,EAAU2B,WAAW,WACxB5B,EAAiB,CAAEsB,KAAM,UAAWC,OAAQzB,KAC1C,MACHA,EAAOkB,QAAUlB,EAAOmB,OAASjB,EACjCO,SAASsB,KAAKC,YAAYhC,KAGrBM,QAAQ2B,IAAI7B,IAIpBb,EAAoB2C,EAAIvD,EAGxBY,EAAoB4C,EAAI1C,EAGxBF,EAAoB6C,EAAI,SAASzC,EAASgC,EAAMU,GAC3C9C,EAAoB+C,EAAE3C,EAASgC,IAClCtD,OAAOkE,eAAe5C,EAASgC,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhE9C,EAAoBmD,EAAI,SAAS/C,GACX,oBAAXgD,QAA0BA,OAAOC,aAC1CvE,OAAOkE,eAAe5C,EAASgD,OAAOC,YAAa,CAAEC,MAAO,WAE7DxE,OAAOkE,eAAe5C,EAAS,aAAc,CAAEkD,OAAO,KAQvDtD,EAAoBuD,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQtD,EAAoBsD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK5E,OAAO6E,OAAO,MAGvB,GAFA3D,EAAoBmD,EAAEO,GACtB5E,OAAOkE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOtD,EAAoB6C,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR1D,EAAoB8D,EAAI,SAASzD,GAChC,IAAIyC,EAASzC,GAAUA,EAAOoD,WAC7B,WAAwB,OAAOpD,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAL,EAAoB6C,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR9C,EAAoB+C,EAAI,SAASgB,EAAQC,GAAY,OAAOlF,OAAOC,UAAUC,eAAeC,KAAK8E,EAAQC,IAGzGhE,EAAoBwB,EAAI,UAGxBxB,EAAoBiE,GAAK,SAASC,GAA2B,MAApBC,QAAQzD,MAAMwD,GAAYA,GAEnE,IAAIE,EAAaC,OAAqB,aAAIA,OAAqB,cAAK,GAChEC,EAAmBF,EAAWjF,KAAK0E,KAAKO,GAC5CA,EAAWjF,KAAOf,EAClBgG,EAAaA,EAAWG,QACxB,IAAI,IAAI5F,EAAI,EAAGA,EAAIyF,EAAWvF,OAAQF,IAAKP,EAAqBgG,EAAWzF,IAC3E,IAAIU,EAAsBiF,EAI1B7E,I,oBCxMgB,SAAd+E,EAAmCC,GAGnB,SAAdC,EAAmCC,EAASC,GACzCD,IAKJE,MAAMC,QAAQH,GAAWA,EAAU,CAACA,IAAUI,QAAQ,SAAUC,IAE9DJ,EAAQI,EAAOJ,MAAM,aAAe,CAACI,IAASD,QAAQ,SAAU9E,GAC/DA,EAAIA,EAAEgF,eAEoB,GAAtBC,EAAOC,QAAQlF,IACjBiF,EAAO/F,KAAKc,OAdpB,IAAIiF,EAAS,GAwBb,OAJAR,EAAYD,EAAMW,aAAa,GAC/BV,EAAYD,EAAMrC,MAAM,GACxBsC,EAAYD,EAAMY,UAAU,GAC5BX,EAAYD,EAAMa,WAAW,GACtBJ,EAAOK,KAAK,KA3CrB,IAAIC,EAAU,CACZpD,KAAM,IACNqD,QAAS,IACTC,cAAe,IACfC,cAAe,IACfC,eAAgB,IAChBC,gBAAiB,IACjBC,iBAAkB,IAClBC,iBAAkB,IAClBC,kBAAmB,IACnBX,SAAU,IACVY,MAAO,IACPX,UAAW,IACXY,KAAM,IACNd,YAAa,IACbe,SAAU,KAsFZ9F,EAAOD,QAAU,CACfoE,YAAaA,EACb4B,SAzDa,SAAkB3B,GAc/B,IAAK,IAAIb,KAbTa,EAAMW,YAAcX,EAAMW,YAAYiB,OAAO,SAAUC,GACrD,OAAOA,IAAe7B,EAAM6B,oBAEvB7B,EAAM6B,WACb7B,EAAMwB,MAAQ,CAACxB,EAAM8B,QAAS9B,EAAM+B,gBAC7B/B,EAAM8B,eACN9B,EAAM+B,QACb/B,EAAM0B,SAAWM,SAAShC,EAAM0B,UAET,IAAnB1B,EAAM0B,iBACD1B,EAAM0B,SAGCX,EACdf,EAAMe,EAAQ5B,IAAQa,EAAMb,UACrBa,EAAMb,GAGf,IAAK,IAAI8C,KAAQjC,EAAO,CACtB,IAAInB,EAAQmB,EAAMiC,KAEd7B,MAAMC,QAAQxB,IAAWA,EAAMzE,UAEP,iBAAVyE,GAAuBA,EAAMzE,SAE1B,OAAVyE,UAHFmB,EAAMiC,KAmCjBC,WA1Be,SAAoBtI,GAGnC,IAAK,IAAIuI,KAFTvI,EAAKwI,YAAa,EAEHxI,EAAKyI,OAAQ,CAC1B,IAESlD,EAFLa,EAAQpG,EAAKyI,OAAOF,GAExB,IAAShD,KAAO4B,EACdf,EAAMb,GAAOa,EAAMe,EAAQ5B,WACpBa,EAAMe,EAAQ5B,IAGlBa,EAAMW,cAAaX,EAAMW,YAAc,IAC5CX,EAAMW,YAAY2B,QAAQH,GAC1BnC,EAAM8B,QAAU9B,EAAMwB,MAAM,GAC5BxB,EAAM+B,QAAU/B,EAAMwB,MAAM,UACrBxB,EAAMwB,MACRxB,EAAMyB,OAAMzB,EAAMyB,KAAO,IACzBzB,EAAM0B,WAAU1B,EAAM0B,SAAW,GACtC1B,EAAM0B,SAAW1B,EAAM0B,SAASa,QAAQ,GACxCvC,EAAMS,OAASV,EAAYC,O,kBCjG/B,IAAIwC,EAAO5G,EAAOD,QAAU,CAC1B8G,QAAS,SAEO,iBAAPC,MAAiBA,IAAMF,I,oBCHlC,IAAIG,EAAQ,EAAQ,IAAR,CAAqB,OAE7BC,EAAM,EAAQ,KAEdjE,EAAS,EAAQ,KAAaA,OAE9BkE,EAA8B,mBAAVlE,GAET/C,EAAOD,QAAU,SAAUgC,GACxC,OAAOgF,EAAMhF,KAAUgF,EAAMhF,GAAQkF,GAAclE,EAAOhB,KAAUkF,EAAalE,EAASiE,GAAK,UAAYjF,MAGpGgF,MAAQA,G,kBCXjB,IAAIG,EAASlH,EAAOD,QAA2B,oBAAViE,QAAyBA,OAAOmD,MAAQA,KAAOnD,OAAwB,oBAARoD,MAAuBA,KAAKD,MAAQA,KAAOC,KAC7IC,SAAS,cAATA,GACgB,iBAAPC,MAAiBA,IAAMJ,I,oBCSpB,SAAVK,EAA2B3F,EAAMG,EAAMyF,GACzC,IASIjE,EAAKkE,EAAKC,EATVC,EAAY/F,EAAO2F,EAAQK,EAC3BC,EAAYjG,EAAO2F,EAAQO,EAC3BC,EAAYnG,EAAO2F,EAAQS,EAC3BC,EAAWrG,EAAO2F,EAAQW,EAC1BC,EAAUvG,EAAO2F,EAAQa,EACzBC,EAAUzG,EAAO2F,EAAQe,EACzBvI,EAAU8H,EAAYjB,EAAOA,EAAK7E,KAAU6E,EAAK7E,GAAQ,IACzDwG,EAAWxI,EAAQyI,GACnB3G,EAASgG,EAAYX,EAASa,EAAYb,EAAOnF,IAASmF,EAAOnF,IAAS,IAAIyG,GAIlF,IAAKjF,KAFDsE,IAAWL,EAASzF,GAEZyF,GAEVC,GAAOE,GAAa9F,QAA0BI,IAAhBJ,EAAO0B,KAC1BkF,EAAI1I,EAASwD,KAExBmE,EAAMD,EAAM5F,EAAO0B,GAAOiE,EAAOjE,GAEjCxD,EAAQwD,GAAOsE,GAAmC,mBAAfhG,EAAO0B,GAAqBiE,EAAOjE,GACpE4E,GAAWV,EAAMiB,EAAIhB,EAAKR,GAC1BmB,GAAWxG,EAAO0B,IAAQmE,EAAM,SAAUiB,GAClC,SAAJf,EAAegB,EAAGC,EAAGtG,GACvB,GAAIuG,gBAAgBH,EAAG,CACrB,OAAQI,UAAUvK,QAChB,KAAK,EACH,OAAO,IAAImK,EAEb,KAAK,EACH,OAAO,IAAIA,EAAEC,GAEf,KAAK,EACH,OAAO,IAAID,EAAEC,EAAGC,GAGpB,OAAO,IAAIF,EAAEC,EAAGC,EAAGtG,GAGrB,OAAOoG,EAAExJ,MAAM2J,KAAMC,WAIvB,OADAnB,EAAEY,GAAaG,EAAEH,GACVZ,EArByB,CAsBhCF,GAAOO,GAA0B,mBAAPP,EAAoBgB,EAAIrB,SAASzI,KAAM8I,GAAOA,EAEtEO,KACDlI,EAAQiJ,UAAYjJ,EAAQiJ,QAAU,KAAKzF,GAAOmE,EAE/C9F,EAAO2F,EAAQ0B,GAAKV,IAAaA,EAAShF,IAAM2F,EAAKX,EAAUhF,EAAKmE,KA7D9E,IAAIR,EAAS,EAAQ,KAEjBN,EAAO,EAAQ,KAEf8B,EAAM,EAAQ,KAEdQ,EAAO,EAAQ,KAEfT,EAAM,EAAQ,KAEdD,EAAY,YAyDhBjB,EAAQK,EAAI,EAEZL,EAAQO,EAAI,EAEZP,EAAQS,EAAI,EAEZT,EAAQW,EAAI,EAEZX,EAAQa,EAAI,GAEZb,EAAQe,EAAI,GAEZf,EAAQ4B,EAAI,GAEZ5B,EAAQ0B,EAAI,IAEZjJ,EAAOD,QAAUwH,G,oBCnFjB,IAAI6B,EAAK,EAAQ,KAEbC,EAAa,EAAQ,KAEzBrJ,EAAOD,QAAU,EAAQ,KAAoB,SAAU2D,EAAQH,EAAKN,GAClE,OAAOmG,EAAGE,EAAE5F,EAAQH,EAAK8F,EAAW,EAAGpG,KACrC,SAAUS,EAAQH,EAAKN,GAEzB,OADAS,EAAOH,GAAON,EACPS,I,oBCRT,IAAI6F,EAAW,EAAQ,KAEnBC,EAAiB,EAAQ,KAEzBC,EAAc,EAAQ,KAEtBL,EAAK3K,OAAOkE,eAChB5C,EAAQuJ,EAAI,EAAQ,KAAoB7K,OAAOkE,eAAiB,SAAwB+G,EAAGxB,EAAGyB,GAI5F,GAHAJ,EAASG,GACTxB,EAAIuB,EAAYvB,GAAG,GACnBqB,EAASI,GACLH,EAAgB,IAClB,OAAOJ,EAAGM,EAAGxB,EAAGyB,GAChB,MAAOzJ,IAGT,GAAI,QAASyJ,GAAc,QAASA,EAAY,MAAMC,UAAU,4BAEhE,MADI,UAAWD,IAAYD,EAAExB,GAAKyB,EAAW1G,OACtCyG,I,oBClBT,IAAIG,EAAW,EAAQ,KAEvB7J,EAAOD,QAAU,SAAU+J,GACzB,IAAKD,EAASC,GAAK,MAAMF,UAAUE,EAAK,sBACxC,OAAOA,I,oBCHT9J,EAAOD,SAAW,EAAQ,IAAR,CAAoB,WACpC,OAIQ,GAJDtB,OAAOkE,eAAe,GAAI,IAAK,CACpCE,IAAK,WACH,OAAO,KAER+F,K,kBCNL,IAAIjK,EAAiB,GAAGA,eAExBqB,EAAOD,QAAU,SAAU+J,EAAIvG,GAC7B,OAAO5E,EAAeC,KAAKkL,EAAIvG,K,iCCIlB,SAAXwG,EAA6BC,GAC/B,IAAI5F,EAAQ4F,EAAM5F,MACd6F,EAAOD,EAAMC,KACbC,EAAMF,EAAME,IACZlM,EAAOgM,EAAMhM,KACjB,OAAO,YAAQoG,EAAO6F,EAAMC,EAAKlM,GAYX,SAApBmM,EAA+CH,GACjD,IAAI5F,EAAQ4F,EAAM5F,MACd6F,EAAOD,EAAMC,KACbC,EAAMF,EAAME,IACZlM,EAAOgM,EAAMhM,KACjB,OAAO,YAAiBoG,EAAO6F,EAAMC,EAAKlM,GAGzB,SAAfoM,EAAqClK,EAAG8J,GACrCA,EAAMK,UAQXA,EAJcL,EAAMK,SAERF,EAAkBH,GAEf9J,GAGC,SAAdoK,EAAmCpK,EAAG8J,GACnCA,EAAMO,SAQXA,EAJaP,EAAMO,QAEPJ,EAAkBH,GAEhB9J,GAGG,SAAfsK,EAAqCtK,EAAG8J,GACrCA,EAAMS,UAQXA,EAJcT,EAAMS,SAERN,EAAkBH,GAEf9J,GAOQ,SAArBwK,EAAiDC,GACnD,IAESpH,EAP0BN,EAK/B2H,EAAM/J,SAASC,cAAc,OAEjC,IAASyC,KAAOoH,EAAO,CACrB,IAAI1H,EAAQ0H,EAAMpH,GAReN,EAUlBA,EATT4H,MAAM5H,EAAQ6H,WAAW7H,MAU7BA,GAAS,MAGX2H,EAAID,MAAMpH,GAAON,EAGnB,OAAO2H,EAAIG,aAAa,SAGR,SAAdC,EAAmChB,GAKrC,IAAK,IAAIiB,KAJLjB,EAAMhM,KAAKwI,YACb,qBAAWwD,EAAMhM,MAGLgN,EAAYE,aACRjJ,MAAZ+H,EAAMiB,IAAkDhJ,MAA/B+I,EAAYE,aAAaD,KACpDjB,EAAMiB,GAAKD,EAAYE,aAAaD,IAIxC,IAAIjN,EAAO+L,EAASC,GAEpB,IAAKhM,EACH,OAAO,KAGT,IAzFImN,EAyFA/F,EAAUpH,EAAKoH,QACfgG,EAASpN,EAAKoN,OACdrG,EAAc/G,EAAK+G,YACnBsG,EAASrN,EAAKqN,OACdC,EAAWtN,EAAKsN,SAChBC,EAASvN,EAAKuN,OACdZ,EAAQ,GACRa,EAAWxB,EAAMwB,SACjBC,EAAY,mBACZC,EAAQ,KAEZ,IAAKtG,IAAYgG,EACf,OAAO,KAOT,GAJIpB,EAAM2B,UACRD,EAAQ3G,EAAc,IAAMA,EAAY,GAAK,IAAMsG,GAGjDrB,EAAM4B,QAAUxG,EAClBqG,GAAa,2BACbd,EAAQ,CACNkB,SAAU7B,EAAM8B,MAElBN,EAAW,YAAgBpG,GAEvB4E,EAAM+B,YACRpB,EAAMqB,QAAU,eAChBrB,EAAMsB,MAAQjC,EAAM8B,KACpBnB,EAAMuB,OAASlC,EAAM8B,WAElB,GAAIV,EACTK,GAAa,2BACbd,EAAQ,CACNsB,MAAOjC,EAAM8B,KACbI,OAAQlC,EAAM8B,KACdE,QAAS,eACTG,gBAAiB,OAASb,EAAW,IACrCc,eAAgB,gBAEb,GAAIb,EACTE,GAAa,2BACbd,EAAQ,CACNsB,MAAOjC,EAAM8B,KACbI,OAAQlC,EAAM8B,KACdE,QAAS,eACTI,eAAgB,eAEb,CAGL,KAFkDnK,MAAhCjE,EAAK,WAAagM,EAAME,MAAqBlM,EAAK,WAAagM,EAAME,MAGrF,OAAIF,EAAMqC,SACDrC,EAAMqC,SAASrO,GAEf,KAGT2M,EAAQ,CACNsB,MAAOjC,EAAM8B,KACbI,OAAQlC,EAAM8B,KACdE,QAAS,eACTG,gBAAiB,OAASnC,EAAMsC,kBAAkBtC,EAAME,IAAKF,EAAMuC,WAAa,IAChFH,eAAgB,QAChBI,mBArJS,IAAM,IAJjBrB,EAAYpB,EAyJuBC,IAvJf9D,QAGI,KADb,IAAM,GADPiF,EAAUhF,QAEgC,KAyJxD,OAAI6D,EAAMyC,KAED,iBADP9B,EAAQD,EAAmBC,IACO,MAASe,EAAQ,UAAaA,EAAQ,IAAO,IAAM,WAAcD,EAAY,MAASD,GAAY,IAAM,UACjID,EACF,IAAMzK,cAAc,OAAQ,CACjCyC,IAAKyG,EAAM5F,MAAMmC,IAAMyD,EAAM5F,MAC7BiG,QAAS,SAAiBnK,GACxB,OAAOkK,EAAalK,EAAG8J,IAEzB0C,aAAc,SAAsBxM,GAClC,OAAOoK,EAAYpK,EAAG8J,IAExB2C,aAAc,SAAsBzM,GAClC,OAAOsK,EAAatK,EAAG8J,IAEzB0B,MAAOA,EACPD,UAAWA,GACVF,GAEI,IAAMzK,cAAc,OAAQ,CACjCyC,IAAKyG,EAAM5F,MAAMmC,IAAMyD,EAAM5F,MAC7BiG,QAAS,SAAiBnK,GACxB,OAAOkK,EAAalK,EAAG8J,IAEzB0C,aAAc,SAAsBxM,GAClC,OAAOoK,EAAYpK,EAAG8J,IAExB2C,aAAc,SAAsBzM,GAClC,OAAOsK,EAAatK,EAAG8J,IAEzB0B,MAAOA,EACPD,UAAWA,GACV,IAAM3K,cAAc,OAAQ,CAC7B6J,MAAOA,GACNa,IAhNP,oDAoNAR,EAAYE,aAAe,IACZ,O,ik5iBC7KT0B,EAAWC,YAAe,CAC9BC,cAAc,CAAD,2DACbC,cAAc,CAAD,+FACbC,eAAe,CAAD,sEACdC,eAAe,CAAD,uMACdC,aAAa,CAAD,yDACZC,aAAa,CAAD,yDACZC,aAAa,CAAD,0JACZC,eAAe,CAAD,6EAqLDC,gBAAWC,kBAlLE,WAC1B,IAAMC,EAAYC,cAQlB,OANwB,SAACC,EAAO1D,GAAR,MAAmB,CACzC2D,OAAQH,EAAUE,EAAO1D,GACzB4D,aAAcC,YAAYH,GAAO7K,IAAI,gBACrCiL,aAAcC,YAAiBL,GAAO7K,IAAI,mBAMnB,SAACmL,EAAD,OAAaC,EAAb,EAAaA,KAAb,MAAyB,CAElDC,QAFkD,SAE1CP,EAAQQ,GACdH,EAAS,SAACI,EAAGC,GAE4C,IAD3CA,IACFC,MAAM,CAAC,UAAW,SAASC,OAAO/P,OAC1CwP,EAASQ,YAAU,UAAW,CAC5B1M,QAASmM,EAAKQ,cAAc7B,EAASQ,cACrCsB,QAAST,EAAKQ,cAAc7B,EAASO,cACrCwB,UAAW,kBAAMX,EAASY,aAAajB,EAAQQ,QAGjDH,EAASY,aAAajB,EAAQQ,OAKpCU,cAjBkD,SAiBpClB,GACRA,EAAO9K,IAAI,aACbmL,EAASc,YAASnB,IAElBK,EAASe,YAAOpB,KAIpBqB,SAzBkD,SAyBzCrB,EAAQzN,GAAI,IAAD,OAClB8N,EAAS,SAACI,EAAGC,GACX,IAAMY,EAAapB,YAAYQ,KAAYxL,IAAI,cAC3C3C,EAAEgP,WAAaD,EACjB,EAAKJ,cAAclB,GAEnBK,EAASQ,YAAU,QAAS,CAAEb,SAAQqB,SAAU,EAAKH,oBAK3DM,YApCkD,SAoCtCxB,GACNA,EAAO9K,IAAI,cACbmL,EAASoB,YAAYzB,IAErBK,EAASqB,YAAU1B,KAIvB2B,WA5CkD,SA4CvC3B,GACLA,EAAO9K,IAAI,cACbmL,EAASuB,YAAW5B,IAEpBK,EAASwB,YAAS7B,KAItB8B,MApDkD,SAoD5C9B,GACAA,EAAO9K,IAAI,UACbmL,EAAS0B,YAAM/B,IAEfK,EAAS2B,YAAIhC,KAIjBiC,QA5DkD,SA4D1CjC,GACNK,EAASQ,YAAU,QAAS,CAC1BqB,IAAKlC,EAAO9K,IAAI,OAChBiN,QAAS,SAAAzP,GAAK,OAAI2N,EAAS+B,YAAkB1P,SAIjD2P,SAnEkD,SAmEzCrC,EAAQsC,EAASC,QAAqB,IAArBA,OAAc,GACtClC,EAAS,SAACI,EAAGC,GACX,IAAM8B,EAActC,YAAYQ,KAAYxL,IAAI,eAI9CmL,EAHGmC,EAGM3B,YAAU,UAAW,CAC5B1M,QAASmM,EAAKQ,cAAcyB,EAActD,EAASK,eAAiBL,EAASG,eAC7E2B,QAAST,EAAKQ,cAAcyB,EAActD,EAASI,eAAiBJ,EAASE,eAC7E6B,UAAW,kBAAMX,EAASoC,YAAazC,EAAO9K,IAAI,MAAOoN,EAASC,OAL3DE,YAAazC,EAAO9K,IAAI,MAAOoN,EAASC,OAWvDG,SAlFkD,SAkFzCC,EAASnC,GAChBH,EAASuC,YAAcD,EAASnC,KAGlCqC,UAtFkD,SAsFxCF,EAASnC,GACjBH,EAASyC,aAAeH,EAASnC,KAGnCuC,YA1FkD,SA0FtCC,EAAOC,GACjB5C,EAASQ,YAAU,QAAS,CAAEmC,QAAOC,YAGvCC,YA9FkD,SA8FtCF,EAAOG,GACjB9C,EAASQ,YAAU,QAAS,CAAEmC,QAAOG,WAGvCC,YAlGkD,SAkGtCJ,EAAOG,GACjB9C,EAASQ,YAAU,QAAS,CAAEmC,QAAOG,WAGvCE,QAtGkD,SAsG1CrD,GACN,IAAM2C,EAAU3C,EAAO9K,IAAI,WAC3BmL,EAASQ,YAAU,UAAW,CAC5B1M,QAAS,YAAC,IAAD,CAAkByE,GAAG,8BAA8B0K,eAAe,yCAAyCC,OAAQ,CAAEnP,KAAM,mCAAUuO,EAAQzN,IAAI,YAC1J6L,QAAST,EAAKQ,cAAc7B,EAASM,cACrCyB,UAAW,kBAAMX,EAASmD,YAAab,EAAQzN,IAAI,SACnDuO,UAAWnD,EAAKQ,cAAc7B,EAASS,gBACvCgE,YAAa,WACXrD,EAASmD,YAAab,EAAQzN,IAAI,QAClCmL,EAASsD,YAAWhB,EAAS3C,SAKnC4D,SApHkD,SAoHzC5D,GACPK,EAASsD,YAAW3D,EAAO9K,IAAI,WAAY8K,KAG7C6D,OAxHkD,SAwH3ClB,GACLtC,EAASyD,YAAcnB,KAGzBoB,mBA5HkD,SA4H/B/D,GACbA,EAAO9K,IAAI,SACbmL,EAAS2D,YAAahE,EAAO9K,IAAI,QAEjCmL,EAAS4D,YAAWjE,EAAO9K,IAAI,SAInCgP,eApIkD,SAoInClE,GACTA,EAAO9K,IAAI,UACbmL,EAAS8D,YAAanE,EAAO9K,IAAI,QAEjCmL,EAAS+D,YAAWpE,EAAO9K,IAAI,SAInCmP,qBA5IkD,SA4I7BC,EAASC,GAC5BlE,EAASmE,YAAqBF,EAASC,KAGzCE,oBAhJkD,SAgJ9BH,EAASI,GAC3BrE,EAASsE,YAAkBL,EAASI,KAGtCE,iBApJkD,SAoJjC5E,GACfK,EAASwE,YAAoBvE,EAAMN,EAAOW,MAAM,CAAC,UAAW,UAG9DmE,aAxJkD,SAwJrC9E,GACXK,EAAS0E,YAAgBzE,EAAMN,EAAOW,MAAM,CAAC,UAAW,UAG1DqE,eA5JkD,SA4JnChF,GACbK,EAAS4E,YAAkB3E,EAAMN,EAAO9K,IAAI,SAG9CgQ,0BAhKkD,SAgKxBlF,GACxBK,EAAS8E,YAA6B7E,EAAMN,EAAO9K,IAAI,MAAO8K,EAAO9K,IAAI,kBAKnD0K,CAAiDwF,O,kBCrO3E/S,EAAOD,QAAU,SAAU+J,GACzB,MAAqB,iBAAPA,EAAyB,OAAPA,EAA4B,mBAAPA,I,kBCDvD9J,EAAOD,QAAU,SAAUiT,GACzB,IACE,QAASA,IACT,MAAO9S,GACP,OAAO,K,kBCJXF,EAAOD,QAAU,SAAUkT,EAAQhQ,GACjC,MAAO,CACLL,aAAuB,EAATqQ,GACdC,eAAyB,EAATD,GAChBE,WAAqB,EAATF,GACZhQ,MAAOA,K,oBCJX,IAAImQ,EAAQ,EAAQ,KAEhBC,EAAc,EAAQ,KAE1BrT,EAAOD,QAAUtB,OAAO6U,MAAQ,SAAc5J,GAC5C,OAAO0J,EAAM1J,EAAG2J,K,oBCLlB,IAAIE,EAAU,EAAQ,KAElBC,EAAU,EAAQ,KAEtBxT,EAAOD,QAAU,SAAU+J,GACzB,OAAOyJ,EAAQC,EAAQ1J,M,kBCLzB9J,EAAOD,QAAU,SAAU+J,GACzB,GAAU7H,MAAN6H,EAAiB,MAAMF,UAAU,yBAA2BE,GAChE,OAAOA,I,kBCFT,IAAI2J,EAAOtM,KAAKsM,KACZC,EAAQvM,KAAKuM,MAEjB1T,EAAOD,QAAU,SAAU+J,GACzB,OAAOe,MAAMf,GAAMA,GAAM,GAAU,EAALA,EAAS4J,EAAQD,GAAM3J,K,oBCLvD,IAAI6J,EAAS,EAAQ,IAAR,CAAqB,QAE9B3M,EAAM,EAAQ,KAElBhH,EAAOD,QAAU,SAAUwD,GACzB,OAAOoQ,EAAOpQ,KAASoQ,EAAOpQ,GAAOyD,EAAIzD,M,kBCL3CvD,EAAOD,QAAU,I,oBCCjB,IAAIyT,EAAU,EAAQ,KAEtBxT,EAAOD,QAAU,SAAU+J,GACzB,OAAOrL,OAAO+U,EAAQ1J,M,iCCJxB,aAMM8J,EAAY,IANlB,OAMsBC,GAClBC,GAA6B,EAEjC,SAASC,EAASC,GAChB,KAAOJ,EAAUpV,QAAqC,EAA3BwV,EAASC,iBAClCL,EAAU3U,OAAV2U,GAEEA,EAAUpV,OACZ0V,oBAAoBH,GAEpBD,GAA6B,EAYlBK,IARf,SAA0BC,GACxBR,EAAU9U,KAAKsV,GACVN,IACHA,GAA6B,EAC7BI,oBAAoBH,M,qCCpBpBM,E,6FAgBWC,I,MAAAA,EAdf,SAA0BC,GACxB,IACQC,EACAC,EAQR,MAVkC,kBAAvBJ,IACHG,EAAeD,EAAM1S,OAAO6S,wBAC5BD,EAAeF,EAAMI,mBAC3BN,EAAqBG,EAAatI,SAAWuI,EAAavI,QACxDsI,EAAaI,MAAQH,EAAaG,KAClCJ,EAAavI,QAAUwI,EAAaxI,OACpCuI,EAAaK,SAAWJ,EAAaI,QACrCL,EAAaM,OAASL,EAAaK,MACnCN,EAAaO,QAAUN,EAAaM,OAEjCV,EAAqBE,EAAM1S,OAAO6S,wBAA0BH,EAAMI,oB,OCVrEK,EAA2B,CAAC,KAAM,QAAS,cAE3CC,EAA6B,CAAC,KAAM,QAAS,aAAc,gBAE5CC,E,sLAaX,CACNC,UAAU,EACVC,gBAAgB,I,gDAkCG,SAACb,GACpB,EAAKA,MAAQA,EAEbJ,YAAiB,EAAKkB,iBACtB,EAAKC,SAAS,EAAKC,gC,0DAGU,SAACC,GAI9B,OAHiC,IAA7BA,EAAUJ,gBAA6B,EAAKb,MAAMa,gBACpDjB,YAAiB,EAAKsB,uBAEjB,CACLL,eAAgB,EAAKb,MAAMa,eAC3BD,UAAU,K,6CAII,WAAO,IAAD,EACwB,EAAKnL,MAA3C0L,EADc,EACdA,eAAgBC,EADF,EACEA,cAAepP,EADjB,EACiBA,GAGvC,EAAK2F,OAASoI,EAAiB,EAAKC,OAAOrI,OAEvCwJ,GAAkBC,GACpBD,EAAeC,EAAepP,EAAI,EAAK2F,U,mDAInB,WACjB,EAAK0J,kBAOV,EAAKN,SAAS,SAACE,GAAD,MAAgB,CAAEL,UAAWK,EAAUJ,oB,uCAG3C,SAACS,GACX,EAAKA,KAAOA,I,8CAvEdC,sBAAA,SAAsBC,EAAWC,GAAY,IAAD,OACpCC,GAAgBnN,KAAK4E,MAAM0H,iBAAmBtM,KAAK4E,MAAMyH,UAAYrM,KAAKkB,MAAMkM,cAEtF,QAAMD,OADoBD,EAAUZ,iBAAmBY,EAAUb,UAAYY,EAAUG,kBAMnED,EAAehB,EAA6BD,GAC5CmB,MAAM,SAAAC,GAAI,OAAIC,aAAGN,EAAUK,GAAO,EAAKpM,MAAMoM,O,EAGnEE,kBAAA,WAAqB,IAAD,EAC0BxN,KAAKkB,MAAzCuM,EADU,EACVA,4BAA6BhQ,EADnB,EACmBA,GAErCgQ,EAA4BC,QAC1BjQ,EACAuC,KAAK+M,KACL/M,KAAK2N,oBAGP3N,KAAK8M,kBAAmB,G,EAG1Bc,qBAAA,WAAwB,IAAD,EACuB5N,KAAKkB,MAAzCuM,EADa,EACbA,4BAA6BhQ,EADhB,EACgBA,GACrCgQ,EAA4BI,UAAUpQ,EAAIuC,KAAK+M,MAE/C/M,KAAK8M,kBAAmB,G,EA8C1BrK,OAAA,WAAU,IAAD,EACmDzC,KAAKkB,MAAvDwB,EADD,EACCA,SAAUjF,EADX,EACWA,GAAIqK,EADf,EACeA,MAAOgG,EADtB,EACsBA,WAAYV,EADlC,EACkCA,aADlC,EAE8BpN,KAAK4E,MAAlC0H,EAFD,EAECA,eAAgBD,EAFjB,EAEiBA,SAExB,OAAKC,IAAmBD,IAAYe,EAgBlC,6BAASW,IAAK/N,KAAKgO,UAAWC,gBAAenG,EAAQ,EAAGoG,eAAcJ,EAAYK,UAAS1Q,EAAI2Q,SAAS,KACrG1L,GAAY2L,IAAMC,aAAa5L,EAAU,CAAE6L,QAAQ,KAfpD,6BACER,IAAK/N,KAAKgO,UACVC,gBAAenG,EAAQ,EACvBoG,eAAcJ,EACdjM,MAAO,CAAEuB,QAAWpD,KAAKoD,QAAUgK,GAApB,KAAsCoB,QAAS,EAAGC,SAAU,UAC3EN,UAAS1Q,EACT2Q,SAAS,KAER1L,GAAY2L,IAAMC,aAAa5L,EAAU,CAAE6L,QAAQ,M,GA1GLF,IAAMK,W,SCKhDjK,oBAZa,SAACG,EAAO1D,GAAR,MAAmB,CAC7CkM,aAAcxI,EAAMY,MAAM,CAAC,eAAgBtE,EAAM2L,cAAe3L,EAAMzD,OAG7C,SAACyH,GAAD,MAAe,CAExC0H,eAFwC,SAEzBnS,EAAKgD,EAAI2F,GACtB8B,EAASyJ,YAAUlU,EAAKgD,EAAI2F,OAKjBqB,CAAiD2H,G,wBCZ1DtI,EAAWC,YAAe,CAC9B6K,UAAU,CAAD,oIAITC,UAAU,CAAD,0IAQLC,EADUtK,a,+LAcD,WAAO,IAAD,EACa,EAAKtD,MAA3BpI,EADS,EACTA,KAAMiW,EADG,EACHA,MACd,OAFiB,EACI5J,KACTQ,cAAc7B,EAAShL,GAAO,CAAEiW,Y,sCAG9CtM,OAAA,WACE,OACE,mBAAKE,UAAU,8BAAf,EACE,4BACE,mBAAKA,UAAU,+BAA+Bd,MAAO,CAAEmN,WAAYhP,KAAKkB,MAAM+N,QAAU,UAAY,gBAApG,EACGjP,KAAKkP,iB,GAvBQb,IAAMc,e,6BASR,CACpBF,SAAS,I,SC6BEG,E,qDA/CD,I,mCACM,I,4BACP,M,2BAEX3K,QAAA,SAAQ4K,GAAU,IAAD,OAUfrP,KAAKsP,SAAW,IAAIC,qBATG,SAACC,GACtBA,EAAQ5T,QAAQ,SAAA6P,GACd,IAAMhO,EAAKgO,EAAM1S,OAAOkJ,aAAa,WACjC,EAAKwN,UAAUhS,IACjB,EAAKgS,UAAUhS,GAAIgO,MAKgC4D,GACzDrP,KAAK0P,gBAAgB9T,QAAQ,YAA6B,IAA1B6B,EAAyB,KAArBsP,EAAqB,KAAf4C,EAAe,KACvD,EAAKjC,QAAQjQ,EAAIsP,EAAM4C,KAEzB3P,KAAK0P,gBAAkB,M,EAGzBhC,QAAA,SAAQjQ,EAAIsP,EAAM4C,GACX3P,KAAKsP,UAGRtP,KAAKyP,UAAUhS,GAAMkS,EACrB3P,KAAKsP,SAAS5B,QAAQX,IAHtB/M,KAAK0P,gBAAgB1Z,KAAK,CAAEyH,EAAIsP,EAAM4C,K,EAO1C9B,UAAA,SAAUpQ,EAAIsP,GACR/M,KAAKsP,kBACAtP,KAAKyP,UAAUhS,GACtBuC,KAAKsP,SAASzB,UAAUd,K,EAI5B6C,WAAA,WACM5P,KAAKsP,WACPtP,KAAKyP,UAAY,GACjBzP,KAAKsP,SAASM,aACd5P,KAAKsP,SAAW,O,8CCxCtB,IAEqBO,E,sLAqBX,CACNC,iBAAkB,M,yDAGU,IAAIV,G,4CAEjB,M,iDACI,G,qDACI,G,qDACA,G,0CAEV,SAAAW,GACT,EAAKC,gBAAgBC,YAAcF,IACrC,EAAKG,wBAAyB,EAC9B,EAAKF,gBAAgBC,UAAYF,K,iDAIf,WACQ,OAAxB,EAAKI,iBAITzX,aAAa,EAAKyX,gBAClB,EAAKA,eAAiB,Q,6CAGN,IAAS,WAEzB,EAAKC,sBACL,EAAKD,eAAiB/W,WAAW,EAAKiX,gBArDjB,KAuDhB,EAAKC,oBAAyD,IAAnC,EAAKN,gBAAgBC,YAEnD,EAAKM,wBAAyB,GAIhC,EAAKD,oBAAqB,GACzBE,M,6CAEe,WACZ,EAAKD,wBACP,EAAKE,aAAa,GAGpB,EAAKH,oBAAqB,EAC1B,EAAKC,wBAAyB,I,+CAaZ,WAClB,OAAI,EAAKP,kBAAqD,EAAjC,EAAKA,gBAAgBC,WAAiB,EAAKK,oBAC/D,CAAElN,OAAQ,EAAK4M,gBAAgBU,aAAc5E,IAAK,EAAKkE,gBAAgBC,WAEvE,O,gDAIU,SAACU,GACpB,IAAMZ,EAAe,EAAKC,gBAAgBU,aAAeC,EAEzD,EAAKF,aAAaV,K,0CAqBL,IAAS,WACtB,IAAiB,EACPE,EADN,EAAK/U,SACC+U,GADO,EACqB,EAAKD,iBAAjCC,UADO,EACIS,aAEWT,EADN,EAAK/U,OAArB0V,YAGJ,KAAgB,EAAK1P,MAAM2P,YAAc,EAAK3P,MAAM4P,UAAY,EAAK5P,MAAM6P,WAC7E,EAAK7P,MAAM2P,aAGTZ,EAAY,KAAO,EAAK/O,MAAM8P,cAChC,EAAK9P,MAAM8P,gBACF,EAAK9P,MAAM+P,UACpB,EAAK/P,MAAM+P,WAGR,EAAKf,yBAGR,EAAKK,wBAAyB,GAEhC,EAAKL,wBAAyB,IAE/B,IAAK,CACNgB,UAAU,K,yCAGE,IAAS,WACrB,EAAKX,wBAAyB,GAC7B,IAAK,CACNW,UAAU,K,6CAeM,SAAC/N,GACbA,GAAS,EAAKyB,MAAMkL,mBAAqB3M,GAC3C,EAAKqJ,SAAS,CAAEsD,iBAAkB3M,M,4CA+BrB,SAAA/L,GACfA,EAAE+Z,iBACF,EAAKjQ,MAAM2P,e,4CAGI,WAAO,IAAD,EACgC,EAAK3P,MAAlDkQ,EADa,EACbA,UAAWL,EADE,EACFA,UAAWM,EADT,EACSA,UAAWP,EADpB,EACoBA,QACnCQ,EAAgB,CAAC,YAAa,aAAaC,KAAK,SAAApP,GAAC,OAAIA,IAAMiP,IACjE,OAAMC,IAAaC,GACfR,EADsC,KAIxC,YAAC,EAAD,CAAa7B,SAAU8B,EAAWhC,MAAOsC,EAAWvY,KAAMsY,M,8CApI9D5D,kBAAA,WACExN,KAAK9E,OAASA,OACd8E,KAAKgQ,gBAAkBjY,SAASyZ,kBAAoBzZ,SAASiY,gBAE7DhQ,KAAKyR,uBACLzR,KAAK0R,6BAEL1R,KAAK2R,gB,EAiBPC,mBAAA,SAAmBC,EAAWnF,EAAWiE,GAGtB,OAAbA,GACF3Q,KAAKyQ,aAAazQ,KAAKgQ,gBAAgBU,aAAeC,I,EAI1Dc,qBAAA,WACEzR,KAAK9E,OAAO4W,iBAAiB,SAAU9R,KAAK2R,cAC5C3R,KAAK9E,OAAO4W,iBAAiB,QAAS9R,KAAK+R,c,EAG7CC,qBAAA,WACEhS,KAAK9E,OAAO+W,oBAAoB,SAAUjS,KAAK2R,cAC/C3R,KAAK9E,OAAO+W,oBAAoB,QAASjS,KAAK+R,c,EAoChDG,wBAAA,SAAwBL,GAKtB,OAJoE,EAA3CxD,IAAM8D,SAASpD,MAAM8C,EAAUnP,WACtD2L,IAAM8D,SAASpD,MAAM8C,EAAUnP,UAAY2L,IAAM8D,SAASpD,MAAM/O,KAAKkB,MAAMwB,WAC3E1C,KAAKoS,iBAAiBP,KAAe7R,KAAKoS,iBAAiBpS,KAAKkB,SAER,EAAjClB,KAAKgQ,gBAAgBC,WAAiBjQ,KAAKsQ,oBAC3DtQ,KAAKgQ,gBAAgBU,aAAe1Q,KAAKgQ,gBAAgBC,UAEzD,M,EAUXrC,qBAAA,WACE5N,KAAKoQ,sBACLpQ,KAAKgS,uBACLhS,KAAKqS,8B,EAGPX,2BAAA,WACE1R,KAAKyN,4BAA4BhJ,W,EAGnC4N,2BAAA,WACErS,KAAKyN,4BAA4BmC,c,EAGnCwC,iBAAA,SAAiBlR,GAAQ,IACfwB,EAAaxB,EAAbwB,SACJ4P,EAAiB5P,EAQrB,OANIA,aAAoB6P,OACtBD,EAAa5P,EAAS3I,IAAI,GACjB2B,MAAMC,QAAQ+G,KACvB4P,EAAa5P,EAAS,IAGjB4P,GAAcA,EAAW7X,K,EAmBlCgI,OAAA,WAAU,IAAD,SAC4GzC,KAAKkB,MAAhHwB,EADD,EACCA,SAAU0O,EADX,EACWA,UAAWoB,EADtB,EACsBA,YAAazB,EADnC,EACmCA,UAAWD,EAD9C,EAC8CA,QAAS2B,EADvD,EACuDA,QAASC,EADhE,EACgEA,cAAeC,EAD/E,EAC+EA,aAAc9B,EAD7F,EAC6FA,WAC9F+B,EAAgBvE,IAAM8D,SAASpD,MAAMrM,GAGrCmQ,EAAgB/B,GAAWD,EAAc,YAAC,IAAD,CAAU5B,SAAU8B,EAAWxP,QAASvB,KAAK8S,iBAAqB,KAuDjH,OApDIN,EAEA,mBAAK7P,UAAU,0BAAf,EACE,mBAAKoQ,KAAK,OAAOpQ,UAAU,kBAA3B,EACG8P,GAGH,mBAAK9P,UAAU,sBAAf,EACE,YAAC,IAAD,MAIGoO,GAA6B,EAAhB6B,GAAqB9B,IAAY6B,EAErD,yBAAKhQ,UAAU,QAAQoL,IAAK/N,KAAKgT,OAAQC,YAAajT,KAAKkT,iBACzD,mBAAKH,KAAK,OAAOpQ,UAAU,kBAA3B,EACG8P,EAEApE,IAAM8D,SAASgB,IAAInT,KAAKkB,MAAMwB,SAAU,SAAC0Q,EAAOtL,GAAR,OACvC,YAAC,EAAD,CAEErK,GAAI2V,EAAM3Y,IACVqN,MAAOA,EACPgG,WAAY8E,EACZnF,4BAA6B,EAAKA,4BAClCZ,cAAgC,EAAKwG,QAAQhO,OAAOiO,MAAMC,SAAS9Y,IAAzC,IAAgD2W,GALrEgC,EAAM3Y,IAOV4T,IAAMC,aAAa8E,EAAO,CACzBI,kBAAmB,EAAKA,kBACxBC,mBAAoB,EAAKA,mBACzB3D,iBAAkB,EAAKlL,MAAMkL,iBAC7B4D,gBAAiB,EAAKA,qBAI3B1T,KAAK2T,iBACLd,IAML,yBAAKlQ,UAAU,oBAAoBoL,IAAK/N,KAAKgT,QAC1CN,GAAiBD,EAElB,mBAAK9P,UAAU,+BAAf,EACE,4BAAMgQ,M,GArQ0BxD,iB,YAAvBU,E,eAEG,CACpBxK,OAAQuO,IAAUhZ,U,8OCJhBkJ,EAAWC,YAAe,CAC9B8P,MAAM,CAAD,oHAGcC,E,uMA2BM,WACvB,OAAO,EAAK5S,MAAM6S,kBAAoB,EAAK7S,MAAM6S,kBAAkB/Q,KAAO,I,mDAGpD,SAACvF,EAAIuW,GAC3B,OAAIA,EACK,EAAK9S,MAAM6S,kBAAkB/X,QAAQyB,GAErC,EAAKyD,MAAM+S,UAAUjY,QAAQyB,GAAM,EAAKyW,2B,0CAIpC,SAACzW,EAAIuW,GAClB,IAAMG,EAAe,EAAKC,sBAAsB3W,EAAIuW,GAAY,EAChE,EAAKK,aAAaF,GAAc,K,4CAGjB,SAAC1W,EAAIuW,GACpB,IAAMG,EAAe,EAAKC,sBAAsB3W,EAAIuW,GAAY,EAChE,EAAKK,aAAaF,GAAc,K,6CAGhB,IAAS,WACzB,IAAMG,EAAa,EAAKpT,MAAMqT,aAAe,EAAKrT,MAAMqT,aAAe,EAAKrT,MAAM+S,UAAUO,OAC5F,EAAKtT,MAAM2P,WAAWyD,IACrB,IAAK,CAAEG,SAAS,K,mDAgBK,WAAO,IAAD,EACc,EAAKvT,MAAvCwT,EADoB,EACpBA,kBAAmBC,EADC,EACDA,WACtBD,GAAsBC,GAC3BD,EAAkBC,K,oCAGX,SAAAlb,GACP,EAAKsT,KAAOtT,I,8CApDd+T,kBAAA,WACExN,KAAK4U,yB,EA8BPP,aAAA,SAAavM,EAAO+M,GAClB,IAAMC,EAAY9U,KAAK+M,KAAKA,KACtBgI,EAAUD,EAAUE,cAAV,wBAA+ClN,EAAQ,GAAvD,gBAEZiN,IACEF,GAAaC,EAAU7E,UAAY8E,EAAQE,UAC7CF,EAAQG,gBAAe,IACbL,GAAaC,EAAU7E,UAAY6E,EAAUK,aAAeJ,EAAQE,UAAYF,EAAQK,cAClGL,EAAQG,gBAAe,GAEzBH,EAAQM,U,EAcZ5S,OAAA,WAAU,IAAD,SACyIzC,KAAKkB,MAA7I+S,EADD,EACCA,UAAWF,EADZ,EACYA,kBAAmBlD,EAD/B,EAC+BA,WAAY8D,EAD3C,EAC2CA,WAAYW,EADvD,EACuDA,sBAAuBvE,EAD9E,EAC8EA,UAAWwE,EADzF,EACyFA,UAAWC,EADpG,EACoGA,eAAgBC,EADpH,EACoHA,MAAUC,EAD9H,oJAGP,GAAIH,EACF,OACE,mBAAK5S,UAAU,+BAAf,EACE,4BACE,mBAAKA,UAAU,sCAAf,EACE,YAAC,IAAD,CAAkBlF,GAAG,+BAA+BkY,QAAQ,SAASxN,eAAe,aACpF,YAAC,IAAD,CAAkB1K,GAAG,kCAAkC0K,eAAe,yCAOhF,IAAIyN,EAAqB7E,GAA8B,EAAjBkD,EAAUjR,KAC9CiR,EAAUd,IAAI,SAAC5J,EAAUzB,GAAX,OAAkC,OAAbyB,EACjC,YAAC,IAAD,CAEEsM,SAAU9E,EACV+E,MAAe,EAARhO,EAAYmM,EAAUla,IAAI+N,EAAQ,GAAK,KAC9CvG,QAASsP,GAHJ,OAASoD,EAAUla,IAAI+N,EAAQ,IAMtC,YAAC,IAAD,CAEErK,GAAI8L,EACJwM,SAAU,EAAKC,aACfC,WAAY,EAAKC,eACjBC,YAAaxB,EACbc,MAAOA,EACPD,eAAgBA,EAChBY,YAAU,GAPL7M,KAUP,KAgBJ,OAdIqM,GAAqB7B,IACvB6B,EAAoB7B,EAAkBZ,IAAI,SAAA5J,GAAQ,OAChD,YAAC,IAAD,CAEE9L,GAAI8L,EACJyK,UAAQ,EACR+B,SAAU,EAAKC,aACfC,WAAY,EAAKC,eACjBC,YAAaxB,EACbyB,YAAU,GAPZ,KACY7M,KAQX8M,OAAOT,IAGL,CACL,YAAC,IAAD,CAEErU,QAASvB,KAAK4U,sBACd7F,MAAOuG,EACPtc,QAAS8K,EAAS+P,OAHd,gCAKN,kBAAC,IAAD,aAAgBpZ,IAAI,mBAAsBib,EAA1C,CAAiD3E,UAAWA,EAAWyB,YAAazB,GAAgC,IAAnBkD,EAAUjR,KAAY6N,WAAYA,GAAc7Q,KAAKsW,gBAAiBvI,IAAK/N,KAAKgT,SAC9K4C,K,GA1I+BW,K,YAAnBzC,E,YAEA,CACjB1C,UAAWwC,IAAU/X,OAAO2a,WAC5BvC,UAAWwC,IAAmBC,KAAKF,WACnCjC,aAAcX,IAAU/X,OACxBkY,kBAAmB0C,IAAmBC,KACtC7F,WAAY+C,IAAU+C,KACtB5F,UAAW6C,IAAUgD,KACrBrB,UAAW3B,IAAUgD,KACrB9F,QAAS8C,IAAUgD,KACnBnE,QAASmB,IAAU7G,KACnB4F,aAAciB,IAAU7G,KACxB2F,cAAekB,IAAUgD,KACzBjC,WAAYf,IAAU/X,OACtBgb,eAAgBjD,IAAUkD,OAC1BpC,kBAAmBd,IAAU+C,KAC7BlB,MAAOgB,IAAmBtD,IAC1BqC,eAAgB5B,IAAUgD,KAC1B5F,cAAe4C,IAAU+C,KACzB1F,SAAU2C,IAAU+C,Q,iCC7BZ,SAARI,EAAuB7V,GACzB,IAAK,IAAIiB,KAAK4U,EAAM3U,aACFjJ,MAAZ+H,EAAMiB,IAA4ChJ,MAAzB4d,EAAM3U,aAAaD,KAC9CjB,EAAMiB,GAAK4U,EAAM3U,aAAaD,IAIlC,OAAO,YAAY,YAAS,GAAIjB,IAblC,6CAgBA6V,EAAMC,UAAY,IAClBD,EAAM3U,aAAe,YAAS,GAAI,IAAmB,CACnDlN,KAAM,IAEO,O,oBCnBf,IAAI+hB,EAAY,EAAQ,KAExB/f,EAAOD,QAAU,SAAUigB,EAAIC,EAAMzhB,GAEnC,GADAuhB,EAAUC,QACG/d,IAATge,EAAoB,OAAOD,EAE/B,OAAQxhB,GACN,KAAK,EACH,OAAO,SAAUoK,GACf,OAAOoX,EAAGphB,KAAKqhB,EAAMrX,IAGzB,KAAK,EACH,OAAO,SAAUA,EAAGC,GAClB,OAAOmX,EAAGphB,KAAKqhB,EAAMrX,EAAGC,IAG5B,KAAK,EACH,OAAO,SAAUD,EAAGC,EAAGtG,GACrB,OAAOyd,EAAGphB,KAAKqhB,EAAMrX,EAAGC,EAAGtG,IAIjC,OAAO,WAGL,OAAOyd,EAAG7gB,MAAM8gB,EAAMlX,c,oBC3B1B,IAAIc,EAAW,EAAQ,KAEnBhJ,EAAW,EAAQ,KAAaA,SAGhCwV,EAAKxM,EAAShJ,IAAagJ,EAAShJ,EAASC,eAEjDd,EAAOD,QAAU,SAAU+J,GACzB,OAAOuM,EAAKxV,EAASC,cAAcgJ,GAAM,K,kBCR3C,IAAIoW,EAAW,GAAGA,SAElBlgB,EAAOD,QAAU,SAAU+J,GACzB,OAAOoW,EAASthB,KAAKkL,GAAI5F,MAAM,GAAI,K,oBCFrC,IAAIic,EAAY,EAAQ,KAEpBC,EAAMjZ,KAAKiZ,IAEfpgB,EAAOD,QAAU,SAAU+J,GACzB,OAAY,EAALA,EAASsW,EAAID,EAAUrW,GAAK,kBAAoB,I,oBCNzD,IAAIlD,EAAO,EAAQ,KAEfM,EAAS,EAAQ,KAEjBmZ,EAAS,qBACTtZ,EAAQG,EAAOmZ,KAAYnZ,EAAOmZ,GAAU,KAC/CrgB,EAAOD,QAAU,SAAUwD,EAAKN,GAC/B,OAAO8D,EAAMxD,KAASwD,EAAMxD,QAAiBtB,IAAVgB,EAAsBA,EAAQ,MAChE,WAAY,IAAInE,KAAK,CACtB+H,QAASD,EAAKC,QACd1D,KAAM,EAAQ,KAAgB,OAAS,SACvCmd,UAAW,0C,kBCXbtgB,EAAOD,SAAU,G,kBCAjB,IAAIwG,EAAK,EACLga,EAAKpZ,KAAKqZ,SAEdxgB,EAAOD,QAAU,SAAUwD,GACzB,MAAO,UAAU4b,YAAeld,IAARsB,EAAoB,GAAKA,EAAK,QAASgD,EAAKga,GAAIL,SAAS,O,kBCHnFlgB,EAAOD,QAAU,gGAAgGwE,MAAM,M,oBCDvH,IAAIkc,EAAM,EAAQ,KAAgBnX,EAE9Bb,EAAM,EAAQ,KAEdiY,EAAM,EAAQ,IAAR,CAAkB,eAE5B1gB,EAAOD,QAAU,SAAU+J,EAAI6W,EAAKC,GAC9B9W,IAAOrB,EAAIqB,EAAK8W,EAAO9W,EAAKA,EAAGpL,UAAWgiB,IAAMD,EAAI3W,EAAI4W,EAAK,CAC/DxN,cAAc,EACdjQ,MAAO0d,M,kHCLUE,E,kGAYnBtV,OAAA,WAAU,IAAD,EACuBzC,KAAKkB,MAA3B2U,EADD,EACCA,SAAU5G,EADX,EACWA,QAElB,OACE,sBAAQtM,UAAU,YAAYkT,SAAUA,IAAa5G,EAASpN,MAAO,CAAEmN,WAAYC,EAAU,UAAY,UAAY1N,QAASvB,KAAKkB,MAAMK,cAAzI,EACE,YAAC,IAAD,CAAkB9D,GAAG,mBAAmB0K,eAAe,gB,GAjBzBkG,IAAMc,e,YAAvB4I,E,eAQG,CACpB9I,SAAS,K,0ICRPnL,EAAWC,YAAe,CAC9BiU,UAAU,CAAD,oDAILC,EADUzT,Y,8LAUA,WACZ,EAAKtD,MAAMK,QAAQ,EAAKL,MAAM4U,S,sCAGhCrT,OAAA,WAAU,IAAD,EACoBzC,KAAKkB,MAAxB2U,EADD,EACCA,SAAU1Q,EADX,EACWA,KAElB,OACE,sBAAQxC,UAAU,qBAAqBkT,SAAUA,EAAUtU,QAASvB,KAAKkY,YAAaC,aAAYhT,EAAKQ,cAAc7B,EAASkU,iBAA9H,EACE,YAAC,IAAD,CAAMva,GAAG,iB,GAlBK4Q,IAAMc,iB,4ICJtBiJ,EADU5T,a,sGAcd/B,OAAA,WAAU,IAAD,EACmCzC,KAAKkB,MAAvC6N,EADD,EACCA,MAAO/V,EADR,EACQA,QAASuI,EADjB,EACiBA,QAAS4D,EAD1B,EAC0BA,KAE3BkT,EAAUC,IAAW,wBAAyB,CAClD,OAAWvJ,GAAS,IAGtB,OACE,mBAAKpM,UAAW0V,QAAhB,EACE,iBAAG1V,UAAU,6BAA6BpB,QAASA,QAAnD,EACY,EAARwN,GAAc5J,EAAKQ,cAAc3M,EAAS,CAAE+V,a,GAvBhBV,IAAMc,e,6BAStB,CACpBJ,MAAO,I,8BChBX7X,EAAOD,QAAU,CACf,QAAW,EAAQ,KACnBqD,YAAY,I,iCCAdrD,EAAQqD,YAAa,EAErB,IAIgCie,EAJ5BC,EAAQ,EAAQ,KAEhBC,GAE4BF,EAFIC,IAGpBD,EAAIje,WAAaie,EAAM,CACnCG,QAASH,GAIbthB,EAAQyhB,QAAU,SAAUC,GAC1B,GAAIjd,MAAMC,QAAQgd,GAAM,CACtB,IAAK,IAAInjB,EAAI,EAAGojB,EAAOld,MAAMid,EAAIjjB,QAASF,EAAImjB,EAAIjjB,OAAQF,IACxDojB,EAAKpjB,GAAKmjB,EAAInjB,GAGhB,OAAOojB,EAEP,OAAO,EAAIH,EAAOC,SAASC,K,oBCtB/BzhB,EAAOD,QAAU,CACf,QAAW,EAAQ,KACnBqD,YAAY,I,iCCCd,SAASyQ,IACP/K,KAAKtK,OAAS,EAGhBqV,EAAMnV,UAAUI,KAAO,SAAU6iB,GAC/B,IAAI9L,EAAO,CACT8L,KAAMA,GAGJ7Y,KAAKwU,KACPxU,KAAKwU,KAAOxU,KAAKwU,KAAKsE,KAAO/L,EAE7B/M,KAAKwU,KAAOxU,KAAK+Y,MAAQhM,EAG3B/M,KAAKtK,UAGPqV,EAAMnV,UAAUO,MAAQ,WACtB,IAAI4W,EAAO/M,KAAK+Y,MAEhB,GAAIhM,EAOF,OANA/M,KAAK+Y,MAAQhM,EAAK+L,OAEV9Y,KAAKtK,SACXsK,KAAKwU,UAAOrb,GAGP4T,EAAK8L,MAIhB9N,EAAMnV,UAAUwF,MAAQ,SAAU4d,EAAOC,GACvCD,OAAyB,IAAVA,EAAwB,EAAIA,EAC3CC,OAAqB,IAARA,EAAsBC,IAAWD,EAI9C,IAHA,IAAIE,EAAS,GACT3jB,EAAI,EAECuX,EAAO/M,KAAK+Y,MAAOhM,OACpBkM,EAAM,GADoBlM,EAAOA,EAAK+L,OAG/BtjB,EAAIwjB,GACfG,EAAOnjB,KAAK+W,EAAK8L,MAIrB,OAAOM,GAGTjiB,EAAOD,QAAU8T,G,mMC7CXjH,EAAWC,YAAe,CAC9BnB,MAAM,CAAD,iEACLwW,YAAY,CAAD,2EACXC,WAAW,CAAD,oEACVC,iBAAiB,CAAD,0EAChB9e,OAAO,CAAD,yDAoBF+e,EAFU9U,kBAfQ,SAAAG,GAAK,MAAK,CAChChC,MAAOgC,EAAMY,MAAM,CAAC,eAAgB,UACpC4T,YAAaxU,EAAMY,MAAM,CAAC,eAAgB,gBAC1C6T,WAAYzU,EAAMY,MAAM,CAAC,eAAgB,eACzCqQ,SAAUjR,EAAMY,MAAM,CAAC,eAAgB,mBAGd,SAAAN,GAAQ,MAAK,CACtCsU,cAAe,SAAArf,GAAK,OAAI+K,EAASuU,YAAY,QAAStf,KACtDuf,oBAAqB,SAAAvf,GAAK,OAAI+K,EAASuU,YAAY,cAAetf,KAClEwf,mBAAoB,SAAAxf,GAAK,OAAI+K,EAASuU,YAAY,aAActf,KAChEyf,SAAU,SAAAC,GAAa,OAAI3U,EAAS4U,YAAOD,KAC3CE,MAAO,kBAAM7U,EAAS6U,kB,GAIvBvV,a,gBAoBC,WAAYtD,GAAQ,IAClB,cAAMA,IAAN,KADiB,sDAKC,SAAA9J,GAClB,EAAK8J,MAAMsY,cAAcpiB,EAAE2B,OAAOoB,SANjB,qDASO,SAAA/C,GACxB,EAAK8J,MAAMwY,oBAAoBtiB,EAAE2B,OAAOoB,SAVvB,oDAaM,SAAA/C,GACvB,EAAK8J,MAAMyY,mBAAmBviB,EAAE2B,OAAOihB,MAAM,MAd5B,0CAiBJ,SAAA5iB,GACbA,EAAE+Z,iBACF,EAAKjQ,MAAM0Y,SAAS,EAAKvG,QAAQhO,OAAO8B,WAjBxCjG,EAAM6Y,QAFW,E,oCAsBnBtX,OAAA,WAAU,IAAD,EACoDzC,KAAKkB,MAAxD0B,EADD,EACCA,MAAOwW,EADR,EACQA,YAAaC,EADrB,EACqBA,WAAYxD,EADjC,EACiCA,SAAU1Q,EAD3C,EAC2CA,KAElD,OACE,oBAAMxC,UAAU,aAAasX,OAAO,OAAOL,SAAU5Z,KAAKka,mBAA1D,EACE,4BACE,qBACEvX,UAAU,WACV7J,KAAK,OACLqB,MAAOyI,EACPiT,SAAUA,EACVsE,SAAUna,KAAKoa,kBACfC,YAAalV,EAAKQ,cAAc7B,EAASlB,UAG7C,4BACE,wBACED,UAAU,WACV7J,KAAK,OACLqB,MAAOif,EACPvD,SAAUA,EACVsE,SAAUna,KAAKsa,wBACfD,YAAalV,EAAKQ,cAAc7B,EAASsV,gBAG7C,4BACE,qBAAOmB,QAAQ,oBAAoB5X,UAAW2V,IAAW,yBAA0B,CAAE,mCAAmD,OAAfe,UAAzH,EACGlU,EAAKQ,cAA6B,OAAf0T,EAAsBvV,EAASuV,WAAavV,EAASwV,mBAE3E,qBACExgB,KAAK,OACL6J,UAAU,mBACVlF,GAAG,oBACHoY,SAAUA,EACVsE,SAAUna,KAAKwa,yBAEjB,sBAAQ7X,UAAU,uBAAlB,EAAoCwC,EAAKQ,cAAc7B,EAAStJ,Y,GA7ErD6T,IAAMc,e,6BAEH,CACpB9J,OAAQuO,IAAUhZ,S,wRCfhBkJ,EAAWC,YAAe,CAC9B0W,eAAe,CAAD,wEAQVC,EADLjW,kBAJ2B,SAAAG,GAAK,MAAK,CACpC+V,YAAa5V,YAAYH,GAAO7K,IAAI,iB,4LA0B5B,CACN6gB,QAAQ,I,8CAGS,SAACxjB,GACd,EAAKyjB,eACPzjB,EAAE2B,OAAO+hB,S,8CAIM,SAAC1jB,GACd,EAAKyjB,gBACPzjB,EAAE2B,OAAOgiB,QACT3jB,EAAE2B,OAAOiiB,YAAc,K,yCASb,SAAC5jB,GAAO,IAAD,EACQ,EAAK8J,MAAxB4G,EADW,EACXA,MAAOvG,EADI,EACJA,QAEX0Z,gBAAY7jB,EAAE2B,OAAOmiB,UACvB9jB,EAAE2B,OAAOmiB,UAAW,EACpB9jB,EAAE+Z,kBAEe,IAAb/Z,EAAE+jB,QAAkB/jB,EAAEgkB,SAAWhkB,EAAEikB,UACjC,EAAKR,gBACPzjB,EAAE2B,OAAOgiB,QACT3jB,EAAE2B,OAAOiiB,YAAc,GAEzB5jB,EAAE+Z,iBACF5P,EAAQuG,IAIZ1Q,EAAEkkB,oB,0CA2BW,SAAA7hB,GACb,EAAK8hB,OAAS9hB,I,6CAGE,WAChB,EAAK+S,SAAS,CAAEoO,QAAQ,M,8CAGP,YAAwB,IAAbY,EAAY,EAApBziB,OACpByiB,EAAMC,aAAe,EACrBD,EAAMV,S,8CAGW,YAAwB,IAAbU,EAAY,EAApBziB,OACpByiB,EAAMT,QACNS,EAAMR,YAAc,I,8CAhEtBH,YAAA,WAAe,IAAD,EACwB7a,KAAKkB,MAAjCwa,EADI,EACJA,WACR,OAFY,EACQf,aAC8B,SAA3Be,EAAW3hB,IAAI,S,EAuBxCyT,kBAAA,WACMxN,KAAKkB,MAAMwa,WAAW3hB,IAAI,aAC5BiG,KAAK2b,W,EAIT/J,mBAAA,SAAmBC,GACbA,EAAU6J,WAAW3hB,IAAI,cAAgBiG,KAAKkB,MAAMwa,WAAW3hB,IAAI,aAAeiG,KAAKkB,MAAMwa,WAAW3hB,IAAI,aAC9GiG,KAAK2b,W,EAITA,QAAA,WACE,IAIQ/b,EACAgc,EALFC,EAAS7b,KAAKkB,MAAMwa,WAAW3hB,IAAI,YACnC+hB,EAASC,iBAAOF,EAAM,GAAI,IAE5BC,IACIlc,EAAYI,KAAKub,OAAOS,WAAW,MACnCJ,EAAY,IAAIK,UAAUH,EAAQ,GAAI,IAE5Clc,EAAIsc,aAAaN,EAAW,EAAG,K,EAsBnCnZ,OAAA,WAAU,IAAD,EAC2EzC,KAAKkB,MAA/Ewa,EADD,EACCA,WAAYS,EADb,EACaA,WAAYlN,EADzB,EACyBA,QAASmN,EADlC,EACkCA,WAAYzB,EAD9C,EAC8CA,YAAanG,EAD3D,EAC2DA,KAAM6H,EADjE,EACiEA,MAEpElZ,EAAS,IACTC,EAAS,OACT0I,EAAS,OACTE,EAAS,OACTD,EAAS,OACTE,EAAS,OACTqQ,EAAQ,OACRC,EAAW,WAEXH,IACFjZ,EAAQiZ,EAAWI,EACnBpZ,EAASgZ,EAAWK,EACpB3Q,EAAMsQ,EAAWhiB,GAAK,OACtB6R,EAAQmQ,EAAWpiB,GAAK,OACxB+R,EAASqQ,EAAWrc,GAAK,OACzBiM,EAAOoQ,EAAWjlB,GAAK,OACvBmlB,EAAQF,EAAWE,OAAS,OAC5BC,EAAWH,EAAWM,KAAO,YAG/B,IAcQC,EAEAC,EACAC,EAaFC,EA4BEC,EACAH,EACAI,EACAC,EAeAC,EA5EJC,EAAY,GAEhB,GAA+B,YAA3BzB,EAAW3hB,IAAI,QAiGnB,MAtFsC,UAA3B2hB,EAAW3hB,IAAI,SAClB4iB,EAAajB,EAAW3hB,IAAI,eAE5B6iB,EAAclB,EAAW3hB,IAAI,OAC7B8iB,GAAenB,EAAWlW,MAAM,CAAC,OAAQ,WAAY,WAE3D2X,EACE,iBACExa,UAAW2V,IAAW,gCAAiC,CAAEuE,gBACzDO,KAAM1B,EAAW3hB,IAAI,eAAiB6iB,EACtCrb,QAASvB,KAAKkY,YACdnf,OAAO,eAJT,EAME,YAAC,IAAD,CAAYX,IAAKukB,EAAYU,IAAK3B,EAAW3hB,IAAI,mBAGjB,SAA3B2hB,EAAW3hB,IAAI,SACpB+iB,EAAwB,GACxB7B,gBACF6B,EAAsBQ,YAAc,KAElC3C,IACFmC,EAAsB5B,SAAW,KAGnCiC,EACE,mBAAKxa,UAAW2V,IAAW,sBAAuB,CAAEiF,SAAU5C,UAA9D,EACE,uCACEhY,UAAU,qCACVwV,aAAYuD,EAAW3hB,IAAI,eAC3B6I,MAAO8Y,EAAW3hB,IAAI,eACtBgZ,KAAK,cACL3a,IAAKsjB,EAAW3hB,IAAI,OACpBwH,QAASvB,KAAKkY,YACdtU,aAAc5D,KAAKwd,iBACnB3Z,aAAc7D,KAAKyd,iBACnBC,MAAI,EACJC,OAAK,GACDb,IAGN,oBAAMna,UAAU,mCAAhB,WAGgC,UAA3B+Y,EAAW3hB,IAAI,SAClBgjB,EAAYrB,EAAW3hB,IAAI,cAC3B6iB,EAAclB,EAAW3hB,IAAI,OAC7BijB,EAAyBD,EAAUa,YAAY,KAC/CX,EAAgBF,EAAUc,OAAOb,EAAyB,GAAGc,cACnEX,EACE,iBACExa,UAAW2V,IAAW,iCACtB8E,KAAM1B,EAAW3hB,IAAI,eAAiB6iB,EACtCrb,QAASvB,KAAKkY,YACdnf,OAAO,SACPskB,IAAK3B,EAAW3hB,IAAI,eACpB6I,MAAO8Y,EAAW3hB,IAAI,qBANxB,EAQE,oBAAM4I,UAAU,mCAAhB,EAA6C,YAAC,IAAD,CAAMlF,GAAG,eACtD,oBAAMkF,UAAU,6CAAhB,EAAwDsa,KAGxB,UAA3BvB,EAAW3hB,IAAI,UAClBmjB,EAAMxB,EAAW3hB,IAAI,OAAO0B,MAAM,KAAKsiB,MAAMD,cACnDX,EACE,iBACExa,UAAW2V,IAAW,iCACtB8E,KAAM1B,EAAW3hB,IAAI,OACrBwH,QAASvB,KAAKkY,YACdnf,OAAO,SACPskB,IAAK3B,EAAW3hB,IAAI,eACpB6I,MAAO8Y,EAAW3hB,IAAI,qBANxB,EAQE,qBACE4jB,OAAK,EACLD,MAAI,EACJM,YAAahe,KAAKie,iBAClBC,WAAYle,KAAKme,uBAJnB,EAME,sBAAQ/lB,IAAKsjB,EAAW3hB,IAAI,UAE9B,oBAAM4I,UAAU,6CAAhB,EAAwDua,KAM5D,mBAAKva,UAAW2V,IAAW,sBAAD,wBAAgDoD,EAAW3hB,IAAI,QAAW,CAAEoiB,eAA0Cta,MAAO,CAAE0a,WAAUD,QAAOtQ,OAAMF,MAAKG,QAAOF,SAAQ3I,SAAQD,MAAUA,EAAL,MAAvFuY,EAAW3hB,IAAI,MACtIya,GAlPgB,EAkPR6H,GACP,mBAAK1Z,UAAU,qCAAf,MACI0Z,EApPW,EAoPgB,GAGjC,4BAAQlZ,MAAO,GAAIC,OAAQ,GAAI2K,IAAK/N,KAAKoe,aAAczb,UAAW2V,IAAW,yBAA0B,CAAE,iCAAkCrJ,GAAWjP,KAAK4E,MAAMgW,WAChK3L,GAAWkO,GAxGd,IAAMkB,EAAWC,YAAiB5C,EAAW3hB,IAAI,cA/I3B,IAgJtB,OACE,mBAAK4I,UAAW2V,IAAW,sBAAuB,CAAE6D,eAA0Cta,MAAO,CAAE0a,WAAUD,QAAOtQ,OAAMF,MAAKG,QAAOF,SAAQ3I,SAAQD,MAAUA,EAAL,MAAvFuY,EAAW3hB,IAAI,MACrF,iBAAG4I,UAAU,gCAAgCya,KAAM1B,EAAW3hB,IAAI,cAAehB,OAAO,SAAS8I,MAAO,CAAE0c,OAAQ,iBAAlH,EACE,4BAAQpb,MAAO,GAAIC,OAAQ,GAAI2K,IAAK/N,KAAKoe,aAAczb,UAAU,2BACjE,oBAAMA,UAAU,mCAAhB,EAA6C,YAAC,IAAD,CAAMlF,GAAG,UACtD,oBAAMkF,UAAU,uCAAhB,EAAkD0b,M,GA1I3ChQ,IAAMc,e,6BAgBD,CACpBgN,YAAY,EACZrU,MAAO,EACP9E,KAAM,I,SAsOJwb,EAFU/Z,kBAJoB,SAAAG,GAAK,MAAK,CAC5CE,aAAcC,YAAYH,GAAO7K,IAAI,kB,GAItCyK,a,0LAsBS,CACNyK,aAAgC9V,IAAvB,EAAK+H,MAAM+N,QAAwB,EAAK/N,MAAM+N,QAAuC,aAA5B,EAAK/N,MAAM4D,eAAgC,EAAK5D,MAAMud,WAAyC,aAA5B,EAAKvd,MAAM4D,aAChJ3B,MAAO,EAAKjC,MAAMwd,e,wCAYP,WACP,EAAKxd,MAAMyd,mBACb,EAAKzd,MAAMyd,qBAEX,EAAKnS,SAAS,CAAEyC,SAAU,EAAKrK,MAAMqK,Y,yCAI3B,SAACnH,GACb,EAAK5G,MAAM0G,YAAY,EAAK1G,MAAM2G,MAAOC,K,uCAG/B,SAACiF,GACPA,IAEE,EAAK7L,MAAM0d,YAAY,EAAK1d,MAAM0d,WAAW7R,EAAK8R,aAEtD,EAAKrS,SAAS,CACZrJ,MAAO4J,EAAK8R,iB,+CAKE,WAAO,IAAD,EACQ,EAAK3d,MAA7B2G,EADgB,EAChBA,MAAO6W,EADS,EACTA,aACTvb,EAAQ,EAAKyB,MAAMzB,OAASub,EAC5BI,EAAcjX,EAAMrC,MAAM,CAAC,EAAG,OAAQ,WAAY,WASxD,OAAOuZ,cAAa,CAClBld,MAAO,CAAEuB,OAPJ0b,EACDE,YAAYF,GAAqBzgB,KAAKuM,MAAMzH,EAAQ8b,KACpDC,YAAWJ,GAAsBzgB,KAAKuM,MAAMzH,EAAQgc,KACjD9gB,KAAKuM,MAAMzH,EAAQ2b,GAHK,EAAN3b,EAAQ,IAQjCic,gBAAiB,GACjBpc,KAAM,EACNG,Y,iDAIkB,SAAAH,GAAS,IAAD,EACI,EAAK9B,MAA7B2G,EADoB,EACpBA,MAAO6W,EADa,EACbA,aACTvb,EAAQ,EAAKyB,MAAMzB,OAASub,EAC5BW,EAAWhhB,KAAKuM,MAAMzH,EAAQ8b,KAC9BK,EAAiBjhB,KAAKuM,MAAMzH,EAAQ8b,KAAzB,KAEXpd,EAAQ,GACVud,EAAkB,GAEhBG,EAAS7jB,MAAMsH,GAAMwc,OAAOrM,IAAI,SAAC7N,EAAG9P,GAAJ,OACpCqS,EAAMrC,MAAM,CAAChQ,EAAG,OAAQ,WAAY,aAG/BiqB,EAAsBF,EAbD,GAahBG,EAAiBH,EAbD,GAaXI,EAAYJ,EAbD,GAaNK,EAAOL,EAbD,GA8L5B,OA/Ka,IAATvc,GACEkc,YAAWO,IAAQP,YAAWQ,GAChC7d,EAAMuB,OAASD,EAASA,EAAQ8b,IACvBD,YAAYS,IAAQT,YAAYU,GACzC7d,EAAMuB,OAAoB,EAAXic,EAEdL,YAAYS,IAAQP,YAAWQ,IAC/BR,YAAWO,IAAQT,YAAYU,IAC/BV,YAAYS,IAAQI,YAAqBH,IACzCG,YAAqBJ,IAAQT,YAAYU,GAE1C7d,EAAMuB,OAAkB,GAARD,EAAgBA,EAAQ8b,IAExCpd,EAAMuB,OAASD,EAAQ,EAMvBic,EADEF,YAAWO,IAAQP,YAAWQ,GACd,CAChB,CAAElD,EAAG,GAAIC,EAAG,OAAQziB,EAAG,OACvB,CAAEwiB,EAAG,GAAIC,EAAG,OAAQtlB,EAAG,QAEhB6nB,YAAYS,IAAQT,YAAYU,GACvB,CAChB,CAAElD,EAAG,IAAKC,EAAG6C,EAAavf,EAAG,OAC7B,CAAEyc,EAAG,IAAKC,EAAG6C,EAAallB,EAAG,QAG9B4kB,YAAYS,IAAQP,YAAWQ,IAC/BV,YAAYS,IAAQI,YAAqBH,GAExB,CAChB,CAAElD,EAAG,IAAKC,EAAOtZ,EAAQ8b,IAAd,KAAuClf,EAAG,OACrD,CAAEyc,EAAG,IAAKC,EAAe,GAARtZ,EAAN,KAAwB/I,EAAG,QAGvC8kB,YAAWO,IAAQT,YAAYU,IAC/BG,YAAqBJ,IAAQT,YAAYU,GAExB,CAChB,CAAElD,EAAG,IAAKC,EAAe,GAARtZ,EAAN,KAAwBpD,EAAG,OACtC,CAAEyc,EAAG,IAAKC,EAAOtZ,EAAQ8b,IAAd,KAAuC7kB,EAAG,QAGrC,CAChB,CAAEoiB,EAAG,GAAIC,EAAG,OAAQziB,EAAG,OACvB,CAAEwiB,EAAG,GAAIC,EAAG,OAAQtlB,EAAG,SAGT,IAAT6L,GACLgc,YAAYS,IAAQT,YAAYU,IAAQV,YAAYW,GACtD9d,EAAMuB,OAAoB,EAAXic,EACNH,YAAWO,IAAQP,YAAWQ,IAAQR,YAAWS,GAC1D9d,EAAMuB,OAAS/E,KAAKuM,MAAMzH,EAAQgc,KAElCtd,EAAMuB,OAASD,EAMfic,EADEJ,YAAYS,IAAQI,YAAqBH,IAAQG,YAAqBF,GACtD,CAChB,CAAEnD,EAAG,IAAKC,EAAG,MAAO1c,EAAG,OACvB,CAAEyc,EAAG,GAAIC,EAAG,MAAOriB,EAAG,MAAOJ,EAAG,OAChC,CAAEwiB,EAAG,GAAIC,EAAG,MAAOriB,EAAG,MAAOjD,EAAG,QAEzB6nB,YAAYS,IAAQT,YAAYU,IAAQV,YAAYW,GAC3C,CAChB,CAAEnD,EAAG,IAAKC,EAAG6C,EAAavf,EAAG,OAC7B,CAAEyc,EAAG,IAAKC,EAAG6C,GACb,CAAE9C,EAAG,IAAKC,EAAG6C,EAAallB,EAAG,QAEtB8kB,YAAWO,IAAQI,YAAqBH,IAAQG,YAAqBF,GAC5D,CAChB,CAAEnD,EAAG,GAAIC,EAAG,OAAQziB,EAAG,OACvB,CAAEwiB,EAAG,GAAIC,EAAG,MAAO1c,EAAG,MAAO5I,EAAG,OAChC,CAAEqlB,EAAG,GAAIC,EAAG,MAAOriB,EAAG,MAAOjD,EAAG,QAEzB0oB,YAAqBJ,IAAQI,YAAqBH,IAAQR,YAAWS,GAC5D,CAChB,CAAEnD,EAAG,GAAIC,EAAG,MAAO1c,EAAG,MAAO/F,EAAG,OAChC,CAAEwiB,EAAG,GAAIC,EAAG,MAAOtlB,EAAG,OAAQ4I,EAAG,OAAQ2c,IAAK,WAAYJ,MAAO,QACjE,CAAEE,EAAG,GAAIC,EAAG,OAAQziB,EAAG,OAAQI,EAAG,MAAO2F,EAAG,MAAO2c,IAAK,WAAYJ,MAAO,SAG5EuD,YAAqBJ,IAAQP,YAAWQ,IAAQG,YAAqBF,IACrET,YAAWO,IAAQP,YAAWQ,IAAQR,YAAWS,GAEhC,CAChB,CAAEnD,EAAG,GAAIC,EAAG,MAAO1c,EAAG,MAAO/F,EAAG,OAChC,CAAEwiB,EAAG,GAAIC,EAAG,OAAQtlB,EAAG,MAAOmlB,MAAO,SACrC,CAAEE,EAAG,GAAIC,EAAG,MAAOriB,EAAG,MAAOJ,EAAG,QAGjCglB,YAAYS,IAAQT,YAAYU,IAAQG,YAAqBF,IAC7DX,YAAYS,IAAQT,YAAYU,IAAQR,YAAWS,GAElC,CAChB,CAAEnD,EAAG,GAAIC,EAAG6C,EAAavf,EAAG,MAAO/F,EAAG,OACtC,CAAEwiB,EAAG,GAAIC,EAAG6C,EAAavf,EAAG,MAAO5I,EAAG,OACtC,CAAEqlB,EAAG,IAAKC,EAAMtZ,EAAQkc,EAAb,KAA2BjlB,EAAG,QAG1CylB,YAAqBJ,IAAQT,YAAYU,IAAQV,YAAYW,IAC7DT,YAAWO,IAAQT,YAAYU,IAAQV,YAAYW,GAElC,CAChB,CAAEnD,EAAG,IAAKC,EAAMtZ,EAAQkc,EAAb,KAA2Btf,EAAG,OACzC,CAAEyc,EAAG,GAAIC,EAAG6C,EAAallB,EAAG,MAAOJ,EAAG,OACtC,CAAEwiB,EAAG,GAAIC,EAAG6C,EAAallB,EAAG,MAAOjD,EAAG,QAGtB,CAChB,CAAEqlB,EAAG,GAAIC,EAAG,MAAO1c,EAAG,MAAO/F,EAAG,OAChC,CAAEwiB,EAAG,GAAIC,EAAG,MAAO1c,EAAG,MAAO5I,EAAG,OAChC,CAAEqlB,EAAG,IAAKC,EAAG,MAAOriB,EAAG,SAGV,GAAR4I,IAENkc,YAAWO,IAAQP,YAAWQ,IAAQR,YAAWS,IAAQT,YAAWU,IACpEV,YAAWO,IAAQP,YAAWQ,IAAQR,YAAWS,IAAQE,YAAqBD,IAC9EV,YAAWO,IAAQP,YAAWQ,IAAQG,YAAqBF,IAAQT,YAAWU,IAC9EV,YAAWO,IAAQI,YAAqBH,IAAQR,YAAWS,IAAQT,YAAWU,IAC9EC,YAAqBJ,IAAQP,YAAWQ,IAAQR,YAAWS,IAAQT,YAAWU,GAE/E/d,EAAMuB,OAAS/E,KAAKuM,MAAMzH,EAAQgc,KACzBH,YAAYS,IAAQT,YAAYU,IAAQV,YAAYW,IAAQX,YAAYY,GACjF/d,EAAMuB,OAAoB,EAAXic,EAEdL,YAAYS,IAAQT,YAAYU,IAAQG,YAAqBF,IAAQE,YAAqBD,IAC1FC,YAAqBJ,IAAQI,YAAqBH,IAAQV,YAAYW,IAAQX,YAAYY,GAE3F/d,EAAMuB,OAASic,EAAYlc,EAAQ,EAEnCtB,EAAMuB,OAASD,EAMfic,EADEJ,YAAYS,IAAQT,YAAYU,IAAQG,YAAqBF,IAAQE,YAAqBD,GAC1E,CAChB,CAAEpD,EAAG,GAAIC,EAAG6C,EAAavf,EAAG,MAAO/F,EAAG,OACtC,CAAEwiB,EAAG,GAAIC,EAAG6C,EAAavf,EAAG,MAAO5I,EAAG,OACtC,CAAEqlB,EAAG,GAAIC,EAAOtZ,EAAQ,EAAd,KAAsB/I,EAAG,MAAOJ,EAAG,OAC7C,CAAEwiB,EAAG,GAAIC,EAAOtZ,EAAQ,EAAd,KAAsB/I,EAAG,MAAOjD,EAAG,QAEtC0oB,YAAqBJ,IAAQI,YAAqBH,IAAQV,YAAYW,IAAQX,YAAYY,GACjF,CAChB,CAAEpD,EAAG,GAAIC,EAAOtZ,EAAQ,EAAd,KAAsBpD,EAAG,MAAO/F,EAAG,OAC7C,CAAEwiB,EAAG,GAAIC,EAAOtZ,EAAQ,EAAd,KAAsBpD,EAAG,MAAO5I,EAAG,OAC7C,CAAEqlB,EAAG,GAAIC,EAAG6C,EAAallB,EAAG,MAAOJ,EAAG,OACtC,CAAEwiB,EAAG,GAAIC,EAAG6C,EAAallB,EAAG,MAAOjD,EAAG,QAGvC+nB,YAAWO,IAAQI,YAAqBH,IAAQG,YAAqBF,IAAQE,YAAqBD,IAClGV,YAAWO,IAAQT,YAAYU,IAAQV,YAAYW,IAAQX,YAAYY,GAEtD,CAChB,CAAEpD,EAAG,GAAIC,EAAG,OAAQziB,EAAG,OACvB,CAAEwiB,EAAG,GAAIC,EAAG,MAAO1c,EAAG,MAAO5I,EAAG,OAChC,CAAEqlB,EAAG,GAAIC,EAAG,MAAOtlB,EAAG,OACtB,CAAEqlB,EAAG,GAAIC,EAAG,MAAOriB,EAAG,MAAOjD,EAAG,QAGhB,CAChB,CAAEqlB,EAAG,GAAIC,EAAG,MAAO1c,EAAG,MAAO/F,EAAG,OAChC,CAAEwiB,EAAG,GAAIC,EAAG,MAAO1c,EAAG,MAAO5I,EAAG,OAChC,CAAEqlB,EAAG,GAAIC,EAAG,MAAOriB,EAAG,MAAOJ,EAAG,OAChC,CAAEwiB,EAAG,GAAIC,EAAG,MAAOriB,EAAG,MAAOjD,EAAG,SAK/B4nB,cAAa,CAClBld,QACAud,kBACApc,KAAMA,EACNG,Y,yCAKU,SAAAH,GAAS,IAAD,EACa,EAAK9B,MAA9BkC,EADY,EACZA,OAAQsb,EADI,EACJA,aACVvb,EAAQ,EAAKyB,MAAMzB,OAASub,EAElC,GAAIvb,EAAO,CACT,GAAa,IAATH,EAAY,OAAO,EAAK8c,oBAC5B,GAAW,EAAP9c,EAAY,OAAO,EAAK+c,oBAAoB/c,GAIlD,OAAO+b,cAAa,CAClBld,MAAO,CAAEuB,UACTgc,gBAAiB,GACjBpc,OACAG,Y,8CAzQJyO,mBAAA,SAAmBC,GAAY,IAAD,EACU7R,KAAKkB,MAAnC2G,EADoB,EACpBA,MAAOoH,EADa,EACbA,QAASwP,EADI,EACJA,UACnBlR,aAAG1F,EAAOgK,EAAUhK,aAAsB1O,IAAZ8V,EAEvB1B,aAAG0B,EAAS4C,EAAU5C,eAAwB9V,IAAZ8V,GAC5CjP,KAAKwM,SAAS,CAAEyC,YAFhBjP,KAAKwM,SAAS,CAAEyC,QAAoC,aAA3B4C,EAAU/M,eAAgC2Z,GAAwC,aAA3B5M,EAAU/M,gB,EA0Q9FrC,OAAA,WAAU,IAAD,SAC4BzC,KAAKkB,MAAhC2G,EADD,EACCA,MAAO1C,EADR,EACQA,KAAMsZ,EADd,EACcA,UACbxP,EAAYjP,KAAK4E,MAAjBqK,QACF+Q,EAAWhgB,KAAKigB,YAAYpY,EAAM7E,MAGxCN,EAAWmF,EAAMqY,KAljBI,GAkjBmB/M,IAAI,SAACuI,EAAYlmB,GAAb,OAC1C,YAACklB,EAAD,CAEEnZ,QAAS,EAAK2W,YACdwD,WAAYA,EACZ5T,MAAOtS,EACPwN,KAAMgd,EAASjmB,IAAI,QACnBomB,aAAcH,EAASjmB,IAAI,SAC3BkV,QAASA,EACTmN,WAAY4D,EAASjmB,IAAI,mBAAmBvE,GAC5Cgf,KAAY4L,IAAN5qB,EACN6mB,MAAOxU,EAAM7E,MATR0Y,EAAW3hB,IAAI,SActBsmB,EADEpR,EACc,YAAC,IAAD,CAAYrM,MAAOuC,EAAKQ,cAAc7B,EAAS2W,gBAAiB6F,KAAK,YAAYC,SAAO,EAAChf,QAASvB,KAAKwgB,aAGrH,sBAAQ1nB,KAAK,SAASyI,QAASvB,KAAKwgB,WAAY7d,UAAU,gCAA1D,EACE,oBAAMA,UAAU,uCAAhB,EAAkD8b,EAAY,YAAC,IAAD,CAAkBhhB,GAAG,2BAA2B0K,eAAe,sBAAyB,YAAC,IAAD,CAAkB1K,GAAG,sBAAsB0K,eAAe,mBAKtN,OACE,yBAAKxF,UAAU,gBAAgBd,MAAOme,EAASjmB,IAAI,SAAUgU,IAAK/N,KAAKgO,WACrE,mBAAKrL,UAAW2V,IAAW,iBAAkB,CAAE,2BAA4BrJ,UAA3E,EACGoR,GAGF3d,I,GA5UkB2L,IAAMc,e,6BAiBT,CACpBgN,YAAY,I,kCCxShB,EAAQ,KAERjlB,EAAOD,QAAU,EAAQ,KAAuBtB,OAAOyS,Q,oBCDvD,IAAI3J,EAAU,EAAQ,KAElBgiB,EAAU,EAAQ,IAAR,EAA8B,GAE5ChiB,EAAQA,EAAQS,EAAG,SAAU,CAC3BkJ,OAAQ,SAAgBpH,GACtB,OAAOyf,EAAQzf,O,kBCPnB9J,EAAOD,QAAU,SAAU+J,GACzB,GAAiB,mBAANA,EAAkB,MAAMF,UAAUE,EAAK,uBAClD,OAAOA,I,oBCFT9J,EAAOD,SAAW,EAAQ,OAAsB,EAAQ,IAAR,CAAoB,WAClE,OAIQ,GAJDtB,OAAOkE,eAAe,EAAQ,IAAR,CAAyB,OAAQ,IAAK,CACjEE,IAAK,WACH,OAAO,KAER+F,K,oBCJL,IAAIiB,EAAW,EAAQ,KAIvB7J,EAAOD,QAAU,SAAU+J,EAAI9B,GAC7B,IAAK6B,EAASC,GAAK,OAAOA,EAC1B,IAAIkW,EAAIwJ,EACR,GAAIxhB,GAAkC,mBAArBgY,EAAKlW,EAAGoW,YAA4BrW,EAAS2f,EAAMxJ,EAAGphB,KAAKkL,IAAM,OAAO0f,EACzF,GAAgC,mBAApBxJ,EAAKlW,EAAG2f,WAA2B5f,EAAS2f,EAAMxJ,EAAGphB,KAAKkL,IAAM,OAAO0f,EACnF,IAAKxhB,GAAkC,mBAArBgY,EAAKlW,EAAGoW,YAA4BrW,EAAS2f,EAAMxJ,EAAGphB,KAAKkL,IAAM,OAAO0f,EAC1F,MAAM5f,UAAU,6C,oBCXlB,IAAI8f,EAAU,EAAQ,KAElBC,EAAY,EAAQ,KAEpBC,EAAS,EAAQ,KAAiBtgB,EAEtCtJ,EAAOD,QAAU,SAAU8pB,GACzB,OAAO,SAAU/f,GAQf,IAPA,IAKIvG,EALAmG,EAAIigB,EAAU7f,GACdwJ,EAAOoW,EAAQhgB,GACflL,EAAS8U,EAAK9U,OACdF,EAAI,EACJe,EAAS,GAGGf,EAATE,GACDorB,EAAOhrB,KAAK8K,EAAGnG,EAAM+P,EAAKhV,OAC5Be,EAAOP,KAAK+qB,EAAY,CAACtmB,EAAKmG,EAAEnG,IAAQmG,EAAEnG,IAI9C,OAAOlE,K,oBCrBX,IAAIoJ,EAAM,EAAQ,KAEdkhB,EAAY,EAAQ,KAEpBG,EAAe,EAAQ,IAAR,EAA6B,GAE5CC,EAAW,EAAQ,IAAR,CAAyB,YAExC/pB,EAAOD,QAAU,SAAU2D,EAAQsmB,GACjC,IAGIzmB,EAHAmG,EAAIigB,EAAUjmB,GACdpF,EAAI,EACJe,EAAS,GAGb,IAAKkE,KAAOmG,EACNnG,GAAOwmB,GAAUthB,EAAIiB,EAAGnG,IAAQlE,EAAOP,KAAKyE,GAIlD,KAAOymB,EAAMxrB,OAASF,GAChBmK,EAAIiB,EAAGnG,EAAMymB,EAAM1rB,SACpBwrB,EAAazqB,EAAQkE,IAAQlE,EAAOP,KAAKyE,IAI9C,OAAOlE,I,oBCxBT,IAAI4qB,EAAM,EAAQ,KAGlBjqB,EAAOD,QAAUtB,OAAO,KAAKyrB,qBAAqB,GAAKzrB,OAAS,SAAUqL,GACxE,MAAkB,UAAXmgB,EAAIngB,GAAkBA,EAAGvF,MAAM,IAAM9F,OAAOqL,K,oBCHrD,IAAI6f,EAAY,EAAQ,KAEpBQ,EAAW,EAAQ,KAEnBC,EAAkB,EAAQ,KAE9BpqB,EAAOD,QAAU,SAAUsqB,GACzB,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGIvnB,EAHAyG,EAAIigB,EAAUW,GACd9rB,EAAS2rB,EAASzgB,EAAElL,QACpBoS,EAAQwZ,EAAgBI,EAAWhsB,GAIvC,GAAI6rB,GAAeE,GAAMA,GAAI,KAAgB3Z,EAATpS,GAGlC,IAFAyE,EAAQyG,EAAEkH,OAEG3N,EAAO,OAAO,OACtB,KAAgB2N,EAATpS,EAAgBoS,IAC5B,IAAIyZ,GAAezZ,KAASlH,IACtBA,EAAEkH,KAAW2Z,EAAI,OAAOF,GAAezZ,GAAS,EAGxD,OAAQyZ,IAAgB,K,oBCzB5B,IAAIlK,EAAY,EAAQ,KAEpBsK,EAAMtjB,KAAKsjB,IACXrK,EAAMjZ,KAAKiZ,IAEfpgB,EAAOD,QAAU,SAAU6Q,EAAOpS,GAEhC,OADAoS,EAAQuP,EAAUvP,IACH,EAAI6Z,EAAI7Z,EAAQpS,EAAQ,GAAK4hB,EAAIxP,EAAOpS,K,kBCPzDuB,EAAQuJ,EAAI,GAAG4gB,sB,oBCAflqB,EAAOD,QAAU,CACf,QAAW,EAAQ,KACnBqD,YAAY,I,oBCFd,EAAQ,KAER,EAAQ,KAERpD,EAAOD,QAAU,EAAQ,KAAuByE,MAAMkmB,M,iCCFtD,IAAIC,EAAM,EAAQ,IAAR,EAAwB,GAGlC,EAAQ,IAAR,CAA0BC,OAAQ,SAAU,SAAUC,GACpD/hB,KAAKgiB,GAAKF,OAAOC,GAEjB/hB,KAAKiiB,GAAK,GAET,WACD,IAEIC,EAFAthB,EAAIZ,KAAKgiB,GACTla,EAAQ9H,KAAKiiB,GAEjB,OAAIna,GAASlH,EAAElL,OAAe,CAC5ByE,WAAOhB,EACPgpB,MAAM,IAERD,EAAQL,EAAIjhB,EAAGkH,GACf9H,KAAKiiB,IAAMC,EAAMxsB,OACV,CACLyE,MAAO+nB,EACPC,MAAM,O,oBCtBV,IAAI9K,EAAY,EAAQ,KAEpB3M,EAAU,EAAQ,KAItBxT,EAAOD,QAAU,SAAUmrB,GACzB,OAAO,SAAUjL,EAAMuF,GACrB,IAGI5c,EAAGC,EAHHjJ,EAAIgrB,OAAOpX,EAAQyM,IACnB3hB,EAAI6hB,EAAUqF,GACdvlB,EAAIL,EAAEpB,OAEV,OAAIF,EAAI,GAAU2B,GAAL3B,EAAe4sB,EAAY,QAAKjpB,GAC7C2G,EAAIhJ,EAAEurB,WAAW7sB,IACN,OAAc,MAAJsK,GAActK,EAAI,IAAM2B,IAAM4I,EAAIjJ,EAAEurB,WAAW7sB,EAAI,IAAM,OAAc,MAAJuK,EAAaqiB,EAAYtrB,EAAEwrB,OAAO9sB,GAAKsK,EAAIsiB,EAAYtrB,EAAEsE,MAAM5F,EAAGA,EAAI,GAA2BuK,EAAI,OAAzBD,EAAI,OAAU,IAAqB,S,iCCY1L,SAAbyiB,IACF,OAAOviB,KAzBT,IAAIwiB,EAAU,EAAQ,KAElB/jB,EAAU,EAAQ,KAElBgkB,EAAW,EAAQ,KAEnBriB,EAAO,EAAQ,KAEfsiB,EAAY,EAAQ,KAEpBC,EAAc,EAAQ,KAEtBC,EAAiB,EAAQ,KAEzBC,EAAiB,EAAQ,KAEzBC,EAAW,EAAQ,IAAR,CAAkB,YAE7BC,IAAU,GAAGvY,MAAQ,QAAU,GAAGA,QAIlCwY,EAAS,SAMb9rB,EAAOD,QAAU,SAAUgsB,EAAMC,EAAMC,EAAarK,EAAMsK,EAASC,EAAQC,GACzEX,EAAYQ,EAAaD,EAAMpK,GAEf,SAAZyK,EAA+BC,GACjC,IAAKT,GAASS,KAAQC,EAAO,OAAOA,EAAMD,GAE1C,OAAQA,GACN,IAdK,OAmBL,KAAKR,EACH,OAAO,WACL,OAAO,IAAIG,EAAYnjB,KAAMwjB,IAInC,OAAO,WACL,OAAO,IAAIL,EAAYnjB,KAAMwjB,IAhBjC,IA4BIE,EAASjpB,EAAKkpB,EARd/L,EAAMsL,EAAO,YACbU,EAAaR,GAAWJ,EACxBa,GAAa,EACbJ,EAAQR,EAAKrtB,UACbkuB,EAAUL,EAAMX,IAAaW,EAnCjB,eAmCuCL,GAAWK,EAAML,GACpEW,EAAWD,GAAWP,EAAUH,GAChCY,EAAWZ,EAAWQ,EAAwBL,EAAU,WAArBQ,OAAkC5qB,EACrE8qB,EAAqB,SAARf,GAAkBO,EAAMjU,SAAqBsU,EAgC9D,GA7BIG,IACFN,EAAoBd,EAAeoB,EAAWnuB,KAAK,IAAImtB,OAE7BttB,OAAOC,WAAa+tB,EAAkB7K,OAE9D8J,EAAee,EAAmB/L,GAAK,GAElC4K,GAAiD,mBAA/BmB,EAAkBb,IAAyB1iB,EAAKujB,EAAmBb,EAAUP,IAKpGqB,GAAcE,GAAWA,EAAQ7qB,OAAS+pB,IAC5Ca,GAAa,EAEbE,EAAW,WACT,OAAOD,EAAQhuB,KAAKkK,QAKlBwiB,IAAWc,IAAYP,IAASc,GAAeJ,EAAMX,IACzD1iB,EAAKqjB,EAAOX,EAAUiB,GAIxBrB,EAAUQ,GAAQa,EAClBrB,EAAU9K,GAAO2K,EAEba,EAMF,GALAM,EAAU,CACRtb,OAAQwb,EAAaG,EAAWR,EAAUP,GAC1CxY,KAAM6Y,EAASU,EAAWR,EAxErB,QAyEL/T,QAASwU,GAEPV,EAAQ,IAAK7oB,KAAOipB,EAChBjpB,KAAOgpB,GAAQhB,EAASgB,EAAOhpB,EAAKipB,EAAQjpB,SAC7CgE,EAAQA,EAAQW,EAAIX,EAAQK,GAAKikB,GAASc,GAAaX,EAAMQ,GAGtE,OAAOA,I,oBCvGTxsB,EAAOD,QAAU,EAAQ,M,iCCEzB,IAAIuD,EAAS,EAAQ,KAEjB0pB,EAAa,EAAQ,KAErBtB,EAAiB,EAAQ,KAEzBe,EAAoB,GAExB,EAAQ,IAAR,CAAmBA,EAAmB,EAAQ,IAAR,CAAkB,YAAa,WACnE,OAAO3jB,OAGT9I,EAAOD,QAAU,SAAUksB,EAAaD,EAAMpK,GAC5CqK,EAAYvtB,UAAY4E,EAAOmpB,EAAmB,CAChD7K,KAAMoL,EAAW,EAAGpL,KAEtB8J,EAAeO,EAAaD,EAAO,e,oBCTzB,SAARiB,KARJ,IAAI1jB,EAAW,EAAQ,KAEnB2jB,EAAM,EAAQ,KAEd7Z,EAAc,EAAQ,KAEtB0W,EAAW,EAAQ,IAAR,CAAyB,YAMpCvhB,EAAY,YAEZ2kB,EAAc,WAEhB,IAKIC,EALAC,EAAS,EAAQ,IAAR,CAAyB,UAElC/uB,EAAI+U,EAAY7U,OAkBpB,IAdA6uB,EAAO1iB,MAAMqB,QAAU,OAEvB,EAAQ,KAAW5J,YAAYirB,GAE/BA,EAAOnsB,IAAM,eAIbksB,EAAiBC,EAAOC,cAAczsB,UACvB0sB,OACfH,EAAeI,MAAMC,uCACrBL,EAAeM,QACfP,EAAcC,EAAexlB,EAEtBtJ,YACE6uB,EAAY3kB,GAAW6K,EAAY/U,IAG5C,OAAO6uB,KAGTntB,EAAOD,QAAUtB,OAAO6E,QAAU,SAAgBoG,EAAGikB,GACnD,IAAItuB,EAUJ,OARU,OAANqK,GACFujB,EAAMzkB,GAAae,EAASG,GAC5BrK,EAAS,IAAI4tB,EACbA,EAAMzkB,GAAa,KAEnBnJ,EAAO0qB,GAAYrgB,GACdrK,EAAS8tB,SAEMlrB,IAAf0rB,EAA2BtuB,EAAS6tB,EAAI7tB,EAAQsuB,K,oBCvDzD,IAAIvkB,EAAK,EAAQ,KAEbG,EAAW,EAAQ,KAEnBmgB,EAAU,EAAQ,KAEtB1pB,EAAOD,QAAU,EAAQ,KAAoBtB,OAAOmvB,iBAAmB,SAA0BlkB,EAAGikB,GAClGpkB,EAASG,GAMT,IALA,IAGIxB,EAHAoL,EAAOoW,EAAQiE,GACfnvB,EAAS8U,EAAK9U,OACdF,EAAI,EAGQA,EAATE,GACL4K,EAAGE,EAAEI,EAAGxB,EAAIoL,EAAKhV,KAAMqvB,EAAWzlB,IAGpC,OAAOwB,I,oBCjBT,IAAI7I,EAAW,EAAQ,KAAaA,SAEpCb,EAAOD,QAAUc,GAAYA,EAASiY,iB,oBCDtC,IAAIrQ,EAAM,EAAQ,KAEdolB,EAAW,EAAQ,KAEnB9D,EAAW,EAAQ,IAAR,CAAyB,YAEpC+D,EAAcrvB,OAAOC,UAEzBsB,EAAOD,QAAUtB,OAAOktB,gBAAkB,SAAUjiB,GAElD,OADAA,EAAImkB,EAASnkB,GACTjB,EAAIiB,EAAGqgB,GAAkBrgB,EAAEqgB,GAEH,mBAAjBrgB,EAAEqkB,aAA6BrkB,aAAaA,EAAEqkB,YAChDrkB,EAAEqkB,YAAYrvB,UAGhBgL,aAAajL,OAASqvB,EAAc,O,iCCf7C,IAAIplB,EAAM,EAAQ,KAEdnB,EAAU,EAAQ,KAElBsmB,EAAW,EAAQ,KAEnBjvB,EAAO,EAAQ,KAEfovB,EAAc,EAAQ,KAEtB7D,EAAW,EAAQ,KAEnB8D,EAAiB,EAAQ,KAEzBC,EAAY,EAAQ,KAExB3mB,EAAQA,EAAQS,EAAIT,EAAQK,GAAK,EAAQ,IAAR,CAA0B,SAAUumB,GACnE3pB,MAAMkmB,KAAKyD,KACT,QAAS,CAEXzD,KAAM,SAAc0D,EAAd,KAGJ,IAOI5vB,EAAQa,EAAQgvB,EAAMC,EAPtB5kB,EAAImkB,EAASO,GACbzlB,EAAmB,mBAARG,KAAqBA,KAAOtE,MACvC+pB,EAAOxlB,UAAUvK,OACjBgwB,EAAe,EAAPD,EANR,OAMkCtsB,EAClCkD,OAAoBlD,IAAVusB,EACV5d,EAAQ,EACR6d,EAASP,EAAUxkB,GAIvB,GAFIvE,IAASqpB,EAAQ9lB,EAAI8lB,EAAc,EAAPD,EAX5B,OAWsDtsB,EAAW,IAEvDA,MAAVwsB,GAAyB9lB,GAAKnE,OAASwpB,EAAYS,GAOrD,IAAKpvB,EAAS,IAAIsJ,EAFlBnK,EAAS2rB,EAASzgB,EAAElL,SAEkBoS,EAATpS,EAAgBoS,IAC3Cqd,EAAe5uB,EAAQuR,EAAOzL,EAAUqpB,EAAM9kB,EAAEkH,GAAQA,GAASlH,EAAEkH,SAPrE,IAAK0d,EAAWG,EAAO7vB,KAAK8K,GAAIrK,EAAS,IAAIsJ,IAAO0lB,EAAOC,EAAS1M,QAAQqJ,KAAMra,IAChFqd,EAAe5uB,EAAQuR,EAAOzL,EAAUvG,EAAK0vB,EAAUE,EAAO,CAACH,EAAKprB,MAAO2N,IAAQ,GAAQyd,EAAKprB,OAWpG,OADA5D,EAAOb,OAASoS,EACTvR,M,oBC/CX,IAAIkK,EAAW,EAAQ,KAEvBvJ,EAAOD,QAAU,SAAUuuB,EAAUtO,EAAI/c,EAAOqV,GAC9C,IACE,OAAOA,EAAU0H,EAAGzW,EAAStG,GAAO,GAAIA,EAAM,IAAM+c,EAAG/c,GACvD,MAAO/C,GACP,IAAIwuB,EAAMJ,EAAiB,OAE3B,WADYrsB,IAARysB,GAAmBnlB,EAASmlB,EAAI9vB,KAAK0vB,IACnCpuB,K,oBCRV,IAAIsrB,EAAY,EAAQ,KAEpBI,EAAW,EAAQ,IAAR,CAAkB,YAE7B+C,EAAanqB,MAAM9F,UAEvBsB,EAAOD,QAAU,SAAU+J,GACzB,YAAc7H,IAAP6H,IAAqB0hB,EAAUhnB,QAAUsF,GAAM6kB,EAAW/C,KAAc9hB,K,iCCNjF,IAAI8kB,EAAkB,EAAQ,KAE1BvlB,EAAa,EAAQ,KAEzBrJ,EAAOD,QAAU,SAAU2D,EAAQkN,EAAO3N,GACpC2N,KAASlN,EAAQkrB,EAAgBtlB,EAAE5F,EAAQkN,EAAOvH,EAAW,EAAGpG,IAAaS,EAAOkN,GAAS3N,I,oBCPnG,IAAI4rB,EAAU,EAAQ,KAElBjD,EAAW,EAAQ,IAAR,CAAkB,YAE7BJ,EAAY,EAAQ,KAExBxrB,EAAOD,QAAU,EAAQ,KAAW+uB,kBAAoB,SAAUhlB,GAChE,GAAU7H,MAAN6H,EAAiB,OAAOA,EAAG8hB,IAAa9hB,EAAG,eAAiB0hB,EAAUqD,EAAQ/kB,M,oBCNpF,IAAImgB,EAAM,EAAQ,KAEdvJ,EAAM,EAAQ,IAAR,CAAkB,eAGxBqO,EAEI,aAFE9E,EAAI,WACZ,OAAOlhB,UADK,IAYd/I,EAAOD,QAAU,SAAU+J,GACzB,IAAIJ,EAAGslB,EAAG5mB,EACV,YAAcnG,IAAP6H,EAAmB,YAAqB,OAAPA,EAAc,OACR,iBAApCklB,EAXC,SAAgBllB,EAAIvG,GAC/B,IACE,OAAOuG,EAAGvG,GACV,MAAOrD,KAQK+uB,CAAOvlB,EAAIjL,OAAOqL,GAAK4W,IAAoBsO,EACvDD,EAAM9E,EAAIvgB,GACM,WAAftB,EAAI6hB,EAAIvgB,KAAsC,mBAAZA,EAAEwlB,OAAuB,YAAc9mB,I,oBCvB9E,IAAIwjB,EAAW,EAAQ,IAAR,CAAkB,YAE7BuD,GAAe,EAEnB,IACE,IAAIC,EAAQ,CAAC,GAAGxD,KAEhBwD,EAAc,OAAI,WAChBD,GAAe,GAIjB3qB,MAAMkmB,KAAK0E,EAAO,WAChB,MAAM,IAER,MAAOlvB,IAITF,EAAOD,QAAU,SAAUiT,EAAMqc,GAC/B,IAAKA,IAAgBF,EAAc,OAAO,EAC1C,IAAIG,GAAO,EAEX,IACE,IAAI7N,EAAM,CAAC,GACP0M,EAAO1M,EAAImK,KAEfuC,EAAKvM,KAAO,WACV,MAAO,CACLqJ,KAAMqE,GAAO,IAIjB7N,EAAImK,GAAY,WACd,OAAOuC,GAGTnb,EAAKyO,GACL,MAAOvhB,IAIT,OAAOovB,I,kBCtCiC,oBAAXtrB,QACV,WAInB,IAHA,IAAIurB,EAAW,EACXC,EAAU,CAAC,KAAM,MAAO,SAAU,KAE7BC,EAAI,EAAGA,EAAID,EAAQhxB,SAAWwF,OAAO0rB,wBAAyBD,EACrEzrB,OAAO0rB,sBAAwB1rB,OAAOwrB,EAAQC,GAAK,yBACnDzrB,OAAO2rB,qBAAuB3rB,OAAOwrB,EAAQC,GAAK,yBAA2BzrB,OAAOwrB,EAAQC,GAAK,+BAG9FzrB,OAAO0rB,wBAAuB1rB,OAAO0rB,sBAAwB,SAAUjX,EAAUoF,GACpF,IAAI+R,GAAW,IAAIC,MAAOC,UACtBC,EAAa5oB,KAAKsjB,IAAI,EAAG,IAAMmF,EAAWL,IAC1ChpB,EAAKvC,OAAO9B,WAAW,WACzBuW,EAASmX,EAAWG,IACnBA,GAEH,OADAR,EAAWK,EAAWG,EACfxpB,IAEJvC,OAAO2rB,uBAAsB3rB,OAAO2rB,qBAAuB,SAAUppB,GACxE/E,aAAa+E,KAnBI,I,oBCLrB,EAAQ,KAERvG,EAAOD,QAAU,EAAQ,KAAuBtB,OAAO6U,M,oBCDvD,IAAIua,EAAW,EAAQ,KAEnBza,EAAQ,EAAQ,KAEpB,EAAQ,IAAR,CAAyB,OAAQ,WAC/B,OAAO,SAActJ,GACnB,OAAOsJ,EAAMya,EAAS/jB,Q,oBCN1B,IAAIvC,EAAU,EAAQ,KAElBX,EAAO,EAAQ,KAEfopB,EAAQ,EAAQ,KAEpBhwB,EAAOD,QAAU,SAAUkwB,EAAKjd,GAC9B,IAAIgN,GAAMpZ,EAAKnI,QAAU,IAAIwxB,IAAQxxB,OAAOwxB,GACxCC,EAAM,GACVA,EAAID,GAAOjd,EAAKgN,GAChBzY,EAAQA,EAAQS,EAAIT,EAAQK,EAAIooB,EAAM,WACpChQ,EAAG,KACD,SAAUkQ,K,2DCCDC,IAXU,kBACvB,mBAAK1kB,UAAU,iDAAf,EACE,4BACE,mBAAKA,UAAU,sCAAf,EACE,YAAC,IAAD,CAAkBlF,GAAG,0BAA0BkY,QAAQ,SAASxN,eAAe,cAC/E,YAAC,IAAD,CAAkB1K,GAAG,6BAA6B0K,eAAe,0C,8GCyC1D1D,sBA1BS,SAACG,EAAD,GAA4B,IAAlB+P,EAAiB,EAAjBA,WAC1BJ,EAAe3P,EAAMY,MAAM,CAAC,YAAamP,EAAY,SAAUpC,kBAAiBiC,OAGtF,MAAO,CACLP,UAlB2BqT,YAAe,CAC5C,SAAC1iB,EAAD,OAAU9L,EAAV,EAAUA,KAAV,OAAqBiM,YAAYH,GAAO7K,IAAIjB,EAAMimB,kBAClD,SAACna,EAAD,OAAU9L,EAAV,EAAUA,KAAV,OAAqB8L,EAAMY,MAAM,CAAC,YAAa1M,EAAM,SAAUyZ,mBAC/D,SAAC3N,GAAD,OAAqBA,EAAM7K,IAAI,aAC/B,SAAC6K,GAAD,OAAqBA,EAAM7K,IAAI,QAC9B,SAACwtB,EAAgBtT,EAAWuT,EAAUC,GACvC,OAAOxT,EAAU/W,OAAO,SAAAO,GACtB,IAAMoH,EAAS2iB,EAASztB,IAAI0D,GAC5B,OAAKoH,IACG6iB,YAAa7iB,EAAQ0iB,MASlBI,CAAa/iB,EAAO,CAAE9L,KAAM6b,IACvCJ,aAAcA,EACdxD,UAAWnM,EAAMY,MAAM,CAAC,YAAamP,EAAY,cAAc,GAC/DY,UAAW3Q,EAAMY,MAAM,CAAC,YAAamP,EAAY,cAAc,GAC/D7D,QAAWlM,EAAMY,MAAM,CAAC,YAAamP,EAAY,YACjDW,sBAAuB1Q,EAAMY,MAAM,CAAC,YAAamP,EAAY,4BAItC,SAACzP,EAAU0iB,GAAX,MAAyB,CAClDlT,kBADkD,SAChCC,GAChBzP,EAAS2iB,YAAgBlT,EAAYiT,EAAS/W,cAEhDG,cAAe,IAAS,WACtB9L,EAAS4iB,YAAkBF,EAASjT,YAAY,KAC/C,KACH1D,SAAU,IAAS,WACjB/L,EAAS4iB,YAAkBF,EAASjT,YAAY,KAC/C,OAGUlQ,CAA6CqP,M,iCCjD5D,uIAaMhQ,EAAWC,YAAe,CAC9BgkB,KAAK,CAAD,iEACJ3nB,KAAK,CAAD,iEACJ4nB,UAAU,CAAD,oDACTC,eAAe,CAAD,8DACdC,UAAU,CAAD,iDAGLC,EAAkBb,YAAe,CAAC,SAAA1iB,GAAK,OAAIA,EAAM7K,IAAI,WAAW,SAAAquB,GACpE,OAAKA,EAIEA,EAAMC,SAASnrB,OAAO,SAAA2b,GAAI,QAAMA,IAAMyP,KAAK,SAACxoB,EAAGC,GAAJ,OAAUD,EAAE/F,IAAI,SAASwuB,cAAcxoB,EAAEhG,IAAI,YAHtFquB,IAaLI,E,sLAiBI,CACNC,WAAW,EACXC,WAAW,EACXC,YAAa,O,+CAOK,SAACvxB,GACnBA,EAAEkkB,kBACF,EAAK9O,SAAS,CAAEic,WAAY,EAAK7jB,MAAM6jB,UAAWC,WAAW,M,iDAGzC,WACpB,EAAKlc,SAAS,CAAEkc,WAAW,M,yCAGf,WACZ,EAAKlc,SAAS,CACZmc,YAAa,Y,8CAfjBnb,kBAAA,WACExN,KAAKkB,MAAMgE,SAAS0jB,gB,EAkBtBnmB,OAAA,WAAU,IAyBJomB,EAAcC,EAzBX,EAC4F9oB,KAAKkB,MAAhG6nB,EADD,EACCA,OAAQrmB,EADT,EACSA,SAAkBiD,EAD3B,EACmBR,KAAQQ,cAAiBqjB,EAD5C,EAC4CA,WAAYC,EADxD,EACwDA,cAAeb,EADvE,EACuEA,MAAOc,EAD9E,EAC8EA,UAD9E,EAEuClpB,KAAK4E,MAA3C6jB,EAFD,EAECA,UAAWC,EAFZ,EAEYA,UAAWC,EAFvB,EAEuBA,YAExBQ,EAAmB7Q,IAAW,yBAA0B,CAC5D,OAAUyQ,IAGNK,EAAkB9Q,IAAW,gBAAiB,CAClD,OAAUyQ,IAGNM,EAAuB/Q,IAAW,6BAA8B,CACpE,UAAamQ,EACb,UAAaC,IAGTY,EAA6BhR,IAAW,wBAAyB,CACrE,QAAWmQ,IAGPc,EAAqBjR,IAAW,yCAA0C,CAC9E,KAAQqQ,IAKNjmB,IACFmmB,EACE,mBAAyBlmB,UAAU,qCAA1B,gBACND,GAILomB,EAAiB,sBAAQnmB,UAAW2mB,EAA4B1mB,MAAO+C,EAAc8iB,EAAY3kB,EAASikB,KAAOjkB,EAAS1D,MAAO+X,aAAYxS,EAAc8iB,EAAY3kB,EAASikB,KAAOjkB,EAAS1D,MAAOopB,eAAcf,EAAY,QAAU,OAAQlnB,QAASvB,KAAKypB,wBAAhP,EAAmQ,YAAC,IAAD,CAAMhsB,GAAG,cAG/R,IAAMisB,EAAmB,CACvBb,GAGEc,EAAkB,KAiBtB,MAhBqB,UAAhBhB,GAA0C,UAAfK,IAA2BZ,IACzDuB,EAAkBvB,EAAMjV,IAAI,SAAAuD,GAAI,OAC7B,YAAC,IAAD,CAECkT,GAAE,SAAWlT,EAAK3c,IAAI,MACtB4I,UACE2V,IAAW,uBAAwB,CACjC,OAAU5B,EAAK3c,IAAI,QAAUkvB,KAJ5BvS,EAAK3c,IAAI,MAQb2c,EAAK3c,IAAI,aAMd,mBAAK4I,UAAWwmB,QAAhB,EACE,kBAAIxmB,UAAWymB,QAAf,EACE,YAAC,IAAD,CAAMQ,GAAG,IAAIjnB,UAAW2V,IAAW,cAAe,CAAE,OAAU,SAAW0Q,UAAzE,EACE,YAAC,IAAD,CAAMvrB,GAAG,OAAOosB,YAAU,EAAClnB,UAAU,wBACpCgD,EAAc7B,EAASkkB,YAG1B,YAAC,IAAD,CAAM4B,GAAG,kBAAkBjnB,UAAW2V,IAAW,cAAe,CAAE,OAAU,UAAY0Q,UAAxF,EACE,YAAC,IAAD,CAAMvrB,GAAG,QAAQosB,YAAU,EAAClnB,UAAU,wBACrCumB,GAGH,YAAC,IAAD,CAAMU,GAAG,sBAAsBjnB,UAAW2V,IAAW,cAAe,CAAE,OAAU,cAAgB0Q,UAAhG,EACE,YAAC,IAAD,CAAMvrB,GAAG,YAAYosB,YAAU,EAAClnB,UAAU,wBACzCgD,EAAc7B,EAASmkB,iBAG1B,mBAAKtlB,UAAU,+BAAf,EACGmmB,IAKHa,GACA,kBAAIhnB,UAAW4mB,QAAf,EACGI,GAIL,mBAAKhnB,UAAW0mB,EAAsBjb,SAAUqa,GAAa,EAAI,KAAMqB,gBAAiB9pB,KAAK+pB,0BAA7F,EACE,mBAAKpnB,UAAU,yCAAf,IACK8lB,GAAaC,IAAcgB,M,GApIfrb,IAAMc,e,YAA3BqZ,E,eAEkB,CACpBnjB,OAAQuO,IAAUhZ,SA0IP4J,gBAAWC,kBApJF,SAAAG,GACtB,MAAO,CACLwjB,MAAOD,EAAgBvjB,GACvBskB,UAAWtkB,EAAMY,MAAM,CAAC,WAAY,YAiJdf,CAAyB+jB,K,iDClKpCwB,IAZU,SAAC,GAAc,IAAZjtB,EAAW,EAAXA,KAC1B,OACE,mBAAK4F,UAAU,0BAAf,EACG5F,K,+JCAD+G,EAAWC,YAAe,CAC9BkmB,SAAS,CAAD,mDACRC,OAAO,CAAD,iDAGyBC,EAAjB3lB,a,iMAgBC,SAACpN,GACd,EAAK8J,MAAMkpB,UAAU,EAAKlpB,MAAMmpB,UAChCjzB,EAAE+Z,mB,sCAGJ1O,OAAA,WAAU,IAAD,EAC8CzC,KAAKkB,MAAlDopB,EADD,EACCA,SAAU5nB,EADX,EACWA,SAAU6nB,EADrB,EACqBA,KAAMF,EAD3B,EAC2BA,SAAUllB,EADrC,EACqCA,KAE5C,OACE,mBAAKxC,UAAW2V,IAAW,YAAa,CAAE,sBAAwB+R,UAAlE,EACGE,GACC,mBAAK5nB,UAAU,wBAAf,EACE,YAAC,IAAD,CAAc6nB,MAAOD,EAAMjK,KAAK,aAAatd,KAAM,GAAIynB,UAAU,WAGrE,sBACE3xB,KAAK,SACL6J,UAAU,mBACVpB,QAASvB,KAAK0qB,aACd9nB,MAAOuC,EAAKQ,cAAc0kB,EAAWvmB,EAASmmB,SAAWnmB,EAASomB,cAJpE,EAMGI,GAEH,mBAAK3nB,UAAU,2BAAf,EACGD,K,GAxCwC2L,IAAMc,e,6BAWjC,CACpBkb,UAAU,EACVD,SAAU,e,uDCvBC,EADDz0B,OACC,4BAGb,MAA6B,mBAF7BiL,EAAIjL,OAAOiL,IAEEqkB,aAA8BrkB,aAAaA,EAAEqkB,YACjDrkB,EAAEqkB,YAAYrvB,UAGhBgL,aAAajL,OAASA,OAAOC,UAAY,M,iBCR9C,EAAUD,OACC,EAYN,SAAUwtB,EAAawH,EAAYC,GAGxC,OAFID,GAAY7F,EAAiB3B,EAAYvtB,UAAW+0B,GACpDC,GAAa9F,EAAiB3B,EAAayH,GACxCzH,GAdT,SAAS2B,EAAiB/rB,EAAQmI,GAChC,IAAK,IAAI1L,EAAI,EAAGA,EAAI0L,EAAMxL,OAAQF,IAAK,CACrC,IAAI0uB,EAAahjB,EAAM1L,GACvB0uB,EAAWpqB,WAAaoqB,EAAWpqB,aAAc,EACjDoqB,EAAW9Z,cAAe,EACtB,UAAW8Z,IAAYA,EAAW7Z,UAAW,GAEjD,EAAQxQ,eAAed,EAAQmrB,EAAWzpB,IAAKypB,ICTtC,SAAS2G,EAA0BvsB,EAAMxI,GACtD,IAAKwI,EACH,MAAM,IAAIwsB,eAAe,6DAG3B,OAAOh1B,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BwI,EAAPxI,ECL5E,IAAI,EAAUH,OACC,SAASo1B,EAASC,EAAUC,GACzC,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAInqB,UAAU,kEAAoEmqB,GAG1FD,EAASp1B,UAAY,EAAQ4E,OAAOywB,GAAcA,EAAWr1B,UAAW,CACtEqvB,YAAa,CACX9qB,MAAO6wB,EACPlxB,YAAY,EACZuQ,UAAU,EACVD,cAAc,KAId6gB,IACF,EAAQC,eAAiB,EAAQA,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,G,iEChB7FG,G,YAAY,cACZC,EAAQC,KACRC,EAA4C,oBAAXrwB,QAA0B,iBAAkBA,OAC7EvB,OAAS,EACT6xB,OAAS,EAmBb,SAAS,EAAI/wB,EAAKN,GAChB,GAAIqxB,EACFA,EAAO/wB,EAAKN,OACP,CACL,IAAKoxB,EAAyB,OAE9B,IACErwB,OAAOuwB,aAAaL,EAAY,IAAM3wB,GAAO4wB,EAAMK,UAAUvxB,GAC7D,MAAO/C,MAsBE,OACbu0B,OAtCF,SAAgB/mB,GACd,IAAK,IAAInK,KAAOmK,EAAO,CAErB,EAAInK,EADQmK,EAAMnK,MAqCpB2G,IAAK,EACLrH,IArBF,SAAaU,GACX,GAAId,EACF,OAAOA,EAAOc,GAEd,GAAK8wB,EAAL,CAEA,IACE,IAAIpxB,EAAQe,OAAOuwB,aAAaL,EAAY,IAAM3wB,GAClD,MAAOrD,GACP,OAGF,OAAI+C,EACKmxB,KAAKM,MAAMzxB,QADpB,IAUF0xB,aA7CF,SAAsBC,GACpBV,EAAYU,GA6CZC,YApDF,SAAqBC,GAEnBryB,GADaqyB,EAAbA,GAAwB,IACNryB,OAClB6xB,EAASQ,EAASR,SCRhBS,EAAW,CAAC,KAAM,WAAY,gBAAiB,aAAc,WAAY,+BAAgC,cAAe,MAAO,SAAU,eAAgB,WAAY,QAAS,MAAO,aAAc,QAAS,QAC5MC,OAAa,EACbC,OAAc,EACdC,EAAW,GAEf,SAASC,IACPF,GAAc,EACdD,EAAajuB,EAAMlE,IAAI,cAmDV,OACbuyB,IAjDF,SAAahxB,GACN6wB,GAAaE,IAClB,IAAI5uB,EAAKnC,EAAMmC,IACAyuB,EAAfA,GAA4BE,GACjB3uB,KAAQyuB,EAAWzuB,GAAM,GACpCyuB,EAAWzuB,IAAO,EAClBQ,EAAMmD,IAAI,OAAQ3D,GAClBQ,EAAMmD,IAAI,aAAc8qB,IA2CxBnyB,IAxCF,SAAawyB,GAGX,GAFKJ,GAAaE,KAEbH,EAAY,CACfE,EAAW,GAGX,IAFA,IAAI71B,EAAS,GAEJf,EAAI,EAAGA,EAAI+2B,EAAS/2B,IAC3B42B,EAASH,EAASz2B,IAAM+2B,EAAU/2B,EAClCe,EAAOP,KAAKi2B,EAASz2B,IAGvB,OAAOe,EAGT,IAGSkE,EAHL+xB,EAAqB,EAAVD,EACXE,EAAiB,GAErB,IAAShyB,KAAOyxB,EACVA,EAAWr2B,eAAe4E,IAC5BgyB,EAAez2B,KAAKyE,GAIxB,IAGIiyB,EAHSD,EAAenE,KAAK,SAAUxoB,EAAGC,GAC5C,OAAOmsB,EAAWpsB,GAAKosB,EAAWnsB,KACjC4sB,UACiBvxB,MAAM,EAAGoxB,GACzBhY,EAAOvW,EAAMlE,IAAI,QAOrB,OALIya,IAAiC,GAAzBkY,EAAO1wB,QAAQwY,KACzBkY,EAAO3O,MACP2O,EAAO12B,KAAKwe,IAGPkY,I,yBC5CM,EAZJ,CACTE,SAAU,suBACVtqB,OAAQ,kbACRuqB,MAAO,8KACPC,MAAO,+1BACPC,OAAQ,mpDACRC,QAAS,s7BACTC,OAAQ,gVACRC,OAAQ,i/BACRC,OAAQ,8MACRC,QAAS,w5CCDP,GACF,EAAUC,EAuFV,IAAMle,eAtEN,EAAake,EAAS,CAAC,CACrB5yB,IAAK,SACLN,MAAO,SAAgBsD,GAGrB,GAFAuC,KAAKstB,OAASttB,KAAKstB,KAAO,IAEtBttB,KAAKstB,KAAK7vB,GACZ,OAAOuC,KAAKstB,KAAK7vB,GAEjB,IAAI8vB,EAAM,+FAAiG,EAAK9vB,GAAM,iBAEtH,OADAuC,KAAKstB,KAAK7vB,GAAM8vB,IAInB,CACD9yB,IAAK,cACLN,MAAO,SAAqB/C,GAC1B,IAAI0Q,EAAQ1Q,EAAEo2B,cAAcvrB,aAAa,cACrCwrB,EAASztB,KAAKkB,MACdwsB,EAAaD,EAAOC,YAExBC,EADoBF,EAAOE,eACbD,EAAW5lB,GAAQA,KAElC,CACDrN,IAAK,SACLN,MAAO,WACL,IAAIyzB,EAAS5tB,KAET6tB,EAAU7tB,KAAKkB,MACfwsB,EAAaG,EAAQH,WAErBI,GADgBD,EAAQF,cAChBE,EAAQC,OAChBC,EAAOF,EAAQE,KACfC,EAAWhuB,KAAK4E,MAAMopB,SAC1B,OAAO,IAAMh2B,cAAc,MAAO,CAChC2K,UAAW,sBACV+qB,EAAWva,IAAI,SAAU8a,EAAUz4B,GACpC,IAAIiI,EAAKwwB,EAASxwB,GACdxE,EAAOg1B,EAASh1B,KAChBi1B,EAASD,EAASC,OAClBC,EAAal1B,GAAQ+0B,EAEzB,IAAe,IAAXE,EACF,OAAO,KAGT,IAAIE,EAAS3wB,EAAG4wB,WAAW,WAAa,SAAW5wB,EACnD,OAAO,IAAMzF,cAAc,OAAQ,CACjCyC,IAAKgD,EACLmF,MAAOmrB,EAAKL,WAAWjwB,GACvB,aAAcjI,EACd+L,QAASqsB,EAAO1V,YAChBvV,UAAW,sBAAwBwrB,EAAa,6BAA+B,IAC/EtsB,MAAO,CACLisB,MAAOK,EAAaL,EAAQ,OAE7B,IAAM91B,cAAc,MAAO,CAC5Bs2B,wBAAyB,CACvBC,OAAQX,EAAOY,OAAOJ,MAEtB,IAAMp2B,cAAc,OAAQ,CAC9B2K,UAAW,wBACXd,MAAO,CACL4sB,gBAAiBX,aAOpBT,GApFP,SAASA,EAAQnsB,GACf,IAAgBlB,KAAMqtB,GAEtB,IAAIqB,EAAQ,EAA2B1uB,MAAOqtB,EAAQlC,WAAa,EAAuBkC,IAAUv3B,KAAKkK,KAAMkB,IAE3GytB,EAAkBztB,EAAMwsB,WAAWxwB,OAAO,SAAU+wB,GACtD,OAAOA,EAASlV,QACf,GAKH,OAJA2V,EAAM9pB,MAAQ,CACZopB,SAAUW,EAAgB11B,MAE5By1B,EAAMxW,YAAcwW,EAAMxW,YAAYxd,KAAKg0B,GACpCA,EA2EI,QACf,EAAQtsB,aAAe,CACrBsrB,WAAY,GACZC,cAAe,cC1FjB,IAAI,GACF,EAAUiB,EA8NV,IAAMlgB,WAjNN,EAAakgB,EAAU,CAAC,CACtBn0B,IAAK,oBACLN,MAAO,WACL6F,KAAK6uB,OAAS7uB,KAAK8U,UAAUga,WAC7B9uB,KAAK+uB,OAAS,EACd/uB,KAAKgvB,UAAY,EACjBhvB,KAAKivB,gBAEN,CACDx0B,IAAK,wBACLN,MAAO,SAA+B8S,GACpC,IAAIwgB,EAASztB,KAAKkB,MACdjI,EAAOw0B,EAAOx0B,KACdszB,EAAUkB,EAAOlB,QACjBzpB,EAAS2qB,EAAO3qB,OAChBosB,EAAoBzB,EAAOyB,kBAC3BvxB,EAAS8vB,EAAO9vB,OAChBwxB,EAAa1B,EAAO0B,WACpBhuB,EAAOguB,EAAWhuB,KAClB6B,EAAOmsB,EAAWnsB,KAClB5B,EAAM+tB,EAAW/tB,IACjBguB,EAAcniB,EAAUsf,QACxB8C,EAAapiB,EAAUnK,OACvBwsB,EAAwBriB,EAAUiiB,kBAClCK,EAAatiB,EAAUtP,OACvB6xB,EAAiBviB,EAAUkiB,WAC3BM,EAAWD,EAAeruB,KAC1BuuB,EAAWF,EAAexsB,KAC1B2sB,EAAUH,EAAepuB,IAe7B,OAJID,GAAQsuB,GAAYzsB,GAAQ0sB,GAAY5sB,GAAUusB,GAAcjuB,GAAOuuB,GAAWT,GAAqBI,EAJ/F,UAARr2B,IACe0E,GAAU4xB,GALjB,UAARt2B,GAAoBszB,GAAW6C,GAClB,GAHE,GAWF,IAKlB,CACD30B,IAAK,cACLN,MAAO,WACL,IAAIy1B,EAAwB5vB,KAAK8U,UAAUlJ,wBAEvCE,EAAM8jB,EAAsB9jB,IAC5B1I,EAASwsB,EAAsBxsB,OAI/BysB,EAFwB7vB,KAAK6uB,OAAOjjB,wBAEFE,IAIlCgkB,EAFwB9vB,KAAK+vB,MAAMnkB,wBAECxI,OACxCpD,KAAK8L,IAAMA,EAAM+jB,EAAY7vB,KAAK6uB,OAAO5e,UAGvCjQ,KAAKgwB,UADO,GAAV5sB,EACe,EAEAA,EAAS0sB,IAG7B,CACDr1B,IAAK,eACLN,MAAO,SAAsB8V,GAC3B,IAAI8e,EAAS9e,EAAYjQ,KAAK8L,IAG9B,IADAijB,GADAA,EAASA,EAAS/uB,KAAKgvB,UAAYhvB,KAAKgvB,UAAYD,GAClC/uB,KAAKgwB,UAAYhwB,KAAKgwB,UAAYjB,IACtC/uB,KAAK+uB,OAOnB,OALK/uB,KAAKkB,MAAMguB,oBACdlvB,KAAK+vB,MAAMluB,MAAMiK,IAAMijB,EAAS,MAGlC/uB,KAAK+uB,OAASA,GACP,IAER,CACDt0B,IAAK,YACLN,MAAO,WACL,IAAIyzB,EAAS5tB,KAET6tB,EAAU7tB,KAAKkB,MACfjI,EAAO40B,EAAQ50B,KACfqJ,EAASurB,EAAQvrB,OACjB3E,EAASkwB,EAAQlwB,OACjBwvB,EAASU,EAAQV,OACjBZ,EAAUsB,EAAQtB,QAEtB,GAAY,UAARtzB,EAAkB,CACpB,IAAIg3B,EAAiB9C,GAAU,EAAWpzB,IAAIwyB,GAkB9C,GAhBI0D,EAAev6B,SACjBiI,EAASsyB,EAAe9c,IAAI,SAAU1V,GACpC,IAAInC,EAAQgH,EAAOpF,OAAO,SAAU9F,GAClC,OAAOA,EAAEqG,KAAOA,IACf,GAEH,OAAInC,GAIGmC,IACNP,OAAO,SAAUO,GAClB,QAAS,YAAQA,EAAI,KAAM,KAAMmwB,EAAO14B,SAItB,IAAlByI,EAAOjI,QAAwC,EAAxBu6B,EAAev6B,OACxC,OAAO,KAQX,OAHEiI,EADEA,GACOA,EAAOvC,MAAM,KAKzB,CACDX,IAAK,gBACLN,MAAO,SAAuB+I,GACflD,KAAKkwB,cAMlBlwB,KAAK8U,UAAUjT,MAAMqB,QAAUA,KAEhC,CACDzI,IAAK,kBACLN,MAAO,SAAyBV,GAC9BuG,KAAK8U,UAAYrb,IAElB,CACDgB,IAAK,cACLN,MAAO,SAAqBV,GAC1BuG,KAAK+vB,MAAQt2B,IAEd,CACDgB,IAAK,SACLN,MAAO,WACL,IAAIg2B,EAASnwB,KAETowB,EAAUpwB,KAAKkB,MACfzD,EAAK2yB,EAAQ3yB,GACbxE,EAAOm3B,EAAQn3B,KACfi2B,EAAoBkB,EAAQlB,kBAC5BC,EAAaiB,EAAQjB,WACrBpB,EAAOqC,EAAQrC,KACfpwB,EAASqC,KAAKkwB,YACdG,EAAc,GACdC,EAAkB,GAClBC,EAEC5yB,EAFiB,GAGF,CAChBuF,QAAS,QAIRgsB,IACHmB,EAAc,CACZjtB,OAAQ,IAEVktB,EAAkB,CAChB/T,SAAU,aAId,IAAIwT,EAAQhC,EAAKL,WAAWjwB,IAAOxE,EACnC,OAAO,IAAMjB,cAAc,MAAO,CAChC+V,IAAK/N,KAAKwwB,gBACV7tB,UAAW,wBAA0BhF,IAAWA,EAAOjI,OAAS,wBAA0B,IAC1FmM,MAAO0uB,GACN,IAAMv4B,cAAc,MAAO,CAC5B6J,MAAOwuB,EACP,YAAap3B,EACb0J,UAAW,6BACV,IAAM3K,cAAc,OAAQ,CAC7B6J,MAAOyuB,EACPviB,IAAK/N,KAAKywB,aACTV,IAASpyB,GAAUA,EAAOwV,IAAI,SAAU7X,GACzC,OAAO,aAAY,YAAS,CAC1BA,MAAOA,EACPpG,KAAMi7B,EAAOj7B,MACZi6B,MACDxxB,IAAWA,EAAOjI,QAAU,IAAMsC,cAAc,MAAO,KAAM,IAAMA,cAAc,MAAO,KAAM,aAAY,YAAS,CACrH9C,KAAM8K,KAAK9K,MACVi6B,EAAY,CACbnsB,KAAM,GACN1H,MAAO,gBACPmG,OAAQ,KACRE,QAAS,KACTJ,QAAS,SACL,IAAMvJ,cAAc,MAAO,CAC/B2K,UAAW,+BACVorB,EAAK2C,gBAIL9B,GA3NP,SAASA,EAAS1tB,GAChB,IAAgBlB,KAAM4uB,GAEtB,IAAIF,EAAQ,EAA2B1uB,MAAO4uB,EAASzD,WAAa,EAAuByD,IAAW94B,KAAKkK,KAAMkB,IAKjH,OAHAwtB,EAAMx5B,KAAOgM,EAAMhM,KACnBw5B,EAAM8B,gBAAkB9B,EAAM8B,gBAAgB91B,KAAKg0B,GACnDA,EAAM+B,YAAc/B,EAAM+B,YAAY/1B,KAAKg0B,GACpCA,EAsNI,QACf,EAAStsB,aAAe,CACtBzE,OAAQ,GACRuxB,mBAAmB,GCrOrB,IAAI,GACF,EAAUyB,EAsFV,IAAMxhB,eAxEN,EAAawhB,EAAS,CAAC,CACrBl2B,IAAK,SACLN,MAAO,WACL,IAAImB,EAAQ0E,KAAK4E,MAAMtJ,MACnBmyB,EAASztB,KAAKkB,MACdiuB,EAAa1B,EAAO0B,WACpByB,EAAanD,EAAOmD,WACpBC,EAAgBpD,EAAOoD,cACvBjuB,EAAQ6qB,EAAO7qB,MACfkuB,EAAYrD,EAAOnyB,MAEvB,GAAIA,EAAO,CACT,IAAIy1B,EAAY,YAAQz1B,EAAO,KAAM,KAAM0E,KAAK9K,MAC5C87B,EAAuBD,EAAU50B,UAEjC80B,EAAiB,GACjBC,EAAkB,GAStB,YAXyC/3B,IAAzB63B,EAAqC,GAAKA,GAGhDp1B,QAAQ,SAAUu1B,GAC4B,GAAlDF,EAAej1B,QAAQm1B,EAASr1B,iBAIpCm1B,EAAej7B,KAAKm7B,EAASr1B,eAC7Bo1B,EAAgBl7B,KAAKm7B,MAEhB,IAAMn5B,cAAc,MAAO,CAChC2K,UAAW,sBACV,IAAM3K,cAAc,MAAO,CAC5B2K,UAAW,4BACV,aAAY,YAAS,CACtBlI,IAAKa,EAAMmC,GACXnC,MAAOA,EACPpG,KAAM8K,KAAK9K,MACVi6B,KAAe,IAAMn3B,cAAc,MAAO,CAC3C2K,UAAW,2BACV,IAAM3K,cAAc,MAAO,CAC5B2K,UAAW,2BACVrH,EAAMrC,MAAO,IAAMjB,cAAc,MAAO,CACzC2K,UAAW,iCACVouB,EAAU90B,YAAYkX,IAAI,SAAUhW,GACrC,OAAO,IAAMnF,cAAc,OAAQ,CACjCyC,IAAK0C,EACLwF,UAAW,gCACV,IAAKxF,EAAY,QACjB,IAAMnF,cAAc,MAAO,CAC9B2K,UAAW,gCACVuuB,EAAgB/d,IAAI,SAAUge,GAC/B,OAAO,IAAMn5B,cAAc,OAAQ,CACjCyC,IAAK02B,EACLxuB,UAAW,+BACVwuB,QAGL,OAAO,IAAMn5B,cAAc,MAAO,CAChC2K,UAAW,sBACV,IAAM3K,cAAc,MAAO,CAC5B2K,UAAW,4BACVmuB,GAAaA,EAAUp7B,QAAU,aAAY,YAAS,CACvD4F,MAAOw1B,EACP57B,KAAM8K,KAAK9K,MACVi6B,KAAe,IAAMn3B,cAAc,MAAO,CAC3C2K,UAAW,2BACV,IAAM3K,cAAc,OAAQ,CAC7B2K,UAAW,0BACVC,IAASiuB,GAAiB,IAAM74B,cAAc,MAAO,CACtD2K,UAAW,4BACV,IAAM3K,cAAc,EAAO44B,SAK7BD,GAnFP,SAASA,EAAQzvB,GACf,IAAgBlB,KAAM2wB,GAEtB,IAAIjC,EAAQ,EAA2B1uB,MAAO2wB,EAAQxF,WAAa,EAAuBwF,IAAU76B,KAAKkK,KAAMkB,IAM/G,OAJAwtB,EAAMx5B,KAAOgM,EAAMhM,KACnBw5B,EAAM9pB,MAAQ,CACZtJ,MAAO,MAEFozB,EA6EI,QC9Fb,SAAS0C,EAAiBl8B,GACxB,IAAgB8K,KAAMoxB,GAElBl8B,EAAKwI,YACP,qBAAWxI,GAGb8K,KAAK9K,KAAOA,GAAQ,GACpB8K,KAAKqxB,aAAe,GACpBrxB,KAAK8H,MAAQ,GACb9H,KAAKrC,OAAS,GACdqC,KAAK7D,UAAY,GACjB6D,KAAKsxB,iBAAmB,GACxBtxB,KAAKuxB,aDkFT,EAAQnvB,aAAe,CACrByuB,eAAe,EACf1W,SAAU,cC6GG,OA9Lb,EAAaiX,EAAkB,CAAC,CAC9B32B,IAAK,aACLN,MAAO,WACL,IAsBSmB,EAtBLozB,EAAQ1uB,KAsBZ,IAAS1E,KAAS0E,KAAK9K,KAAKyI,QApBhB,SAAerC,GACzB,IAAIy1B,EAAYrC,EAAMx5B,KAAKyI,OAAOrC,GAC9BW,EAAc80B,EAAU90B,YACxBE,EAAY40B,EAAU50B,UACtBsB,EAAKxB,EAAY,GAEjBE,GACFA,EAAUP,QAAQ,SAAUu1B,GACtBzC,EAAMvyB,UAAUg1B,KAIpBzC,EAAMvyB,UAAUg1B,GAAY1zB,KAIhCixB,EAAM/wB,OAAOF,GAAM,YAAiBA,EAAI,KAAM,KAAMixB,EAAMx5B,MAC1Dw5B,EAAM2C,aAAa5zB,GAAMszB,EAIzBS,CAAMl2B,KAGT,CACDb,IAAK,oBACLN,MAAO,SAA2Bs3B,GAChC,IAAI7D,EAAS5tB,KAEbA,KAAKsxB,iBAAiB11B,QAAQ,SAAUN,GACtC,IAAIo2B,EAAUp2B,EAAMmC,IAAMnC,EAAMW,YAAY,UACrCw1B,EAAKC,UACL9D,EAAOjwB,OAAO+zB,OAGxB,CACDj3B,IAAK,kBACLN,MAAO,SAAyBmI,EAAQmvB,GACtC,IAAItB,EAASnwB,KAETA,KAAKsxB,iBAAiB57B,QAAQsK,KAAK2xB,kBAAkBF,GACzDnvB,EAAO1G,QAAQ,SAAUN,GACvB,IAAIo2B,EAAUp2B,EAAMmC,IAAMnC,EAAMW,YAAY,GAExCy1B,IAAYD,EAAKC,KACnBD,EAAKC,GAAW,YAAQp2B,EAAO,KAAM,KAAM60B,EAAOj7B,MAClDi7B,EAAOxyB,OAAO+zB,GAAW,YAAiBp2B,EAAO,KAAM,KAAM60B,EAAOj7B,SAGxE8K,KAAKsxB,iBAAmBhvB,EACxBtC,KAAK8H,MAAQ,KAEd,CACDrN,IAAK,SACLN,MAAO,SAAgBA,EAAhB,GACL,IAAIy3B,EAAS5xB,KAET6xB,EAA0B,EAAnB5xB,UAAUvK,aAA+ByD,IAH/C,IAG0E,GAE3E24B,EAAqBD,EAAKC,mBAC1BC,EAAaF,EAAKE,WAClBC,EAAUH,EAAKG,QACfC,EAAUJ,EAAKI,QACfC,EAAcL,EAAKvvB,OACnBA,OAAyBnJ,IAAhB+4B,EAA4B,GAAKA,EAC1ClyB,KAAKsxB,kBAAoBhvB,GAAQtC,KAAKmyB,gBAAgB7vB,EAAQtC,KAAKqxB,cACxDU,EAAfA,GAA4B,GAChBC,EAAZA,GAAsB,GACVC,EAAZA,GAAsB,GACtB,IAAIG,EAAU,KACVX,EAAOzxB,KAAKqxB,aAEhB,GAAIl3B,EAAMzE,OAAQ,CAChB,GAAa,KAATyE,GAAyB,MAATA,EAClB,MAAO,CAAC6F,KAAKrC,QAAO,IAGtB,IACI00B,EAsBIC,EACAC,EAxBJnqB,EAASjO,EAAM2B,cAAcL,MAAM,gBAGnB,EAAhB2M,EAAO1S,SACT0S,EAAS,CAACA,EAAO,GAAIA,EAAO,MAG1B4pB,EAAQt8B,QAAUu8B,EAAQv8B,UAC5B+7B,EAAO,GACPzxB,KAAK9K,KAAKw4B,WAAW9xB,QAAQ,SAAUqyB,GACrC,IAAIuE,GAAaR,IAAWA,EAAQt8B,SAAyC,EAAhCs8B,EAAQh2B,QAAQiyB,EAASxwB,IAClEg1B,KAAaR,IAAWA,EAAQv8B,UAAyC,EAAhCu8B,EAAQj2B,QAAQiyB,EAASxwB,IAEjE+0B,IAAcC,GAInBxE,EAAStwB,OAAO/B,QAAQ,SAAU81B,GAChC,OAAOD,EAAKC,GAAWE,EAAO18B,KAAKyI,OAAO+zB,OAI1CpvB,EAAO5M,SACL48B,GAAmBN,IAAWA,EAAQt8B,SAAsC,EAA7Bs8B,EAAQh2B,QAAQ,UAC/Du2B,KAAmBN,IAAWA,EAAQv8B,UAAsC,EAA7Bu8B,EAAQj2B,QAAQ,UAE/Ds2B,IAAqBC,GACvBvyB,KAAKmyB,gBAAgB7vB,EAAQmvB,KAsDjCW,EADsB,GAhDxBC,EAAajqB,EAAO+K,IAAI,SAAUhZ,GAKhC,IAJA,IAAIu4B,EAAQjB,EACRkB,EAASf,EAAO9pB,MAChBpS,EAAS,EAEJk9B,EAAY,EAAGA,EAAYz4B,EAAMzE,OAAQk9B,IAAa,CAC7D,IAAIC,EAAO14B,EAAMy4B,GACjBl9B,IACAi9B,EAAOE,KAAUF,EAAOE,GAAQ,KAChCF,EAASA,EAAOE,IAEJT,SACV,WACE,IAISU,EAJLC,EAAS,GAIb,IAASD,KAHTH,EAAOP,QAAU,GACjBO,EAAOlB,KAAO,GAEEiB,EAAO,CACrB,IAMMM,EANF13B,EAAQo3B,EAAMI,GACd/2B,EAAST,EAAMS,OACfk3B,EAAM94B,EAAM0jB,OAAO,EAAGnoB,GACtBw9B,EAAWn3B,EAAOC,QAAQi3B,IAEb,GAAbC,IACEF,EACAC,GAAOH,EAAa,EADZI,EAAW,EAEvBP,EAAOP,QAAQp8B,KAAK47B,EAAOj0B,OAAOm1B,IAClCH,EAAOlB,KAAKqB,GAAOx3B,EACnBy3B,EAAOD,GAAOE,GAIlBL,EAAOP,QAAQ9J,KAAK,SAAUxoB,EAAGC,GAG/B,OAFagzB,EAAOjzB,EAAErC,IACTs1B,EAAOhzB,EAAEtC,MAtB1B,GA4BFi1B,EAAQC,EAAOlB,KAGjB,OAAOkB,EAAOP,UACbl1B,OAAO,SAAU4C,GAClB,OAAOA,KAGMpK,OACH,IAAUW,MAAM,KAAMg8B,GACvBA,EAAW38B,OACV28B,EAAW,GAEX,GAgBd,OAZID,IACEN,IACFM,EAAUA,EAAQl1B,OAAO,SAAU3G,GACjC,OAAOu7B,EAAmBL,EAAKl7B,EAAOkH,QAItC20B,GAAWA,EAAQ18B,OAASq8B,IAC9BK,EAAUA,EAAQh3B,MAAM,EAAG22B,KAIxBK,MAIJhB,GCxML,GACF,EAAU+B,EAuDV,IAAMhkB,eAzCN,EAAagkB,EAAQ,CAAC,CACpB14B,IAAK,eACLN,MAAO,WACL,IAAIA,EAAQ6F,KAAKozB,MAAMj5B,MACvB6F,KAAKkB,MAAMmyB,SAASrzB,KAAKszB,WAAWv3B,OAAO5B,EAAO,CAChD23B,mBAAoB9xB,KAAKkB,MAAM4wB,mBAC/BC,WAAY/xB,KAAKkB,MAAM6wB,WACvBC,QAAShyB,KAAKkB,MAAM8wB,QACpBC,QAASjyB,KAAKkB,MAAM+wB,QACpB3vB,OAAQtC,KAAKkB,MAAMoB,YAGtB,CACD7H,IAAK,SACLN,MAAO,SAAgBV,GACrBuG,KAAKozB,MAAQ35B,IAEd,CACDgB,IAAK,QACLN,MAAO,WACL6F,KAAKozB,MAAMj5B,MAAQ,KAEpB,CACDM,IAAK,SACLN,MAAO,WACL,IAAIszB,EAASztB,KAAKkB,MACd6sB,EAAON,EAAOM,KACdwF,EAAY9F,EAAO8F,UACvB,OAAO,IAAMv7B,cAAc,MAAO,CAChC2K,UAAW,qBACV,IAAM3K,cAAc,QAAS,CAC9B+V,IAAK/N,KAAKgT,OACVla,KAAM,OACNqhB,SAAUna,KAAKwzB,aACfnZ,YAAa0T,EAAKhyB,OAClBw3B,UAAWA,SAKVJ,GApDP,SAASA,EAAOjyB,GACd,IAAgBlB,KAAMmzB,GAEtB,IAAIzE,EAAQ,EAA2B1uB,MAAOmzB,EAAOhI,WAAa,EAAuBgI,IAASr9B,KAAKkK,KAAMkB,IAM7G,OAJAwtB,EAAMx5B,KAAOgM,EAAMhM,KACnBw5B,EAAM4E,WAAa,IAAI,EAAiB5E,EAAMx5B,MAC9Cw5B,EAAM1b,OAAS0b,EAAM1b,OAAOtY,KAAKg0B,GACjCA,EAAM8E,aAAe9E,EAAM8E,aAAa94B,KAAKg0B,GACtCA,EA8CI,QACf,EAAOtsB,aAAe,CACpBixB,SAAU,aACVtB,WAAY,GACZD,mBAAoB,KACpByB,WAAW,GChEb,IAAI,GACF,EAAUE,EA6DV,IAAMtkB,eA/CN,EAAaskB,EAAO,CAAC,CACnBh5B,IAAK,cACLN,MAAO,SAAqB/C,GAC1B,IAAI+J,EAAO7D,SAASlG,EAAEo2B,cAAcvrB,aAAa,cAC7CkY,EAAWna,KAAKkB,MAAMiZ,SAErBna,KAAK4E,MAAM8uB,QAKd1zB,KAAKwM,SAAS,CACZknB,QAAQ,IAGNvyB,GAAQnB,KAAKkB,MAAMC,MACrBgZ,EAAShZ,IATXnB,KAAKwM,SAAS,CACZknB,QAAQ,MAYb,CACDj5B,IAAK,SACLN,MAAO,WAKL,IAJA,IAAIgH,EAAOnB,KAAKkB,MAAMC,KAClBuyB,EAAS1zB,KAAK4E,MAAM8uB,OACpBC,EAAgB,GAEXn+B,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIo+B,EAAWp+B,EAAI,EACfw4B,EAAW4F,GAAYzyB,EAC3BwyB,EAAc39B,KAAK,IAAMgC,cAAc,OAAQ,CAC7CyC,IAAK,aAAem5B,EACpBjxB,UAAW,2BAA6BqrB,EAAW,kCAAoC,KACtF,IAAMh2B,cAAc,OAAQ,CAC7BuJ,QAASvB,KAAKkY,YACd,YAAa0b,EACbjxB,UAAW,wCAA0CixB,MAIzD,OAAO,IAAM57B,cAAc,MAAO,KAAM,IAAMA,cAAc,MAAO,CACjE2K,UAAW,6BAA+B+wB,EAAS,kCAAoC,KACtFC,QAIAF,GA1DP,SAASA,EAAMvyB,GACb,IAAgBlB,KAAMyzB,GAEtB,IAAI/E,EAAQ,EAA2B1uB,MAAOyzB,EAAMtI,WAAa,EAAuBsI,IAAQ39B,KAAKkK,KAAMkB,IAM3G,OAJAwtB,EAAM9pB,MAAQ,CACZ8uB,QAAQ,GAEVhF,EAAMxW,YAAcwW,EAAMxW,YAAYxd,KAAKg0B,GACpCA,EAoDI,QACf,EAAMtsB,aAAe,CACnB+X,SAAU,c,qBCzDR0Z,GAAO,CACT93B,OAAQ,SACR20B,SAAU,iBACVhD,WAAY,CACV3xB,OAAQ,iBACRoxB,OAAQ,kBACRF,OAAQ,mBACRF,OAAQ,mBACRD,MAAO,eACPF,SAAU,WACVM,OAAQ,kBACRF,QAAS,UACTI,QAAS,UACTP,MAAO,QACPvqB,OAAQ,WAIR,IACF,EAAUwxB,GAkkBV,IAAM3kB,eA9aN,EAAa2kB,GAAc,CAAC,CAC1Br5B,IAAK,4BACLN,MAAO,SAAmC+G,GACpCA,EAAMC,KACRnB,KAAKwM,SAAS,CACZrL,KAAMD,EAAMC,OAELD,EAAM6yB,cAAgB91B,EAAMlE,IAAI,SACzCiG,KAAKwM,SAAS,CACZrL,KAAMD,EAAM6yB,gBAIjB,CACDt5B,IAAK,oBACLN,MAAO,WACL,IAAIyzB,EAAS5tB,KAETA,KAAK4E,MAAMovB,cACbh0B,KAAKi0B,qBACLj0B,KAAKk0B,mBAAqB96B,WAAW,WACnCw0B,EAAOphB,SAAS,CACdwnB,aAAa,KAEd,OAGN,CACDv5B,IAAK,qBACLN,MAAO,WACL6F,KAAKm0B,uBACLn0B,KAAK2R,iBAEN,CACDlX,IAAK,uBACLN,MAAO,WACL6F,KAAKo0B,gBAAgBz2B,OAAS,KAC9BjF,aAAasH,KAAKq0B,cAClB37B,aAAasH,KAAKk0B,sBAEnB,CACDz5B,IAAK,qBACLN,MAAO,WACL,IAAIm6B,EAAoBv8B,SAASC,cAAc,OAChC,CAAC,GAAI,WAAY,OAAQ,QAAS,OACxC4D,QAAQ,SAAU24B,GACzB,OAAOD,EAAkBzyB,MAAM0a,SAAWgY,EAAS,WAErDv0B,KAAKkvB,oBAAsBoF,EAAkBzyB,MAAM0a,SAAS7mB,SAE7D,CACD+E,IAAK,kBACLN,MAAO,SAAyBmB,GAC9B,IAAIk5B,EAAUx0B,KAAKw0B,QAEnB,GAAKA,EAAL,CAKA,IAIS/5B,EAJLs2B,EAAY/wB,KAAKy0B,OAAOv3B,OAAO,SAAUw3B,GAC3C,OAAOA,EAAYj3B,KAAOnC,EAAMmC,KAC/B,GAEH,IAAShD,KAAOs2B,EACVA,EAAUl7B,eAAe4E,KAC3Ba,EAAMb,GAAOs2B,EAAUt2B,IAI3B+5B,EAAQhoB,SAAS,CACflR,MAAOA,IAET5C,aAAasH,KAAKq0B,iBAEnB,CACD55B,IAAK,mBACLN,MAAO,WACL,IAAIq6B,EAAUx0B,KAAKw0B,QAEdA,IAILx0B,KAAKq0B,aAAej7B,WAAW,WAC7Bo7B,EAAQhoB,SAAS,CACflR,MAAO,QAER,OAEJ,CACDb,IAAK,mBACLN,MAAO,SAA0BmB,EAAOlE,GACtC4I,KAAKkB,MAAMK,QAAQjG,EAAOlE,GAC1B4I,KAAK20B,kBAAkBr5B,KAExB,CACDb,IAAK,oBACLN,MAAO,SAA2BmB,GAChC,IAAI60B,EAASnwB,KAEbA,KAAKkB,MAAM0zB,SAASt5B,GACf0E,KAAK60B,YAAe70B,KAAKkB,MAAMisB,QAAQ,EAAWb,IAAIhxB,GAC3D,IAGM00B,EAHF8E,EAAY90B,KAAK+0B,aAAa,cAE9BD,IACE9E,EAAY8E,EAAU9E,UAC1B8E,EAAUE,cACV95B,OAAO0rB,sBAAsB,WACtBuJ,EAAO8E,SACZH,EAAU7F,cACNe,GAAa8E,EAAU9E,YAE3BG,EAAOgE,uBAEPhE,EAAO+E,oBAEH/E,EAAOiE,gBAAgBz2B,QACzBm3B,EAAUK,cAAc,eAK/B,CACD16B,IAAK,eACLN,MAAO,WACA6F,KAAKo1B,kBACRp1B,KAAKo1B,iBAAkB,EACvBl6B,OAAO0rB,sBAAsB5mB,KAAKk1B,sBAGrC,CACDz6B,IAAK,oBACLN,MAAO,WAGL,GAFA6F,KAAKo1B,iBAAkB,EAElBp1B,KAAKi1B,OAAV,CAIA,IAwCMI,EAEAC,EA1CFC,EAAiB,KAErB,GAAIv1B,KAAKo0B,gBAAgBz2B,OACvB43B,EAAiBv1B,KAAKo0B,oBACjB,CAML,IALA,IACInkB,EADSjQ,KAAKi1B,OACKhlB,UACnBulB,EAAgBvlB,GAAajQ,KAAKiQ,WAAa,GAC/CwlB,EAAS,EAEJjgC,EAAI,EAAG2B,EAAI6I,KAAK0tB,WAAWh4B,OAAQF,EAAI2B,EAAG3B,IAAK,CACtD,IAKMuzB,EALF2M,EAAKF,EAAgBx1B,KAAK0tB,WAAWh4B,OAAS,EAAIF,EAAIA,EACtDy4B,EAAWjuB,KAAK0tB,WAAWgI,GAC3BZ,EAAY90B,KAAK+0B,aAAa,YAAcW,GAE5CZ,IACE/L,EAAS+L,EAAUnjB,aAAa1B,KAE/BwlB,GAAUX,EAAUhpB,IAAM2pB,IACT,EAAhBX,EAAUhpB,MACZ2pB,EAASX,EAAUhpB,KAInBid,IAAWwM,IACbA,EAAiBtH,IAKnBhe,EAAYwlB,EACdF,EAAiBv1B,KAAK0tB,WAAWxwB,OAAO,SAAU+wB,GAChD,SAA6B,IAApBA,EAASC,UACjB,GACMje,EAAYjQ,KAAKmV,cAAgBnV,KAAK0Q,eAC/C6kB,EAAiBv1B,KAAK0tB,WAAW1tB,KAAK0tB,WAAWh4B,OAAS,IAI1D6/B,GAAkBv1B,KAAKq1B,UACrBA,EAAUr1B,KAAKq1B,QAEfC,EADkBC,EACat8B,KAE/Bo8B,EAAQzwB,MAAMopB,UAAYsH,GAC5BD,EAAQ7oB,SAAS,CACfwhB,SAAUsH,KAKhBt1B,KAAKiQ,UAAYA,KAElB,CACDxV,IAAK,eACLN,MAAO,SAAsBwD,GAC3BqC,KAAKo0B,gBAAgBz2B,OAASA,EAE9B,IAAK,IAAInI,EAAI,EAAG2B,EAAI6I,KAAK0tB,WAAWh4B,OAAQF,EAAI2B,EAAG3B,IAAK,CACtD,IAGM0N,EAHF4xB,EAAY90B,KAAK+0B,aAAa,YAAcv/B,GAE5Cs/B,GAAqC,UAAxBA,EAAU5zB,MAAMjI,OAC3BiK,EAAUvF,EAAS,OAAS,UAChCm3B,EAAUK,cAAcjyB,IAI5BlD,KAAKg1B,cACLh1B,KAAKi1B,OAAOhlB,UAAY,EACxBjQ,KAAK2R,iBAEN,CACDlX,IAAK,oBACLN,MAAO,SAA2B8zB,EAAUz4B,GAC1C,IAAIs/B,EAAY90B,KAAK+0B,aAAa,YAAcv/B,GAC5Cy/B,EAASj1B,KAAKi1B,OAIlBU,GAHc31B,KAAKq1B,QAGC,WAClB,IACMvpB,EADFgpB,IACEhpB,EAAMgpB,EAAUhpB,IAEhBmiB,EAASlV,MACXjN,EAAM,EAENA,GAAO,EAGTmpB,EAAOhlB,UAAYnE,KAInB9L,KAAKo0B,gBAAgBz2B,QACvBqC,KAAK41B,aAAa,MAClB51B,KAAKjE,OAAO85B,QACZ36B,OAAO0rB,sBAAsB+O,IAE7BA,MAGH,CACDl7B,IAAK,mBACLN,MAAO,SAA0BgH,GAC/B,IAAI20B,EAAW,CACb30B,KAAMA,GAEJ40B,EAAe/1B,KAAKkB,MAAM60B,aAC9B/1B,KAAKwM,SAASspB,GACd73B,EAAM0tB,OAAOmK,GACbC,EAAa50B,KAEd,CACD1G,IAAK,gBACLN,MAAO,SAAuB/C,GAC5B,IAIQkE,EAJJ06B,GAAU,EAGP,KADC5+B,EAAE6+B,UAEF36B,OAAQ,EAER0E,KAAKo0B,gBAAgBz2B,SAAWrC,EAAQ0E,KAAKo0B,gBAAgBz2B,OAAO,KACtEqC,KAAK20B,kBAAkBr5B,GAGzB06B,GAAU,GAIVA,GACF5+B,EAAE+Z,mBAGL,CACD1W,IAAK,uBACLN,MAAO,WACL,IAAK,IAMCpB,EANGvD,EAAI,EAAG2B,EAAI6I,KAAK0tB,WAAWh4B,OAAQF,EAAI2B,EAAG3B,IAAK,CACtD,IAAIs/B,EAAY90B,KAAK+0B,aAAa,YAAcv/B,GAC5Cs/B,GAAWA,EAAU7F,cAGvBjvB,KAAKi1B,SACHl8B,EAASiH,KAAKi1B,OAClBj1B,KAAK0Q,aAAe3X,EAAO2X,aAC3B1Q,KAAKmV,aAAepc,EAAOoc,gBAG9B,CACD1a,IAAK,gBACLN,MAAO,WACL,OAAO6F,KAAK4E,MAAMovB,YAAch0B,KAAK0tB,WAAWtyB,MAAM,EAAG,GAAK4E,KAAK0tB,aAEpE,CACDjzB,IAAK,gBACLN,MAAO,SAAuBV,GAC5BuG,KAAKq1B,QAAU57B,IAEhB,CACDgB,IAAK,eACLN,MAAO,SAAsBV,GAC3BuG,KAAKjE,OAAStC,IAEf,CACDgB,IAAK,gBACLN,MAAO,SAAuBV,GAC5BuG,KAAKw0B,QAAU/6B,IAEhB,CACDgB,IAAK,eACLN,MAAO,SAAsBV,GAC3BuG,KAAKi1B,OAASx7B,IAEf,CACDgB,IAAK,iBACLN,MAAO,SAAwBlB,EAAMQ,GAC9BuG,KAAK+0B,eACR/0B,KAAK+0B,aAAe,IAGtB/0B,KAAK+0B,aAAa97B,GAAQQ,IAE3B,CACDgB,IAAK,SACLN,MAAO,WACL,IAAIy3B,EAAS5xB,KAETytB,EAASztB,KAAKkB,MACdqrB,EAAUkB,EAAOlB,QACjB2J,EAAYzI,EAAOyI,UACnB90B,EAAMqsB,EAAOrsB,IACbqC,EAAYgqB,EAAOhqB,UACnB5B,EAAQ4rB,EAAO5rB,MACfe,EAAQ6qB,EAAO7qB,MACftH,EAAQmyB,EAAOnyB,MACfwyB,EAAQL,EAAOK,MACfhrB,EAAS2qB,EAAO3qB,OAChBU,EAAoBiqB,EAAOjqB,kBAC3BsuB,EAAqBrE,EAAOqE,mBAC5BqE,EAAc1I,EAAO0I,YACrBC,EAAgB3I,EAAO2I,cACvBvF,EAAgBpD,EAAOoD,cACvBwF,EAAe5I,EAAO4I,aACtBrE,EAAUvE,EAAOuE,QACjBC,EAAUxE,EAAOwE,QACjB9E,EAASM,EAAON,OAChBoG,EAAY9F,EAAO8F,UACnBpyB,EAAOnB,KAAK4E,MAAMzD,KAClBgC,EAAQopB,GAAW2J,EAAY,IAAM,GAAK,EAAI,cAClD,OAAO,IAAMl+B,cAAc,MAAO,CAChC6J,MAAO,YAAS,CACdsB,MAAOA,GACNtB,GACHc,UAAW,aACX2zB,UAAWt2B,KAAKu2B,gBACdH,GAAiB,IAAMp+B,cAAc,MAAO,CAC9C2K,UAAW,kBACV,IAAM3K,cAAc,EAAS,CAC9B+V,IAAK/N,KAAKw2B,cACVthC,KAAM8K,KAAK9K,KACX64B,KAAM/tB,KAAK+tB,KACXD,MAAOA,EACPJ,WAAY1tB,KAAK0tB,WACjBC,cAAe3tB,KAAKy2B,qBACjB,IAAMz+B,cAAc,EAAQ,CAC/B+V,IAAK/N,KAAK02B,aACVrD,SAAUrzB,KAAK41B,aACf1gC,KAAM8K,KAAK9K,KACX64B,KAAM/tB,KAAK+tB,KACX+D,mBAAoBA,EACpBE,QAASA,EACTC,QAASA,EACT3vB,OAAQtC,KAAKy0B,OACblB,UAAWA,IACT,IAAMv7B,cAAc,MAAO,CAC7B+V,IAAK/N,KAAK22B,aACVh0B,UAAW,oBACXsO,SAAUjR,KAAK2R,cACd3R,KAAK42B,gBAAgBzjB,IAAI,SAAU8a,EAAUz4B,GAC9C,OAAO,IAAMwC,cAAc,EAAU,CACnC+V,IAAK6jB,EAAOiF,eAAen8B,KAAKk3B,EAAQ,YAAcp8B,GACtDiF,IAAKwzB,EAASh1B,KACdwE,GAAIwwB,EAASxwB,GACbxE,KAAMg1B,EAASh1B,KACf0E,OAAQswB,EAAStwB,OACjB4uB,QAASA,EACTzpB,OAAQA,EACRosB,kBAAmB0C,EAAO1C,kBAC1Bh6B,KAAM08B,EAAO18B,KACb64B,KAAM6D,EAAO7D,KACbZ,OAAQc,EAASxwB,IAAMm0B,EAAOkF,gBAAgBr5B,GAAK0vB,OAASh0B,EAC5DmJ,OAAQ2rB,EAASxwB,IAAMm0B,EAAOkF,gBAAgBr5B,GAAKm0B,EAAO6C,YAASt7B,EACnEg2B,WAAY,CACVrsB,OAAQA,EACR3B,KAAMA,EACN6B,KAAMkzB,EACN90B,IAAKA,EACLqC,UAAWA,EACXR,UAAWH,EACXD,QAASwzB,EACT7yB,kBAAmBA,EACnB/B,OAAQmwB,EAAOmF,gBACfp1B,QAASiwB,EAAOoF,iBAChBz1B,QAASqwB,EAAOqF,uBAGjBd,GAAe,IAAMn+B,cAAc,MAAO,CAC7C2K,UAAW,kBACV,IAAM3K,cAAc,EAAS,CAC9B+V,IAAK/N,KAAKk3B,cACVhiC,KAAM8K,KAAK9K,KACX0N,MAAOA,EACPtH,MAAOA,EACPu1B,cAAeA,EACf1B,WAAY,CACVrsB,OAAQA,EACRE,KAAM,GACN7B,KAAMA,EACNC,IAAKA,EACLqC,UAAWA,EACXD,kBAAmBA,GAErBotB,WAAY,CACVzvB,KAAMA,EACNgZ,SAAUna,KAAKm3B,0BAMhBrD,IA/jBP,SAASA,GAAa5yB,GACpB,IAAgBlB,KAAM8zB,IAEtB,IAAIpF,EAAQ,EAA2B1uB,MAAO8zB,GAAa3I,WAAa,EAAuB2I,KAAeh+B,KAAKkK,KAAMkB,IAEzHwtB,EAAM+F,OAAS,GACf/F,EAAMoI,gBAAkB,CACtBr5B,GAAI,SACJxE,KAAM,SACN0E,OAAQ,MAEV+wB,EAAM0F,gBAAkB,CACtB32B,GAAI,SACJxE,KAAM,SACN0E,OAAQ,KACRuwB,QAAQ,GAGNhtB,EAAMhM,KAAKwI,YACb,qBAAWwD,EAAMhM,MAGnBw5B,EAAMx5B,KAAOgM,EAAMhM,KACnBw5B,EAAMX,KAAO,YAAU8F,GAAM3yB,EAAM6sB,MACnCW,EAAM9pB,MAAQ,CACZzD,KAAMD,EAAMC,MAAQlD,EAAMlE,IAAI,SAAWmH,EAAM6yB,YAC/CC,aAAa,GAEftF,EAAMhB,WAAa,GACnB,IAGM0J,EACAC,EAJFC,EAAgB,GAAGjhB,OAAOqY,EAAMx5B,KAAKw4B,YAEf,EAAtBxsB,EAAMoB,OAAO5M,SACX0hC,EAAmB,GACnBC,EAA0B,EAC9Bn2B,EAAMoB,OAAO1G,QAAQ,SAAUN,GACxB87B,EAAiB97B,EAAMi8B,kBAC1BH,EAAiB97B,EAAMi8B,gBAAkB,CACvC95B,GAAInC,EAAMi8B,eAAiB,UAAYj8B,EAAMi8B,eAAiB,SAC9Dt+B,KAAMqC,EAAMi8B,gBAAkB,SAC9B55B,OAAQ,GACRuwB,OAAoC,IAA5BmJ,GAEVA,KAGF,IASS55B,EATLwwB,EAAWmJ,EAAiB97B,EAAMi8B,gBAElC7C,EAAc,YAAS,GAAIp5B,EAAO,CAEpCmC,GAAInC,EAAMW,YAAY,GACtBqG,QAAQ,IAIV,IAAS7E,KAAMixB,EAAMx5B,KAAKyI,OACpBrC,EAAMmC,KAAOA,IACfixB,EAAMx5B,KAAKyI,OAAOF,GAAMi3B,GAI5BzG,EAAStwB,OAAO3H,KAAK0+B,GAErBhG,EAAM+F,OAAOz+B,KAAK0+B,KAEpB4C,EAActhC,KAAKK,MAAMihC,EAAe,IAAmB,IAAeF,MAG5E1I,EAAMmG,YAAa,EAEE17B,MAAjB+H,EAAM8wB,SACRsF,EAAchP,KAAK,SAAUxoB,EAAGC,GAC9B,OAAImB,EAAM8wB,QAAQh2B,QAAQ8D,EAAErC,IAAMyD,EAAM8wB,QAAQh2B,QAAQ+D,EAAEtC,IACjD,GAGD,IAIZ,IAAK,IAAI+5B,EAAgB,EAAGA,EAAgBF,EAAc5hC,OAAQ8hC,IAAiB,CACjF,IAAIvJ,EAAWqJ,EAAcE,GACzBhF,GAAatxB,EAAM8wB,UAAW9wB,EAAM8wB,QAAQt8B,SAA+C,EAAtCwL,EAAM8wB,QAAQh2B,QAAQiyB,EAASxwB,IACpFg1B,KAAavxB,EAAM+wB,UAAW/wB,EAAM+wB,QAAQv8B,UAA+C,EAAtCwL,EAAM+wB,QAAQj2B,QAAQiyB,EAASxwB,IAExF,GAAK+0B,IAAcC,EAInB,GAAIvxB,EAAM4wB,mBAAoB,CAI5B,IAHA,IAYM2F,EAZFC,EAAY,GACZ/5B,EAASswB,EAAStwB,OAEb21B,EAAa,EAAGA,EAAa31B,EAAOjI,OAAQ49B,IAAc,CACjE,IAAIh4B,EAAQqC,EAAO21B,GAEfpyB,EAAM4wB,mBAAmBpD,EAAMx5B,KAAKyI,OAAOrC,IAAUA,IACvDo8B,EAAU1hC,KAAKsF,GAIfo8B,EAAUhiC,SACR+hC,EAAc,CAChB95B,OAAQ+5B,EACRz+B,KAAMg1B,EAASh1B,KACfwE,GAAIwwB,EAASxwB,IAGfixB,EAAMhB,WAAW13B,KAAKyhC,SAGxB/I,EAAMhB,WAAW13B,KAAKi4B,GAI1B,IAAI0J,GAAgBz2B,EAAM8wB,UAAW9wB,EAAM8wB,QAAQt8B,SAA4D,EAAnDwL,EAAM8wB,QAAQh2B,QAAQ0yB,EAAMoI,gBAAgBr5B,IACpGm6B,KAAgB12B,EAAM+wB,UAAW/wB,EAAM+wB,QAAQv8B,UAA4D,EAAnDwL,EAAM+wB,QAAQj2B,QAAQ0yB,EAAMoI,gBAAgBr5B,IA4BxG,OA1BIk6B,IAAkBC,IACpBlJ,EAAMmG,YAAa,EAEnBnG,EAAMhB,WAAW9vB,QAAQ8wB,EAAMoI,kBAG7BpI,EAAMhB,WAAW,KACnBgB,EAAMhB,WAAW,GAAG3U,OAAQ,GAG9B2V,EAAMhB,WAAW9vB,QAAQ8wB,EAAM0F,iBAE/B1F,EAAM8H,cAAgB9H,EAAM8H,cAAc97B,KAAKg0B,GAC/CA,EAAM+H,kBAAoB/H,EAAM+H,kBAAkB/7B,KAAKg0B,GACvDA,EAAMgI,aAAehI,EAAMgI,aAAah8B,KAAKg0B,GAC7CA,EAAMkH,aAAelH,EAAMkH,aAAal7B,KAAKg0B,GAC7CA,EAAMiI,aAAejI,EAAMiI,aAAaj8B,KAAKg0B,GAC7CA,EAAM/c,aAAe+c,EAAM/c,aAAajX,KAAKg0B,GAC7CA,EAAMwG,kBAAoBxG,EAAMwG,kBAAkBx6B,KAAKg0B,GACvDA,EAAMqI,gBAAkBrI,EAAMqI,gBAAgBr8B,KAAKg0B,GACnDA,EAAMsI,iBAAmBtI,EAAMsI,iBAAiBt8B,KAAKg0B,GACrDA,EAAMuI,iBAAmBvI,EAAMuI,iBAAiBv8B,KAAKg0B,GACrDA,EAAMiG,kBAAoBjG,EAAMiG,kBAAkBj6B,KAAKg0B,GACvDA,EAAMwI,cAAgBxI,EAAMwI,cAAcx8B,KAAKg0B,GAC/CA,EAAMyI,iBAAmBzI,EAAMyI,iBAAiBz8B,KAAKg0B,GACrDA,EAAM6H,cAAgB7H,EAAM6H,cAAc77B,KAAKg0B,GACxCA,EAmbI,UACf,GAAatsB,aAAe,YAAS,GAAI,KC9lBzC,IAAI,IACF,EAAUy1B,GAgBV,IAAM1oB,eARN,EAAa0oB,GAAQ,CAAC,CACpBp9B,IAAK,SACLN,MAAO,WACL,OAAO,IAAMnC,cAAc,GAAc,YAAS,GAAIgI,KAAKkB,MAAOlB,KAAK4E,YAIpEizB,IAbP,SAASA,KAGP,OAFA,IAAgB73B,KAAM63B,IAEf,EAA2B73B,MAAO63B,GAAO1M,WAAa,EAAuB0M,KAASxhC,MAAM2J,KAAMC,YAa9F,OACf,GAAOmC,aAAe,YAAS,GAAI,IAAoB,CACrDlN,KAAM,K,yJCzBF4O,EAAWC,YAAe,CAC9BgsB,MAAM,CAAD,kEACLntB,MAAM,CAAD,iDACLpI,OAAO,CAAD,uDAeFs9B,EAFUrzB,kBAVQ,SAAAG,GAAK,MAAK,CAChCzK,MAAOyK,EAAMY,MAAM,CAAC,aAAc,UAClCqQ,SAAUjR,EAAMY,MAAM,CAAC,aAAc,mBAGZ,SAAAN,GAAQ,MAAK,CACtCiV,SAAU,SAAAhgB,GAAK,OAAI+K,EAAS6yB,YAAsB59B,KAClDyf,SAAU,kBAAM1U,EAAS8yB,aAAiB,O,GAI3CxzB,Y,+LAWgB,SAAApN,GACb,EAAK8J,MAAMiZ,SAAS/iB,EAAE2B,OAAOoB,S,0CAGhB,SAAA/C,GACbA,EAAE+Z,iBACF,EAAKjQ,MAAM0Y,a,yCAGC,WACZ,EAAK1Y,MAAM0Y,a,sCAGbnX,OAAA,WAAU,IAAD,EAC2BzC,KAAKkB,MAA/B/G,EADD,EACCA,MAAO0b,EADR,EACQA,SAAU1Q,EADlB,EACkBA,KAEnB4qB,EAAQ5qB,EAAKQ,cAAc7B,EAASisB,OACpCv1B,EAAS2K,EAAKQ,cAAc7B,EAAStJ,QAE3C,OACE,oBAAMmI,UAAU,qBAAqBsX,OAAO,OAAOL,SAAU5Z,KAAKka,mBAAlE,EACE,8BACE,oBAAMrY,MAAO,CAAEqB,QAAS,cAAxB,EAAmC6sB,GAEnC,qBACEptB,UAAU,oCACVxI,MAAOA,EACP0b,SAAUA,EACVsE,SAAUna,KAAKwzB,aACfnZ,YAAa0V,KAIjB,YAAC,IAAD,CACEptB,UAAU,qBACVkT,SAAUA,EACVtU,QAASvB,KAAKkY,kBAHhB,EAKG1d,K,GAhDe6T,IAAMc,iB,yBCVhCjY,EAAOD,QAHP,c,6HCLqBghC,E,kGAUnBx1B,OAAA,WAAU,IAAD,EAC2CzC,KAAKkB,MAA/Cg3B,EADD,EACCA,QAAS5X,EADV,EACUA,KAAM5d,EADhB,EACgBA,SAAUqmB,EAD1B,EAC0BA,OAAQwB,EADlC,EACkCA,KACnC4N,EAAiBD,GAAWA,EAAQE,QAAQ,KAAM,KAExD,OACE,mBAAKrlB,KAAK,SAASslB,kBAAiBF,EAAgBx1B,UAAU,8BAA9D,EACE,mBAAKA,UAAU,oBAAf,EACGu1B,GAAW,YAAC,IAAD,CAAc5X,KAAMA,EAAMyI,OAAQA,EAAQjwB,KAAMo/B,EAASC,eAAgBA,IACpF5N,GACC,mBAAK5nB,UAAU,qBAAf,EACE,YAAC,IAAD,CAAc6nB,MAAOD,EAAMjK,KAAK,aAAatd,KAAM,GAAIynB,UAAU,WAGrE,YAAC,IAAD,KAED/nB,I,GAzB2B2L,IAAMc,gB,iCCP1C,2KAEampB,EAA8B,8BAC9BC,EAA8B,8BAC9BC,EAA2B,2BAE3BC,EAA6B,6BAC7BC,EAA6B,6BAC7BC,EAA0B,0BAE1BC,EAA2B,2BAC3BC,EAA2B,2BAC3BC,EAAwB,wBAExBC,EAAuB,uBACvBC,EAAuB,uBACvBC,EAAoB,oBAEpBC,EAAuB,uBACvBC,EAAuB,uBACvBC,EAAoB,oBAE1B,SAASC,IACd,OAAO,SAACn0B,EAAUK,GAEhB,OADAL,EAAS,CAAEpM,KAAMw/B,IACVgB,YAAI/zB,GAAUxL,IAAI,6BAA6Bw/B,KAAK,SAAAC,GAEzD,OADAt0B,EAAS,CAAEpM,KAAMy/B,EAA6BkB,YAAaD,EAAStkC,KAAKwkC,OAClEF,IACNG,MAAM,SAAApiC,GACP2N,EAAS,CAAEpM,KAAM0/B,OAuBhB,SAASoB,IACd,OAAO,SAAC10B,EAAUK,GAEhB,OADAL,EAAS,CAAEpM,KAAM2/B,IACVa,YAAI/zB,GAAUxL,IAAI,0CAA0Cw/B,KAAK,SAAAC,GAEtE,OADAt0B,EAAS,CAAEpM,KAAM4/B,EAA4BmB,aAAcL,EAAStkC,OAC7DskC,IACNG,MAAM,SAAApiC,GACP2N,EAAS,CAAEpM,KAAM6/B,OAyBhB,SAASmB,IACd,OAAO,SAAC50B,EAAUK,GAEhB,OADAL,EAAS,CAAEpM,KAAM8/B,IACVU,YAAI/zB,GAAUxL,IAAI,wCAAwCw/B,KAAK,SAAAC,GAEpE,OADAt0B,EAAS,CAAEpM,KAAM+/B,EAA0BkB,WAAYP,EAAStkC,OACzDskC,IACNG,MAAM,SAAApiC,GACP2N,EAAS,CAAEpM,KAAMggC,OAyBhB,SAASkB,EAAiBC,EAAMC,GACrC,OAAO,SAACh1B,EAAUK,GAEhB,OADAL,EAAS,CAAEpM,KAAMigC,EAAsBkB,SAChCX,YAAI/zB,GAAU40B,KAAK,yCAA0C,CAClEF,OACAC,aACCX,KAAK,SAAAC,GAEN,OADAt0B,EAAS,CAAEpM,KAAMkgC,IACVQ,IACNG,MAAM,SAAApiC,GACP2N,EAAS,CAAEpM,KAAMmgC,OAwBhB,SAASmB,EAAiBF,GAC/B,OAAO,SAACh1B,EAAUK,GAEhB,OADAL,EAAS,CAAEpM,KAAMogC,IACVI,YAAI/zB,GAAU80B,OAAO,iCAAkC,CAAEnlC,KAAM,CAAEglC,cAAcX,KAAK,SAAAC,GAEzF,OADAt0B,EAAS,CAAEpM,KAAMqgC,IACVK,IACNG,MAAM,SAAApiC,GACP2N,EAAS,CAAEpM,KAAMsgC,S,gCC3JvBniC,EAAQqD,YAAa,EAErBrD,EAAQyhB,QAAU,SAAU4hB,EAAUnX,GACpC,KAAMmX,aAAoBnX,GACxB,MAAM,IAAIriB,UAAU,uC,gCCNxB,IAAIy5B,EAAU5kC,OACC,IAAA4kC,EAAA,oBACb,IAAK,IAAI/kC,EAAI,EAAGA,EAAIyK,UAAUvK,OAAQF,IAAK,CACzC,IAESiF,EAFLiE,EAASuB,UAAUzK,GAEvB,IAASiF,KAAOiE,EACV/I,OAAOC,UAAUC,eAAeC,KAAK4I,EAAQjE,KAC/C1B,EAAO0B,GAAOiE,EAAOjE,IAK3B,OAAO1B,I,+DCXM,EADD+oB,OACC,0BACb,IAEI0Y,EACAC,EAFAC,EAAY,GAGZ5yB,GAAS,EACTpS,EAASuK,UAAUvK,OAEvB,IAAKA,EACH,MAAO,GAKT,IAFA,IAAIa,EAAS,KAEJuR,EAAQpS,GAAQ,CACvB,IAAIilC,EAAYC,OAAO36B,UAAU6H,IAEjC,IAAK+yB,SAASF,IACdA,EAAY,GACA,QAAZA,GACAt8B,KAAKuM,MAAM+vB,IAAcA,EAErB,MAAMG,WAAW,uBAAyBH,GAG1CA,GAAa,MAEfD,EAAU1kC,KAAK2kC,IAKfH,EAAoC,QADpCG,GAAa,QACiB,IAC9BF,EAAeE,EAAY,KAAQ,MACnCD,EAAU1kC,KAAKwkC,EAAeC,KAG5B3yB,EAAQ,IAAMpS,GApCL,MAoCeglC,EAAUhlC,UACpCa,GAAUurB,OAAOiZ,aAAa1kC,MAAM,KAAMqkC,GAC1CA,EAAUhlC,OAAS,GAIvB,OAAOa,GC5CT,gMAGA,IAAI80B,EAAQC,KACR0P,EAAe,4CACfC,EAAQ,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,SAE1D,SAASC,EAAgB5+B,GACvB,IACI6+B,EADW7+B,EAAQb,MAAM,KACH0X,IAAI,SAAUioB,GACtC,MAAO,KAAOA,IAEhB,OAAOC,EAAoBhlC,MAAM,KAAM8kC,GA8CzC,SAASG,IACP,OA5CgBhgC,EA4CAigC,EAAQllC,WAAM8C,EAAW8G,WA3CrChH,EAAOqC,EAAMrC,KACbgD,EAAcX,EAAMW,YACpBu/B,EAAYlgC,EAAMkgC,UAClBC,EAAkBngC,EAAMmgC,gBACxBt/B,EAAYb,EAAMa,UAClBG,EAAUhB,EAAMgB,QAChBgG,EAAShH,EAAMgH,OACfi1B,EAAiBj8B,EAAMi8B,eACvB/0B,EAAWlH,EAAMkH,SACjBC,EAASnH,EAAMmH,OACfhF,EAAKnC,EAAMmC,IAAMxB,EAAY,GAC7BsG,EAAS,IAAM9E,EAAK,IAEpB6E,EACK,CACL7E,GAAIA,EACJxE,KAAMA,EACNsJ,OAAQA,EACRpG,UAAWA,EACXmG,OAAQA,EACRi1B,eAAgBA,EAChB/0B,SAAUA,EACVC,OAAQA,IAIR+4B,IACFj5B,GAAU,cAAgBi5B,EAAY,KAGjC,CACL/9B,GAAIA,EACJxE,KAAMA,EACNsJ,OAAQA,EACRpG,UAAWA,EACXG,QAASA,EAAQR,cACjBqF,KAAMq6B,IAAcC,EAAkB,EAAI,MAC1C34B,OAAQo4B,EAAgB5+B,GACxBmG,OAAQA,IAvCZ,IAAkBnH,EACZrC,EACAgD,EACAu/B,EACAC,EACAt/B,EACAG,EACAgG,EACAi1B,EACA/0B,EACAC,EACAhF,EACA8E,EAmCN,SAASg5B,EAAQjgC,EAAO6F,EAAMC,EAAKlM,GACjC,IAAI67B,EAAY,GAEhB,GAAoB,iBAATz1B,EAAmB,CAC5B,IAAIogC,EAAUpgC,EAAMqgC,MAAMX,GAc1B,GAZIU,IACFpgC,EAAQogC,EAAQ,GAEZA,EAAQ,KACVv6B,EAAO7D,SAASo+B,EAAQ,GAAI,MAI5BxmC,EAAK0mC,QAAQ/lC,eAAeyF,KAC9BA,EAAQpG,EAAK0mC,QAAQtgC,KAGnBpG,EAAKyI,OAAO9H,eAAeyF,GAG7B,OAAO,KAFPy1B,EAAY77B,EAAKyI,OAAOrC,QAIjBA,EAAMmC,KACXvI,EAAK0mC,QAAQ/lC,eAAeyF,EAAMmC,MACpCnC,EAAMmC,GAAKvI,EAAK0mC,QAAQtgC,EAAMmC,KAG5BvI,EAAKyI,OAAO9H,eAAeyF,EAAMmC,MACnCszB,EAAY77B,EAAKyI,OAAOrC,EAAMmC,IACrB0D,EAATA,GAAgB7F,EAAM6F,OAgB1B,GAZK,IAAa4vB,GAAWr7B,UAC3Bq7B,EAAYz1B,GACFgH,QAAS,EAEdyuB,EAAUh1B,SACbg1B,EAAUh1B,OAAS,sBAAYT,KAInCy1B,EAAU50B,YAAc40B,EAAU50B,UAAY,IAC9C40B,EAAU8K,aAAe9K,EAAU8K,WAAa,IAE5C9K,EAAU0K,iBAA0B,EAAPt6B,GAAYC,EAAK,CAChD2vB,EAAYzF,KAAKM,MAAMP,EAAMK,UAAUqF,IACvC,IAAI+K,EAAUb,EAAM95B,EAAO,GACvB46B,EAAgBhL,EAAU0K,gBAAgBK,GAM9C,IAJKC,EAAcF,YAAc9K,EAAU8K,mBAClC9K,EAAU8K,WAGoB1iC,MAAnC4iC,EAAc,WAAa36B,IAAqB26B,EAAc,WAAa36B,GAG7E,IAAK,IAAIe,KAFT4uB,EAAUyK,UAAYr6B,EAER46B,EAAe,CAC3B,IAAIC,EAAID,EAAc55B,GACtB4uB,EAAU5uB,GAAK65B,GAUrB,OALIjL,EAAU8K,YAAc9K,EAAU8K,WAAWnmC,UAC/Cq7B,EAAYzF,KAAKM,MAAMP,EAAMK,UAAUqF,KAC7Bz0B,QAAUy0B,EAAU8K,WAAW1lC,SAGpC46B,EAGT,SAASkL,EAAKtjB,GACZ,OAAOA,EAAIujB,OAAO,SAAUC,EAAKtjB,GAK/B,OAJ2B,IAAvBsjB,EAAIngC,QAAQ6c,IACdsjB,EAAInmC,KAAK6iB,GAGJsjB,GACN,IAGL,SAASC,EAAUt8B,EAAGC,GACpB,IAAIs8B,EAAQJ,EAAKn8B,GACbw8B,EAAQL,EAAKl8B,GACjB,OAAOs8B,EAAMn/B,OAAO,SAAU2b,GAC5B,OAA8B,GAAvByjB,EAAMtgC,QAAQ6c,KAIzB,SAAS0jB,EAAUz8B,EAAGC,GACpB,IAEStF,EAFLb,EAAI,GAER,IAASa,KAAOqF,EAAG,CACjB,IAAI08B,EAAgB18B,EAAErF,GAClBN,EAAQqiC,EAERz8B,EAAElK,eAAe4E,KACnBN,EAAQ4F,EAAEtF,IAGS,iBAAVN,IACTA,EAAQoiC,EAAUC,EAAeriC,IAGnCP,EAAEa,GAAON,EAGX,OAAOP,EAIT,SAAS6iC,IACP,GAAuB,oBAAZ1kC,SAAyB,OAAO,EAC3C,IAAI+J,EAAM/J,SAASC,cAAc,OACjC8J,EAAID,MAAMsB,MAAQ,QAClBrB,EAAID,MAAMuB,OAAS,QACnBtB,EAAID,MAAM4M,SAAW,SACrB3M,EAAID,MAAM0a,SAAW,WACrBza,EAAID,MAAMiK,IAAM,UAChB/T,SAAS2kC,KAAKpjC,YAAYwI,GAC1B,IAAI66B,EAAiB76B,EAAI+c,YAAc/c,EAAI86B,YAE3C,OADA7kC,SAAS2kC,KAAKG,YAAY/6B,GACnB66B,I,gCC1LT,oHACIG,EAAiB,CACnB5nC,KAAM,IAAU0F,OAAO4b,WACvB/U,OAAQ,IAAUkV,KAClBhV,QAAS,IAAUgV,KACnBpV,QAAS,IAAUoV,KACnBpT,SAAU,IAAUoT,KACpBnT,kBAAmB,IAAUmT,KAC7B7T,OAAQ,IAAU8T,KAClB3T,UAAW,IAAU2T,KACrB/T,QAAS,IAAU+T,KACnBzV,KAAM,IAAU47B,MAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IACtCt5B,UAAW,IAAUs5B,MAAM,CAAC,GAAI,GAAI,GAAI,KACxC37B,IAAK,IAAU27B,MAAM,CAAC,QAAS,SAAU,UAAW,WAAY,YAAa,aAC7E/5B,KAAM,IAAU8T,OAAON,WACvBlb,MAAO,IAAU0hC,UAAU,CAAC,IAAUnhC,OAAQ,IAAUjB,SAAS4b,YAE/DymB,EAAoB,CACtB97B,KAAM,EACNC,IAAK,QACLqC,UAAW,GACXX,QAAQ,EACRG,WAAW,EACXJ,SAAS,EACTW,kBAAmB,SAA2BpC,EAAKqC,GACjD,MAAO,sCAAwCrC,EAAM,cAA0BA,EAAM,eAAiBqC,EAAY,QAEpHhC,OAAQ,aACRE,QAAS,aACTJ,QAAS,cAoCP27B,GAjCO,IAAUvmB,KACT,IAAUA,KACN,IAAUA,KACf,IAAUG,OACR,IAAUA,OACf,IAAUlc,OACT,IAAUA,OACV,IAAUiB,OACV,IAAUA,OACV,IAAUA,OACZihC,EAAe17B,IACd07B,EAAe37B,KACb,IAAUyV,KACCkmB,EAAet5B,kBACvBs5B,EAAer5B,UACN,IAAUkT,KACjB,IAAUC,KACR,IAAUA,KACV,IAAUA,KACXkmB,EAAej6B,QACpB,IAAUs6B,QAAQ,IAAUthC,QAC5B,IAAUshC,QAAQ,IAAUthC,QAC7B,IAAUshC,QAAQ,IAAUthC,QACzB,IAAU+a,KACb,IAAUumB,QAAQ,IAAUC,MAAM,CACxCnkC,KAAM,IAAU4C,OAAO2a,WACvBva,YAAa,IAAUkhC,QAAQ,IAAUthC,QAAQ2a,WACjDra,UAAW,IAAUghC,QAAQ,IAAUthC,QACvCK,SAAU,IAAUihC,QAAQ,IAAUthC,QACtC2G,SAAU,IAAU3G,OAAO2a,WAC3B/T,OAAQ,IAAU7H,UAGG,CACvB2G,QAAS,aACTqzB,SAAU,aACVmB,aAAc,aACdG,UAAW,GACX3J,QAAS,EACTwB,KAAM,GACNlsB,MAAO,GACPe,MAAO,cACPtH,MAAO,mBACPwyB,MAAO,UACP1sB,IAAK67B,EAAkB77B,IACvBD,KAAM,KACN4yB,YAAakJ,EAAkB97B,KAC/B2B,OAAQm6B,EAAkBn6B,OAC1BW,UAAWw5B,EAAkBx5B,UAC7BD,kBAAmBy5B,EAAkBz5B,kBACrCsuB,mBAAoB,KACpBqE,aAAa,EACbC,eAAe,EACfvF,eAAe,EACfwF,aAAc4G,EAAkBp6B,QAChC0wB,WAAW,EACXjxB,OAAQ","file":"js/common-3b6695a6e71cd02a6b03.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"2\":\"base_polyfills\",\"3\":\"emoji_picker\",\"4\":\"extra_polyfills\",\"5\":\"features/account_gallery\",\"6\":\"features/account_timeline\",\"7\":\"features/admin\",\"8\":\"features/admin/awaiting_approval\",\"9\":\"features/admin/moderation_log\",\"10\":\"features/admin/reports\",\"11\":\"features/auth_login\",\"12\":\"features/backups\",\"13\":\"features/blocks\",\"14\":\"features/bookmarks\",\"15\":\"features/chats\",\"16\":\"features/chats/chat_room\",\"17\":\"features/community_timeline\",\"18\":\"features/direct_timeline\",\"19\":\"features/domain_blocks\",\"20\":\"features/edit_profile\",\"21\":\"features/explore\",\"22\":\"features/favourited_statuses\",\"23\":\"features/favourites\",\"24\":\"features/filters\",\"25\":\"features/follow_requests\",\"26\":\"features/followers\",\"27\":\"features/following\",\"28\":\"features/generic_not_found\",\"29\":\"features/groups/index\",\"30\":\"features/groups/timeline\",\"31\":\"features/hashtag_timeline\",\"32\":\"features/home_timeline\",\"33\":\"features/import_data\",\"34\":\"features/list_adder\",\"35\":\"features/list_editor\",\"36\":\"features/list_timeline\",\"37\":\"features/lists\",\"38\":\"features/mutes\",\"39\":\"features/notifications\",\"40\":\"features/pinned_statuses\",\"41\":\"features/preferences\",\"42\":\"features/public_timeline\",\"43\":\"features/reblogs\",\"44\":\"features/remote_timeline\",\"45\":\"features/search\",\"46\":\"features/security\",\"47\":\"features/security/mfa_form\",\"48\":\"features/server_info\",\"49\":\"features/soapbox_config\",\"50\":\"features/status\",\"51\":\"locale_ar\",\"52\":\"locale_ast\",\"53\":\"locale_bg\",\"54\":\"locale_bn\",\"55\":\"locale_br\",\"56\":\"locale_ca\",\"57\":\"locale_co\",\"58\":\"locale_cs\",\"59\":\"locale_cy\",\"60\":\"locale_da\",\"61\":\"locale_de\",\"62\":\"locale_el\",\"63\":\"locale_en\",\"64\":\"locale_eo\",\"65\":\"locale_es\",\"66\":\"locale_es-AR\",\"67\":\"locale_et\",\"68\":\"locale_eu\",\"69\":\"locale_fa\",\"70\":\"locale_fi\",\"71\":\"locale_fr\",\"72\":\"locale_ga\",\"73\":\"locale_gl\",\"74\":\"locale_he\",\"75\":\"locale_hi\",\"76\":\"locale_hr\",\"77\":\"locale_hu\",\"78\":\"locale_hy\",\"79\":\"locale_id\",\"80\":\"locale_io\",\"81\":\"locale_it\",\"82\":\"locale_ja\",\"83\":\"locale_ka\",\"84\":\"locale_kk\",\"85\":\"locale_ko\",\"86\":\"locale_lt\",\"87\":\"locale_lv\",\"88\":\"locale_mk\",\"89\":\"locale_ms\",\"90\":\"locale_nl\",\"91\":\"locale_nn\",\"92\":\"locale_no\",\"93\":\"locale_oc\",\"94\":\"locale_pl\",\"95\":\"locale_pt\",\"96\":\"locale_pt-BR\",\"97\":\"locale_ro\",\"98\":\"locale_ru\",\"99\":\"locale_sk\",\"100\":\"locale_sl\",\"101\":\"locale_sq\",\"102\":\"locale_sr\",\"103\":\"locale_sr-Latn\",\"104\":\"locale_sv\",\"105\":\"locale_ta\",\"106\":\"locale_te\",\"107\":\"locale_th\",\"108\":\"locale_tr\",\"109\":\"locale_uk\",\"110\":\"locale_zh-CN\",\"111\":\"locale_zh-HK\",\"112\":\"locale_zh-TW\",\"113\":\"modals/embed_modal\",\"114\":\"modals/mute_modal\",\"115\":\"modals/report_modal\"}[chunkId]||chunkId) + \"-\" + {\"2\":\"cda4fa498f959fb8264f\",\"3\":\"7e7b4d7ca5d73328f3ef\",\"4\":\"b58863fe161502239ec3\",\"5\":\"0544d3d7047ebc4259a5\",\"6\":\"18ec1f1219e0560efce9\",\"7\":\"d9998c99d7e9364ff272\",\"8\":\"72963e16c2eca49f74aa\",\"9\":\"e7383ffb5426b3fa27ba\",\"10\":\"6215fadf2c8504db7a41\",\"11\":\"b218bd1604cc613fb9af\",\"12\":\"52bf3a044e4b589ffa76\",\"13\":\"9be7983f9f075f8b76fb\",\"14\":\"6d1fd325084fcdbbbfe8\",\"15\":\"b9e28cdca930bafded14\",\"16\":\"2190f8ebd211997ce329\",\"17\":\"b21094bc625ae0a8b31b\",\"18\":\"c9cdf80c1af225b5a207\",\"19\":\"3c20e59db466ed963276\",\"20\":\"ecc5c1ad658b7d2b57fa\",\"21\":\"54fd3a8f33b1c68dc8b5\",\"22\":\"f19e24e41a078ba3de67\",\"23\":\"50fa916d7e6edf364e91\",\"24\":\"c1e1948c560be911e815\",\"25\":\"19840c8b1094c8e16c07\",\"26\":\"7e3c3275308731e19345\",\"27\":\"f3d0ca6ebfbf5da3c20d\",\"28\":\"ce5793662da620500e3c\",\"29\":\"79c3d19161384f191d12\",\"30\":\"9e10a4fd11f5e6b58cac\",\"31\":\"869ba0a038cc3dad9ac8\",\"32\":\"19d8ed0b3d47bc78a73d\",\"33\":\"e4ec867c1b33ed063b99\",\"34\":\"484dc970eefac0e575b5\",\"35\":\"c452beef4c20ce154b4a\",\"36\":\"75b5a6cbc5cd0393c425\",\"37\":\"015e559cd81249c15d07\",\"38\":\"5735a5d8ed23484a4110\",\"39\":\"968acdc008e29ad893bb\",\"40\":\"44db094dbc7300df86af\",\"41\":\"fb6ff74e6180f47d9bc4\",\"42\":\"0778befa152b8d30f22f\",\"43\":\"3a90d7de857b993b1ec5\",\"44\":\"7bb5e0966fa4a9e3a8c1\",\"45\":\"81aa3b1527b88d8e383d\",\"46\":\"6ce7bbe38e001b769704\",\"47\":\"65ca49e93b96208890c1\",\"48\":\"5f77bc49b936116e0bf6\",\"49\":\"9201a927e5074cd7c1ac\",\"50\":\"ad4a2fa3a8447de1734b\",\"51\":\"5a66a1dfd4ce401d8a75\",\"52\":\"95faabd26104d7b2f4a8\",\"53\":\"f253d7311706d0a0f74a\",\"54\":\"d9a02ce359c3a25876e3\",\"55\":\"8a54cb3055d61069d619\",\"56\":\"db2e78d1a27f5399fed0\",\"57\":\"22412f5b41354d636bdd\",\"58\":\"ef3baf5fb4410418c467\",\"59\":\"f4ecd81fcb34f197ec01\",\"60\":\"e1198eac7538b5799e58\",\"61\":\"c8563d7eca17dc5dc520\",\"62\":\"3111995a8e31655a7b0d\",\"63\":\"b574df2de02b177b0c7a\",\"64\":\"dded05c7f97a17d10bfe\",\"65\":\"944738ed1c68458b0545\",\"66\":\"9e0c9b1aaea0eccc3237\",\"67\":\"8117445fc63b3f0c3213\",\"68\":\"0cb9e3fbc3b384c4371d\",\"69\":\"136c7ab60c3447ed47c2\",\"70\":\"391078ce6498c0243f1c\",\"71\":\"0155058370f521b58037\",\"72\":\"bfc02f22de7ed74eef61\",\"73\":\"b9643730d0b2d1a181cb\",\"74\":\"a18632b64eed3c153102\",\"75\":\"98505068012209496eb8\",\"76\":\"fbcf4f10111da8ed06d9\",\"77\":\"a19af65be7c98aae7c67\",\"78\":\"d627cb5b2bea12eb68f3\",\"79\":\"78ed0b145b238d0a78d1\",\"80\":\"20f4b074a9b98038c7d0\",\"81\":\"7600538d818e0d487cdc\",\"82\":\"1221efecfcf2c070a059\",\"83\":\"edeeb94c97a5e4a15006\",\"84\":\"7df89e57789800801a04\",\"85\":\"d01334c2d37a63ff228b\",\"86\":\"4b2e5ffdcf9dd03929b0\",\"87\":\"f7fe15dec5062e61164c\",\"88\":\"ec2fb42e2d1229541b84\",\"89\":\"6d0e65119169c1a3fe0d\",\"90\":\"634fe41b11e5e3260841\",\"91\":\"9245ebd1e6a0f9b3fef2\",\"92\":\"608f8c0a507ec3fd3c40\",\"93\":\"dd3a3ab82092cf29e9e1\",\"94\":\"384783983750a0a32489\",\"95\":\"4632dddd11ee52655830\",\"96\":\"c7235eddc19319d187e4\",\"97\":\"dd6655d1f0177c3c14d6\",\"98\":\"7afa6f473cf2f65d8cd9\",\"99\":\"3c197d41aaa76e051ab4\",\"100\":\"e916bf3f683ebb123951\",\"101\":\"c845519541cdbb29371c\",\"102\":\"500e6085325473c8143e\",\"103\":\"efc496ca7da88ec2b129\",\"104\":\"5242ccfaee4b591a18be\",\"105\":\"dfe24d212155d71956a8\",\"106\":\"2a004485a13fccb3260e\",\"107\":\"60bc2d6162afd845afdf\",\"108\":\"5615272e9cb535040579\",\"109\":\"ebed9b89fa81fdcb37a0\",\"110\":\"28cb9dbad1dd0af2c661\",\"111\":\"a64d2c323cad6c990271\",\"112\":\"213da238f28a63d1b14d\",\"113\":\"887a33ed436ccdfb7608\",\"114\":\"e57125022f1a3d0270c0\",\"115\":\"8a0e36c5da4086e78c1e\"}[chunkId] + \".chunk.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n","var mapping = {\n name: 'a',\n unified: 'b',\n non_qualified: 'c',\n has_img_apple: 'd',\n has_img_google: 'e',\n has_img_twitter: 'f',\n has_img_emojione: 'g',\n has_img_facebook: 'h',\n has_img_messenger: 'i',\n keywords: 'j',\n sheet: 'k',\n emoticons: 'l',\n text: 'm',\n short_names: 'n',\n added_in: 'o'\n};\n\nvar buildSearch = function buildSearch(emoji) {\n var search = [];\n\n var addToSearch = function addToSearch(strings, split) {\n if (!strings) {\n return;\n }\n\n ;\n (Array.isArray(strings) ? strings : [strings]).forEach(function (string) {\n ;\n (split ? string.split(/[-|_|\\s]+/) : [string]).forEach(function (s) {\n s = s.toLowerCase();\n\n if (search.indexOf(s) == -1) {\n search.push(s);\n }\n });\n });\n };\n\n addToSearch(emoji.short_names, true);\n addToSearch(emoji.name, true);\n addToSearch(emoji.keywords, false);\n addToSearch(emoji.emoticons, false);\n return search.join(',');\n};\n\nvar compress = function compress(emoji) {\n emoji.short_names = emoji.short_names.filter(function (short_name) {\n return short_name !== emoji.short_name;\n });\n delete emoji.short_name;\n emoji.sheet = [emoji.sheet_x, emoji.sheet_y];\n delete emoji.sheet_x;\n delete emoji.sheet_y;\n emoji.added_in = parseInt(emoji.added_in);\n\n if (emoji.added_in === 6) {\n delete emoji.added_in;\n }\n\n for (var key in mapping) {\n emoji[mapping[key]] = emoji[key];\n delete emoji[key];\n }\n\n for (var _key in emoji) {\n var value = emoji[_key];\n\n if (Array.isArray(value) && !value.length) {\n delete emoji[_key];\n } else if (typeof value === 'string' && !value.length) {\n delete emoji[_key];\n } else if (value === null) {\n delete emoji[_key];\n }\n }\n};\n\nvar uncompress = function uncompress(data) {\n data.compressed = false;\n\n for (var id in data.emojis) {\n var emoji = data.emojis[id];\n\n for (var key in mapping) {\n emoji[key] = emoji[mapping[key]];\n delete emoji[mapping[key]];\n }\n\n if (!emoji.short_names) emoji.short_names = [];\n emoji.short_names.unshift(id);\n emoji.sheet_x = emoji.sheet[0];\n emoji.sheet_y = emoji.sheet[1];\n delete emoji.sheet;\n if (!emoji.text) emoji.text = '';\n if (!emoji.added_in) emoji.added_in = 6;\n emoji.added_in = emoji.added_in.toFixed(1);\n emoji.search = buildSearch(emoji);\n }\n};\n\nmodule.exports = {\n buildSearch: buildSearch,\n compress: compress,\n uncompress: uncompress\n};","var core = module.exports = {\n version: '2.6.1'\n};\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef","var store = require('./_shared')('wks');\n\nvar uid = require('./_uid');\n\nvar Symbol = require('./_global').Symbol;\n\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func\n: Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef","var global = require('./_global');\n\nvar core = require('./_core');\n\nvar ctx = require('./_ctx');\n\nvar hide = require('./_hide');\n\nvar has = require('./_has');\n\nvar PROTOTYPE = 'prototype';\n\nvar $export = function $export(type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue; // export native or passed\n\n out = own ? target[key] : source[key]; // prevent global pollution for namespaces\n\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? function (C) {\n var F = function F(a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0:\n return new C();\n\n case 1:\n return new C(a);\n\n case 2:\n return new C(a, b);\n }\n\n return new C(a, b, c);\n }\n\n return C.apply(this, arguments);\n };\n\n F[PROTOTYPE] = C[PROTOTYPE];\n return F; // make static versions for prototype methods\n }(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n}; // type bitmap\n\n\n$export.F = 1; // forced\n\n$export.G = 2; // global\n\n$export.S = 4; // static\n\n$export.P = 8; // proto\n\n$export.B = 16; // bind\n\n$export.W = 32; // wrap\n\n$export.U = 64; // safe\n\n$export.R = 128; // real proto method for `library`\n\nmodule.exports = $export;","var dP = require('./_object-dp');\n\nvar createDesc = require('./_property-desc');\n\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};","var anObject = require('./_an-object');\n\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\n\nvar toPrimitive = require('./_to-primitive');\n\nvar dP = Object.defineProperty;\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) {\n /* empty */\n }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};","var isObject = require('./_is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getData, getSanitizedData, unifiedToNative } from '../../utils';\nimport { uncompress } from '../../utils/data';\nimport { EmojiPropTypes, EmojiDefaultProps } from '../../utils/shared-props';\nvar SHEET_COLUMNS = 52;\n\nvar _getData = function _getData(props) {\n var emoji = props.emoji;\n var skin = props.skin;\n var set = props.set;\n var data = props.data;\n return getData(emoji, skin, set, data);\n};\n\nvar _getPosition = function _getPosition(props) {\n var _getData2 = _getData(props);\n\n var sheet_x = _getData2.sheet_x;\n var sheet_y = _getData2.sheet_y;\n var multiply = 100 / (SHEET_COLUMNS - 1);\n return multiply * sheet_x + '% ' + multiply * sheet_y + '%';\n};\n\nvar _getSanitizedData = function _getSanitizedData(props) {\n var emoji = props.emoji;\n var skin = props.skin;\n var set = props.set;\n var data = props.data;\n return getSanitizedData(emoji, skin, set, data);\n};\n\nvar _handleClick = function _handleClick(e, props) {\n if (!props.onClick) {\n return;\n }\n\n var onClick = props.onClick;\n\n var emoji = _getSanitizedData(props);\n\n onClick(emoji, e);\n};\n\nvar _handleOver = function _handleOver(e, props) {\n if (!props.onOver) {\n return;\n }\n\n var onOver = props.onOver;\n\n var emoji = _getSanitizedData(props);\n\n onOver(emoji, e);\n};\n\nvar _handleLeave = function _handleLeave(e, props) {\n if (!props.onLeave) {\n return;\n }\n\n var onLeave = props.onLeave;\n\n var emoji = _getSanitizedData(props);\n\n onLeave(emoji, e);\n};\n\nvar _isNumeric = function _isNumeric(value) {\n return !isNaN(value - parseFloat(value));\n};\n\nvar _convertStyleToCSS = function _convertStyleToCSS(style) {\n var div = document.createElement('div');\n\n for (var key in style) {\n var value = style[key];\n\n if (_isNumeric(value)) {\n value += 'px';\n }\n\n div.style[key] = value;\n }\n\n return div.getAttribute('style');\n};\n\nvar NimbleEmoji = function NimbleEmoji(props) {\n if (props.data.compressed) {\n uncompress(props.data);\n }\n\n for (var k in NimbleEmoji.defaultProps) {\n if (props[k] == undefined && NimbleEmoji.defaultProps[k] != undefined) {\n props[k] = NimbleEmoji.defaultProps[k];\n }\n }\n\n var data = _getData(props);\n\n if (!data) {\n return null;\n }\n\n var unified = data.unified;\n var custom = data.custom;\n var short_names = data.short_names;\n var colons = data.colons;\n var imageUrl = data.imageUrl;\n var render = data.render;\n var style = {};\n var children = props.children;\n var className = 'emoji-mart-emoji';\n var title = null;\n\n if (!unified && !custom) {\n return null;\n }\n\n if (props.tooltip) {\n title = short_names ? ':' + short_names[0] + ':' : colons;\n }\n\n if (props.native && unified) {\n className += ' emoji-mart-emoji-native';\n style = {\n fontSize: props.size\n };\n children = unifiedToNative(unified);\n\n if (props.forceSize) {\n style.display = 'inline-block';\n style.width = props.size;\n style.height = props.size;\n }\n } else if (custom) {\n className += ' emoji-mart-emoji-custom';\n style = {\n width: props.size,\n height: props.size,\n display: 'inline-block',\n backgroundImage: 'url(' + imageUrl + ')',\n backgroundSize: 'contain'\n };\n } else if (render) {\n className += ' emoji-mart-emoji-custom';\n style = {\n width: props.size,\n height: props.size,\n display: 'inline-block',\n backgroundSize: 'contain'\n };\n } else {\n var setHasEmoji = data['has_img_' + props.set] == undefined || data['has_img_' + props.set];\n\n if (!setHasEmoji) {\n if (props.fallback) {\n return props.fallback(data);\n } else {\n return null;\n }\n } else {\n style = {\n width: props.size,\n height: props.size,\n display: 'inline-block',\n backgroundImage: 'url(' + props.backgroundImageFn(props.set, props.sheetSize) + ')',\n backgroundSize: 100 * SHEET_COLUMNS + '%',\n backgroundPosition: _getPosition(props)\n };\n }\n }\n\n if (props.html) {\n style = _convertStyleToCSS(style);\n return '<span style=\\'' + style + '\\' ' + (title ? 'title=\\'' + title + '\\'' : '') + ' class=\\'' + className + '\\'>' + (children || '') + '</span>';\n } else if (render) {\n return React.createElement('span', {\n key: props.emoji.id || props.emoji,\n onClick: function onClick(e) {\n return _handleClick(e, props);\n },\n onMouseEnter: function onMouseEnter(e) {\n return _handleOver(e, props);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _handleLeave(e, props);\n },\n title: title,\n className: className\n }, render);\n } else {\n return React.createElement('span', {\n key: props.emoji.id || props.emoji,\n onClick: function onClick(e) {\n return _handleClick(e, props);\n },\n onMouseEnter: function onMouseEnter(e) {\n return _handleOver(e, props);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _handleLeave(e, props);\n },\n title: title,\n className: className\n }, React.createElement('span', {\n style: style\n }, children));\n }\n};\n\nNimbleEmoji.defaultProps = EmojiDefaultProps;\nexport default NimbleEmoji;","import React from 'react';\nimport { connect } from 'react-redux';\nimport Status from '../components/status';\nimport { makeGetStatus } from '../selectors';\nimport {\n replyCompose,\n mentionCompose,\n directCompose,\n} from '../actions/compose';\nimport {\n reblog,\n favourite,\n unreblog,\n unfavourite,\n bookmark,\n unbookmark,\n pin,\n unpin,\n} from '../actions/interactions';\nimport { blockAccount } from '../actions/accounts';\nimport {\n muteStatus,\n unmuteStatus,\n deleteStatus,\n hideStatus,\n revealStatus,\n} from '../actions/statuses';\nimport { initMuteModal } from '../actions/mutes';\nimport { initReport } from '../actions/reports';\nimport { openModal } from '../actions/modal';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { showAlertForError } from '../actions/alerts';\nimport {\n createRemovedAccount,\n groupRemoveStatus,\n} from '../actions/groups';\nimport { getSettings } from '../actions/settings';\nimport { getSoapboxConfig } from 'soapbox/actions/soapbox';\nimport { deactivateUserModal, deleteUserModal, deleteStatusModal, toggleStatusSensitivityModal } from 'soapbox/actions/moderation';\n\nconst messages = defineMessages({\n deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },\n deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this post?' },\n redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' },\n redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this post and re-draft it? Favorites and reposts will be lost, and replies to the original post will be orphaned.' },\n blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },\n replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },\n replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },\n blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },\n});\n\nconst makeMapStateToProps = () => {\n const getStatus = makeGetStatus();\n\n const mapStateToProps = (state, props) => ({\n status: getStatus(state, props),\n displayMedia: getSettings(state).get('displayMedia'),\n allowedEmoji: getSoapboxConfig(state).get('allowedEmoji'),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n\n onReply(status, router) {\n dispatch((_, getState) => {\n let state = getState();\n if (state.getIn(['compose', 'text']).trim().length !== 0) {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(messages.replyMessage),\n confirm: intl.formatMessage(messages.replyConfirm),\n onConfirm: () => dispatch(replyCompose(status, router)),\n }));\n } else {\n dispatch(replyCompose(status, router));\n }\n });\n },\n\n onModalReblog(status) {\n if (status.get('reblogged')) {\n dispatch(unreblog(status));\n } else {\n dispatch(reblog(status));\n }\n },\n\n onReblog(status, e) {\n dispatch((_, getState) => {\n const boostModal = getSettings(getState()).get('boostModal');\n if (e.shiftKey || !boostModal) {\n this.onModalReblog(status);\n } else {\n dispatch(openModal('BOOST', { status, onReblog: this.onModalReblog }));\n }\n });\n },\n\n onFavourite(status) {\n if (status.get('favourited')) {\n dispatch(unfavourite(status));\n } else {\n dispatch(favourite(status));\n }\n },\n\n onBookmark(status) {\n if (status.get('bookmarked')) {\n dispatch(unbookmark(status));\n } else {\n dispatch(bookmark(status));\n }\n },\n\n onPin(status) {\n if (status.get('pinned')) {\n dispatch(unpin(status));\n } else {\n dispatch(pin(status));\n }\n },\n\n onEmbed(status) {\n dispatch(openModal('EMBED', {\n url: status.get('url'),\n onError: error => dispatch(showAlertForError(error)),\n }));\n },\n\n onDelete(status, history, withRedraft = false) {\n dispatch((_, getState) => {\n const deleteModal = getSettings(getState()).get('deleteModal');\n if (!deleteModal) {\n dispatch(deleteStatus(status.get('id'), history, withRedraft));\n } else {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage),\n confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm),\n onConfirm: () => dispatch(deleteStatus(status.get('id'), history, withRedraft)),\n }));\n }\n });\n },\n\n onDirect(account, router) {\n dispatch(directCompose(account, router));\n },\n\n onMention(account, router) {\n dispatch(mentionCompose(account, router));\n },\n\n onOpenMedia(media, index) {\n dispatch(openModal('MEDIA', { media, index }));\n },\n\n onOpenVideo(media, time) {\n dispatch(openModal('VIDEO', { media, time }));\n },\n\n onOpenAudio(media, time) {\n dispatch(openModal('AUDIO', { media, time }));\n },\n\n onBlock(status) {\n const account = status.get('account');\n dispatch(openModal('CONFIRM', {\n message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,\n confirm: intl.formatMessage(messages.blockConfirm),\n onConfirm: () => dispatch(blockAccount(account.get('id'))),\n secondary: intl.formatMessage(messages.blockAndReport),\n onSecondary: () => {\n dispatch(blockAccount(account.get('id')));\n dispatch(initReport(account, status));\n },\n }));\n },\n\n onReport(status) {\n dispatch(initReport(status.get('account'), status));\n },\n\n onMute(account) {\n dispatch(initMuteModal(account));\n },\n\n onMuteConversation(status) {\n if (status.get('muted')) {\n dispatch(unmuteStatus(status.get('id')));\n } else {\n dispatch(muteStatus(status.get('id')));\n }\n },\n\n onToggleHidden(status) {\n if (status.get('hidden')) {\n dispatch(revealStatus(status.get('id')));\n } else {\n dispatch(hideStatus(status.get('id')));\n }\n },\n\n onGroupRemoveAccount(groupId, accountId) {\n dispatch(createRemovedAccount(groupId, accountId));\n },\n\n onGroupRemoveStatus(groupId, statusId) {\n dispatch(groupRemoveStatus(groupId, statusId));\n },\n\n onDeactivateUser(status) {\n dispatch(deactivateUserModal(intl, status.getIn(['account', 'id'])));\n },\n\n onDeleteUser(status) {\n dispatch(deleteUserModal(intl, status.getIn(['account', 'id'])));\n },\n\n onDeleteStatus(status) {\n dispatch(deleteStatusModal(intl, status.get('id')));\n },\n\n onToggleStatusSensitivity(status) {\n dispatch(toggleStatusSensitivityModal(intl, status.get('id'), status.get('sensitive')));\n },\n\n});\n\nexport default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Status));\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\n\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\n\nvar defined = require('./_defined');\n\nmodule.exports = function (it) {\n return IObject(defined(it));\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","var shared = require('./_shared')('keys');\n\nvar uid = require('./_uid');\n\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};","module.exports = {};","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\n\nmodule.exports = function (it) {\n return Object(defined(it));\n};","// Wrapper to call requestIdleCallback() to schedule low-priority work.\n// See https://developer.mozilla.org/en-US/docs/Web/API/Background_Tasks_API\n// for a good breakdown of the concepts behind this.\n\nimport Queue from 'tiny-queue';\n\nconst taskQueue = new Queue();\nlet runningRequestIdleCallback = false;\n\nfunction runTasks(deadline) {\n while (taskQueue.length && deadline.timeRemaining() > 0) {\n taskQueue.shift()();\n }\n if (taskQueue.length) {\n requestIdleCallback(runTasks);\n } else {\n runningRequestIdleCallback = false;\n }\n}\n\nfunction scheduleIdleTask(task) {\n taskQueue.push(task);\n if (!runningRequestIdleCallback) {\n runningRequestIdleCallback = true;\n requestIdleCallback(runTasks);\n }\n}\n\nexport default scheduleIdleTask;\n","\n// Get the bounding client rect from an IntersectionObserver entry.\n// This is to work around a bug in Chrome: https://crbug.com/737228\n\nlet hasBoundingRectBug;\n\nfunction getRectFromEntry(entry) {\n if (typeof hasBoundingRectBug !== 'boolean') {\n const boundingRect = entry.target.getBoundingClientRect();\n const observerRect = entry.boundingClientRect;\n hasBoundingRectBug = boundingRect.height !== observerRect.height ||\n boundingRect.top !== observerRect.top ||\n boundingRect.width !== observerRect.width ||\n boundingRect.bottom !== observerRect.bottom ||\n boundingRect.left !== observerRect.left ||\n boundingRect.right !== observerRect.right;\n }\n return hasBoundingRectBug ? entry.target.getBoundingClientRect() : entry.boundingClientRect;\n}\n\nexport default getRectFromEntry;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport scheduleIdleTask from '../features/ui/util/schedule_idle_task';\nimport getRectFromEntry from '../features/ui/util/get_rect_from_entry';\nimport { is } from 'immutable';\n\n// Diff these props in the \"rendered\" state\nconst updateOnPropsForRendered = ['id', 'index', 'listLength'];\n// Diff these props in the \"unrendered\" state\nconst updateOnPropsForUnrendered = ['id', 'index', 'listLength', 'cachedHeight'];\n\nexport default class IntersectionObserverArticle extends React.Component {\n\n static propTypes = {\n intersectionObserverWrapper: PropTypes.object.isRequired,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n index: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n listLength: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n saveHeightKey: PropTypes.string,\n cachedHeight: PropTypes.number,\n onHeightChange: PropTypes.func,\n children: PropTypes.node,\n };\n\n state = {\n isHidden: false, // set to true in requestIdleCallback to trigger un-render\n isIntersecting: true,\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const isUnrendered = !this.state.isIntersecting && (this.state.isHidden || this.props.cachedHeight);\n const willBeUnrendered = !nextState.isIntersecting && (nextState.isHidden || nextProps.cachedHeight);\n if (!!isUnrendered !== !!willBeUnrendered) {\n // If we're going from rendered to unrendered (or vice versa) then update\n return true;\n }\n // Otherwise, diff based on props\n const propsToDiff = isUnrendered ? updateOnPropsForUnrendered : updateOnPropsForRendered;\n return !propsToDiff.every(prop => is(nextProps[prop], this.props[prop]));\n }\n\n componentDidMount() {\n const { intersectionObserverWrapper, id } = this.props;\n\n intersectionObserverWrapper.observe(\n id,\n this.node,\n this.handleIntersection,\n );\n\n this.componentMounted = true;\n }\n\n componentWillUnmount() {\n const { intersectionObserverWrapper, id } = this.props;\n intersectionObserverWrapper.unobserve(id, this.node);\n\n this.componentMounted = false;\n }\n\n handleIntersection = (entry) => {\n this.entry = entry;\n\n scheduleIdleTask(this.calculateHeight);\n this.setState(this.updateStateAfterIntersection);\n }\n\n updateStateAfterIntersection = (prevState) => {\n if (prevState.isIntersecting !== false && !this.entry.isIntersecting) {\n scheduleIdleTask(this.hideIfNotIntersecting);\n }\n return {\n isIntersecting: this.entry.isIntersecting,\n isHidden: false,\n };\n }\n\n calculateHeight = () => {\n const { onHeightChange, saveHeightKey, id } = this.props;\n // save the height of the fully-rendered element (this is expensive\n // on Chrome, where we need to fall back to getBoundingClientRect)\n this.height = getRectFromEntry(this.entry).height;\n\n if (onHeightChange && saveHeightKey) {\n onHeightChange(saveHeightKey, id, this.height);\n }\n }\n\n hideIfNotIntersecting = () => {\n if (!this.componentMounted) {\n return;\n }\n\n // When the browser gets a chance, test if we're still not intersecting,\n // and if so, set our isHidden to true to trigger an unrender. The point of\n // this is to save DOM nodes and avoid using up too much memory.\n this.setState((prevState) => ({ isHidden: !prevState.isIntersecting }));\n }\n\n handleRef = (node) => {\n this.node = node;\n }\n\n render() {\n const { children, id, index, listLength, cachedHeight } = this.props;\n const { isIntersecting, isHidden } = this.state;\n\n if (!isIntersecting && (isHidden || cachedHeight)) {\n return (\n <article\n ref={this.handleRef}\n aria-posinset={index + 1}\n aria-setsize={listLength}\n style={{ height: `${this.height || cachedHeight}px`, opacity: 0, overflow: 'hidden' }}\n data-id={id}\n tabIndex='0'\n >\n {children && React.cloneElement(children, { hidden: true })}\n </article>\n );\n }\n\n return (\n <article ref={this.handleRef} aria-posinset={index + 1} aria-setsize={listLength} data-id={id} tabIndex='0'>\n {children && React.cloneElement(children, { hidden: false })}\n </article>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport IntersectionObserverArticle from '../components/intersection_observer_article';\nimport { setHeight } from '../actions/height_cache';\n\nconst makeMapStateToProps = (state, props) => ({\n cachedHeight: state.getIn(['height_cache', props.saveHeightKey, props.id]),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\n onHeightChange(key, id, height) {\n dispatch(setHeight(key, id, height));\n },\n\n});\n\nexport default connect(makeMapStateToProps, mapDispatchToProps)(IntersectionObserverArticle);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nconst messages = defineMessages({\n following: {\n id: 'morefollows.following_label',\n defaultMessage: '…and {count} more {count, plural, one {follow} other {follows}} on remote sites.',\n },\n followers: {\n id: 'morefollows.followers_label',\n defaultMessage: '…and {count} more {count, plural, one {follower} other {followers}} on remote sites.',\n },\n});\n\n\nexport default @injectIntl\nclass MoreFollows extends React.PureComponent {\n\n static propTypes = {\n visible: PropTypes.bool,\n count: PropTypes.number,\n type: PropTypes.string,\n intl: PropTypes.object.isRequired,\n }\n\n static defaultProps = {\n visible: true,\n }\n\n getMessage = () => {\n const { type, count, intl } = this.props;\n return intl.formatMessage(messages[type], { count });\n }\n\n render() {\n return (\n <div className='morefollows-indicator'>\n <div>\n <div className='morefollows-indicator__label' style={{ visibility: this.props.visible ? 'visible' : 'hidden' }}>\n {this.getMessage()}\n </div>\n </div>\n </div>\n );\n }\n\n}\n","// Wrapper for IntersectionObserver in order to make working with it\n// a bit easier. We also follow this performance advice:\n// \"If you need to observe multiple elements, it is both possible and\n// advised to observe multiple elements using the same IntersectionObserver\n// instance by calling observe() multiple times.\"\n// https://developers.google.com/web/updates/2016/04/intersectionobserver\n\nclass IntersectionObserverWrapper {\n\n callbacks = {};\n observerBacklog = [];\n observer = null;\n\n connect(options) {\n const onIntersection = (entries) => {\n entries.forEach(entry => {\n const id = entry.target.getAttribute('data-id');\n if (this.callbacks[id]) {\n this.callbacks[id](entry);\n }\n });\n };\n\n this.observer = new IntersectionObserver(onIntersection, options);\n this.observerBacklog.forEach(([ id, node, callback ]) => {\n this.observe(id, node, callback);\n });\n this.observerBacklog = null;\n }\n\n observe(id, node, callback) {\n if (!this.observer) {\n this.observerBacklog.push([ id, node, callback ]);\n } else {\n this.callbacks[id] = callback;\n this.observer.observe(node);\n }\n }\n\n unobserve(id, node) {\n if (this.observer) {\n delete this.callbacks[id];\n this.observer.unobserve(node);\n }\n }\n\n disconnect() {\n if (this.observer) {\n this.callbacks = {};\n this.observer.disconnect();\n this.observer = null;\n }\n }\n\n}\n\nexport default IntersectionObserverWrapper;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport IntersectionObserverArticleContainer from '../containers/intersection_observer_article_container';\nimport LoadMore from './load_more';\nimport MoreFollows from './more_follows';\nimport IntersectionObserverWrapper from '../features/ui/util/intersection_observer_wrapper';\nimport { throttle } from 'lodash';\nimport { List as ImmutableList } from 'immutable';\nimport LoadingIndicator from './loading_indicator';\n\nconst MOUSE_IDLE_DELAY = 300;\n\nexport default class ScrollableList extends PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n scrollKey: PropTypes.string.isRequired,\n onLoadMore: PropTypes.func,\n isLoading: PropTypes.bool,\n showLoading: PropTypes.bool,\n hasMore: PropTypes.bool,\n diffCount: PropTypes.number,\n prepend: PropTypes.node,\n alwaysPrepend: PropTypes.bool,\n emptyMessage: PropTypes.node,\n children: PropTypes.node,\n onScrollToTop: PropTypes.func,\n onScroll: PropTypes.func,\n };\n\n state = {\n cachedMediaWidth: 250, // Default media/card width using default theme\n };\n\n intersectionObserverWrapper = new IntersectionObserverWrapper();\n\n mouseIdleTimer = null;\n mouseMovedRecently = false;\n lastScrollWasSynthetic = false;\n scrollToTopOnMouseIdle = false;\n\n setScrollTop = newScrollTop => {\n if (this.documentElement.scrollTop !== newScrollTop) {\n this.lastScrollWasSynthetic = true;\n this.documentElement.scrollTop = newScrollTop;\n }\n };\n\n clearMouseIdleTimer = () => {\n if (this.mouseIdleTimer === null) {\n return;\n }\n\n clearTimeout(this.mouseIdleTimer);\n this.mouseIdleTimer = null;\n };\n\n handleMouseMove = throttle(() => {\n // As long as the mouse keeps moving, clear and restart the idle timer.\n this.clearMouseIdleTimer();\n this.mouseIdleTimer = setTimeout(this.handleMouseIdle, MOUSE_IDLE_DELAY);\n\n if (!this.mouseMovedRecently && this.documentElement.scrollTop === 0) {\n // Only set if we just started moving and are scrolled to the top.\n this.scrollToTopOnMouseIdle = true;\n }\n\n // Save setting this flag for last, so we can do the comparison above.\n this.mouseMovedRecently = true;\n }, MOUSE_IDLE_DELAY / 2);\n\n handleMouseIdle = () => {\n if (this.scrollToTopOnMouseIdle) {\n this.setScrollTop(0);\n }\n\n this.mouseMovedRecently = false;\n this.scrollToTopOnMouseIdle = false;\n }\n\n componentDidMount() {\n this.window = window;\n this.documentElement = document.scrollingElement || document.documentElement;\n\n this.attachScrollListener();\n this.attachIntersectionObserver();\n // Handle initial scroll posiiton\n this.handleScroll();\n }\n\n getScrollPosition = () => {\n if (this.documentElement && (this.documentElement.scrollTop > 0 || this.mouseMovedRecently)) {\n return { height: this.documentElement.scrollHeight, top: this.documentElement.scrollTop };\n } else {\n return null;\n }\n }\n\n updateScrollBottom = (snapshot) => {\n const newScrollTop = this.documentElement.scrollHeight - snapshot;\n\n this.setScrollTop(newScrollTop);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n // Reset the scroll position when a new child comes in in order not to\n // jerk the scrollbar around if you're already scrolled down the page.\n if (snapshot !== null) {\n this.setScrollTop(this.documentElement.scrollHeight - snapshot);\n }\n }\n\n attachScrollListener() {\n this.window.addEventListener('scroll', this.handleScroll);\n this.window.addEventListener('wheel', this.handleWheel);\n }\n\n detachScrollListener() {\n this.window.removeEventListener('scroll', this.handleScroll);\n this.window.removeEventListener('wheel', this.handleWheel);\n }\n\n handleScroll = throttle(() => {\n if (this.window) {\n const { scrollTop, scrollHeight } = this.documentElement;\n const { innerHeight } = this.window;\n const offset = scrollHeight - scrollTop - innerHeight;\n\n if (400 > offset && this.props.onLoadMore && this.props.hasMore && !this.props.isLoading) {\n this.props.onLoadMore();\n }\n\n if (scrollTop < 100 && this.props.onScrollToTop) {\n this.props.onScrollToTop();\n } else if (this.props.onScroll) {\n this.props.onScroll();\n }\n\n if (!this.lastScrollWasSynthetic) {\n // If the last scroll wasn't caused by setScrollTop(), assume it was\n // intentional and cancel any pending scroll reset on mouse idle\n this.scrollToTopOnMouseIdle = false;\n }\n this.lastScrollWasSynthetic = false;\n }\n }, 150, {\n trailing: true,\n });\n\n handleWheel = throttle(() => {\n this.scrollToTopOnMouseIdle = false;\n }, 150, {\n trailing: true,\n });\n\n getSnapshotBeforeUpdate(prevProps) {\n const someItemInserted = React.Children.count(prevProps.children) > 0 &&\n React.Children.count(prevProps.children) < React.Children.count(this.props.children) &&\n this.getFirstChildKey(prevProps) !== this.getFirstChildKey(this.props);\n\n if (someItemInserted && (this.documentElement.scrollTop > 0 || this.mouseMovedRecently)) {\n return this.documentElement.scrollHeight - this.documentElement.scrollTop;\n } else {\n return null;\n }\n }\n\n cacheMediaWidth = (width) => {\n if (width && this.state.cachedMediaWidth !== width) {\n this.setState({ cachedMediaWidth: width });\n }\n }\n\n componentWillUnmount() {\n this.clearMouseIdleTimer();\n this.detachScrollListener();\n this.detachIntersectionObserver();\n }\n\n attachIntersectionObserver() {\n this.intersectionObserverWrapper.connect();\n }\n\n detachIntersectionObserver() {\n this.intersectionObserverWrapper.disconnect();\n }\n\n getFirstChildKey(props) {\n const { children } = props;\n let firstChild = children;\n\n if (children instanceof ImmutableList) {\n firstChild = children.get(0);\n } else if (Array.isArray(children)) {\n firstChild = children[0];\n }\n\n return firstChild && firstChild.key;\n }\n\n handleLoadMore = e => {\n e.preventDefault();\n this.props.onLoadMore();\n }\n\n getMoreFollows = () => {\n const { scrollKey, isLoading, diffCount, hasMore } = this.props;\n const isMoreFollows = ['followers', 'following'].some(k => k === scrollKey);\n if (!(diffCount && isMoreFollows)) return null;\n if (hasMore) return null;\n\n return (\n <MoreFollows visible={!isLoading} count={diffCount} type={scrollKey} />\n );\n }\n\n render() {\n const { children, scrollKey, showLoading, isLoading, hasMore, prepend, alwaysPrepend, emptyMessage, onLoadMore } = this.props;\n const childrenCount = React.Children.count(children);\n const trackScroll = true; //placeholder\n\n const loadMore = (hasMore && onLoadMore) ? <LoadMore visible={!isLoading} onClick={this.handleLoadMore} /> : null;\n let scrollableArea = null;\n\n if (showLoading) {\n scrollableArea = (\n <div className='slist slist--flex'>\n <div role='feed' className='item-list'>\n {prepend}\n </div>\n\n <div className='slist__append'>\n <LoadingIndicator />\n </div>\n </div>\n );\n } else if (isLoading || childrenCount > 0 || hasMore || !emptyMessage) {\n scrollableArea = (\n <div className='slist' ref={this.setRef} onMouseMove={this.handleMouseMove}>\n <div role='feed' className='item-list'>\n {prepend}\n\n {React.Children.map(this.props.children, (child, index) => (\n <IntersectionObserverArticleContainer\n key={child.key}\n id={child.key}\n index={index}\n listLength={childrenCount}\n intersectionObserverWrapper={this.intersectionObserverWrapper}\n saveHeightKey={trackScroll ? `${this.context.router.route.location.key}:${scrollKey}` : null}\n >\n {React.cloneElement(child, {\n getScrollPosition: this.getScrollPosition,\n updateScrollBottom: this.updateScrollBottom,\n cachedMediaWidth: this.state.cachedMediaWidth,\n cacheMediaWidth: this.cacheMediaWidth,\n })}\n </IntersectionObserverArticleContainer>\n ))}\n {this.getMoreFollows()}\n {loadMore}\n </div>\n </div>\n );\n } else {\n scrollableArea = (\n <div className='slist slist--flex' ref={this.setRef}>\n {alwaysPrepend && prepend}\n\n <div className='empty-column-indicator'>\n <div>{emptyMessage}</div>\n </div>\n </div>\n );\n }\n\n return scrollableArea;\n }\n\n}\n","import { debounce } from 'lodash';\nimport React from 'react';\nimport { FormattedMessage, defineMessages } from 'react-intl';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport StatusContainer from '../containers/status_container';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport LoadGap from './load_gap';\nimport ScrollableList from './scrollable_list';\nimport TimelineQueueButtonHeader from './timeline_queue_button_header';\n\nconst messages = defineMessages({\n queue: { id: 'status_list.queue_label', defaultMessage: 'Click to see {count} new {count, plural, one {post} other {posts}}' },\n});\n\nexport default class StatusList extends ImmutablePureComponent {\n\n static propTypes = {\n scrollKey: PropTypes.string.isRequired,\n statusIds: ImmutablePropTypes.list.isRequired,\n lastStatusId: PropTypes.string,\n featuredStatusIds: ImmutablePropTypes.list,\n onLoadMore: PropTypes.func,\n isLoading: PropTypes.bool,\n isPartial: PropTypes.bool,\n hasMore: PropTypes.bool,\n prepend: PropTypes.node,\n emptyMessage: PropTypes.node,\n alwaysPrepend: PropTypes.bool,\n timelineId: PropTypes.string,\n queuedItemSize: PropTypes.number,\n onDequeueTimeline: PropTypes.func,\n group: ImmutablePropTypes.map,\n withGroupAdmin: PropTypes.bool,\n onScrollToTop: PropTypes.func,\n onScroll: PropTypes.func,\n };\n\n componentDidMount() {\n this.handleDequeueTimeline();\n };\n\n getFeaturedStatusCount = () => {\n return this.props.featuredStatusIds ? this.props.featuredStatusIds.size : 0;\n }\n\n getCurrentStatusIndex = (id, featured) => {\n if (featured) {\n return this.props.featuredStatusIds.indexOf(id);\n } else {\n return this.props.statusIds.indexOf(id) + this.getFeaturedStatusCount();\n }\n }\n\n handleMoveUp = (id, featured) => {\n const elementIndex = this.getCurrentStatusIndex(id, featured) - 1;\n this._selectChild(elementIndex, true);\n }\n\n handleMoveDown = (id, featured) => {\n const elementIndex = this.getCurrentStatusIndex(id, featured) + 1;\n this._selectChild(elementIndex, false);\n }\n\n handleLoadOlder = debounce(() => {\n const loadMoreID = this.props.lastStatusId ? this.props.lastStatusId : this.props.statusIds.last();\n this.props.onLoadMore(loadMoreID);\n }, 300, { leading: true })\n\n _selectChild(index, align_top) {\n const container = this.node.node;\n const element = container.querySelector(`article:nth-of-type(${index + 1}) .focusable`);\n\n if (element) {\n if (align_top && container.scrollTop > element.offsetTop) {\n element.scrollIntoView(true);\n } else if (!align_top && container.scrollTop + container.clientHeight < element.offsetTop + element.offsetHeight) {\n element.scrollIntoView(false);\n }\n element.focus();\n }\n }\n\n handleDequeueTimeline = () => {\n const { onDequeueTimeline, timelineId } = this.props;\n if (!onDequeueTimeline || !timelineId) return;\n onDequeueTimeline(timelineId);\n }\n\n setRef = c => {\n this.node = c;\n }\n\n render() {\n const { statusIds, featuredStatusIds, onLoadMore, timelineId, totalQueuedItemsCount, isLoading, isPartial, withGroupAdmin, group, ...other } = this.props;\n\n if (isPartial) {\n return (\n <div className='regeneration-indicator'>\n <div>\n <div className='regeneration-indicator__label'>\n <FormattedMessage id='regeneration_indicator.label' tagName='strong' defaultMessage='Loading…' />\n <FormattedMessage id='regeneration_indicator.sublabel' defaultMessage='Your home feed is being prepared!' />\n </div>\n </div>\n </div>\n );\n }\n\n let scrollableContent = (isLoading || statusIds.size > 0) ? (\n statusIds.map((statusId, index) => statusId === null ? (\n <LoadGap\n key={'gap:' + statusIds.get(index + 1)}\n disabled={isLoading}\n maxId={index > 0 ? statusIds.get(index - 1) : null}\n onClick={onLoadMore}\n />\n ) : (\n <StatusContainer\n key={statusId}\n id={statusId}\n onMoveUp={this.handleMoveUp}\n onMoveDown={this.handleMoveDown}\n contextType={timelineId}\n group={group}\n withGroupAdmin={withGroupAdmin}\n showThread\n />\n ))\n ) : null;\n\n if (scrollableContent && featuredStatusIds) {\n scrollableContent = featuredStatusIds.map(statusId => (\n <StatusContainer\n key={`f-${statusId}`}\n id={statusId}\n featured\n onMoveUp={this.handleMoveUp}\n onMoveDown={this.handleMoveDown}\n contextType={timelineId}\n showThread\n />\n )).concat(scrollableContent);\n }\n\n return [\n <TimelineQueueButtonHeader\n key='timeline-queue-button-header'\n onClick={this.handleDequeueTimeline}\n count={totalQueuedItemsCount}\n message={messages.queue}\n />,\n <ScrollableList key='scrollable-list' {...other} isLoading={isLoading} showLoading={isLoading && statusIds.size === 0} onLoadMore={onLoadMore && this.handleLoadOlder} ref={this.setRef}>\n {scrollableContent}\n </ScrollableList>,\n ];\n }\n\n}\n","import _extends from '../../polyfills/extends';\nimport React from 'react';\nimport data from '../../../data/all.json';\nimport NimbleEmoji from './nimble-emoji';\nimport { EmojiPropTypes, EmojiDefaultProps } from '../../utils/shared-props';\n\nvar Emoji = function Emoji(props) {\n for (var k in Emoji.defaultProps) {\n if (props[k] == undefined && Emoji.defaultProps[k] != undefined) {\n props[k] = Emoji.defaultProps[k];\n }\n }\n\n return NimbleEmoji(_extends({}, props));\n};\n\nEmoji.propTypes = EmojiPropTypes;\nEmoji.defaultProps = _extends({}, EmojiDefaultProps, {\n data: data\n});\nexport default Emoji;","// optional / simple context binding\nvar aFunction = require('./_a-function');\n\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n\n switch (length) {\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n\n return function ()\n /* ...args */\n {\n return fn.apply(that, arguments);\n };\n};","var isObject = require('./_is-object');\n\nvar document = require('./_global').document; // typeof document.createElement is 'object' in old IE\n\n\nvar is = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\n\nvar min = Math.min;\n\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","var core = require('./_core');\n\nvar global = require('./_global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});","module.exports = true;","var id = 0;\nvar px = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","// IE 8- don't enum bug keys\nmodule.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');","var def = require('./_object-dp').f;\n\nvar has = require('./_has');\n\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n configurable: true,\n value: tag\n });\n};","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport PropTypes from 'prop-types';\n\nexport default class LoadMore extends React.PureComponent {\n\n static propTypes = {\n onClick: PropTypes.func,\n disabled: PropTypes.bool,\n visible: PropTypes.bool,\n }\n\n static defaultProps = {\n visible: true,\n }\n\n render() {\n const { disabled, visible } = this.props;\n\n return (\n <button className='load-more' disabled={disabled || !visible} style={{ visibility: visible ? 'visible' : 'hidden' }} onClick={this.props.onClick}>\n <FormattedMessage id='status.load_more' defaultMessage='Load more' />\n </button>\n );\n }\n\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport Icon from 'soapbox/components/icon';\n\nconst messages = defineMessages({\n load_more: { id: 'status.load_more', defaultMessage: 'Load more' },\n});\n\nexport default @injectIntl\nclass LoadGap extends React.PureComponent {\n\n static propTypes = {\n disabled: PropTypes.bool,\n maxId: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleClick = () => {\n this.props.onClick(this.props.maxId);\n }\n\n render() {\n const { disabled, intl } = this.props;\n\n return (\n <button className='load-more load-gap' disabled={disabled} onClick={this.handleClick} aria-label={intl.formatMessage(messages.load_more)}>\n <Icon id='ellipsis-h' />\n </button>\n );\n }\n\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl } from 'react-intl';\nimport classNames from 'classnames';\n\nexport default @injectIntl\nclass TimelineQueueButtonHeader extends React.PureComponent {\n\n static propTypes = {\n onClick: PropTypes.func.isRequired,\n count: PropTypes.number,\n message: PropTypes.object.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n count: 0,\n };\n\n render() {\n const { count, message, onClick, intl } = this.props;\n\n const classes = classNames('timeline-queue-header', {\n 'hidden': (count <= 0),\n });\n\n return (\n <div className={classes}>\n <a className='timeline-queue-header__btn' onClick={onClick}>\n {(count > 0) && intl.formatMessage(message, { count })}\n </a>\n </div>\n );\n }\n\n}\n","module.exports = {\n \"default\": require(\"core-js/library/fn/object/values\"),\n __esModule: true\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/object/keys\"),\n __esModule: true\n};","'use strict'; // Simple FIFO queue implementation to avoid having to do shift()\n// on an array, which is slow.\n\nfunction Queue() {\n this.length = 0;\n}\n\nQueue.prototype.push = function (item) {\n var node = {\n item: item\n };\n\n if (this.last) {\n this.last = this.last.next = node;\n } else {\n this.last = this.first = node;\n }\n\n this.length++;\n};\n\nQueue.prototype.shift = function () {\n var node = this.first;\n\n if (node) {\n this.first = node.next;\n\n if (! --this.length) {\n this.last = undefined;\n }\n\n return node.item;\n }\n};\n\nQueue.prototype.slice = function (start, end) {\n start = typeof start === 'undefined' ? 0 : start;\n end = typeof end === 'undefined' ? Infinity : end;\n var output = [];\n var i = 0;\n\n for (var node = this.first; node; node = node.next) {\n if (--end < 0) {\n break;\n } else if (++i > start) {\n output.push(node.item);\n }\n }\n\n return output;\n};\n\nmodule.exports = Queue;","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { changeValue, submit, reset } from '../../../actions/group_editor';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport classNames from 'classnames';\n\nconst messages = defineMessages({\n title: { id: 'groups.form.title', defaultMessage: 'Enter a new group title' },\n description: { id: 'groups.form.description', defaultMessage: 'Enter the group description' },\n coverImage: { id: 'groups.form.coverImage', defaultMessage: 'Upload a banner image' },\n coverImageChange: { id: 'groups.form.coverImageChange', defaultMessage: 'Banner image selected' },\n create: { id: 'groups.form.create', defaultMessage: 'Create group' },\n});\n\nconst mapStateToProps = state => ({\n title: state.getIn(['group_editor', 'title']),\n description: state.getIn(['group_editor', 'description']),\n coverImage: state.getIn(['group_editor', 'coverImage']),\n disabled: state.getIn(['group_editor', 'isSubmitting']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n onTitleChange: value => dispatch(changeValue('title', value)),\n onDescriptionChange: value => dispatch(changeValue('description', value)),\n onCoverImageChange: value => dispatch(changeValue('coverImage', value)),\n onSubmit: routerHistory => dispatch(submit(routerHistory)),\n reset: () => dispatch(reset()),\n});\n\nexport default @connect(mapStateToProps, mapDispatchToProps)\n@injectIntl\nclass Create extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n }\n\n static propTypes = {\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n coverImage: PropTypes.object,\n disabled: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n onTitleChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n reset: PropTypes.func.isRequired,\n onDescriptionChange: PropTypes.func.isRequired,\n onCoverImageChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n props.reset();\n }\n\n handleTitleChange = e => {\n this.props.onTitleChange(e.target.value);\n }\n\n handleDescriptionChange = e => {\n this.props.onDescriptionChange(e.target.value);\n }\n\n handleCoverImageChange = e => {\n this.props.onCoverImageChange(e.target.files[0]);\n }\n\n handleSubmit = e => {\n e.preventDefault();\n this.props.onSubmit(this.context.router.history);\n }\n\n render() {\n const { title, description, coverImage, disabled, intl } = this.props;\n\n return (\n <form className='group-form' method='post' onSubmit={this.handleSubmit}>\n <div>\n <input\n className='standard'\n type='text'\n value={title}\n disabled={disabled}\n onChange={this.handleTitleChange}\n placeholder={intl.formatMessage(messages.title)}\n />\n </div>\n <div>\n <textarea\n className='standard'\n type='text'\n value={description}\n disabled={disabled}\n onChange={this.handleDescriptionChange}\n placeholder={intl.formatMessage(messages.description)}\n />\n </div>\n <div>\n <label htmlFor='group_cover_image' className={classNames('group-form__file-label', { 'group-form__file-label--selected': coverImage !== null })}>\n {intl.formatMessage(coverImage === null ? messages.coverImage : messages.coverImageChange)}\n </label>\n <input\n type='file'\n className='group-form__file'\n id='group_cover_image'\n disabled={disabled}\n onChange={this.handleCoverImageChange}\n />\n <button className='standard-small'>{intl.formatMessage(messages.create)}</button>\n </div>\n </form>\n );\n }\n\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { is } from 'immutable';\nimport IconButton from './icon_button';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { isIOS } from '../is_mobile';\nimport { truncateFilename } from 'soapbox/utils/media';\nimport classNames from 'classnames';\nimport { decode } from 'blurhash';\nimport { isPanoramic, isPortrait, isNonConformingRatio, minimumAspectRatio, maximumAspectRatio } from '../utils/media_aspect_ratio';\nimport { Map as ImmutableMap } from 'immutable';\nimport { getSettings } from 'soapbox/actions/settings';\nimport Icon from 'soapbox/components/icon';\nimport StillImage from 'soapbox/components/still_image';\n\nconst ATTACHMENT_LIMIT = 4;\nconst MAX_FILENAME_LENGTH = 45;\n\nconst messages = defineMessages({\n toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' },\n});\n\nconst mapStateToItemProps = state => ({\n autoPlayGif: getSettings(state).get('autoPlayGif'),\n});\n\n@connect(mapStateToItemProps)\nclass Item extends React.PureComponent {\n\n static propTypes = {\n attachment: ImmutablePropTypes.map.isRequired,\n standalone: PropTypes.bool,\n index: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n displayWidth: PropTypes.number,\n visible: PropTypes.bool.isRequired,\n dimensions: PropTypes.object,\n autoPlayGif: PropTypes.bool,\n last: PropTypes.bool,\n total: PropTypes.number,\n };\n\n static defaultProps = {\n standalone: false,\n index: 0,\n size: 1,\n };\n\n state = {\n loaded: false,\n };\n\n handleMouseEnter = (e) => {\n if (this.hoverToPlay()) {\n e.target.play();\n }\n }\n\n handleMouseLeave = (e) => {\n if (this.hoverToPlay()) {\n e.target.pause();\n e.target.currentTime = 0;\n }\n }\n\n hoverToPlay() {\n const { attachment, autoPlayGif } = this.props;\n return !autoPlayGif && attachment.get('type') === 'gifv';\n }\n\n handleClick = (e) => {\n const { index, onClick } = this.props;\n\n if (isIOS() && !e.target.autoPlay) {\n e.target.autoPlay = true;\n e.preventDefault();\n } else {\n if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {\n if (this.hoverToPlay()) {\n e.target.pause();\n e.target.currentTime = 0;\n }\n e.preventDefault();\n onClick(index);\n }\n }\n\n e.stopPropagation();\n }\n\n componentDidMount() {\n if (this.props.attachment.get('blurhash')) {\n this._decode();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.attachment.get('blurhash') !== this.props.attachment.get('blurhash') && this.props.attachment.get('blurhash')) {\n this._decode();\n }\n }\n\n _decode() {\n const hash = this.props.attachment.get('blurhash');\n const pixels = decode(hash, 32, 32);\n\n if (pixels) {\n const ctx = this.canvas.getContext('2d');\n const imageData = new ImageData(pixels, 32, 32);\n\n ctx.putImageData(imageData, 0, 0);\n }\n }\n\n setCanvasRef = c => {\n this.canvas = c;\n }\n\n handleImageLoad = () => {\n this.setState({ loaded: true });\n }\n\n handleVideoHover = ({ target: video }) => {\n video.playbackRate = 3.0;\n video.play();\n }\n\n handleVideoLeave = ({ target: video }) => {\n video.pause();\n video.currentTime = 0;\n }\n\n render() {\n const { attachment, standalone, visible, dimensions, autoPlayGif, last, total } = this.props;\n\n let width = 100;\n let height = '100%';\n let top = 'auto';\n let left = 'auto';\n let bottom = 'auto';\n let right = 'auto';\n let float = 'left';\n let position = 'relative';\n\n if (dimensions) {\n width = dimensions.w;\n height = dimensions.h;\n top = dimensions.t || 'auto';\n right = dimensions.r || 'auto';\n bottom = dimensions.b || 'auto';\n left = dimensions.l || 'auto';\n float = dimensions.float || 'left';\n position = dimensions.pos || 'relative';\n }\n\n let thumbnail = '';\n\n if (attachment.get('type') === 'unknown') {\n const filename = truncateFilename(attachment.get('remote_url'), MAX_FILENAME_LENGTH);\n return (\n <div className={classNames('media-gallery__item', { standalone })} key={attachment.get('id')} style={{ position, float, left, top, right, bottom, height, width: `${width}%` }}>\n <a className='media-gallery__item-thumbnail' href={attachment.get('remote_url')} target='_blank' style={{ cursor: 'pointer' }}>\n <canvas width={32} height={32} ref={this.setCanvasRef} className='media-gallery__preview' />\n <span className='media-gallery__item__icons'><Icon id='file' /></span>\n <span className='media-gallery__filename__label'>{filename}</span>\n </a>\n </div>\n );\n } else if (attachment.get('type') === 'image') {\n const previewUrl = attachment.get('preview_url');\n\n const originalUrl = attachment.get('url');\n const letterboxed = !attachment.getIn(['meta', 'original', 'aspect']);\n\n thumbnail = (\n <a\n className={classNames('media-gallery__item-thumbnail', { letterboxed })}\n href={attachment.get('remote_url') || originalUrl}\n onClick={this.handleClick}\n target='_blank'\n >\n <StillImage src={previewUrl} alt={attachment.get('description')} />\n </a>\n );\n } else if (attachment.get('type') === 'gifv') {\n let conditionalAttributes = {};\n if (isIOS()) {\n conditionalAttributes.playsInline = '1';\n }\n if (autoPlayGif) {\n conditionalAttributes.autoPlay = '1';\n }\n\n thumbnail = (\n <div className={classNames('media-gallery__gifv', { autoplay: autoPlayGif })}>\n <video\n className='media-gallery__item-gifv-thumbnail'\n aria-label={attachment.get('description')}\n title={attachment.get('description')}\n role='application'\n src={attachment.get('url')}\n onClick={this.handleClick}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n loop\n muted\n {...conditionalAttributes}\n />\n\n <span className='media-gallery__gifv__label'>GIF</span>\n </div>\n );\n } else if (attachment.get('type') === 'audio') {\n const remoteURL = attachment.get('remote_url');\n const originalUrl = attachment.get('url');\n const fileExtensionLastIndex = remoteURL.lastIndexOf('.');\n const fileExtension = remoteURL.substr(fileExtensionLastIndex + 1).toUpperCase();\n thumbnail = (\n <a\n className={classNames('media-gallery__item-thumbnail')}\n href={attachment.get('remote_url') || originalUrl}\n onClick={this.handleClick}\n target='_blank'\n alt={attachment.get('description')}\n title={attachment.get('description')}\n >\n <span className='media-gallery__item__icons'><Icon id='volume-up' /></span>\n <span className='media-gallery__file-extension__label'>{fileExtension}</span>\n </a>\n );\n } else if (attachment.get('type') === 'video') {\n const ext = attachment.get('url').split('.').pop().toUpperCase();\n thumbnail = (\n <a\n className={classNames('media-gallery__item-thumbnail')}\n href={attachment.get('url')}\n onClick={this.handleClick}\n target='_blank'\n alt={attachment.get('description')}\n title={attachment.get('description')}\n >\n <video\n muted\n loop\n onMouseOver={this.handleVideoHover}\n onMouseOut={this.handleVideoLeave}\n >\n <source src={attachment.get('url')} />\n </video>\n <span className='media-gallery__file-extension__label'>{ext}</span>\n </a>\n );\n }\n\n return (\n <div className={classNames('media-gallery__item', `media-gallery__item--${attachment.get('type')}`, { standalone })} key={attachment.get('id')} style={{ position, float, left, top, right, bottom, height, width: `${width}%` }}>\n {last && total > ATTACHMENT_LIMIT && (\n <div className='media-gallery__item-overflow'>\n +{total - ATTACHMENT_LIMIT + 1}\n </div>\n )}\n <canvas width={32} height={32} ref={this.setCanvasRef} className={classNames('media-gallery__preview', { 'media-gallery__preview--hidden': visible && this.state.loaded })} />\n {visible && thumbnail}\n </div>\n );\n }\n\n}\n\nconst mapStateToMediaGalleryProps = state => ({\n displayMedia: getSettings(state).get('displayMedia'),\n});\n\nexport default @connect(mapStateToMediaGalleryProps)\n@injectIntl\nclass MediaGallery extends React.PureComponent {\n\n static propTypes = {\n sensitive: PropTypes.bool,\n standalone: PropTypes.bool,\n media: ImmutablePropTypes.list.isRequired,\n size: PropTypes.object,\n height: PropTypes.number.isRequired,\n onOpenMedia: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n defaultWidth: PropTypes.number,\n cacheWidth: PropTypes.func,\n visible: PropTypes.bool,\n onToggleVisibility: PropTypes.func,\n displayMedia: PropTypes.string,\n };\n\n static defaultProps = {\n standalone: false,\n };\n\n state = {\n visible: this.props.visible !== undefined ? this.props.visible : (this.props.displayMedia !== 'hide_all' && !this.props.sensitive || this.props.displayMedia === 'show_all'),\n width: this.props.defaultWidth,\n };\n\n componentDidUpdate(prevProps) {\n const { media, visible, sensitive } = this.props;\n if (!is(media, prevProps.media) && visible === undefined) {\n this.setState({ visible: prevProps.displayMedia !== 'hide_all' && !sensitive || prevProps.displayMedia === 'show_all' });\n } else if (!is(visible, prevProps.visible) && visible !== undefined) {\n this.setState({ visible });\n }\n }\n\n handleOpen = () => {\n if (this.props.onToggleVisibility) {\n this.props.onToggleVisibility();\n } else {\n this.setState({ visible: !this.state.visible });\n }\n }\n\n handleClick = (index) => {\n this.props.onOpenMedia(this.props.media, index);\n }\n\n handleRef = (node) => {\n if (node) {\n // offsetWidth triggers a layout, so only calculate when we need to\n if (this.props.cacheWidth) this.props.cacheWidth(node.offsetWidth);\n\n this.setState({\n width: node.offsetWidth,\n });\n }\n }\n\n getSizeDataSingle = () => {\n const { media, defaultWidth } = this.props;\n const width = this.state.width || defaultWidth;\n const aspectRatio = media.getIn([0, 'meta', 'original', 'aspect']);\n\n const getHeight = () => {\n if (!aspectRatio) return width*9/16;\n if (isPanoramic(aspectRatio)) return Math.floor(width / maximumAspectRatio);\n if (isPortrait(aspectRatio)) return Math.floor(width / minimumAspectRatio);\n return Math.floor(width / aspectRatio);\n };\n\n return ImmutableMap({\n style: { height: getHeight() },\n itemsDimensions: [],\n size: 1,\n width,\n });\n }\n\n getSizeDataMultiple = size => {\n const { media, defaultWidth } = this.props;\n const width = this.state.width || defaultWidth;\n const panoSize = Math.floor(width / maximumAspectRatio);\n const panoSize_px = `${Math.floor(width / maximumAspectRatio)}px`;\n\n const style = {};\n let itemsDimensions = [];\n\n const ratios = Array(size).fill().map((_, i) =>\n media.getIn([i, 'meta', 'original', 'aspect']),\n );\n\n const [ar1, ar2, ar3, ar4] = ratios;\n\n if (size === 2) {\n if (isPortrait(ar1) && isPortrait(ar2)) {\n style.height = width - (width / maximumAspectRatio);\n } else if (isPanoramic(ar1) && isPanoramic(ar2)) {\n style.height = panoSize * 2;\n } else if (\n (isPanoramic(ar1) && isPortrait(ar2)) ||\n (isPortrait(ar1) && isPanoramic(ar2)) ||\n (isPanoramic(ar1) && isNonConformingRatio(ar2)) ||\n (isNonConformingRatio(ar1) && isPanoramic(ar2))\n ) {\n style.height = (width * 0.6) + (width / maximumAspectRatio);\n } else {\n style.height = width / 2;\n }\n\n //\n\n if (isPortrait(ar1) && isPortrait(ar2)) {\n itemsDimensions = [\n { w: 50, h: '100%', r: '2px' },\n { w: 50, h: '100%', l: '2px' },\n ];\n } else if (isPanoramic(ar1) && isPanoramic(ar2)) {\n itemsDimensions = [\n { w: 100, h: panoSize_px, b: '2px' },\n { w: 100, h: panoSize_px, t: '2px' },\n ];\n } else if (\n (isPanoramic(ar1) && isPortrait(ar2)) ||\n (isPanoramic(ar1) && isNonConformingRatio(ar2))\n ) {\n itemsDimensions = [\n { w: 100, h: `${(width / maximumAspectRatio)}px`, b: '2px' },\n { w: 100, h: `${(width * 0.6)}px`, t: '2px' },\n ];\n } else if (\n (isPortrait(ar1) && isPanoramic(ar2)) ||\n (isNonConformingRatio(ar1) && isPanoramic(ar2))\n ) {\n itemsDimensions = [\n { w: 100, h: `${(width * 0.6)}px`, b: '2px' },\n { w: 100, h: `${(width / maximumAspectRatio)}px`, t: '2px' },\n ];\n } else {\n itemsDimensions = [\n { w: 50, h: '100%', r: '2px' },\n { w: 50, h: '100%', l: '2px' },\n ];\n }\n } else if (size === 3) {\n if (isPanoramic(ar1) && isPanoramic(ar2) && isPanoramic(ar3)) {\n style.height = panoSize * 3;\n } else if (isPortrait(ar1) && isPortrait(ar2) && isPortrait(ar3)) {\n style.height = Math.floor(width / minimumAspectRatio);\n } else {\n style.height = width;\n }\n\n //\n\n if (isPanoramic(ar1) && isNonConformingRatio(ar2) && isNonConformingRatio(ar3)) {\n itemsDimensions = [\n { w: 100, h: '50%', b: '2px' },\n { w: 50, h: '50%', t: '2px', r: '2px' },\n { w: 50, h: '50%', t: '2px', l: '2px' },\n ];\n } else if (isPanoramic(ar1) && isPanoramic(ar2) && isPanoramic(ar3)) {\n itemsDimensions = [\n { w: 100, h: panoSize_px, b: '4px' },\n { w: 100, h: panoSize_px },\n { w: 100, h: panoSize_px, t: '4px' },\n ];\n } else if (isPortrait(ar1) && isNonConformingRatio(ar2) && isNonConformingRatio(ar3)) {\n itemsDimensions = [\n { w: 50, h: '100%', r: '2px' },\n { w: 50, h: '50%', b: '2px', l: '2px' },\n { w: 50, h: '50%', t: '2px', l: '2px' },\n ];\n } else if (isNonConformingRatio(ar1) && isNonConformingRatio(ar2) && isPortrait(ar3)) {\n itemsDimensions = [\n { w: 50, h: '50%', b: '2px', r: '2px' },\n { w: 50, h: '50%', l: '-2px', b: '-2px', pos: 'absolute', float: 'none' },\n { w: 50, h: '100%', r: '-2px', t: '0px', b: '0px', pos: 'absolute', float: 'none' },\n ];\n } else if (\n (isNonConformingRatio(ar1) && isPortrait(ar2) && isNonConformingRatio(ar3)) ||\n (isPortrait(ar1) && isPortrait(ar2) && isPortrait(ar3))\n ) {\n itemsDimensions = [\n { w: 50, h: '50%', b: '2px', r: '2px' },\n { w: 50, h: '100%', l: '2px', float: 'right' },\n { w: 50, h: '50%', t: '2px', r: '2px' },\n ];\n } else if (\n (isPanoramic(ar1) && isPanoramic(ar2) && isNonConformingRatio(ar3)) ||\n (isPanoramic(ar1) && isPanoramic(ar2) && isPortrait(ar3))\n ) {\n itemsDimensions = [\n { w: 50, h: panoSize_px, b: '2px', r: '2px' },\n { w: 50, h: panoSize_px, b: '2px', l: '2px' },\n { w: 100, h: `${width - panoSize}px`, t: '2px' },\n ];\n } else if (\n (isNonConformingRatio(ar1) && isPanoramic(ar2) && isPanoramic(ar3)) ||\n (isPortrait(ar1) && isPanoramic(ar2) && isPanoramic(ar3))\n ) {\n itemsDimensions = [\n { w: 100, h: `${width - panoSize}px`, b: '2px' },\n { w: 50, h: panoSize_px, t: '2px', r: '2px' },\n { w: 50, h: panoSize_px, t: '2px', l: '2px' },\n ];\n } else {\n itemsDimensions = [\n { w: 50, h: '50%', b: '2px', r: '2px' },\n { w: 50, h: '50%', b: '2px', l: '2px' },\n { w: 100, h: '50%', t: '2px' },\n ];\n }\n } else if (size >= 4) {\n if (\n (isPortrait(ar1) && isPortrait(ar2) && isPortrait(ar3) && isPortrait(ar4)) ||\n (isPortrait(ar1) && isPortrait(ar2) && isPortrait(ar3) && isNonConformingRatio(ar4)) ||\n (isPortrait(ar1) && isPortrait(ar2) && isNonConformingRatio(ar3) && isPortrait(ar4)) ||\n (isPortrait(ar1) && isNonConformingRatio(ar2) && isPortrait(ar3) && isPortrait(ar4)) ||\n (isNonConformingRatio(ar1) && isPortrait(ar2) && isPortrait(ar3) && isPortrait(ar4))\n ) {\n style.height = Math.floor(width / minimumAspectRatio);\n } else if (isPanoramic(ar1) && isPanoramic(ar2) && isPanoramic(ar3) && isPanoramic(ar4)) {\n style.height = panoSize * 2;\n } else if (\n (isPanoramic(ar1) && isPanoramic(ar2) && isNonConformingRatio(ar3) && isNonConformingRatio(ar4)) ||\n (isNonConformingRatio(ar1) && isNonConformingRatio(ar2) && isPanoramic(ar3) && isPanoramic(ar4))\n ) {\n style.height = panoSize + (width / 2);\n } else {\n style.height = width;\n }\n\n //\n\n if (isPanoramic(ar1) && isPanoramic(ar2) && isNonConformingRatio(ar3) && isNonConformingRatio(ar4)) {\n itemsDimensions = [\n { w: 50, h: panoSize_px, b: '2px', r: '2px' },\n { w: 50, h: panoSize_px, b: '2px', l: '2px' },\n { w: 50, h: `${(width / 2)}px`, t: '2px', r: '2px' },\n { w: 50, h: `${(width / 2)}px`, t: '2px', l: '2px' },\n ];\n } else if (isNonConformingRatio(ar1) && isNonConformingRatio(ar2) && isPanoramic(ar3) && isPanoramic(ar4)) {\n itemsDimensions = [\n { w: 50, h: `${(width / 2)}px`, b: '2px', r: '2px' },\n { w: 50, h: `${(width / 2)}px`, b: '2px', l: '2px' },\n { w: 50, h: panoSize_px, t: '2px', r: '2px' },\n { w: 50, h: panoSize_px, t: '2px', l: '2px' },\n ];\n } else if (\n (isPortrait(ar1) && isNonConformingRatio(ar2) && isNonConformingRatio(ar3) && isNonConformingRatio(ar4)) ||\n (isPortrait(ar1) && isPanoramic(ar2) && isPanoramic(ar3) && isPanoramic(ar4))\n ) {\n itemsDimensions = [\n { w: 67, h: '100%', r: '2px' },\n { w: 33, h: '33%', b: '4px', l: '2px' },\n { w: 33, h: '33%', l: '2px' },\n { w: 33, h: '33%', t: '4px', l: '2px' },\n ];\n } else {\n itemsDimensions = [\n { w: 50, h: '50%', b: '2px', r: '2px' },\n { w: 50, h: '50%', b: '2px', l: '2px' },\n { w: 50, h: '50%', t: '2px', r: '2px' },\n { w: 50, h: '50%', t: '2px', l: '2px' },\n ];\n }\n }\n\n return ImmutableMap({\n style,\n itemsDimensions,\n size: size,\n width,\n });\n\n }\n\n getSizeData = size => {\n const { height, defaultWidth } = this.props;\n const width = this.state.width || defaultWidth;\n\n if (width) {\n if (size === 1) return this.getSizeDataSingle();\n if (size > 1) return this.getSizeDataMultiple(size);\n }\n\n // Default\n return ImmutableMap({\n style: { height },\n itemsDimensions: [],\n size,\n width,\n });\n }\n\n render() {\n const { media, intl, sensitive } = this.props;\n const { visible } = this.state;\n const sizeData = this.getSizeData(media.size);\n let children, spoilerButton;\n\n children = media.take(ATTACHMENT_LIMIT).map((attachment, i) => (\n <Item\n key={attachment.get('id')}\n onClick={this.handleClick}\n attachment={attachment}\n index={i}\n size={sizeData.get('size')}\n displayWidth={sizeData.get('width')}\n visible={visible}\n dimensions={sizeData.get('itemsDimensions')[i]}\n last={i === ATTACHMENT_LIMIT - 1}\n total={media.size}\n />\n ));\n\n if (visible) {\n spoilerButton = <IconButton title={intl.formatMessage(messages.toggle_visible)} icon='eye-slash' overlay onClick={this.handleOpen} />;\n } else {\n spoilerButton = (\n <button type='button' onClick={this.handleOpen} className='spoiler-button__overlay'>\n <span className='spoiler-button__overlay__label'>{sensitive ? <FormattedMessage id='status.sensitive_warning' defaultMessage='Sensitive content' /> : <FormattedMessage id='status.media_hidden' defaultMessage='Media hidden' />}</span>\n </button>\n );\n }\n\n return (\n <div className='media-gallery' style={sizeData.get('style')} ref={this.handleRef}>\n <div className={classNames('spoiler-button', { 'spoiler-button--minified': visible })}>\n {spoilerButton}\n </div>\n\n {children}\n </div>\n );\n }\n\n}\n","require('../../modules/es7.object.values');\n\nmodule.exports = require('../../modules/_core').Object.values;","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\n\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object'); // instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\n\n\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var getKeys = require('./_object-keys');\n\nvar toIObject = require('./_to-iobject');\n\nvar isEnum = require('./_object-pie').f;\n\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n\n while (length > i) {\n if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n\n return result;\n };\n};","var has = require('./_has');\n\nvar toIObject = require('./_to-iobject');\n\nvar arrayIndexOf = require('./_array-includes')(false);\n\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) {\n if (key != IE_PROTO) has(O, key) && result.push(key);\n } // Don't enum bug & hidden keys\n\n\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n }\n\n return result;\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof'); // eslint-disable-next-line no-prototype-builtins\n\n\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\n\nvar toLength = require('./_to-length');\n\nvar toAbsoluteIndex = require('./_to-absolute-index');\n\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value; // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++]; // eslint-disable-next-line no-self-compare\n\n if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not\n } else for (; length > index; index++) {\n if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n }\n }\n return !IS_INCLUDES && -1;\n };\n};","var toInteger = require('./_to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","exports.f = {}.propertyIsEnumerable;","module.exports = {\n \"default\": require(\"core-js/library/fn/array/from\"),\n __esModule: true\n};","require('../../modules/es6.string.iterator');\n\nrequire('../../modules/es6.array.from');\n\nmodule.exports = require('../../modules/_core').Array.from;","'use strict';\n\nvar $at = require('./_string-at')(true); // 21.1.3.27 String.prototype[@@iterator]()\n\n\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n\n this._i = 0; // next index\n // 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return {\n value: undefined,\n done: true\n };\n point = $at(O, index);\n this._i += point.length;\n return {\n value: point,\n done: false\n };\n});","var toInteger = require('./_to-integer');\n\nvar defined = require('./_defined'); // true -> String#at\n// false -> String#codePointAt\n\n\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};","'use strict';\n\nvar LIBRARY = require('./_library');\n\nvar $export = require('./_export');\n\nvar redefine = require('./_redefine');\n\nvar hide = require('./_hide');\n\nvar Iterators = require('./_iterators');\n\nvar $iterCreate = require('./_iter-create');\n\nvar setToStringTag = require('./_set-to-string-tag');\n\nvar getPrototypeOf = require('./_object-gpo');\n\nvar ITERATOR = require('./_wks')('iterator');\n\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\n\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function returnThis() {\n return this;\n};\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n\n var getMethod = function getMethod(kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n\n switch (kind) {\n case KEYS:\n return function keys() {\n return new Constructor(this, kind);\n };\n\n case VALUES:\n return function values() {\n return new Constructor(this, kind);\n };\n }\n\n return function entries() {\n return new Constructor(this, kind);\n };\n };\n\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype; // Fix native\n\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines\n\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n } // fix Array#{values, @@iterator}.name in V8 / FF\n\n\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n\n $default = function values() {\n return $native.call(this);\n };\n } // Define iterator\n\n\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n } // Plug for library\n\n\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n\n return methods;\n};","module.exports = require('./_hide');","'use strict';\n\nvar create = require('./_object-create');\n\nvar descriptor = require('./_property-desc');\n\nvar setToStringTag = require('./_set-to-string-tag');\n\nvar IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () {\n return this;\n});\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, {\n next: descriptor(1, next)\n });\n setToStringTag(Constructor, NAME + ' Iterator');\n};","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\n\nvar dPs = require('./_object-dps');\n\nvar enumBugKeys = require('./_enum-bug-keys');\n\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nvar Empty = function Empty() {\n /* empty */\n};\n\nvar PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype\n\nvar _createDict = function createDict() {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n\n require('./_html').appendChild(iframe);\n\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n _createDict = iframeDocument.F;\n\n while (i--) {\n delete _createDict[PROTOTYPE][enumBugKeys[i]];\n }\n\n return _createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null; // add \"__proto__\" for Object.getPrototypeOf polyfill\n\n result[IE_PROTO] = O;\n } else result = _createDict();\n\n return Properties === undefined ? result : dPs(result, Properties);\n};","var dP = require('./_object-dp');\n\nvar anObject = require('./_an-object');\n\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n\n while (length > i) {\n dP.f(O, P = keys[i++], Properties[P]);\n }\n\n return O;\n};","var document = require('./_global').document;\n\nmodule.exports = document && document.documentElement;","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\n\nvar toObject = require('./_to-object');\n\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n\n return O instanceof Object ? ObjectProto : null;\n};","'use strict';\n\nvar ctx = require('./_ctx');\n\nvar $export = require('./_export');\n\nvar toObject = require('./_to-object');\n\nvar call = require('./_iter-call');\n\nvar isArrayIter = require('./_is-array-iter');\n\nvar toLength = require('./_to-length');\n\nvar createProperty = require('./_create-property');\n\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) {\n Array.from(iter);\n}), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike\n /* , mapfn = undefined, thisArg = undefined */\n ) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); // if object isn't iterable or it's array with default iterator - use simple case\n\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n\n result.length = index;\n return result;\n }\n});","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\n\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};","// check on default Array iterator\nvar Iterators = require('./_iterators');\n\nvar ITERATOR = require('./_wks')('iterator');\n\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};","'use strict';\n\nvar $defineProperty = require('./_object-dp');\n\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;\n};","var classof = require('./_classof');\n\nvar ITERATOR = require('./_wks')('iterator');\n\nvar Iterators = require('./_iterators');\n\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\n\nvar TAG = require('./_wks')('toStringTag'); // ES3 wrong here\n\n\nvar ARG = cof(function () {\n return arguments;\n}()) == 'Arguments'; // fallback for IE11 Script Access Denied error\n\nvar tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (e) {\n /* empty */\n }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T // builtinTag case\n : ARG ? cof(O) // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};","var ITERATOR = require('./_wks')('iterator');\n\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n\n riter['return'] = function () {\n SAFE_CLOSING = true;\n }; // eslint-disable-next-line no-throw-literal\n\n\n Array.from(riter, function () {\n throw 2;\n });\n} catch (e) {\n /* empty */\n}\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n\n iter.next = function () {\n return {\n done: safe = true\n };\n };\n\n arr[ITERATOR] = function () {\n return iter;\n };\n\n exec(arr);\n } catch (e) {\n /* empty */\n }\n\n return safe;\n};","// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n// MIT license\nvar isWindowAvailable = typeof window !== 'undefined';\nisWindowAvailable && function () {\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n }\n\n if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) {\n clearTimeout(id);\n };\n}();","require('../../modules/es6.object.keys');\n\nmodule.exports = require('../../modules/_core').Object.keys;","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\n\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\n\nvar core = require('./_core');\n\nvar fails = require('./_fails');\n\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () {\n fn(1);\n }), 'Object', exp);\n};","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nconst MissingIndicator = () => (\n <div className='regeneration-indicator missing-indicator'>\n <div>\n <div className='regeneration-indicator__label'>\n <FormattedMessage id='missing_indicator.label' tagName='strong' defaultMessage='Not found' />\n <FormattedMessage id='missing_indicator.sublabel' defaultMessage='This resource could not be found' />\n </div>\n </div>\n </div>\n);\n\nexport default MissingIndicator;\n","import { connect } from 'react-redux';\nimport StatusList from '../../../components/status_list';\nimport { Map as ImmutableMap, List as ImmutableList } from 'immutable';\nimport { createSelector } from 'reselect';\nimport { debounce } from 'lodash';\nimport { dequeueTimeline } from 'soapbox/actions/timelines';\nimport { scrollTopTimeline } from '../../../actions/timelines';\nimport { getSettings } from 'soapbox/actions/settings';\nimport { shouldFilter } from 'soapbox/utils/timelines';\n\nconst makeGetStatusIds = () => createSelector([\n (state, { type }) => getSettings(state).get(type, ImmutableMap()),\n (state, { type }) => state.getIn(['timelines', type, 'items'], ImmutableList()),\n (state) => state.get('statuses'),\n (state) => state.get('me'),\n], (columnSettings, statusIds, statuses, me) => {\n return statusIds.filter(id => {\n const status = statuses.get(id);\n if (!status) return true;\n return !shouldFilter(status, columnSettings);\n });\n});\n\nconst mapStateToProps = (state, { timelineId }) => {\n const lastStatusId = state.getIn(['timelines', timelineId, 'items'], ImmutableList()).last();\n const getStatusIds = makeGetStatusIds();\n\n return {\n statusIds: getStatusIds(state, { type: timelineId }),\n lastStatusId: lastStatusId,\n isLoading: state.getIn(['timelines', timelineId, 'isLoading'], true),\n isPartial: state.getIn(['timelines', timelineId, 'isPartial'], false),\n hasMore: state.getIn(['timelines', timelineId, 'hasMore']),\n totalQueuedItemsCount: state.getIn(['timelines', timelineId, 'totalQueuedItemsCount']),\n };\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n onDequeueTimeline(timelineId) {\n dispatch(dequeueTimeline(timelineId, ownProps.onLoadMore));\n },\n onScrollToTop: debounce(() => {\n dispatch(scrollTopTimeline(ownProps.timelineId, true));\n }, 100),\n onScroll: debounce(() => {\n dispatch(scrollTopTimeline(ownProps.timelineId, false));\n }, 100),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StatusList);\n","'use strict';\n\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport classNames from 'classnames';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport Icon from 'soapbox/components/icon';\nimport { fetchLists } from 'soapbox/actions/lists';\nimport { createSelector } from 'reselect';\n\nconst messages = defineMessages({\n show: { id: 'column_header.show_settings', defaultMessage: 'Show settings' },\n hide: { id: 'column_header.hide_settings', defaultMessage: 'Hide settings' },\n homeTitle: { id: 'home_column_header.home', defaultMessage: 'Home' },\n fediverseTitle: { id: 'home_column_header.fediverse', defaultMessage: 'Fediverse' },\n listTitle: { id: 'home_column.lists', defaultMessage: 'Lists' },\n});\n\nconst getOrderedLists = createSelector([state => state.get('lists')], lists => {\n if (!lists) {\n return lists;\n }\n\n return lists.toList().filter(item => !!item).sort((a, b) => a.get('title').localeCompare(b.get('title')));\n});\n\nconst mapStateToProps = state => {\n return {\n lists: getOrderedLists(state),\n siteTitle: state.getIn(['instance', 'title']),\n };\n};\n\nclass ColumnHeader extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n intl: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n active: PropTypes.bool,\n children: PropTypes.node,\n activeItem: PropTypes.string,\n activeSubItem: PropTypes.string,\n lists: ImmutablePropTypes.list,\n siteTitle: PropTypes.string,\n };\n\n state = {\n collapsed: true,\n animating: false,\n expandedFor: null, //lists, groups, etc.\n };\n\n componentDidMount() {\n this.props.dispatch(fetchLists());\n }\n\n handleToggleClick = (e) => {\n e.stopPropagation();\n this.setState({ collapsed: !this.state.collapsed, animating: true });\n }\n\n handleTransitionEnd = () => {\n this.setState({ animating: false });\n }\n\n expandLists = () => {\n this.setState({\n expandedFor: 'lists',\n });\n }\n\n render() {\n const { active, children, intl: { formatMessage }, activeItem, activeSubItem, lists, siteTitle } = this.props;\n const { collapsed, animating, expandedFor } = this.state;\n\n const wrapperClassName = classNames('column-header__wrapper', {\n 'active': active,\n });\n\n const buttonClassName = classNames('column-header', {\n 'active': active,\n });\n\n const collapsibleClassName = classNames('column-header__collapsible', {\n 'collapsed': collapsed,\n 'animating': animating,\n });\n\n const collapsibleButtonClassName = classNames('column-header__button', {\n 'active': !collapsed,\n });\n\n const expansionClassName = classNames('column-header column-header__expansion', {\n 'open': expandedFor,\n });\n\n let extraContent, collapseButton;\n\n if (children) {\n extraContent = (\n <div key='extra-content' className='column-header__collapsible__extra'>\n {children}\n </div>\n );\n\n collapseButton = <button className={collapsibleButtonClassName} title={formatMessage(collapsed ? messages.show : messages.hide)} aria-label={formatMessage(collapsed ? messages.show : messages.hide)} aria-pressed={collapsed ? 'false' : 'true'} onClick={this.handleToggleClick}><Icon id='sliders' /></button>;\n }\n\n const collapsedContent = [\n extraContent,\n ];\n\n let expandedContent = null;\n if ((expandedFor === 'lists' || activeItem === 'lists') && lists) {\n expandedContent = lists.map(list =>\n (<Link\n key={list.get('id')}\n to={`/list/${list.get('id')}`}\n className={\n classNames('btn btn--sub grouped', {\n 'active': list.get('id') === activeSubItem,\n })\n }\n >\n {list.get('title')}\n </Link>),\n );\n }\n\n return (\n <div className={wrapperClassName}>\n <h1 className={buttonClassName}>\n <Link to='/' className={classNames('btn grouped', { 'active': 'home' === activeItem })}>\n <Icon id='home' fixedWidth className='column-header__icon' />\n {formatMessage(messages.homeTitle)}\n </Link>\n\n <Link to='/timeline/local' className={classNames('btn grouped', { 'active': 'local' === activeItem })}>\n <Icon id='users' fixedWidth className='column-header__icon' />\n {siteTitle}\n </Link>\n\n <Link to='/timeline/fediverse' className={classNames('btn grouped', { 'active': 'fediverse' === activeItem })}>\n <Icon id='fediverse' fixedWidth className='column-header__icon' />\n {formatMessage(messages.fediverseTitle)}\n </Link>\n\n <div className='column-header__buttons'>\n {collapseButton}\n </div>\n </h1>\n\n {\n expandedContent &&\n <h1 className={expansionClassName}>\n {expandedContent}\n </h1>\n }\n\n <div className={collapsibleClassName} tabIndex={collapsed ? -1 : null} onTransitionEnd={this.handleTransitionEnd}>\n <div className='column-header__collapsible-inner'>\n {(!collapsed || animating) && collapsedContent}\n </div>\n </div>\n </div>\n );\n }\n\n}\n\nexport default injectIntl(connect(mapStateToProps)(ColumnHeader));\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ColumnSubheading = ({ text }) => {\n return (\n <div className='column-subheading'>\n {text}\n </div>\n );\n};\n\nColumnSubheading.propTypes = {\n text: PropTypes.string.isRequired,\n};\n\nexport default ColumnSubheading;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport classNames from 'classnames';\nimport DropdownMenu from 'soapbox/containers/dropdown_menu_container';\n\nconst messages = defineMessages({\n collapse: { id: 'accordion.collapse', defaultMessage: 'Collapse' },\n expand: { id: 'accordion.expand', defaultMessage: 'Expand' },\n});\n\nexport default @injectIntl class Accordion extends React.PureComponent {\n\n static propTypes = {\n headline: PropTypes.node.isRequired,\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.node]),\n menu: PropTypes.array,\n expanded: PropTypes.bool,\n onToggle: PropTypes.func,\n intl: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n expanded: false,\n onToggle: () => {},\n }\n\n handleToggle = (e) => {\n this.props.onToggle(!this.props.expanded);\n e.preventDefault();\n }\n\n render() {\n const { headline, children, menu, expanded, intl } = this.props;\n\n return (\n <div className={classNames('accordion', { 'accordion--expanded' : expanded })}>\n {menu && (\n <div className='accordion__menu'>\n <DropdownMenu items={menu} icon='ellipsis-v' size={18} direction='right' />\n </div>\n )}\n <button\n type='button'\n className='accordion__title'\n onClick={this.handleToggle}\n title={intl.formatMessage(expanded ? messages.collapse : messages.expand)}\n >\n {headline}\n </button>\n <div className='accordion__content'>\n {children}\n </div>\n </div>\n );\n }\n\n}\n","var _Object = Object;\nexport default _Object.getPrototypeOf || function (O) {\n O = Object(O);\n\n if (typeof O.constructor === 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n\n return O instanceof Object ? Object.prototype : null;\n};","var _Object = Object;\nexport default (function createClass() {\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\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})();","export default function 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}","var _Object = Object;\nexport default function 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\n if (superClass) {\n _Object.setPrototypeOf ? _Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n}","var NAMESPACE = 'emoji-mart';\nvar _JSON = JSON;\nvar isLocalStorageSupported = typeof window !== 'undefined' && 'localStorage' in window;\nvar getter = void 0;\nvar setter = void 0;\n\nfunction setHandlers(handlers) {\n handlers || (handlers = {});\n getter = handlers.getter;\n setter = handlers.setter;\n}\n\nfunction setNamespace(namespace) {\n NAMESPACE = namespace;\n}\n\nfunction update(state) {\n for (var key in state) {\n var value = state[key];\n set(key, value);\n }\n}\n\nfunction set(key, value) {\n if (setter) {\n setter(key, value);\n } else {\n if (!isLocalStorageSupported) return;\n\n try {\n window.localStorage[NAMESPACE + '.' + key] = _JSON.stringify(value);\n } catch (e) {}\n }\n}\n\nfunction get(key) {\n if (getter) {\n return getter(key);\n } else {\n if (!isLocalStorageSupported) return;\n\n try {\n var value = window.localStorage[NAMESPACE + '.' + key];\n } catch (e) {\n return;\n }\n\n if (value) {\n return JSON.parse(value);\n }\n }\n}\n\nexport default {\n update: update,\n set: set,\n get: get,\n setNamespace: setNamespace,\n setHandlers: setHandlers\n};","import store from './store';\nvar DEFAULTS = ['+1', 'grinning', 'kissing_heart', 'heart_eyes', 'laughing', 'stuck_out_tongue_winking_eye', 'sweat_smile', 'joy', 'scream', 'disappointed', 'unamused', 'weary', 'sob', 'sunglasses', 'heart', 'poop'];\nvar frequently = void 0,\n initialized = void 0;\nvar defaults = {};\n\nfunction init() {\n initialized = true;\n frequently = store.get('frequently');\n}\n\nfunction add(emoji) {\n if (!initialized) init();\n var id = emoji.id;\n frequently || (frequently = defaults);\n frequently[id] || (frequently[id] = 0);\n frequently[id] += 1;\n store.set('last', id);\n store.set('frequently', frequently);\n}\n\nfunction get(perLine) {\n if (!initialized) init();\n\n if (!frequently) {\n defaults = {};\n var result = [];\n\n for (var i = 0; i < perLine; i++) {\n defaults[DEFAULTS[i]] = perLine - i;\n result.push(DEFAULTS[i]);\n }\n\n return result;\n }\n\n var quantity = perLine * 4;\n var frequentlyKeys = [];\n\n for (var key in frequently) {\n if (frequently.hasOwnProperty(key)) {\n frequentlyKeys.push(key);\n }\n }\n\n var sorted = frequentlyKeys.sort(function (a, b) {\n return frequently[a] - frequently[b];\n }).reverse();\n var sliced = sorted.slice(0, quantity);\n var last = store.get('last');\n\n if (last && sliced.indexOf(last) == -1) {\n sliced.pop();\n sliced.push(last);\n }\n\n return sliced;\n}\n\nexport default {\n add: add,\n get: get\n};","var SVGs = {\n activity: \"<path d=\\\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\\\"/>\",\n custom: \"<g transform=\\\"translate(2.000000, 1.000000)\\\"><rect id=\\\"Rectangle\\\" x=\\\"8\\\" y=\\\"0\\\" width=\\\"3\\\" height=\\\"21\\\" rx=\\\"1.5\\\"></rect><rect id=\\\"Rectangle\\\" transform=\\\"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \\\" x=\\\"8.343\\\" y=\\\"0.049\\\" width=\\\"3\\\" height=\\\"21\\\" rx=\\\"1.5\\\"></rect><rect id=\\\"Rectangle\\\" transform=\\\"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \\\" x=\\\"8.343\\\" y=\\\"0.049\\\" width=\\\"3\\\" height=\\\"21\\\" rx=\\\"1.5\\\"></rect></g>\",\n flags: \"<path d=\\\"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\\\"/>\",\n foods: \"<path d=\\\"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\\\"/>\",\n nature: \"<path d=\\\"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\\\"/><path d=\\\"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\\\"/>\",\n objects: \"<path d=\\\"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\\\"/><path d=\\\"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\\\"/>\",\n people: \"<path d=\\\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\\\"/><path d=\\\"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\\\"/>\",\n places: \"<path d=\\\"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\\\"/><path d=\\\"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\\\"/>\",\n recent: \"<path d=\\\"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\\\"/><path d=\\\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\\\"/>\",\n symbols: \"<path d=\\\"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\\\"/>\"\n};\nexport default SVGs;","import _Object$getPrototypeOf from '../polyfills/objectGetPrototypeOf';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from '../polyfills/createClass';\nimport _possibleConstructorReturn from '../polyfills/possibleConstructorReturn';\nimport _inherits from '../polyfills/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport SVGs from '../svgs';\n\nvar Anchors = function (_React$PureComponent) {\n _inherits(Anchors, _React$PureComponent);\n\n function Anchors(props) {\n _classCallCheck(this, Anchors);\n\n var _this = _possibleConstructorReturn(this, (Anchors.__proto__ || _Object$getPrototypeOf(Anchors)).call(this, props));\n\n var defaultCategory = props.categories.filter(function (category) {\n return category.first;\n })[0];\n _this.state = {\n selected: defaultCategory.name\n };\n _this.handleClick = _this.handleClick.bind(_this);\n return _this;\n }\n\n _createClass(Anchors, [{\n key: 'getSVG',\n value: function getSVG(id) {\n this.SVGs || (this.SVGs = {});\n\n if (this.SVGs[id]) {\n return this.SVGs[id];\n } else {\n var svg = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\\n ' + SVGs[id] + '\\n </svg>';\n this.SVGs[id] = svg;\n return svg;\n }\n }\n }, {\n key: 'handleClick',\n value: function handleClick(e) {\n var index = e.currentTarget.getAttribute('data-index');\n var _props = this.props;\n var categories = _props.categories;\n var onAnchorClick = _props.onAnchorClick;\n onAnchorClick(categories[index], index);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props2 = this.props;\n var categories = _props2.categories;\n var onAnchorClick = _props2.onAnchorClick;\n var color = _props2.color;\n var i18n = _props2.i18n;\n var selected = this.state.selected;\n return React.createElement('div', {\n className: 'emoji-mart-anchors'\n }, categories.map(function (category, i) {\n var id = category.id;\n var name = category.name;\n var anchor = category.anchor;\n var isSelected = name == selected;\n\n if (anchor === false) {\n return null;\n }\n\n var iconId = id.startsWith('custom-') ? 'custom' : id;\n return React.createElement('span', {\n key: id,\n title: i18n.categories[id],\n 'data-index': i,\n onClick: _this2.handleClick,\n className: 'emoji-mart-anchor ' + (isSelected ? 'emoji-mart-anchor-selected' : ''),\n style: {\n color: isSelected ? color : null\n }\n }, React.createElement('div', {\n dangerouslySetInnerHTML: {\n __html: _this2.getSVG(iconId)\n }\n }), React.createElement('span', {\n className: 'emoji-mart-anchor-bar',\n style: {\n backgroundColor: color\n }\n }));\n }));\n }\n }]);\n\n return Anchors;\n}(React.PureComponent);\n\nexport default Anchors;\nAnchors.defaultProps = {\n categories: [],\n onAnchorClick: function onAnchorClick() {}\n};","import _extends from '../polyfills/extends';\nimport _Object$getPrototypeOf from '../polyfills/objectGetPrototypeOf';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from '../polyfills/createClass';\nimport _possibleConstructorReturn from '../polyfills/possibleConstructorReturn';\nimport _inherits from '../polyfills/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport frequently from '../utils/frequently';\nimport { getData } from '../utils';\nimport { NimbleEmoji } from '.';\n\nvar Category = function (_React$Component) {\n _inherits(Category, _React$Component);\n\n function Category(props) {\n _classCallCheck(this, Category);\n\n var _this = _possibleConstructorReturn(this, (Category.__proto__ || _Object$getPrototypeOf(Category)).call(this, props));\n\n _this.data = props.data;\n _this.setContainerRef = _this.setContainerRef.bind(_this);\n _this.setLabelRef = _this.setLabelRef.bind(_this);\n return _this;\n }\n\n _createClass(Category, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.parent = this.container.parentNode;\n this.margin = 0;\n this.minMargin = 0;\n this.memoizeSize();\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n var _props = this.props;\n var name = _props.name;\n var perLine = _props.perLine;\n var native = _props.native;\n var hasStickyPosition = _props.hasStickyPosition;\n var emojis = _props.emojis;\n var emojiProps = _props.emojiProps;\n var skin = emojiProps.skin;\n var size = emojiProps.size;\n var set = emojiProps.set;\n var nextPerLine = nextProps.perLine;\n var nextNative = nextProps.native;\n var nextHasStickyPosition = nextProps.hasStickyPosition;\n var nextEmojis = nextProps.emojis;\n var nextEmojiProps = nextProps.emojiProps;\n var nextSkin = nextEmojiProps.skin;\n var nextSize = nextEmojiProps.size;\n var nextSet = nextEmojiProps.set;\n var shouldUpdate = false;\n\n if (name == 'Recent' && perLine != nextPerLine) {\n shouldUpdate = true;\n }\n\n if (name == 'Search') {\n shouldUpdate = !(emojis == nextEmojis);\n }\n\n if (skin != nextSkin || size != nextSize || native != nextNative || set != nextSet || hasStickyPosition != nextHasStickyPosition) {\n shouldUpdate = true;\n }\n\n return shouldUpdate;\n }\n }, {\n key: 'memoizeSize',\n value: function memoizeSize() {\n var _container$getBoundin = this.container.getBoundingClientRect();\n\n var top = _container$getBoundin.top;\n var height = _container$getBoundin.height;\n\n var _parent$getBoundingCl = this.parent.getBoundingClientRect();\n\n var parentTop = _parent$getBoundingCl.top;\n\n var _label$getBoundingCli = this.label.getBoundingClientRect();\n\n var labelHeight = _label$getBoundingCli.height;\n this.top = top - parentTop + this.parent.scrollTop;\n\n if (height == 0) {\n this.maxMargin = 0;\n } else {\n this.maxMargin = height - labelHeight;\n }\n }\n }, {\n key: 'handleScroll',\n value: function handleScroll(scrollTop) {\n var margin = scrollTop - this.top;\n margin = margin < this.minMargin ? this.minMargin : margin;\n margin = margin > this.maxMargin ? this.maxMargin : margin;\n if (margin == this.margin) return;\n\n if (!this.props.hasStickyPosition) {\n this.label.style.top = margin + 'px';\n }\n\n this.margin = margin;\n return true;\n }\n }, {\n key: 'getEmojis',\n value: function getEmojis() {\n var _this2 = this;\n\n var _props2 = this.props;\n var name = _props2.name;\n var custom = _props2.custom;\n var emojis = _props2.emojis;\n var recent = _props2.recent;\n var perLine = _props2.perLine;\n\n if (name == 'Recent') {\n var frequentlyUsed = recent || frequently.get(perLine);\n\n if (frequentlyUsed.length) {\n emojis = frequentlyUsed.map(function (id) {\n var emoji = custom.filter(function (e) {\n return e.id === id;\n })[0];\n\n if (emoji) {\n return emoji;\n }\n\n return id;\n }).filter(function (id) {\n return !!getData(id, null, null, _this2.data);\n });\n }\n\n if (emojis.length === 0 && frequentlyUsed.length > 0) {\n return null;\n }\n }\n\n if (emojis) {\n emojis = emojis.slice(0);\n }\n\n return emojis;\n }\n }, {\n key: 'updateDisplay',\n value: function updateDisplay(display) {\n var emojis = this.getEmojis();\n\n if (!emojis) {\n return;\n }\n\n this.container.style.display = display;\n }\n }, {\n key: 'setContainerRef',\n value: function setContainerRef(c) {\n this.container = c;\n }\n }, {\n key: 'setLabelRef',\n value: function setLabelRef(c) {\n this.label = c;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props3 = this.props;\n var id = _props3.id;\n var name = _props3.name;\n var hasStickyPosition = _props3.hasStickyPosition;\n var emojiProps = _props3.emojiProps;\n var i18n = _props3.i18n;\n var emojis = this.getEmojis();\n var labelStyles = {};\n var labelSpanStyles = {};\n var containerStyles = {};\n\n if (!emojis) {\n containerStyles = {\n display: 'none'\n };\n }\n\n if (!hasStickyPosition) {\n labelStyles = {\n height: 28\n };\n labelSpanStyles = {\n position: 'absolute'\n };\n }\n\n var label = i18n.categories[id] || name;\n return React.createElement('div', {\n ref: this.setContainerRef,\n className: 'emoji-mart-category ' + (emojis && !emojis.length ? 'emoji-mart-no-results' : ''),\n style: containerStyles\n }, React.createElement('div', {\n style: labelStyles,\n 'data-name': name,\n className: 'emoji-mart-category-label'\n }, React.createElement('span', {\n style: labelSpanStyles,\n ref: this.setLabelRef\n }, label)), emojis && emojis.map(function (emoji) {\n return NimbleEmoji(_extends({\n emoji: emoji,\n data: _this3.data\n }, emojiProps));\n }), emojis && !emojis.length && React.createElement('div', null, React.createElement('div', null, NimbleEmoji(_extends({\n data: this.data\n }, emojiProps, {\n size: 38,\n emoji: 'sleuth_or_spy',\n onOver: null,\n onLeave: null,\n onClick: null\n }))), React.createElement('div', {\n className: 'emoji-mart-no-results-label'\n }, i18n.notfound)));\n }\n }]);\n\n return Category;\n}(React.Component);\n\nexport default Category;\nCategory.defaultProps = {\n emojis: [],\n hasStickyPosition: true\n};","import _extends from '../polyfills/extends';\nimport _Object$getPrototypeOf from '../polyfills/objectGetPrototypeOf';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from '../polyfills/createClass';\nimport _possibleConstructorReturn from '../polyfills/possibleConstructorReturn';\nimport _inherits from '../polyfills/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getData } from '../utils';\nimport { NimbleEmoji, Skins } from '.';\n\nvar Preview = function (_React$PureComponent) {\n _inherits(Preview, _React$PureComponent);\n\n function Preview(props) {\n _classCallCheck(this, Preview);\n\n var _this = _possibleConstructorReturn(this, (Preview.__proto__ || _Object$getPrototypeOf(Preview)).call(this, props));\n\n _this.data = props.data;\n _this.state = {\n emoji: null\n };\n return _this;\n }\n\n _createClass(Preview, [{\n key: 'render',\n value: function render() {\n var emoji = this.state.emoji;\n var _props = this.props;\n var emojiProps = _props.emojiProps;\n var skinsProps = _props.skinsProps;\n var showSkinTones = _props.showSkinTones;\n var title = _props.title;\n var idleEmoji = _props.emoji;\n\n if (emoji) {\n var emojiData = getData(emoji, null, null, this.data);\n var _emojiData$emoticons = emojiData.emoticons;\n var emoticons = _emojiData$emoticons === undefined ? [] : _emojiData$emoticons;\n var knownEmoticons = [];\n var listedEmoticons = [];\n emoticons.forEach(function (emoticon) {\n if (knownEmoticons.indexOf(emoticon.toLowerCase()) >= 0) {\n return;\n }\n\n knownEmoticons.push(emoticon.toLowerCase());\n listedEmoticons.push(emoticon);\n });\n return React.createElement('div', {\n className: 'emoji-mart-preview'\n }, React.createElement('div', {\n className: 'emoji-mart-preview-emoji'\n }, NimbleEmoji(_extends({\n key: emoji.id,\n emoji: emoji,\n data: this.data\n }, emojiProps))), React.createElement('div', {\n className: 'emoji-mart-preview-data'\n }, React.createElement('div', {\n className: 'emoji-mart-preview-name'\n }, emoji.name), React.createElement('div', {\n className: 'emoji-mart-preview-shortnames'\n }, emojiData.short_names.map(function (short_name) {\n return React.createElement('span', {\n key: short_name,\n className: 'emoji-mart-preview-shortname'\n }, ':', short_name, ':');\n })), React.createElement('div', {\n className: 'emoji-mart-preview-emoticons'\n }, listedEmoticons.map(function (emoticon) {\n return React.createElement('span', {\n key: emoticon,\n className: 'emoji-mart-preview-emoticon'\n }, emoticon);\n }))));\n } else {\n return React.createElement('div', {\n className: 'emoji-mart-preview'\n }, React.createElement('div', {\n className: 'emoji-mart-preview-emoji'\n }, idleEmoji && idleEmoji.length && NimbleEmoji(_extends({\n emoji: idleEmoji,\n data: this.data\n }, emojiProps))), React.createElement('div', {\n className: 'emoji-mart-preview-data'\n }, React.createElement('span', {\n className: 'emoji-mart-title-label'\n }, title)), showSkinTones && React.createElement('div', {\n className: 'emoji-mart-preview-skins'\n }, React.createElement(Skins, skinsProps)));\n }\n }\n }]);\n\n return Preview;\n}(React.PureComponent);\n\nexport default Preview;\nPreview.defaultProps = {\n showSkinTones: true,\n onChange: function onChange() {}\n};","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from '../../polyfills/createClass';\nimport { getData, getSanitizedData, intersect } from '..';\nimport { uncompress } from '../data';\n\nvar NimbleEmojiIndex = function () {\n function NimbleEmojiIndex(data) {\n _classCallCheck(this, NimbleEmojiIndex);\n\n if (data.compressed) {\n uncompress(data);\n }\n\n this.data = data || {};\n this.originalPool = {};\n this.index = {};\n this.emojis = {};\n this.emoticons = {};\n this.customEmojisList = [];\n this.buildIndex();\n }\n\n _createClass(NimbleEmojiIndex, [{\n key: 'buildIndex',\n value: function buildIndex() {\n var _this = this;\n\n var _loop = function _loop(emoji) {\n var emojiData = _this.data.emojis[emoji];\n var short_names = emojiData.short_names;\n var emoticons = emojiData.emoticons;\n var id = short_names[0];\n\n if (emoticons) {\n emoticons.forEach(function (emoticon) {\n if (_this.emoticons[emoticon]) {\n return;\n }\n\n _this.emoticons[emoticon] = id;\n });\n }\n\n _this.emojis[id] = getSanitizedData(id, null, null, _this.data);\n _this.originalPool[id] = emojiData;\n };\n\n for (var emoji in this.data.emojis) {\n _loop(emoji);\n }\n }\n }, {\n key: 'clearCustomEmojis',\n value: function clearCustomEmojis(pool) {\n var _this2 = this;\n\n this.customEmojisList.forEach(function (emoji) {\n var emojiId = emoji.id || emoji.short_names[0];\n delete pool[emojiId];\n delete _this2.emojis[emojiId];\n });\n }\n }, {\n key: 'addCustomToPool',\n value: function addCustomToPool(custom, pool) {\n var _this3 = this;\n\n if (this.customEmojisList.length) this.clearCustomEmojis(pool);\n custom.forEach(function (emoji) {\n var emojiId = emoji.id || emoji.short_names[0];\n\n if (emojiId && !pool[emojiId]) {\n pool[emojiId] = getData(emoji, null, null, _this3.data);\n _this3.emojis[emojiId] = getSanitizedData(emoji, null, null, _this3.data);\n }\n });\n this.customEmojisList = custom;\n this.index = {};\n }\n }, {\n key: 'search',\n value: function search(value) {\n var _this4 = this;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var emojisToShowFilter = _ref.emojisToShowFilter;\n var maxResults = _ref.maxResults;\n var include = _ref.include;\n var exclude = _ref.exclude;\n var _ref$custom = _ref.custom;\n var custom = _ref$custom === undefined ? [] : _ref$custom;\n if (this.customEmojisList != custom) this.addCustomToPool(custom, this.originalPool);\n maxResults || (maxResults = 75);\n include || (include = []);\n exclude || (exclude = []);\n var results = null,\n pool = this.originalPool;\n\n if (value.length) {\n if (value == '-' || value == '-1') {\n return [this.emojis['-1']];\n }\n\n var values = value.toLowerCase().split(/[\\s|,|\\-|_]+/),\n allResults = [];\n\n if (values.length > 2) {\n values = [values[0], values[1]];\n }\n\n if (include.length || exclude.length) {\n pool = {};\n this.data.categories.forEach(function (category) {\n var isIncluded = include && include.length ? include.indexOf(category.id) > -1 : true;\n var isExcluded = exclude && exclude.length ? exclude.indexOf(category.id) > -1 : false;\n\n if (!isIncluded || isExcluded) {\n return;\n }\n\n category.emojis.forEach(function (emojiId) {\n return pool[emojiId] = _this4.data.emojis[emojiId];\n });\n });\n\n if (custom.length) {\n var customIsIncluded = include && include.length ? include.indexOf('custom') > -1 : true;\n var customIsExcluded = exclude && exclude.length ? exclude.indexOf('custom') > -1 : false;\n\n if (customIsIncluded && !customIsExcluded) {\n this.addCustomToPool(custom, pool);\n }\n }\n }\n\n allResults = values.map(function (value) {\n var aPool = pool,\n aIndex = _this4.index,\n length = 0;\n\n for (var charIndex = 0; charIndex < value.length; charIndex++) {\n var char = value[charIndex];\n length++;\n aIndex[char] || (aIndex[char] = {});\n aIndex = aIndex[char];\n\n if (!aIndex.results) {\n (function () {\n var scores = {};\n aIndex.results = [];\n aIndex.pool = {};\n\n for (var _id in aPool) {\n var emoji = aPool[_id];\n var search = emoji.search;\n var sub = value.substr(0, length);\n var subIndex = search.indexOf(sub);\n\n if (subIndex != -1) {\n var score = subIndex + 1;\n if (sub == _id) score = 0;\n aIndex.results.push(_this4.emojis[_id]);\n aIndex.pool[_id] = emoji;\n scores[_id] = score;\n }\n }\n\n aIndex.results.sort(function (a, b) {\n var aScore = scores[a.id],\n bScore = scores[b.id];\n return aScore - bScore;\n });\n })();\n }\n\n aPool = aIndex.pool;\n }\n\n return aIndex.results;\n }).filter(function (a) {\n return a;\n });\n\n if (allResults.length > 1) {\n results = intersect.apply(null, allResults);\n } else if (allResults.length) {\n results = allResults[0];\n } else {\n results = [];\n }\n }\n\n if (results) {\n if (emojisToShowFilter) {\n results = results.filter(function (result) {\n return emojisToShowFilter(pool[result.id]);\n });\n }\n\n if (results && results.length > maxResults) {\n results = results.slice(0, maxResults);\n }\n }\n\n return results;\n }\n }]);\n\n return NimbleEmojiIndex;\n}();\n\nexport default NimbleEmojiIndex;","import _Object$getPrototypeOf from '../polyfills/objectGetPrototypeOf';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from '../polyfills/createClass';\nimport _possibleConstructorReturn from '../polyfills/possibleConstructorReturn';\nimport _inherits from '../polyfills/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport NimbleEmojiIndex from '../utils/emoji-index/nimble-emoji-index';\n\nvar Search = function (_React$PureComponent) {\n _inherits(Search, _React$PureComponent);\n\n function Search(props) {\n _classCallCheck(this, Search);\n\n var _this = _possibleConstructorReturn(this, (Search.__proto__ || _Object$getPrototypeOf(Search)).call(this, props));\n\n _this.data = props.data;\n _this.emojiIndex = new NimbleEmojiIndex(_this.data);\n _this.setRef = _this.setRef.bind(_this);\n _this.handleChange = _this.handleChange.bind(_this);\n return _this;\n }\n\n _createClass(Search, [{\n key: 'handleChange',\n value: function handleChange() {\n var value = this.input.value;\n this.props.onSearch(this.emojiIndex.search(value, {\n emojisToShowFilter: this.props.emojisToShowFilter,\n maxResults: this.props.maxResults,\n include: this.props.include,\n exclude: this.props.exclude,\n custom: this.props.custom\n }));\n }\n }, {\n key: 'setRef',\n value: function setRef(c) {\n this.input = c;\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.input.value = '';\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props;\n var i18n = _props.i18n;\n var autoFocus = _props.autoFocus;\n return React.createElement('div', {\n className: 'emoji-mart-search'\n }, React.createElement('input', {\n ref: this.setRef,\n type: 'text',\n onChange: this.handleChange,\n placeholder: i18n.search,\n autoFocus: autoFocus\n }));\n }\n }]);\n\n return Search;\n}(React.PureComponent);\n\nexport default Search;\nSearch.defaultProps = {\n onSearch: function onSearch() {},\n maxResults: 75,\n emojisToShowFilter: null,\n autoFocus: false\n};","import _Object$getPrototypeOf from '../polyfills/objectGetPrototypeOf';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from '../polyfills/createClass';\nimport _possibleConstructorReturn from '../polyfills/possibleConstructorReturn';\nimport _inherits from '../polyfills/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar Skins = function (_React$PureComponent) {\n _inherits(Skins, _React$PureComponent);\n\n function Skins(props) {\n _classCallCheck(this, Skins);\n\n var _this = _possibleConstructorReturn(this, (Skins.__proto__ || _Object$getPrototypeOf(Skins)).call(this, props));\n\n _this.state = {\n opened: false\n };\n _this.handleClick = _this.handleClick.bind(_this);\n return _this;\n }\n\n _createClass(Skins, [{\n key: 'handleClick',\n value: function handleClick(e) {\n var skin = parseInt(e.currentTarget.getAttribute('data-skin'));\n var onChange = this.props.onChange;\n\n if (!this.state.opened) {\n this.setState({\n opened: true\n });\n } else {\n this.setState({\n opened: false\n });\n\n if (skin != this.props.skin) {\n onChange(skin);\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var skin = this.props.skin;\n var opened = this.state.opened;\n var skinToneNodes = [];\n\n for (var i = 0; i < 6; i++) {\n var skinTone = i + 1;\n var selected = skinTone == skin;\n skinToneNodes.push(React.createElement('span', {\n key: 'skin-tone-' + skinTone,\n className: 'emoji-mart-skin-swatch ' + (selected ? 'emoji-mart-skin-swatch-selected' : '')\n }, React.createElement('span', {\n onClick: this.handleClick,\n 'data-skin': skinTone,\n className: 'emoji-mart-skin emoji-mart-skin-tone-' + skinTone\n })));\n }\n\n return React.createElement('div', null, React.createElement('div', {\n className: 'emoji-mart-skin-swatches ' + (opened ? 'emoji-mart-skin-swatches-opened' : '')\n }, skinToneNodes));\n }\n }]);\n\n return Skins;\n}(React.PureComponent);\n\nexport default Skins;\nSkins.defaultProps = {\n onChange: function onChange() {}\n};","import _Object$values from 'babel-runtime/core-js/object/values';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from '../../polyfills/extends';\nimport _Object$getPrototypeOf from '../../polyfills/objectGetPrototypeOf';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from '../../polyfills/createClass';\nimport _possibleConstructorReturn from '../../polyfills/possibleConstructorReturn';\nimport _inherits from '../../polyfills/inherits';\nimport '../../vendor/raf-polyfill';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport store from '../../utils/store';\nimport frequently from '../../utils/frequently';\nimport { deepMerge, measureScrollbar } from '../../utils';\nimport { uncompress } from '../../utils/data';\nimport { PickerPropTypes, PickerDefaultProps } from '../../utils/shared-props';\nimport { Anchors, Category, Preview, Search } from '..';\nvar I18N = {\n search: 'Search',\n notfound: 'No Emoji Found',\n categories: {\n search: 'Search Results',\n recent: 'Frequently Used',\n people: 'Smileys & People',\n nature: 'Animals & Nature',\n foods: 'Food & Drink',\n activity: 'Activity',\n places: 'Travel & Places',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags',\n custom: 'Custom'\n }\n};\n\nvar NimblePicker = function (_React$PureComponent) {\n _inherits(NimblePicker, _React$PureComponent);\n\n function NimblePicker(props) {\n _classCallCheck(this, NimblePicker);\n\n var _this = _possibleConstructorReturn(this, (NimblePicker.__proto__ || _Object$getPrototypeOf(NimblePicker)).call(this, props));\n\n _this.CUSTOM = [];\n _this.RECENT_CATEGORY = {\n id: 'recent',\n name: 'Recent',\n emojis: null\n };\n _this.SEARCH_CATEGORY = {\n id: 'search',\n name: 'Search',\n emojis: null,\n anchor: false\n };\n\n if (props.data.compressed) {\n uncompress(props.data);\n }\n\n _this.data = props.data;\n _this.i18n = deepMerge(I18N, props.i18n);\n _this.state = {\n skin: props.skin || store.get('skin') || props.defaultSkin,\n firstRender: true\n };\n _this.categories = [];\n var allCategories = [].concat(_this.data.categories);\n\n if (props.custom.length > 0) {\n var customCategories = {};\n var customCategoriesCreated = 0;\n props.custom.forEach(function (emoji) {\n if (!customCategories[emoji.customCategory]) {\n customCategories[emoji.customCategory] = {\n id: emoji.customCategory ? 'custom-' + emoji.customCategory : 'custom',\n name: emoji.customCategory || 'Custom',\n emojis: [],\n anchor: customCategoriesCreated === 0\n };\n customCategoriesCreated++;\n }\n\n var category = customCategories[emoji.customCategory];\n\n var customEmoji = _extends({}, emoji, {\n // `<Category />` expects emoji to have an `id`.\n id: emoji.short_names[0],\n custom: true // Allow for overwriting existing emojis with custom emojis\n\n });\n\n for (var id in _this.data.emojis) {\n if (emoji.id === id) {\n _this.data.emojis[id] = customEmoji;\n }\n }\n\n category.emojis.push(customEmoji);\n\n _this.CUSTOM.push(customEmoji);\n });\n allCategories.push.apply(allCategories, _toConsumableArray(_Object$values(customCategories)));\n }\n\n _this.hideRecent = true;\n\n if (props.include != undefined) {\n allCategories.sort(function (a, b) {\n if (props.include.indexOf(a.id) > props.include.indexOf(b.id)) {\n return 1;\n }\n\n return -1;\n });\n }\n\n for (var categoryIndex = 0; categoryIndex < allCategories.length; categoryIndex++) {\n var category = allCategories[categoryIndex];\n var isIncluded = props.include && props.include.length ? props.include.indexOf(category.id) > -1 : true;\n var isExcluded = props.exclude && props.exclude.length ? props.exclude.indexOf(category.id) > -1 : false;\n\n if (!isIncluded || isExcluded) {\n continue;\n }\n\n if (props.emojisToShowFilter) {\n var newEmojis = [];\n var emojis = category.emojis;\n\n for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex++) {\n var emoji = emojis[emojiIndex];\n\n if (props.emojisToShowFilter(_this.data.emojis[emoji] || emoji)) {\n newEmojis.push(emoji);\n }\n }\n\n if (newEmojis.length) {\n var newCategory = {\n emojis: newEmojis,\n name: category.name,\n id: category.id\n };\n\n _this.categories.push(newCategory);\n }\n } else {\n _this.categories.push(category);\n }\n }\n\n var includeRecent = props.include && props.include.length ? props.include.indexOf(_this.RECENT_CATEGORY.id) > -1 : true;\n var excludeRecent = props.exclude && props.exclude.length ? props.exclude.indexOf(_this.RECENT_CATEGORY.id) > -1 : false;\n\n if (includeRecent && !excludeRecent) {\n _this.hideRecent = false;\n\n _this.categories.unshift(_this.RECENT_CATEGORY);\n }\n\n if (_this.categories[0]) {\n _this.categories[0].first = true;\n }\n\n _this.categories.unshift(_this.SEARCH_CATEGORY);\n\n _this.setAnchorsRef = _this.setAnchorsRef.bind(_this);\n _this.handleAnchorClick = _this.handleAnchorClick.bind(_this);\n _this.setSearchRef = _this.setSearchRef.bind(_this);\n _this.handleSearch = _this.handleSearch.bind(_this);\n _this.setScrollRef = _this.setScrollRef.bind(_this);\n _this.handleScroll = _this.handleScroll.bind(_this);\n _this.handleScrollPaint = _this.handleScrollPaint.bind(_this);\n _this.handleEmojiOver = _this.handleEmojiOver.bind(_this);\n _this.handleEmojiLeave = _this.handleEmojiLeave.bind(_this);\n _this.handleEmojiClick = _this.handleEmojiClick.bind(_this);\n _this.handleEmojiSelect = _this.handleEmojiSelect.bind(_this);\n _this.setPreviewRef = _this.setPreviewRef.bind(_this);\n _this.handleSkinChange = _this.handleSkinChange.bind(_this);\n _this.handleKeyDown = _this.handleKeyDown.bind(_this);\n return _this;\n }\n\n _createClass(NimblePicker, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(props) {\n if (props.skin) {\n this.setState({\n skin: props.skin\n });\n } else if (props.defaultSkin && !store.get('skin')) {\n this.setState({\n skin: props.defaultSkin\n });\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n if (this.state.firstRender) {\n this.testStickyPosition();\n this.firstRenderTimeout = setTimeout(function () {\n _this2.setState({\n firstRender: false\n });\n }, 60);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.updateCategoriesSize();\n this.handleScroll();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.SEARCH_CATEGORY.emojis = null;\n clearTimeout(this.leaveTimeout);\n clearTimeout(this.firstRenderTimeout);\n }\n }, {\n key: 'testStickyPosition',\n value: function testStickyPosition() {\n var stickyTestElement = document.createElement('div');\n var prefixes = ['', '-webkit-', '-ms-', '-moz-', '-o-'];\n prefixes.forEach(function (prefix) {\n return stickyTestElement.style.position = prefix + 'sticky';\n });\n this.hasStickyPosition = !!stickyTestElement.style.position.length;\n }\n }, {\n key: 'handleEmojiOver',\n value: function handleEmojiOver(emoji) {\n var preview = this.preview;\n\n if (!preview) {\n return;\n } // Use Array.prototype.find() when it is more widely supported.\n\n\n var emojiData = this.CUSTOM.filter(function (customEmoji) {\n return customEmoji.id === emoji.id;\n })[0];\n\n for (var key in emojiData) {\n if (emojiData.hasOwnProperty(key)) {\n emoji[key] = emojiData[key];\n }\n }\n\n preview.setState({\n emoji: emoji\n });\n clearTimeout(this.leaveTimeout);\n }\n }, {\n key: 'handleEmojiLeave',\n value: function handleEmojiLeave(emoji) {\n var preview = this.preview;\n\n if (!preview) {\n return;\n }\n\n this.leaveTimeout = setTimeout(function () {\n preview.setState({\n emoji: null\n });\n }, 16);\n }\n }, {\n key: 'handleEmojiClick',\n value: function handleEmojiClick(emoji, e) {\n this.props.onClick(emoji, e);\n this.handleEmojiSelect(emoji);\n }\n }, {\n key: 'handleEmojiSelect',\n value: function handleEmojiSelect(emoji) {\n var _this3 = this;\n\n this.props.onSelect(emoji);\n if (!this.hideRecent && !this.props.recent) frequently.add(emoji);\n var component = this.categoryRefs['category-1'];\n\n if (component) {\n var maxMargin = component.maxMargin;\n component.forceUpdate();\n window.requestAnimationFrame(function () {\n if (!_this3.scroll) return;\n component.memoizeSize();\n if (maxMargin == component.maxMargin) return;\n\n _this3.updateCategoriesSize();\n\n _this3.handleScrollPaint();\n\n if (_this3.SEARCH_CATEGORY.emojis) {\n component.updateDisplay('none');\n }\n });\n }\n }\n }, {\n key: 'handleScroll',\n value: function handleScroll() {\n if (!this.waitingForPaint) {\n this.waitingForPaint = true;\n window.requestAnimationFrame(this.handleScrollPaint);\n }\n }\n }, {\n key: 'handleScrollPaint',\n value: function handleScrollPaint() {\n this.waitingForPaint = false;\n\n if (!this.scroll) {\n return;\n }\n\n var activeCategory = null;\n\n if (this.SEARCH_CATEGORY.emojis) {\n activeCategory = this.SEARCH_CATEGORY;\n } else {\n var target = this.scroll,\n scrollTop = target.scrollTop,\n scrollingDown = scrollTop > (this.scrollTop || 0),\n minTop = 0;\n\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var ii = scrollingDown ? this.categories.length - 1 - i : i,\n category = this.categories[ii],\n component = this.categoryRefs['category-' + ii];\n\n if (component) {\n var active = component.handleScroll(scrollTop);\n\n if (!minTop || component.top < minTop) {\n if (component.top > 0) {\n minTop = component.top;\n }\n }\n\n if (active && !activeCategory) {\n activeCategory = category;\n }\n }\n }\n\n if (scrollTop < minTop) {\n activeCategory = this.categories.filter(function (category) {\n return !(category.anchor === false);\n })[0];\n } else if (scrollTop + this.clientHeight >= this.scrollHeight) {\n activeCategory = this.categories[this.categories.length - 1];\n }\n }\n\n if (activeCategory && this.anchors) {\n var anchors = this.anchors;\n var _activeCategory = activeCategory;\n var categoryName = _activeCategory.name;\n\n if (anchors.state.selected != categoryName) {\n anchors.setState({\n selected: categoryName\n });\n }\n }\n\n this.scrollTop = scrollTop;\n }\n }, {\n key: 'handleSearch',\n value: function handleSearch(emojis) {\n this.SEARCH_CATEGORY.emojis = emojis;\n\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var component = this.categoryRefs['category-' + i];\n\n if (component && component.props.name != 'Search') {\n var display = emojis ? 'none' : 'inherit';\n component.updateDisplay(display);\n }\n }\n\n this.forceUpdate();\n this.scroll.scrollTop = 0;\n this.handleScroll();\n }\n }, {\n key: 'handleAnchorClick',\n value: function handleAnchorClick(category, i) {\n var component = this.categoryRefs['category-' + i];\n var scroll = this.scroll;\n var anchors = this.anchors;\n var scrollToComponent = null;\n\n scrollToComponent = function scrollToComponent() {\n if (component) {\n var top = component.top;\n\n if (category.first) {\n top = 0;\n } else {\n top += 1;\n }\n\n scroll.scrollTop = top;\n }\n };\n\n if (this.SEARCH_CATEGORY.emojis) {\n this.handleSearch(null);\n this.search.clear();\n window.requestAnimationFrame(scrollToComponent);\n } else {\n scrollToComponent();\n }\n }\n }, {\n key: 'handleSkinChange',\n value: function handleSkinChange(skin) {\n var newState = {\n skin: skin\n };\n var onSkinChange = this.props.onSkinChange;\n this.setState(newState);\n store.update(newState);\n onSkinChange(skin);\n }\n }, {\n key: 'handleKeyDown',\n value: function handleKeyDown(e) {\n var handled = false;\n\n switch (e.keyCode) {\n case 13:\n var emoji = void 0;\n\n if (this.SEARCH_CATEGORY.emojis && (emoji = this.SEARCH_CATEGORY.emojis[0])) {\n this.handleEmojiSelect(emoji);\n }\n\n handled = true;\n break;\n }\n\n if (handled) {\n e.preventDefault();\n }\n }\n }, {\n key: 'updateCategoriesSize',\n value: function updateCategoriesSize() {\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var component = this.categoryRefs['category-' + i];\n if (component) component.memoizeSize();\n }\n\n if (this.scroll) {\n var target = this.scroll;\n this.scrollHeight = target.scrollHeight;\n this.clientHeight = target.clientHeight;\n }\n }\n }, {\n key: 'getCategories',\n value: function getCategories() {\n return this.state.firstRender ? this.categories.slice(0, 3) : this.categories;\n }\n }, {\n key: 'setAnchorsRef',\n value: function setAnchorsRef(c) {\n this.anchors = c;\n }\n }, {\n key: 'setSearchRef',\n value: function setSearchRef(c) {\n this.search = c;\n }\n }, {\n key: 'setPreviewRef',\n value: function setPreviewRef(c) {\n this.preview = c;\n }\n }, {\n key: 'setScrollRef',\n value: function setScrollRef(c) {\n this.scroll = c;\n }\n }, {\n key: 'setCategoryRef',\n value: function setCategoryRef(name, c) {\n if (!this.categoryRefs) {\n this.categoryRefs = {};\n }\n\n this.categoryRefs[name] = c;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props = this.props;\n var perLine = _props.perLine;\n var emojiSize = _props.emojiSize;\n var set = _props.set;\n var sheetSize = _props.sheetSize;\n var style = _props.style;\n var title = _props.title;\n var emoji = _props.emoji;\n var color = _props.color;\n var native = _props.native;\n var backgroundImageFn = _props.backgroundImageFn;\n var emojisToShowFilter = _props.emojisToShowFilter;\n var showPreview = _props.showPreview;\n var noShowAnchors = _props.noShowAnchors;\n var showSkinTones = _props.showSkinTones;\n var emojiTooltip = _props.emojiTooltip;\n var include = _props.include;\n var exclude = _props.exclude;\n var recent = _props.recent;\n var autoFocus = _props.autoFocus;\n var skin = this.state.skin;\n var width = perLine * (emojiSize + 12) + 12 + 2 + measureScrollbar();\n return React.createElement('div', {\n style: _extends({\n width: width\n }, style),\n className: 'emoji-mart',\n onKeyDown: this.handleKeyDown\n }, !noShowAnchors && React.createElement('div', {\n className: 'emoji-mart-bar'\n }, React.createElement(Anchors, {\n ref: this.setAnchorsRef,\n data: this.data,\n i18n: this.i18n,\n color: color,\n categories: this.categories,\n onAnchorClick: this.handleAnchorClick\n })), React.createElement(Search, {\n ref: this.setSearchRef,\n onSearch: this.handleSearch,\n data: this.data,\n i18n: this.i18n,\n emojisToShowFilter: emojisToShowFilter,\n include: include,\n exclude: exclude,\n custom: this.CUSTOM,\n autoFocus: autoFocus\n }), React.createElement('div', {\n ref: this.setScrollRef,\n className: 'emoji-mart-scroll',\n onScroll: this.handleScroll\n }, this.getCategories().map(function (category, i) {\n return React.createElement(Category, {\n ref: _this4.setCategoryRef.bind(_this4, 'category-' + i),\n key: category.name,\n id: category.id,\n name: category.name,\n emojis: category.emojis,\n perLine: perLine,\n native: native,\n hasStickyPosition: _this4.hasStickyPosition,\n data: _this4.data,\n i18n: _this4.i18n,\n recent: category.id == _this4.RECENT_CATEGORY.id ? recent : undefined,\n custom: category.id == _this4.RECENT_CATEGORY.id ? _this4.CUSTOM : undefined,\n emojiProps: {\n native: native,\n skin: skin,\n size: emojiSize,\n set: set,\n sheetSize: sheetSize,\n forceSize: native,\n tooltip: emojiTooltip,\n backgroundImageFn: backgroundImageFn,\n onOver: _this4.handleEmojiOver,\n onLeave: _this4.handleEmojiLeave,\n onClick: _this4.handleEmojiClick\n }\n });\n })), showPreview && React.createElement('div', {\n className: 'emoji-mart-bar'\n }, React.createElement(Preview, {\n ref: this.setPreviewRef,\n data: this.data,\n title: title,\n emoji: emoji,\n showSkinTones: showSkinTones,\n emojiProps: {\n native: native,\n size: 38,\n skin: skin,\n set: set,\n sheetSize: sheetSize,\n backgroundImageFn: backgroundImageFn\n },\n skinsProps: {\n skin: skin,\n onChange: this.handleSkinChange\n }\n })));\n }\n }]);\n\n return NimblePicker;\n}(React.PureComponent);\n\nexport default NimblePicker;\nNimblePicker.defaultProps = _extends({}, PickerDefaultProps);","import _extends from '../../polyfills/extends';\nimport _Object$getPrototypeOf from '../../polyfills/objectGetPrototypeOf';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from '../../polyfills/createClass';\nimport _possibleConstructorReturn from '../../polyfills/possibleConstructorReturn';\nimport _inherits from '../../polyfills/inherits';\nimport React from 'react';\nimport data from '../../../data/all.json';\nimport NimblePicker from './nimble-picker';\nimport { PickerPropTypes, PickerDefaultProps } from '../../utils/shared-props';\n\nvar Picker = function (_React$PureComponent) {\n _inherits(Picker, _React$PureComponent);\n\n function Picker() {\n _classCallCheck(this, Picker);\n\n return _possibleConstructorReturn(this, (Picker.__proto__ || _Object$getPrototypeOf(Picker)).apply(this, arguments));\n }\n\n _createClass(Picker, [{\n key: 'render',\n value: function render() {\n return React.createElement(NimblePicker, _extends({}, this.props, this.state));\n }\n }]);\n\n return Picker;\n}(React.PureComponent);\n\nexport default Picker;\nPicker.defaultProps = _extends({}, PickerDefaultProps, {\n data: data\n});","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { changeListEditorTitle, submitListEditor } from '../../../actions/lists';\nimport Button from '../../../components/button';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nconst messages = defineMessages({\n label: { id: 'lists.new.title_placeholder', defaultMessage: 'New list title' },\n title: { id: 'lists.new.create', defaultMessage: 'Add list' },\n create: { id: 'lists.new.create_title', defaultMessage: 'Create' },\n});\n\nconst mapStateToProps = state => ({\n value: state.getIn(['listEditor', 'title']),\n disabled: state.getIn(['listEditor', 'isSubmitting']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n onChange: value => dispatch(changeListEditorTitle(value)),\n onSubmit: () => dispatch(submitListEditor(true)),\n});\n\nexport default @connect(mapStateToProps, mapDispatchToProps)\n@injectIntl\nclass NewListForm extends React.PureComponent {\n\n static propTypes = {\n value: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n };\n\n handleChange = e => {\n this.props.onChange(e.target.value);\n }\n\n handleSubmit = e => {\n e.preventDefault();\n this.props.onSubmit();\n }\n\n handleClick = () => {\n this.props.onSubmit();\n }\n\n render() {\n const { value, disabled, intl } = this.props;\n\n const label = intl.formatMessage(messages.label);\n const create = intl.formatMessage(messages.create);\n\n return (\n <form className='column-inline-form' method='post' onSubmit={this.handleSubmit}>\n <label>\n <span style={{ display: 'none' }}>{label}</span>\n\n <input\n className='setting-text new-list-form__input'\n value={value}\n disabled={disabled}\n onChange={this.handleChange}\n placeholder={label}\n />\n </label>\n\n <Button\n className='new-list-form__btn'\n disabled={disabled}\n onClick={this.handleClick}\n >\n {create}\n </Button>\n </form>\n );\n }\n\n}\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {// No operation performed.\n}\n\nmodule.exports = noop;","import React from 'react';\nimport ColumnHeader from './column_header';\nimport PropTypes from 'prop-types';\nimport ColumnBackButton from '../../../components/column_back_button_slim';\nimport DropdownMenu from 'soapbox/containers/dropdown_menu_container';\n\n// Yes, there are 3 types of columns at this point, but this one is better, I swear\nexport default class Column extends React.PureComponent {\n\n static propTypes = {\n heading: PropTypes.string,\n icon: PropTypes.string,\n children: PropTypes.node,\n active: PropTypes.bool,\n menu: PropTypes.array,\n };\n\n render() {\n const { heading, icon, children, active, menu } = this.props;\n const columnHeaderId = heading && heading.replace(/ /g, '-');\n\n return (\n <div role='region' aria-labelledby={columnHeaderId} className='column column--better'>\n <div className='column__top'>\n {heading && <ColumnHeader icon={icon} active={active} type={heading} columnHeaderId={columnHeaderId} />}\n {menu && (\n <div className='column__menu'>\n <DropdownMenu items={menu} icon='ellipsis-v' size={18} direction='right' />\n </div>\n )}\n <ColumnBackButton />\n </div>\n {children}\n </div>\n );\n }\n\n}\n","import api from '../api';\n\nexport const TOTP_SETTINGS_FETCH_REQUEST = 'TOTP_SETTINGS_FETCH_REQUEST';\nexport const TOTP_SETTINGS_FETCH_SUCCESS = 'TOTP_SETTINGS_FETCH_SUCCESS';\nexport const TOTP_SETTINGS_FETCH_FAIL = 'TOTP_SETTINGS_FETCH_FAIL';\n\nexport const BACKUP_CODES_FETCH_REQUEST = 'BACKUP_CODES_FETCH_REQUEST';\nexport const BACKUP_CODES_FETCH_SUCCESS = 'BACKUP_CODES_FETCH_SUCCESS';\nexport const BACKUP_CODES_FETCH_FAIL = 'BACKUP_CODES_FETCH_FAIL';\n\nexport const TOTP_SETUP_FETCH_REQUEST = 'TOTP_SETUP_FETCH_REQUEST';\nexport const TOTP_SETUP_FETCH_SUCCESS = 'TOTP_SETUP_FETCH_SUCCESS';\nexport const TOTP_SETUP_FETCH_FAIL = 'TOTP_SETUP_FETCH_FAIL';\n\nexport const CONFIRM_TOTP_REQUEST = 'CONFIRM_TOTP_REQUEST';\nexport const CONFIRM_TOTP_SUCCESS = 'CONFIRM_TOTP_SUCCESS';\nexport const CONFIRM_TOTP_FAIL = 'CONFIRM_TOTP_FAIL';\n\nexport const DISABLE_TOTP_REQUEST = 'DISABLE_TOTP_REQUEST';\nexport const DISABLE_TOTP_SUCCESS = 'DISABLE_TOTP_SUCCESS';\nexport const DISABLE_TOTP_FAIL = 'DISABLE_TOTP_FAIL';\n\nexport function fetchUserMfaSettings() {\n return (dispatch, getState) => {\n dispatch({ type: TOTP_SETTINGS_FETCH_REQUEST });\n return api(getState).get('/api/pleroma/accounts/mfa').then(response => {\n dispatch({ type: TOTP_SETTINGS_FETCH_SUCCESS, totpEnabled: response.data.totp });\n return response;\n }).catch(error => {\n dispatch({ type: TOTP_SETTINGS_FETCH_FAIL });\n });\n };\n}\n\nexport function fetchUserMfaSettingsRequest() {\n return {\n type: TOTP_SETTINGS_FETCH_REQUEST,\n };\n};\n\nexport function fetchUserMfaSettingsSuccess() {\n return {\n type: TOTP_SETTINGS_FETCH_SUCCESS,\n };\n};\n\nexport function fetchUserMfaSettingsFail() {\n return {\n type: TOTP_SETTINGS_FETCH_FAIL,\n };\n};\n\nexport function fetchBackupCodes() {\n return (dispatch, getState) => {\n dispatch({ type: BACKUP_CODES_FETCH_REQUEST });\n return api(getState).get('/api/pleroma/accounts/mfa/backup_codes').then(response => {\n dispatch({ type: BACKUP_CODES_FETCH_SUCCESS, backup_codes: response.data });\n return response;\n }).catch(error => {\n dispatch({ type: BACKUP_CODES_FETCH_FAIL });\n });\n };\n}\n\nexport function fetchBackupCodesRequest() {\n return {\n type: BACKUP_CODES_FETCH_REQUEST,\n };\n};\n\nexport function fetchBackupCodesSuccess(backup_codes, response) {\n return {\n type: BACKUP_CODES_FETCH_SUCCESS,\n backup_codes: response.data,\n };\n};\n\nexport function fetchBackupCodesFail(error) {\n return {\n type: BACKUP_CODES_FETCH_FAIL,\n error,\n };\n};\n\nexport function fetchToptSetup() {\n return (dispatch, getState) => {\n dispatch({ type: TOTP_SETUP_FETCH_REQUEST });\n return api(getState).get('/api/pleroma/accounts/mfa/setup/totp').then(response => {\n dispatch({ type: TOTP_SETUP_FETCH_SUCCESS, totp_setup: response.data });\n return response;\n }).catch(error => {\n dispatch({ type: TOTP_SETUP_FETCH_FAIL });\n });\n };\n}\n\nexport function fetchToptSetupRequest() {\n return {\n type: TOTP_SETUP_FETCH_REQUEST,\n };\n};\n\nexport function fetchToptSetupSuccess(totp_setup, response) {\n return {\n type: TOTP_SETUP_FETCH_SUCCESS,\n totp_setup: response.data,\n };\n};\n\nexport function fetchToptSetupFail(error) {\n return {\n type: TOTP_SETUP_FETCH_FAIL,\n error,\n };\n};\n\nexport function confirmToptSetup(code, password) {\n return (dispatch, getState) => {\n dispatch({ type: CONFIRM_TOTP_REQUEST, code });\n return api(getState).post('/api/pleroma/accounts/mfa/confirm/totp', {\n code,\n password,\n }).then(response => {\n dispatch({ type: CONFIRM_TOTP_SUCCESS });\n return response;\n }).catch(error => {\n dispatch({ type: CONFIRM_TOTP_FAIL });\n });\n };\n}\n\nexport function confirmToptRequest() {\n return {\n type: CONFIRM_TOTP_REQUEST,\n };\n};\n\nexport function confirmToptSuccess(backup_codes, response) {\n return {\n type: CONFIRM_TOTP_SUCCESS,\n };\n};\n\nexport function confirmToptFail(error) {\n return {\n type: CONFIRM_TOTP_FAIL,\n error,\n };\n};\n\nexport function disableToptSetup(password) {\n return (dispatch, getState) => {\n dispatch({ type: DISABLE_TOTP_REQUEST });\n return api(getState).delete('/api/pleroma/accounts/mfa/totp', { data: { password } }).then(response => {\n dispatch({ type: DISABLE_TOTP_SUCCESS });\n return response;\n }).catch(error => {\n dispatch({ type: DISABLE_TOTP_FAIL });\n });\n };\n}\n\nexport function disableToptRequest() {\n return {\n type: DISABLE_TOTP_REQUEST,\n };\n};\n\nexport function disableToptSuccess(backup_codes, response) {\n return {\n type: DISABLE_TOTP_SUCCESS,\n };\n};\n\nexport function disableToptFail(error) {\n return {\n type: DISABLE_TOTP_FAIL,\n error,\n };\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","var _Object = Object;\nexport default _Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","var _String = String;\nexport default _String.fromCodePoint || function stringFromCodePoint() {\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n\n if (!length) {\n return '';\n }\n\n var result = '';\n\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n Math.floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xd800;\n lowSurrogate = codePoint % 0x400 + 0xdc00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += String.fromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n\n return result;\n};","import _Object$keys from 'babel-runtime/core-js/object/keys';\nimport { buildSearch } from './data';\nimport stringFromCodePoint from '../polyfills/stringFromCodePoint';\nvar _JSON = JSON;\nvar COLONS_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/;\nvar SKINS = ['1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF'];\n\nfunction unifiedToNative(unified) {\n var unicodes = unified.split('-'),\n codePoints = unicodes.map(function (u) {\n return '0x' + u;\n });\n return stringFromCodePoint.apply(null, codePoints);\n}\n\nfunction sanitize(emoji) {\n var name = emoji.name;\n var short_names = emoji.short_names;\n var skin_tone = emoji.skin_tone;\n var skin_variations = emoji.skin_variations;\n var emoticons = emoji.emoticons;\n var unified = emoji.unified;\n var custom = emoji.custom;\n var customCategory = emoji.customCategory;\n var imageUrl = emoji.imageUrl;\n var render = emoji.render;\n var id = emoji.id || short_names[0];\n var colons = ':' + id + ':';\n\n if (custom) {\n return {\n id: id,\n name: name,\n colons: colons,\n emoticons: emoticons,\n custom: custom,\n customCategory: customCategory,\n imageUrl: imageUrl,\n render: render\n };\n }\n\n if (skin_tone) {\n colons += ':skin-tone-' + skin_tone + ':';\n }\n\n return {\n id: id,\n name: name,\n colons: colons,\n emoticons: emoticons,\n unified: unified.toLowerCase(),\n skin: skin_tone || (skin_variations ? 1 : null),\n native: unifiedToNative(unified),\n render: render\n };\n}\n\nfunction getSanitizedData() {\n return sanitize(getData.apply(undefined, arguments));\n}\n\nfunction getData(emoji, skin, set, data) {\n var emojiData = {};\n\n if (typeof emoji == 'string') {\n var matches = emoji.match(COLONS_REGEX);\n\n if (matches) {\n emoji = matches[1];\n\n if (matches[2]) {\n skin = parseInt(matches[2], 10);\n }\n }\n\n if (data.aliases.hasOwnProperty(emoji)) {\n emoji = data.aliases[emoji];\n }\n\n if (data.emojis.hasOwnProperty(emoji)) {\n emojiData = data.emojis[emoji];\n } else {\n return null;\n }\n } else if (emoji.id) {\n if (data.aliases.hasOwnProperty(emoji.id)) {\n emoji.id = data.aliases[emoji.id];\n }\n\n if (data.emojis.hasOwnProperty(emoji.id)) {\n emojiData = data.emojis[emoji.id];\n skin || (skin = emoji.skin);\n }\n }\n\n if (!_Object$keys(emojiData).length) {\n emojiData = emoji;\n emojiData.custom = true;\n\n if (!emojiData.search) {\n emojiData.search = buildSearch(emoji);\n }\n }\n\n emojiData.emoticons || (emojiData.emoticons = []);\n emojiData.variations || (emojiData.variations = []);\n\n if (emojiData.skin_variations && skin > 1 && set) {\n emojiData = JSON.parse(_JSON.stringify(emojiData));\n var skinKey = SKINS[skin - 1],\n variationData = emojiData.skin_variations[skinKey];\n\n if (!variationData.variations && emojiData.variations) {\n delete emojiData.variations;\n }\n\n if (variationData['has_img_' + set] == undefined || variationData['has_img_' + set]) {\n emojiData.skin_tone = skin;\n\n for (var k in variationData) {\n var v = variationData[k];\n emojiData[k] = v;\n }\n }\n }\n\n if (emojiData.variations && emojiData.variations.length) {\n emojiData = JSON.parse(_JSON.stringify(emojiData));\n emojiData.unified = emojiData.variations.shift();\n }\n\n return emojiData;\n}\n\nfunction uniq(arr) {\n return arr.reduce(function (acc, item) {\n if (acc.indexOf(item) === -1) {\n acc.push(item);\n }\n\n return acc;\n }, []);\n}\n\nfunction intersect(a, b) {\n var uniqA = uniq(a);\n var uniqB = uniq(b);\n return uniqA.filter(function (item) {\n return uniqB.indexOf(item) >= 0;\n });\n}\n\nfunction deepMerge(a, b) {\n var o = {};\n\n for (var key in a) {\n var originalValue = a[key],\n value = originalValue;\n\n if (b.hasOwnProperty(key)) {\n value = b[key];\n }\n\n if (typeof value === 'object') {\n value = deepMerge(originalValue, value);\n }\n\n o[key] = value;\n }\n\n return o;\n} // https://github.com/sonicdoe/measure-scrollbar\n\n\nfunction measureScrollbar() {\n if (typeof document == 'undefined') return 0;\n var div = document.createElement('div');\n div.style.width = '100px';\n div.style.height = '100px';\n div.style.overflow = 'scroll';\n div.style.position = 'absolute';\n div.style.top = '-9999px';\n document.body.appendChild(div);\n var scrollbarWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n return scrollbarWidth;\n}\n\nexport { getData, getSanitizedData, uniq, intersect, deepMerge, unifiedToNative, measureScrollbar };","import PropTypes from 'prop-types';\nvar EmojiPropTypes = {\n data: PropTypes.object.isRequired,\n onOver: PropTypes.func,\n onLeave: PropTypes.func,\n onClick: PropTypes.func,\n fallback: PropTypes.func,\n backgroundImageFn: PropTypes.func,\n native: PropTypes.bool,\n forceSize: PropTypes.bool,\n tooltip: PropTypes.bool,\n skin: PropTypes.oneOf([1, 2, 3, 4, 5, 6]),\n sheetSize: PropTypes.oneOf([16, 20, 32, 64]),\n set: PropTypes.oneOf(['apple', 'google', 'twitter', 'emojione', 'messenger', 'facebook']),\n size: PropTypes.number.isRequired,\n emoji: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n};\nvar EmojiDefaultProps = {\n skin: 1,\n set: 'apple',\n sheetSize: 64,\n native: false,\n forceSize: false,\n tooltip: false,\n backgroundImageFn: function backgroundImageFn(set, sheetSize) {\n return 'https://unpkg.com/emoji-datasource-' + set + '@' + '4.0.4' + '/img/' + set + '/sheets-256/' + sheetSize + '.png';\n },\n onOver: function onOver() {},\n onLeave: function onLeave() {},\n onClick: function onClick() {}\n};\nvar PickerPropTypes = {\n onClick: PropTypes.func,\n onSelect: PropTypes.func,\n onSkinChange: PropTypes.func,\n perLine: PropTypes.number,\n emojiSize: PropTypes.number,\n i18n: PropTypes.object,\n style: PropTypes.object,\n title: PropTypes.string,\n emoji: PropTypes.string,\n color: PropTypes.string,\n set: EmojiPropTypes.set,\n skin: EmojiPropTypes.skin,\n native: PropTypes.bool,\n backgroundImageFn: EmojiPropTypes.backgroundImageFn,\n sheetSize: EmojiPropTypes.sheetSize,\n emojisToShowFilter: PropTypes.func,\n showPreview: PropTypes.bool,\n noShowAnchors: PropTypes.bool,\n showSkinTones: PropTypes.bool,\n emojiTooltip: EmojiPropTypes.tooltip,\n include: PropTypes.arrayOf(PropTypes.string),\n exclude: PropTypes.arrayOf(PropTypes.string),\n recent: PropTypes.arrayOf(PropTypes.string),\n autoFocus: PropTypes.bool,\n custom: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n short_names: PropTypes.arrayOf(PropTypes.string).isRequired,\n emoticons: PropTypes.arrayOf(PropTypes.string),\n keywords: PropTypes.arrayOf(PropTypes.string),\n imageUrl: PropTypes.string.isRequired,\n render: PropTypes.object\n }))\n};\nvar PickerDefaultProps = {\n onClick: function onClick() {},\n onSelect: function onSelect() {},\n onSkinChange: function onSkinChange() {},\n emojiSize: 24,\n perLine: 9,\n i18n: {},\n style: {},\n title: 'Emoji Mart™',\n emoji: 'department_store',\n color: '#ae65c5',\n set: EmojiDefaultProps.set,\n skin: null,\n defaultSkin: EmojiDefaultProps.skin,\n native: EmojiDefaultProps.native,\n sheetSize: EmojiDefaultProps.sheetSize,\n backgroundImageFn: EmojiDefaultProps.backgroundImageFn,\n emojisToShowFilter: null,\n showPreview: true,\n noShowAnchors: false,\n showSkinTones: true,\n emojiTooltip: EmojiDefaultProps.tooltip,\n autoFocus: false,\n custom: []\n};\nexport { EmojiPropTypes, EmojiDefaultProps, PickerPropTypes, PickerDefaultProps };"],"sourceRoot":""} |